JP3757709B2 - 演奏教習データ送信装置及び演奏教習データ送信処理プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents
演奏教習データ送信装置及び演奏教習データ送信処理プログラムを記録したコンピュータ読み取り可能な記録媒体 Download PDFInfo
- Publication number
- JP3757709B2 JP3757709B2 JP29852999A JP29852999A JP3757709B2 JP 3757709 B2 JP3757709 B2 JP 3757709B2 JP 29852999 A JP29852999 A JP 29852999A JP 29852999 A JP29852999 A JP 29852999A JP 3757709 B2 JP3757709 B2 JP 3757709B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- range
- pitch
- event
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Auxiliary Devices For Music (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
本発明は、電子鍵盤楽器に接続して演奏を教習する演奏教習データを送信する演奏教習装置及び演奏教習処理プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】
電子鍵盤楽器の中には、鍵盤の各鍵に対応してLED等の発光素子を設けて、曲データの進行に合わせて音高データに対応する鍵の発光素子を点灯させ、曲の演奏練習を可能にするナビゲーション(以下「ナビ」と称する)の機能をもったものがある。練習する曲データは内部のROM等のメモリにあらかじめ格納することができるが、MIDI規格の電子鍵盤楽器では、フロッピーディスク等の外部記録媒体や外部装置から曲データをMIDI形式で入力してこのようなナビ機能を行うことができる。したがって、あらかじめ内蔵されている曲に限定されることなく、外部から提供される様々な曲の練習が可能になる。
【0003】
【発明が解決しようとする課題】
しかしながら、MIDI規格における電子鍵盤楽器の鍵盤の種類は様々であり、50鍵未満のものや80鍵を超えるものもある。一方、MIDI規格では最大128鍵の音域に対応している。このため、入力する曲データの音域が電子鍵盤楽器の鍵盤の音域より広い場合には、鍵盤の音域範囲外の音高に対してはナビ機能が働かない。したがって演奏練習中のユーザに対して、入力する曲データに欠陥があるのではないか、又は電子鍵盤楽器に故障があるのではないか等、無用な戸惑いを与えてしまうことになる。
本発明の課題は、入力する曲データの音域が電子鍵盤楽器の鍵盤の音域より広い場合でも、ユーザが戸惑うことなく演奏練習を行うようにすることである。
【0004】
【課題を解決するための手段】
請求項1に記載の演奏教習装置は、接続された電子鍵盤楽器の鍵盤の鍵域に対応する音域範囲を設定する音域設定手段と、記憶手段に記憶されている曲データを読み込むデータ読込み手段と、前記データ読込み手段によって読み込まれた曲データの音高が前記設定された音域範囲内であるか否かを判別する音高判別手段と、この音高判別手段によって曲データの音高が前記音域範囲外であると判別された場合には表示手段に音域範囲外である旨の表示をさせる表示制御手段と、前記データ読込み手段によって読み込まれた曲データの音高を演奏教習データとして前記接続された電子鍵盤楽器に送信するデータ送信手段と、を備えた構成になっている。
【0005】
請求項4に記載のコンピュータ読み取り可能な記憶媒体は、コンピュータに、
接続された電子鍵盤楽器の鍵盤の鍵域に対応する音域範囲を設定する音域設定手順と、記憶手段に記憶されている曲データを読み込むデータ読込み手順と、前記データ読込み手順によって読み込まれた曲データの音高が前記設定された音域範囲内であるか否かを判別する音高判別手順と、この音高判別手順によって曲データの音高が前記音域範囲外であると判別された場合には表示手段に音域範囲外である旨の表示をさせる表示制御手順と、前記データ読込み手段によって読み込まれた曲データの音高を演奏教習データとして前記接続された電子鍵盤楽器に送信するデータ送信手順と、を実行させるための演奏教習データ送信処理プログラムを記録している。
【0006】
請求項1に記載の演奏教習データ送信装置又は請求項4に記載のコンピュータ読み取り可能な記憶媒体の発明によれば、入力された曲データの音高が、接続された電子鍵盤楽器の鍵盤の音域範囲外である場合には、その音高が鍵盤の音域範囲外であることを表示して、ユーザーにそのことを通知する。
【0007】
【発明の実施の形態】
以下、図1〜図42を参照して本発明の演奏教習装置の実施形態について説明する。この演奏教習装置では、複数のパートで構成された曲データにおいて、特定の1つのパート例えばメロディパートを指定して、そのパートだけを自動演奏から除くマイナスワンのパートに設定する。演奏者は、他のパートの自動演奏に合わせてそのマイナスワンのパートを演奏練習する。この場合において、演奏者の押鍵を待たないモード、すなわち演奏結果に関係なく他のパートの自動演奏を行う「ノーマルレッスンモード」、いずれかの鍵の押鍵を待って次の自動演奏を開始する「イージー(1)レッスンモード」、正しい鍵の押鍵を待って次の自動演奏を開始する「イージー(2)レッスンモード」が選択できる。その他、演奏練習のパートだけを模範演奏として聞くソロ演奏モードを設定することもできる。
【0008】
図1は、演奏教習装置を用いたシステム構成を示している。演奏教習装置10及び電子鍵盤楽器20は、MIDIケーブル30を介して接続されている。演奏教習装置10において、CPU11は、システムバスに接続されている下記の各部に対して制御信号を送出してデータの授受を行ってこの装置全体を制御する。また、CPU11には、演奏教習処理の制御プログラムを格納するROMが内蔵されている。
【0009】
スイッチ部12は、スキャン制御信号に応じて各スイッチのオン・オフ状態のデータを入力する。FDDC(フロッピーディスク・ドライブ・コントローラ)13は、ドライブ制御信号に応じてFDD(フロッピーディスク・ドライバ)14を制御して、装着されたFD(フロッピーディスク)15を駆動させ、FD15の曲データを入力する。曲データについては後述する。RAM16は、スイッチ部12、FDDC13から入力されたデータや、電子鍵盤楽器20との間で送受信するデータ、その他のデータを記憶するためのエリアを備えている。RAM16のエリアのデータ構成については後述する。
【0010】
MIDIインターフェース17は、MIDI出力制御信号に応じてRAM16から読み出されたMIDIデータを電子鍵盤楽器20に送信し、電子鍵盤楽器20から受信したMIDIデータをMIDI入力制御信号に応じてRAM16にストアする。LCDC(LCDコントローラ)18は、表示制御信号とともにCPU11から与えられる表示データをLCD表示部18に送出して表示させる。
【0011】
電子鍵盤楽器20においては、CPU21は、システムバスに接続されている下記の各部に対して制御信号を送出してデータの授受を行ってこの装置全体を制御する。ROM22は、CPU21によって実行される楽音制御処理のプログラムを記憶している。MIDIインターフェース23は、MIDI出力制御信号に応じてMIDIデータを演奏教習装置10に送信し、演奏教習装置10から受信したMIDIデータをMIDI入力制御信号に応じて入力する。インターフェース24は、鍵盤、スイッチ部及び表示部からなる操作・表示部25と、CPU21との間において、押鍵データ、離鍵データ、スイッチオン・オフデータ、表示データの授受を中継する。鍵盤には、各鍵ごとにLED等の発光素子が設けられ、演奏教習装置10からのMIDIデータに応じて点灯又は点滅する。
【0012】
RAM26は、MIDIインターフェース23を介して送受信されるMIDIデータ、インターフェース23を介して授受される押鍵データ、離鍵データ、スイッチオン・オフデータ、表示データを記憶する。音源部27は、CPU21からの発音制御信号及び楽音データに応じて、波形ROM28の波形データを読み出して楽音信号を生成し、その楽音信号をサウンドシステム29に送出して発音させる。
【0013】
図2は、演奏教習装置10の外観図であり、複数のスイッチからなるスイッチ部12、LCD表示部19が正面の操作部に設けられ、側面にはFDD14のFD挿入口が設けられている。図3にスイッチ部の詳細を示す。パワースイッチ31は、この装置の電源をオン・オフするスイッチであり、電源をオンにするとCPU11の制御プログラムが起動する。ファンクションスイッチ32は、演奏モード又は設定モードを選択するためのモード切替スイッチである。ガイドパートスイッチ33は、1つのガイドパートをソロ演奏するガイドパートモード状態又は通常演奏の通常ソング状態を切り替える状態切替スイッチである。セレクトスイッチ34は、「←」マークの左セレクトスイッチ及び「→」マークの右セレクトスイッチからなり、モードに応じて異なる選択機能をもっている。
【0014】
レッスンスイッチ35は、イージー(1)スイッチ、イージー(2)スイッチ、及びノーマルスイッチからなり、レッスン演奏のステップ(段階)を設定する。プレイスイッチ36は、ソロ演奏又は通常演奏を開始する演奏開始スイッチである。ストップスイッチ37は、ソロ演奏、通常演奏、又はレッスン演奏を停止する演奏停止開始スイッチである。ソングセレクトスイッチ38は、演奏する曲を選択するための曲選択スイッチである。バリュースイッチ39は、モードに応じて鍵域又はナビチャンネルを選択するスイッチである。
なお、上記各スイッチの詳細な働きについてはさらに後述する。
【0015】
図4は、LCD表示部19の表示内容のエリアを示している。エリア41は、鍵盤を示し、最大88鍵に対応している。エリア42は、曲の鍵域が電子鍵盤楽器20の高音域側の鍵域を超えたときに点滅するUPセグメントである。エリア43は、曲の鍵域が電子鍵盤楽器20の低音域側の鍵域を超えたときに点滅するDOWNセグメントである。エリア42及び43の間には、1〜16の数字等からなるエリアが設けられている。このエリアは、16個のチャンネルの状態を表している。拡大図に示すように、チャンネル数のエリア44は自動演奏のチャンネルか又は手動演奏のチャンネルであるかを示し、バー表示のエリア45は発音中のチャンネルであるか否かを示している。エリア46は、現在の演奏状態例えばノーマルレッスンモードの状態を表している。その他のエリアについては、本発明には直接関係しないので説明は省略する。
【0016】
図5は、FD(フロッピーディスク)15に記憶されている曲データの構成、及びその曲データを記憶するRAM16の記憶エリアを示している。FD15の曲データは、イベントのデータ及び次イベント開始までのデルタタイムのデータで構成され、アドレスAPによって各データが指定される。イベントには、発音及び音量を示すノートオンイベント、消音を示すノートオフイベントの他、音色を切り替えるプログラムチェンジ、エフェクトを制御するコントロールチェンジのイベント等で構成されている。例えば、ノートオンイベントの場合には、RAM16のレジスタEVENTにはノートオンの音高(鍵番号)がセットされ、ベロシティ用のレジスタにはベロシティがセットされ、レジスタΔTにはデルタタイムがセットされる。また、アドレスポインタのレジスタAPにはイベント又はデルタタイムのアドレスがセットされる。
【0017】
図6は、RAM16の他の記憶エリアを示している。バッファエリア51は、発音処理バッファ、予告点滅バッファ、MIDI押鍵要求バッファ、MIDI・NewONバッファ、MIDI出力バッファ、MIDI入力バッファで構成されている。発音処理バッファは、発音する音高及びベロシティの発音データを記憶する。予告点滅バッファは、次に押鍵すべき電子鍵盤楽器20の鍵に対応する発光素子を点滅するための予告点滅データを記憶する。MIDI押鍵要求バッファは、電子鍵盤楽器20に対して送信した予告点滅データに対応して押鍵すべき鍵の鍵番号を示す押鍵要求データを記憶する。MIDI・NewONバッファは、送信した押鍵指示に応答して電子鍵盤楽器20において新たに押鍵されて送信された鍵番号データを記憶する。MIDI出力バッファ及びMIDI入力バッファは、上記各MIDIデータを含むすべてのMIDIデータについて、電子鍵盤楽器20に送信する送信MIDIデータ、及び電子鍵盤楽器20から受信する受信MIDIデータを記憶する。
【0018】
カウンタエリア52は、再生カウンタ及び予告点滅カウンタで構成されている。再生カウンタは、演奏状態において設定された時間からタイマインタラプトごとにインクリメントされるカウンタである。予告点滅カウンタは、次に押鍵すべき電子鍵盤楽器20の鍵に対応する発光素子を点滅する点滅実時間をデルタタイムの値に応じて累算するカウンタである。
【0019】
レジスタエリア53は、TIME、ガイドパートチャンネル、ナビチャンネル、STEP、発音数、YAP、RANGEの複数のレジスタで構成されている。TIMEレジスタは、デルタタイムによって更新される時間データをセットする。ガイドパートチャンネルのレジスタは、ソロ演奏のチャンネル番号をセットする。ナビチャンネルのレジスタは、演奏教習のパートのチャンネル番号をセットする。STEPレジスタは、いずれかの鍵の押鍵を待って次の自動演奏を開始する「イージー(1)レッスンモード」、正しい鍵の押鍵を待って次の自動演奏を開始する「イージー(2)レッスンモード」、演奏結果に関係なく他のパートの自動演奏を行う「ノーマルレッスンモード」、又は通常の自動演奏モードの設定モードに応じて、それぞれ「1」、「2」、「3」、及び「0」の値をセットする。発音数レジスタは、同時に発音する発音の数をセットする。YAPレジスタは、次に演奏するイベントのアドレスをセットする。RANGEレジスタは、電子鍵盤楽器20の鍵域をセットする。
【0020】
フラグエリア54は、ファンクションフラグ、ガイドパートフラグ、STF(スタートフラグ)、UPオーバーフラグ、DOWNオーバーフラグ、早送りモードフラグ、ウェイトフラグ、点滅フラグで構成され、「0」又は「1」の値に応じて状態を表す。ファンクションフラグは、「0」のとき演奏モード「1」のときファンクションモードを表している。ガイドパートフラグは、「1」のときソロ演奏モードを表している。STF(スタートフラグ)は、「0」のとき自動演奏停止「1」のとき自動演奏を表している。UPオーバーフラグは、「1」のとき高音域側の鍵域オーバーを表している。DOWNオーバーフラグは、「1」のとき低音域側の鍵域オーバーを表している。早送りモードフラグは、「1」のとき早送りモードを表している。ウェイトフラグは、「1」のとき押鍵待ち状態を表している。点滅フラグは、電子鍵盤楽器20の発光素子を点滅するときに点滅周期ごとに値を反転するフラグである。
【0021】
次に、実施形態における演奏教習装置10の動作について、CPU11のフローチャート及びLCD表示部19の表示画面を参照して説明する。
図7はメインフローであり、所定のイニシャライズ処理(ステップA1)の後、スイッチ処理(ステップA2)、表示処理(ステップA3)、FD読込処理(ステップA4)、シーケンス処理(ステップA5)、送信データ作成処理(ステップA6)、予告点滅処理(ステップA7)、MIDI処理(ステップA8)を実行し、パワーオフであるか否かを判別する(ステップA9)。パワーオフでない場合には、上記ステップA2〜ステップA9の各処理を繰り返し実行する。ステップA9においてパワーオフになったときは、パワーオフ処理(ステップA10)を行ってメインフローを終了する。
【0022】
メインフローの実行中において、MIDI出力のタイマインタラプトが入ると、図8に示すMIDI出力割込処理を実行し、MIDI出力バッファの内容を電子鍵盤楽器20に出力して(ステップA11)、メインフローに戻る。また、MIDI入力のタイマインタラプトが入ると、図8に示すMIDI入力割込処理を実行し、電子鍵盤楽器20から受信したMIDIデータをMIDI入力バッファにストアして(ステップA12)、メインフローに戻る。
【0023】
図9は、メインフローにおけるスイッチ処理のフローである。このフローでは、各スイッチのオン・オフ状態を検出する。すなわち、ファンクションスイッチ処理(ステップB1)、イージー(1)スイッチ処理(ステップB2)、イージー(2)スイッチ処理(ステップB3)、ノーマルスイッチ処理(ステップB4)、プレイスイッチ処理(ステップB5)、ストップスイッチ処理(ステップB6)、ガイドパートスイッチ処理(ステップB7)、セレクトスイッチ処理(ステップB8)、バリュースイッチ処理(ステップB9)、その他のスイッチ処理(ステップB10)を実行して、メインフローに戻る。
【0024】
図10は、図9のステップB1におけるファンクションスイッチ処理のフローである。ファンクションスイッチがオンされたか否かを判別し(ステップB11)、オンされたときはファンクションフラグを反転する(ステップB12)。そして、図9のフローに戻る。図11は、図9のステップB7におけるガイドパートスイッチ処理のフローである。このフローでは、ファンクションフラグが0(演奏モード)であるか否かを判別し(ステップB13)、このフラグが1(ファンクションモード)である場合にはこのフローを終了する。このフラグが0である場合には、ガイドスイッチがオンされたか否かを判別する(ステップB14)。オンされていない場合にはこのフローを終了するが、オンされたときはガイドパートフラグを反転する(ステップB15)。そして、図9のフローに戻る。
【0025】
図12は図9のステップB2におけるイージー(1)スイッチ処理のフローである。この処理ではファンクションフラグが0(演奏モード)であるか否かを判別し(ステップB16)、このフラグが1(ファンクションモード)である場合にはこのフローを終了する。このフラグが0である場合には、イージー(1)スイッチがオンであるか否かを判別する(ステップB17)。このスイッチがオフである場合にはこのフローを終了するが、このスイッチがオンされたときは、レジスタSTEPに1(いずれかの鍵の押鍵を待つイージー(1)モード)をセットする(ステップB18)。また、STFに1(自動演奏)をセットする(ステップB19)。次に、再生カウンタに0をセットしてクリアし(ステップB20)、予告点滅カウンタに0をセットしてクリアする(ステップB21)。次に、アドレスポインタAP及び予告アドレスポインタYAPに初期値0をセットする(ステップB22)。そして、レジスタTIMEに0をセットして(ステップB23)、このフローを終了する。
【0026】
図13は図9のステップB3におけるイージー(2)スイッチ処理のフローである。この処理ではファンクションフラグが0(演奏モード)であるか否かを判別し(ステップB24)、このフラグが1(ファンクションモード)である場合にはこのフローを終了する。このフラグが0である場合には、イージー(2)スイッチがオンであるか否かを判別する(ステップB25)。このスイッチがオフである場合にはこのフローを終了するが、このスイッチがオンでされたときは、レジスタSTEPに2(正しい鍵の押鍵を待つイージー(2)モード)をセットする(ステップB26)。また、STFに1(自動演奏)をセットする(ステップB27)。次に、再生カウンタに0をセットしてクリアし(ステップB28)、予告点滅カウンタに0をセットしてクリアする(ステップB29)。次に、アドレスポインタAP及び予告アドレスポインタYAPに初期値0をセットする(ステップB30)。そして、レジスタTIMEに0をセットして(ステップB31)、このフローを終了する。
【0027】
図14は図9のステップB4におけるノーマルスイッチ処理のフローである。この処理ではファンクションフラグが0(演奏モード)であるか否かを判別し(ステップB32)、このフラグが1(ファンクションモード)である場合にはこのフローを終了する。このフラグが0である場合には、ノーマルスイッチがオンであるか否かを判別する(ステップB33)。このスイッチがオフである場合にはこのフローを終了するが、このスイッチがオンでされたときは、レジスタSTEPに3(押鍵を待たないノーマルモード)をセットする(ステップB34)。また、STFに1(自動演奏)をセットする(ステップB35)。次に、再生カウンタに0をセットしてクリアし(ステップB36)、予告点滅カウンタに0をセットしてクリアする(ステップB37)。次に、アドレスポインタAP及び予告アドレスポインタYAPに初期値0をセットする(ステップB38)。そして、レジスタTIMEに0をセットして(ステップB39)、このフローを終了する。
【0028】
図15は図9のステップB5におけるプレイスイッチ処理のフローである。この処理ではファンクションフラグが0(演奏モード)であるか否かを判別し(ステップB40)、このフラグが1(ファンクションモード)である場合にはこのフローを終了する。このフラグが0である場合には、プレイスイッチがオンであるか否かを判別する(ステップB41)。このスイッチがオフである場合にはこのフローを終了するが、このスイッチがオンでされたときは、レジスタSTEPに0(自動演奏モード)をセットする(ステップB42)。また、STFに1(自動演奏)をセットする(ステップB43)。次に、再生カウンタに0をセットしてクリアし(ステップB44)、アドレスポインタAP及び予告アドレスポインタYAPに初期値0をセットする(ステップB45)。そして、レジスタTIMEに0をセットして(ステップB46)、このフローを終了する。
【0029】
図16は、図9のステップB6におけるストップスイッチ処理のフローである。このフローでは、STFに0(自動演奏停止)をセットし(ステップB47)、音源部に対して消音を指示する(ステップB48)。そしてこのフローを終了する。
図17は、図9のステップB8におけるセレクトスイッチ処理のフローである。まず、ファンクションフラグが0(演奏モード)であるか否かを判別する(ステップB49)。このフラグが0である場合には、左セレクトスイッチがオンされたか否かを判別し(ステップB50)、このスイッチがオンされたときは、ガイドパートチャンネルの番号をデクリメントする(ステップB51)。デクリメントしたチャンネル番号が0になったときは、チャンネル番号を16(最大チャンネル番号)に変更する。ステップB50において左セレクトスイッチがオンでない場合には、右セレクトスイッチがオンされたか否かを判別する(ステップB52)。このスイッチがオンされたときは、ガイドパートチャンネルの番号をインクリメントする(ステップB53)。インクリメントしたチャンネル番号が17になったときは、チャンネル番号を1(最小チャンネル番号)に変更する。
【0030】
ステップB49においてファンクションフラグが1(ファンクションモード)である場合には、左セレクトスイッチ又は右セレクトスイッチのいずれか一方がオンされたか否かを判別する(ステップB54)。いずれのスイッチもオンされない場合にはこのフローを終了するが、いずれか一方がオンされたときはファンクションモードのメニューを変更する。すなわち、現在のファンクションモードが鍵域設定モードであるか否かを判別し(ステップB55)、鍵域設定モードである場合にはナビチャンネル設定モードに変更する(ステップB56)。一方、現在のファンクションモードがナビチャンネル設定モードである場合には、鍵域設定モードに変更する(ステップB57)。設定モードを変更した後はこのフロー終了して図9のフローに戻る。
【0031】
図18は、図9のステップB9におけるバリュースイッチ処理のフローである。このフローにおいては、ファンクションモードのメニューに応じた処理を行う。現在のファンクションモードが鍵域設定モードであるか否かを判別し(ステップB58)、このモードである場合には「+」スイッチがオンされたか否かを判別する(ステップB59)。このスイッチがオンされたときは、レジスタRANGEの値をインクリメントする(ステップB60)。「+」スイッチがオンでない場合には、「−」スイッチがオンされたか否かを判別する(ステップB61)。このスイッチがオンされたときは、RANGEの値をデクリメントする(ステップB62)。すなわち,接続されている電子鍵盤楽器20の鍵数に応じた値がRANGEにセットされる。
【0032】
ステップB58において現在のファンクションモードが鍵域設定モードでない場合には、ナビチャンネル設定モードであるか否かを判別する(ステップB63)。このモードである場合には、「+」スイッチがオンされたか否かを判別する(ステップB64)。このスイッチがオンされたときは、ナビチャンネルの番号をインクリメントする(ステップB65)。インクリメントしたチャンネル番号が17になったときはチャンネル番号を1にする。「+」スイッチがオンでない場合には、「−」スイッチがオンされたか否かを判別する(ステップB66)。このスイッチがオンされたときは、ナビチャンネルの番号をデクリメントする(ステップB67)。デクリメントしたチャンネル番号が0になったときは、チャンネル番号を16にする。
ステップB58において鍵域設定モードでなく、ステップB63においてナビチャンネル設定モードでもない場合には、その他の設定処理を行う(ステップB68)。各設定モードに応じた処理の後は、このフローを終了する。
【0033】
図19及び図20は、図7のメインフローにおけるステップA3の表示処理のフローであり、図21〜図23は、表示画面の例を示している。図19において、ファンクションフラグが1(ファンクションモード)であるか否かを判別し(ステップC1)、このフラグが1である場合には、鍵域設定モードであるか否かを判別する(ステップC2)。このモードである場合には、図21(1)〜(5)に示すような鍵域設定画面を表示し(ステップC3)、RANGEに対応する鍵域数を表示する(ステップC4)。電子鍵盤楽器20の鍵数が88鍵である場合には、図18のバリュースイッチ処理においてRANGEの値が88に設定されているので、図21(1)に示すように、鍵盤表示エリアのすべての鍵が点滅し、「88Keys」が表示される。RANGEの値が76である場合には、図21(2)に示すように、鍵盤表示エリアのうち76鍵が点滅し、「76Keys」が表示される。RANGEの値が73、61、49である場合も同様に、図21(3)、(4)、(5)に示す表示画面となる。
【0034】
図19のフローのステップC2において鍵域設定モードでない場合には、ナビチャンネル設定モードであるか否かを判別する(ステップC5)。このモードである場合には、図22に示すようなナビチャンネル設定画面を表示し(ステップC6)、ナビチャンネルを表示する(ステップC7)。図22の例は、ナビチャンネルが4チャンネルの場合である。したがって、「4 Navi.ch」と表示されている。
【0035】
図19のフローのステップC1において、ファンクションフラグが0(演奏モード)である場合には、図20のフローにおいて、図23(1)〜(5)に示すように、演奏状態に対応した演奏画面を表示する(ステップC8)。例えば、通常再生の場合には、チャンネル1からチャンネル16までが自動演奏のチャンネルに設定されるので、図23(1)に示すように、全部のチャンネル番号マークを強調表示し、発音中のチャンネルのチャンネル番号(この例では、1及び4)に対応する位置のマークを点灯する。
【0036】
図20のフローにおいて、ガイドパートフラグが1であるか否かを判別し(ステップC9)、このフラグが1である場合には、ガイドパートチャンネルを表示する(ステップC10)。すなわち、ガイドパート再生の場合には、図23(2)に示すように、自動演奏するソロパートのチャンネル(この例では、4)のチャンネル番号マークのみを強調表示し、発音中のチャンネルのチャンネル番号に対応する位置のマークを点灯する。イージー(1)、イージー(2)及びノーマルのレッスンモードの場合には、マイナスワン演奏であるので図23(3)、(4)に示すように、練習演奏するパートのチャンネル以外の他のチャンネルの番号を強調表示する。演奏停止状態の場合には、発音中のチャンネルは全くないので、図23(5)に示すように、いずれのチャンネル番号のマークも消灯する。
【0037】
また、図20のフローにおいて、STFが1(自動演奏)であるか否かを判別し(ステップC11)、このフラグが1である場合には、MIDI出力バッファ内のノートイベントに基づき鍵表示を行う(ステップC12)。次に、UPオーバーフラグが1(高音域オーバー)であるか否かを判別し(ステップC13)、このフラグが1である場合には、図23(1)、(3)、(4)、(5)に示すように、UPセグメントを点滅する(ステップC14)。また、DOWNオーバーフラグが1(低音域オーバー)であるか否かを判別し(ステップC15)、このフラグが1である場合には、図23(2)に示すように、DOWNセグメントを点滅する(ステップC16)。
【0038】
図24〜図33は、図7のステップA5におけるシーケンス処理のフローである。まず、STFが1(自動演奏)であるか否かを判別し(ステップD1)、このフラグが1である場合には、最小分解能時間が経過したか否かを判別する(ステップD2)。最小分解能時間とは、4分音符の時間長の整数(例えば24)分の1で表される。したがって、テンポが120の場合で4分音符の時間長が500msのときは、最小分解能時間は約21msとなる。最小分解能時間が経過しないときは、ウェイトフラグが0であるか否かを判別し(ステップD3)、このフラグが0で押鍵待ちでない場合には、このフローを終了する。
【0039】
一方、最小分解能時間が経過したときは、レジスタSTEPの値が0(通常自動演奏モード)又は3(押鍵を待たないノーマルレッスンモード)であるか否かを判別する(ステップD4)。STEPの値が0又は3である場合には、経過した最小分解能時間だけ再生カウンタの値をインクリメントする(ステップD5)。そして、STEPの値が0であるか否かを判別する(ステップD6)。この値が0である場合には、通常再生処理を実行する(ステップD7)。そして、メインフローに戻る。
【0040】
図25に通常再生処理のフローを示す。このフローにおいては、指定した曲データがFD(フロッピーディスク)にあるか否かを判別し(ステップD8)、データがない場合にはこのフローを終了する。データがある場合には、FDのアドレスAPのデルタタイムのデータであるMEM[AP]をレジスタΔTにセットする(ステップD9)。すなわち、次のイベントの開始時間をΔTにセットする。そして、再生カウンタの値が、TIMEの値及びΔTの値の加算値以上であるか否かを判別する(ステップD10)。上記したように、再生カウンタの値は最小分解能時間の経過ごとに累積する時間データであるので、再生カウンタの値が小さい場合には、次のイベントの開始時間にまだ達していないので、このフローを終了する。
【0041】
再生カウンタの値が、TIMEの値及びΔTの値の加算値以上である場合、すなわち、再生カウンタの値が次のイベントの開始時間に達している場合には、TIMEの値にΔTの値を加算し(ステップD11)、曲データのアドレスポインタAPの値をインクリメントして(ステップD12)、イベントデータを指定する。そして、そのイベントデータMEM[AP]をレジスタEVENTにセットする(ステップD13)。次に、ガイドパートフラグが1(ソロパート自動演奏)であるか否かを判別する(ステップD14)。このフラグが1である場合には、EVENTのチャンネルとガイドパートのチャンネルとが同一であるか否かを判別する(ステップD15)。
【0042】
ガイドパートフラグが0である場合、又はEVENTのチャンネルとガイドパートのチャンネルとが同一である場合には、EVENTのデータを発音処理バッファにストアする(ステップD16)。データをストアした後、又はステップD15においてEVENTのチャンネルとガイドパートのチャンネルとが異なる場合には、APの値をインクリメントして(ステップD17)、ステップD8に移行して、ステップD17までの処理を繰り返す。そして、再生カウンタの値がイベントデータの開始時間に達するたびに、そのイベントデータを発音処理バッファにストアする。ステップD8において読み出すべき曲データがなく、曲が終了したときは、メインフローに戻る。
【0043】
図24のフローのステップD6において、STEPの値が0でなく3(押鍵を待たないレッスンモード)である場合には、図26のフローにおいて、再生カウンタの値が予告点滅カウンタの値に達したか否かを判別する(ステップD18)。予告点滅カウンタには、電子鍵盤楽器20の押鍵を教習するために発光素子を点滅させる時間データがセットされている。したがって、最小分解能時間ごとに値が累算される再生カウンタの値が予告点滅カウンタの値に達したときは、現在時間が押鍵タイミング時間に達したときである。そこで、その発光素子を点滅から点灯に変える必要がある。このため、予告点滅カウンタをクリアする(ステップD19)。このカウンタをクリアした後、又は再生カウンタの値が予告点滅カウンタの値にまだ達していない場合には、STEPの値が3(押鍵を待たないレッスンモード)における予告ノート検出処理を実行する(ステップD20)。すなわち、データの先読みを行う。次に、曲データ読込み処理を実行する(ステップD21)。そして、メインフローに戻る。
【0044】
図27は、図26のステップD20における予告ノート検出処理(STEP3)のフローである。FD内にまだ曲データがあるか否かを判別し(ステップD22)、データがない場合すなわち曲が終了したときはこのフローを終了する。まだデータがある場合には、予告アドレスポインタYAPのデルタタイムのデータMEM[YAP]をΔTにセットし(ステップD23)、次の予告アドレスポインタ(YAP+1)のイベントデータをEVENTにセットする(ステップD24)。次に、EVENTのチャンネルとガイドパートのチャンネルとが同一であるか否かを判別する(ステップD25)。
【0045】
同一でない場合には、予告点滅カウンタの値にΔTの値を加算し(ステップD26A)、 YAPの値に2を加算する(ステップD26B)。すなわち、次の予告ノートのデータを指定する。次に、ステップD22に移行して指定したデータがあるか否かを判別する。そして、ガイドパートのチャンネルと同一のチャンネルのEVENTを検出するまで、ステップD22〜ステップD26Bのループを繰り返す。ステップD25において同一のチャンネルのEVENTを検出したときは、そのEVENTのノートのRANGEは鍵域内であるか否かを判別する(ステップD27)。
【0046】
鍵域内である場合には、EVENTのノートを予告点滅バッファにストアする(ステップD28)。すなわち、押鍵すべき鍵に対応する発光素子を予告点滅させるデータとしてストアする。EVENTのノートのRANGEが鍵域内でない場合には、予告点滅バッファをクリアする(ステップD29)。予告点滅バッファにノートをストアした後、又は、予告点滅バッファをクリアした後は、予告点滅カウンタの値にΔTの値を加算し(ステップD30)、YAPの値に2を加算する(ステップD31)。すなわち、次の予告ノートのデータを指定する。そして、図26のフローのステップD21に移行する。
【0047】
図28は、図26のステップD21における曲データ読込み処理のフローである。指定した曲データがFDにあるか否かを判別し(ステップD32A)、データがない場合にはこのフローを終了する。データがある場合には、FDのアドレスAPのデルタタイムのデータであるMEM[AP]をレジスタΔTにセットする(ステップD32B)。そして、再生カウンタの値が、TIMEの値及びΔTの値の加算値以上であるか否かを判別する(ステップD33)。再生カウンタの値が小さい場合には、次のイベントの開始時間にまだ達していないので、このフローを終了する。
【0048】
再生カウンタの値が、TIMEの値及びΔTの値の加算値以上である場合、すなわち、再生カウンタの値が次のイベントの開始時間に達している場合には、TIMEの値にΔTの値を加算し(ステップD34)、曲データのアドレスポインタAPの値をインクリメントして(ステップD35)、イベントデータを指定する。そして、そのイベントデータMEM[AP]をレジスタEVENTにセットする(ステップD36)。そして、EVENTのデータを発音処理バッファにストアする(ステップD37)。次に、APの値をインクリメントして(ステップD38)、ステップD32Aに移行して、ステップD38までの処理を繰り返す。そして、再生カウンタの値がイベントデータの開始時間に達するたびに、そのイベントデータを発音処理バッファにストアする。ステップD32Aにおいて読み出すべき曲データがなく、曲が終了したときは、メインフローに戻る。
【0049】
図24のシーケンス処理のステップD4において、STEPの値が1(イージー(1)レッスン)又は2(イージー(2)レッスン)である場合には、図29のフローにおいて、予告点滅カウンタの値が再生カウンタの値と同じでないか否かを判別する(ステップD39)。これらの値が同じでない場合、すなわち、電子鍵盤楽器20の発光素子が点滅中で次の押鍵予告を行っているが、再生カウンタの値(時間)が予告点滅カウンタの値(点滅終了時間)に達しておらず、まだ押鍵開始時間に達していない場合には、MIDI押鍵要求バッファにデータがあるか否かを判別する(ステップD40)。
【0050】
このバッファにデータがある場合、すなわち電子鍵盤楽器20側に押鍵すべきノートデータがある場合には、MIDINewONバッファにデータがあるか否かを判別する(ステップD41)。このバッファにデータがある場合、すなわち電子鍵盤楽器20において、まだ押鍵開始時間に達していないにもかかわらず、押鍵がされた場合には、MIDINewONバッファにその押鍵によるノートデータがストアされる。この場合には、STEPの値が2(イージー(2)レッスン)であるか否かを判別する(ステップD42)。STEPの値が2で、正しい押鍵待ちレッスンモードである場合には、MIDI押鍵要求バッファのノートデータとMIDINewONバッファのノートデータとが一致するか否かを判別する(ステップD43)。すなわち、押鍵要求のノートデータと実際の押鍵のノートデータとが一致するか否かを判別する。
【0051】
両バッファのノートデータが一致しない場合には押鍵とは認めず、経過した最小分解能時間(図24のステップD2)だけ再生カウンタの値をインクリメントする(ステップD44)。ステップD40においてMIDI押鍵要求バッファにデータがない場合すなわち鍵域がオーバーしている場合、又は、ステップD41においてMIDINewONバッファにデータがない場合すなわち押鍵がされていない場合にも、ステップD44において再生カウンタの値をインクリメントする。次に、予告点滅バッファはクリアされているか否かを判別する(ステップD45)。このバッファがクリアされている場合には、イージー(1)レッスン及びイージー(2)レッスンにおける予告ノート検出処理を実行する(ステップD46)。すなわち、データの先読みを行う。予告ノート検出処理(STEP1,2)の後、又は、ステップD45において予告点滅バッファにデータがある場合には、図28のフローに示した曲データ読込み処理を実行する(ステップD47)。そして、メインフローに戻る。
【0052】
ステップD42においてSTEPの値が1で、いずれかの鍵の押鍵待ちレッスンモードである場合、又は、ステップD43において、MIDI押鍵要求バッファのノートデータとMIDINewONバッファのノートデータとが一致する場合には、まだ押鍵開始時間に達していないにもかかわらず押鍵がされた場合である。この場合には、図30のフローにおいて、再生カウンタの値を予告点滅カウンタの値に更新する(ステップD48)。すなわち、再生カウンタの値である現在時間を押鍵開始時間に先送りして進めるために、予告点滅カウンタの値に変更する。そして、早送りモードフラグに1(早送りモード)をセットする(ステップD49)。次に、図28のフローに示した曲データ読込み処理を実行する(ステップD50)。すなわちこの場合には、現在時間を進めたその時間差分の曲データを早送りモードで読み込む。
【0053】
また、図29のステップD39において、予告点滅カウンタの値が再生カウンタの値に一致した場合、すなわち、鍵域内のノートの押鍵開始時間に達したとき又は鍵域外のノートの発音時間に達したときは、図30のステップD51において、MIDI押鍵要求バッファにデータがあるか否かを判別する(ステップD51)。このバッファにデータがない場合には、鍵域外であるので、図28のフローに示した曲データ読込み処理を実行する(ステップD50)。すなわちこの場合には、押鍵指示ができないので発音のみを行うために曲データを読み込む。
【0054】
ステップD50における曲データ読込み処理が終了すると、MIDI押鍵要求バッファをクリアし(ステップD52)、予告点滅バッファをクリアする(ステップD53)。そして、イージー(1)レッスン及びイージー(2)レッスンにおける予告ノート検出処理を実行する(ステップD54)。次に、早送りモードフラグが0であるか否かを判別する(ステップD55)。このフラグが0である場合には、経過した最小分解能時間(図24のステップD2)だけ再生カウンタの値をインクリメントする(ステップD56)。そして、メインフローに戻る。早送りモードフラグが1の場合には、ステップD48において再生カウンタの値を予告点滅カウンタの値に更新しているので、再生カウンタのインクリメントをすることなく、メインフローに戻る。
【0055】
図30のステップD51において、MIDI押鍵要求バッファにデータがある場合、すなわち、電子鍵盤楽器20において点滅している発光素子に対応する鍵の押鍵開始時間に達したときは、図31のフローにおいて、ウェイトフラグが0であるか否かを判別する(ステップD57)。このフラグが0である場合には、図28に示した曲データ読込み処理を実行し(ステップD58)、ウェイトフラグに1(押鍵待ちモード)をセットする(ステップD59)。次に、予告点滅バッファをクリアする(ステップD60)。バッファをクリアした後、又は、ステップD57若しくは図24のステップD3においてウェイトフラグが1である場合には、MIDINewONバッファにデータがあるか否かを判別する(ステップD61)。データがない場合には鍵域オーバーであるので、押鍵を待つ必要がないのでメインフローに戻る。
【0056】
MIDINewONバッファにデータがある場合には、STEPの値が2(イージー(2)レッスンモード)であるか否かを判別する(ステップD62)。この値が2で、正しい押鍵待ちモードである場合には、MIDI押鍵要求バッファのノートとMIDINewONバッファのノートとが一致しているか否かを判別する(ステップD63)。両バッファのノートが一致しない場合、すなわち押鍵要求のノートと実際の押鍵されたノートとが異なる場合には、メインフローに戻る。ステップD62においてSTEPの値が1で、いずれかの鍵の押鍵待ちモードである場合、又は、ステップD63において両バッファのノートが一致した場合は、ウェイトフラグに0をセットし(ステップD64)、MIDI押鍵要求バッファをクリアする(ステップD65)。そして、図30のステップD54に移行して、予告ノート検出処理(STEP1,2)を実行する。
【0057】
図32及び図33は、図29のステップD46及び図39のステップD54における予告ノート検出処理(STEP1,2)のフローである。このフローでは、FD(フロッピーディスク)の曲データを検索して予告ノートを先読みする。FD内に曲データがあるか否かを判別し(ステップD66)、データがない場合すなわち曲が終了したときはこのフローを終了する。データがある場合には、予告アドレスポインタYAPのデルタタイムのデータMEM[YAP]をΔTにセットし(ステップD67)、次の予告アドレスポインタ(YAP+1)のイベントデータをEVENTにセットする(ステップD68)。次に、EVENTのチャンネルとガイドパートのチャンネルとが同一であるか否かを判別する(ステップD69)。
【0058】
同一でない場合には、予告点滅カウンタの値にΔTの値を加算し(ステップD70)、YAPの値に2を加算する(ステップD71)。すなわち、次の予告ノートのデータを指定する。次に、ステップD66に移行して指定したデータがあるか否かを判別する。そして、ガイドパートのチャンネルと同一のチャンネルのEVENTを検出するまで、ステップD66〜ステップD71のループを繰り返す。ステップD69において同一のチャンネルのEVENTを検出したときは、そのEVENTのノートのRANGEは鍵域内であるか否かを判別する(ステップD72)。
【0059】
鍵域内である場合には、EVENTのノートを予告点滅バッファにストアする(ステップD73A)。すなわち、押鍵すべき鍵に対応する発光素子を予告点滅させるデータとしてストアする。また、EVENTのノートをMIDI押鍵要求バッファにストアする(ステップD73B)。ステップD72においてEVENTのノートのRANGEが鍵域外である場合には、予告点滅バッファをクリアする(ステップD74)。予告点滅バッファをクリアした後、又は、ステップD73BにおいてMIDI押鍵要求バッファにノートをストアした後は、予告点滅カウンタの値にΔTの値を加算し(ステップD75)、YAPの値に2を加算する(ステップD76)。すなわち、次の予告ノートのデータを指定する。そして、発音数のレジスタに1をセットする(ステップD77)。
【0060】
次に、YAPで指定したアドレスのデータがあるか否かを判別し(ステップD78)、データがない場合にはこのフローを終了する。データがある場合には、予告アドレスポインタYAPのデルタタイムのデータMEM[YAP]をΔTにセットし(ステップD79)、次の予告アドレスポインタ(YAP+1)のイベントデータをEVENTにセットする(ステップD80)。次に、予告点滅カウンタの値にΔTの値を加算した値が、予告点滅カウンタの値に所定値αを加算した値以内であるか否かを判別する(ステップD81)。所定値αは、シーケンスデータ構成の曲データにおいて、先読みしてEVENTにセットしたノートが、前に読み出したノートと同時に発音すべき和音のノートであるかどうかを判別する閾値である。予告点滅カウンタの値にΔTの値を加算した値が、予告点滅カウンタの値に所定値αを加算した値を超えている場合には、EVENTのノートは前のノートと和音を構成しないので、このフローを終了する。
【0061】
予告点滅カウンタの値にΔTの値を加算した値が、予告点滅カウンタの値に所定値αを加算した値以内である場合には、EVENTのノートは前に読み出したノートと和音を構成するノートであるので、図33のフローにおいて、EVENTのチャンネルとガイドパートのチャンネルとが同一であるか否かを判別する(ステップD82)。チャンネルが同一でない場合にはこのフローを終了する。チャンネルが同一の場合には、発音数レジスタにセットされている現在の発音数に1を加算した発音数が、最大発音数以内であるか否かを判別する(ステップD83)。現在の発音数に1を加算した発音数が最大発音数(指数)を超えている場合には、図32のステップD80においてEVENTにセットした最新のノートを前の複数のノートと同時に押鍵して発音できないので、このフローを終了する。
【0062】
現在の発音数に1を加算した発音数が、最大発音数以内である場合には、EVENTにセットした最新のノートを前の複数のノートと同時に押鍵して発音できるので、発音数レジスタの値を1だけインクリメントする(ステップD84)。次に、そのノートのRANGEは鍵域内か否かを判別し(ステップD85)、鍵域内である場合には、EVENTのノートを予告点滅バッファにストアし(ステップD86)、EVENTのノートをMIDI押鍵要求バッファにストアする(ステップD87)。次に、予告点滅カウンタの値にΔTの値を加算する(ステップD88)。そして、YAPのアドレスを2だけ加算して(ステップD89)、次のイベントデータを指定する。そして、図32のステップD78に移行して、その指定したデータがあるか否かを判別する。データがある場合には、ステップD78〜ステップD89のループを繰り返す。
【0063】
図34は、図7のメインフローのステップA6における送信データ作成処理のフローである。発音処理バッファにデータがあるか否かを判別し(ステップE1)、データがある場合には、そのデータはノートオン又はノートオフのイベントであるか否かを判別する(ステップE2)。ノートイベントである場合には、STEPの値が0(通常自動演奏)であるか否かを判別する(ステップE3)。STEPの値が0である場合、又は、発音処理バッファのデータがノートイベントでない場合には、イベントのチャンネルとガイドパートのチャンネルとが同一であるか否かを判別する(ステップE4)。
【0064】
この2つのチャンネルが同一である場合には、イベントのチャンネルをナビチャンネルに変更する(ステップE5)。2つのチャンネルが異なる場合には、イベントのチャンネルとナビチャンネルとが同一であるか否かを判別する(ステップE6)。この2つのチャンネルが同一である場合には、イベントのチャンネルをガイドパートのチャンネルに変更する(ステップE7)。そして、イベントをMIDI出力バッファに転送する(ステップE8)。例えば、図35に示すように、FDに記憶されている曲データのガイドパートチャンネルが8チャンネルで、ナビチャンネルが4チャンネルの場合、4チャンネルのイベントをMIDI出力バッファの8チャンネルに転送し、8チャンネルのイベントをMIDI出力バッファの4チャンネルに転送する。ステップE4、ステップE6において、イベントがガイドパートチャンネルでもなく、ナビチャンネルでもない場合には、図35に示すように、そのイベントをMIDI出力バッファの同じチャンネルに転送する。
【0065】
ステップE3において、STEPの値が0でない場合には、STEPの値が3であるか否か、すなわち押鍵を待たないレッスンモードであるか否かを判別する(ステップE9)。この値が3である場合には、STEP(3)再生処理を実行する(ステップE10)。この値が3でない場合、すなわち1又は2である場合には、STEP(1,2)再生処理を実行する(ステップE11)。ステップE8においてイベントをMIDI出力バッファに転送した後、又は、ステップE10若しくはE11において再生処理を実行した後は、ステップE1に移行して発音処理バッファのデータの有無を判別する。データがある場合には上記各ステップを繰り返し、発音処理バッファのすべてのデータを処理してデータがなくなったときは、1にセットされている早送りモードフラグを0にして(ステップE12)、メインフローに戻る。
【0066】
図36〜図38は、図34のステップE11におけるSTEP(1,2)再生処理のフローである。図36において、イベントのノートはRANGEの鍵域内か否かを判別し(ステップE13)、RANGEの鍵域内である場合には、イベントのチャンネルとガイドパートのチャンネルとが同一であるか否かを判別する(ステップE14)。チャンネルが同一である場合には、イベントはノートオンイベントであるか否かを判別する(ステップE15)。ノートオンイベントである場合には、早送りモードフラグが0であるか否かを判別する(ステップE16)。このフラグが0で早送りモードでない場合には、イベントのベロシティ値を1(最小値)に変更する(ステップE17)。
【0067】
ベロシティ値を変更した後、又は、ステップE15においてイベントがノートオンイベントでない場合すなわちノートオフイベントである場合には、イベントのチャンネルをナビチャンネルに変更する(ステップE18)。そして、イベントをMIDI出力バッファに転送する(ステップE19)。イベントを転送した後、又は、ステップE16において早送りモードフラグが1(早送りモード)である場合には、図34のフローのステップE1に戻る。
【0068】
図36のステップE13において、イベントのノートがRANGEの鍵域内でない場合には、そのノートがRANGEの高音域側の鍵域外であるか否かを判別する(ステップE20)。高音域側である場合には、UPオーバーフラグに1をセットする(ステップE21)。高音域側でない場合すなわち低音域側である場合には、DOWNオーバーフラグに1をセットする(ステップE22)。
【0069】
ステップE14においてイベントのチャンネルとガイドパートのチャンネルおとが同一でない場合には、図37のフローにおいて、イベントのチャンネルとナビチャンネルとが同一であるか否かを判別する(ステップE23)。チャンネルが同一である場合には、早送りモードフラグが0であるか否かを判別する(ステップE24)。このフラグが0である場合には、イベントのチャンネルをガイドパートのチャンネルに変更し(ステップE25)、イベントをMIDI出力バッファに転送する(ステップE26)。イベントを転送した後、又は、ステップE24において早送りモードフラグが1(早送りモード)である場合には、図34のフローのステップE1に戻る。
【0070】
ステップE23において、イベントのチャンネルとガイドパートのチャンネルとが同一でない場合、すなわち、イベントのチャンネルがナビチャンネルともガイドパートチャンネルとも異なる場合には、早送りモードフラグが0であるか否かを判別する(ステップE27)。このフラグが0である場合には、イベントをMIDI出力バッファに転送する(ステップE28)。イベントを転送した後、又は、ステップE27において早送りモードフラグが1(早送りモード)である場合には、図34のフローのステップE1に戻る。
【0071】
図36のステップE21又はステップE22において、UPオーバーフラグ又はDOWNオーバーフラグに1をセットした後は、図38のフローにおいて、イベントのチャンネルとガイドパートのチャンネルとが同一であるか否かを判別する(ステップE29)。チャンネルが同一である場合には、早送りモードフラグが0であるか否かを判別する(ステップE30)。このフラグが0で早送りモードでない場合には、イベントのチャンネルをナビチャンネルに変更する(ステップE31)。そして、イベントをMIDI出力バッファに転送する(ステップE32)。イベントを転送した後、又は、ステップE30において早送りモードフラグが1(早送りモード)である場合には、図34のフローのステップE1に戻る。
【0072】
ステップE29において、イベントのチャンネルとガイドパートのチャンネルとが異なる場合には、イベントのチャンネルとナビチャンネルとが同一であるか否かを判別する(ステップE33)。チャンネルが同一である場合には、早送りモードフラグが0であるか否かを判別する(ステップE34)。このフラグが0である場合には、イベントのチャンネルをガイドパートのチャンネルに変更し(ステップE35)、イベントをMIDI出力バッファに転送する(ステップE36)。イベントを転送した後、又は、ステップE34において早送りモードフラグが1(早送りモード)である場合には、図34のフローのステップE1に戻る。
【0073】
ステップE33において、イベントのチャンネルとガイドパートのチャンネルとが同一でない場合、すなわち、イベントのチャンネルがナビチャンネルともガイドパートチャンネルとも異なる場合には、早送りモードフラグが0であるか否かを判別する(ステップE37)。このフラグが0である場合には、イベントをMIDI出力バッファに転送する(ステップE38)。イベントを転送した後、又は、ステップE37において早送りモードフラグが1(早送りモード)である場合には、図34のフローのステップE1に戻る。
【0074】
図39及び図40は、図34のフローのステップE10におけるSTEP(3)再生処理のフローである。図39において、イベントのノートはRANGEの鍵域内か否かを判別し(ステップE39)、RANGEの鍵域内である場合には、イベントのチャンネルとガイドパートのチャンネルとが同一であるか否かを判別する(ステップE40)。チャンネルが同一である場合には、イベントはノートオンイベント又はノートオフイベントであるか否かを判別する(ステップE41)。ノートオンイベント又はノートオフイベントである場合には、イベントのチャンネルをナビチャンネルに変更する(ステップE42)。
【0075】
次に、イベントはノートオンイベントであるか否かを判別する(ステップE43)。ノートオンイベントである場合には、イベントのベロシティ値を1(最小値)に変更する(ステップE44)。ベロシティ値を変更した後、又は、ステップE43においてイベントがノートオンイベントでない場合すなわちノートオフイベントである場合には、イベントをMIDI出力バッファに転送する(ステップE45)。ステップE41においてイベントがノートイベントでない場合には、イベントのチャンネルをナビチャンネルに変更し(ステップE46)、イベントをMIDI出力バッファに転送する(ステップE45)。イベントを転送した後は、図34のフローのステップE1に戻る。
【0076】
ステップE40において、イベントのチャンネルとガイドパートのチャンネルとが同一でない場合には、イベントのチャンネルとナビチャンネルとが同一であるか否かを判別する(ステップE47)。チャンネルが同一である場合には、イベントのチャンネルをガイドパートのチャンネルに変更する(ステップE48)。チャンネルを変更した後、又は、ステップE47においてイベントのチャンネルとガイドパートのチャンネルとが同一でない場合、すなわちイベントのチャンネルがガイドパートのチャンネルともナビチャンネルとも異なる場合には、イベントをMIDI出力バッファに転送する(ステップE49)。イベントを転送した後は、図34のフローのステップE1に戻る。
【0077】
図39のステップE39において、イベントがRANGEの鍵域内でない場合には、図40のフローにおいて、イベントのノートがRANGEの高音域側の鍵域外すなわち上限オーバーであるか否かを判別する(ステップE50)。上限オーバーである場合には、UPオーバーフラグに1をセットする(ステップE51)。上限オーバーでない場合すなわち低音域側の下限オーバーである場合には、DOWNオーバーフラグに1をセットする(ステップE52)。UPオーバーフラグ又はDOWNオーバーフラグに1をセットした後は、イベントのチャンネルとガイドパートのチャンネルとが同一であるか否かを判別する(ステップE53)。チャンネルが同一である場合には、イベントのチャンネルをナビチャンネルに変更する(ステップE54)。
【0078】
ステップE53においてイベントのチャンネルとガイドパートのチャンネルとが同一でない場合には、イベントのチャンネルとナビチャンネルとが同一であるか否かを判別する(ステップE55)。チャンネルが同一である場合には、イベントのチャンネルをガイドパートのチャンネルに変更する(ステップE56)。ステップE54若しくはステップE56において、チャンネルを変更した後、又は、ステップE53若しくはステップE55において、イベントのチャンネルがガイドパートのチャンネルともナビチャンネルとも異なる場合には、イベントをMIDI出力バッファに転送する(ステップE57)。イベントを転送した後は、図34のフローのステップE1に戻る。
【0079】
図41は、図7のメインフローのステップA7における予告点滅処理のフローである。このフローでは、電子鍵盤楽器20の発光素子を点滅させるために、点滅周期時間ごとに、点灯データ及び消灯データを交互に送信する。すなわち、点滅周期時間が経過したか否かを判別し(ステップF1)、経過していない場合にはメインフローに戻る。経過したときは、点滅フラグを反転する(ステップF2)。そして、点滅フラグが1であるか否かを判別する(ステップF3)。このフラグが1である場合には、予告点滅バッファ内のノートでノートオンデータを作成する(ステップF4)。また、イベントのベロシティ値を1すなわち最小値に変更する(ステップF5)。そして、イベントをMIDI出力バッファに転送する(ステップF6)。
【0080】
ステップF3において点滅フラグが0である場合には、予告点滅バッファ内のノートでノートオフデータを作成し(ステップF7)、そのノートオフデータのイベントをMIDI出力バッファに転送する(ステップF6)。イベントを転送した後、予告点滅バッファにまだノートデータがあるか否かを判別する(ステップF8)。まだノートデータがある場合には、ステップF3〜ステップF8の処理を繰り返し、予告点滅バッファの処理すべきノートデータがなくなったときは、メインフローに戻る。
【0081】
図42は、図7のメインフローのステップA8におけるMIDI処理のフローである。MIDI入力バッファに新たなイベントの入力があるか否かを判別し(ステップG1)、新たな入力があったときはそのイベントがノートオンデータであるか否かを判別する(ステップG2)。すなわち、電子鍵盤楽器20において押鍵されたノートオンデータであるか否かを判別する。入力されたイベントがノートオンデータでない場合、又は、MIDI入力バッファに新たなイベントの入力がない場合には、メインフローに戻る。入力されたイベントがノートオンデータである場合には、そのイベントのノートをMIDINewONバッファにストアする(ステップG3)。そして、メインフローに戻る。
【0082】
このように上記実施形態によれば、FD15から入力された曲データの音高が、接続された電子鍵盤楽器20の鍵盤の音域範囲外である場合には、その音高が鍵盤の音域範囲外であることをLCD表示部19に表示して、ユーザにそのことを通知する。したがって、入力する曲データの音域が電子鍵盤楽器20の鍵盤の音域より広い場合でも、LCD表示部19の表示によってそのことを認識するので、ユーザは戸惑うことなく演奏練習を行うことができる。
【0083】
この場合において、入力された曲データの音高が音域範囲外である場合に、その音高が高音側の音高範囲外であるか、又は、低音側の音高範囲外であるかを表示させる。したがってユーザは、曲データの全体的な音域を認識できるので、オクターブシフト設定を容易に行うことができる。
【0084】
また、LCD表示部19に対して、音域範囲外であることを曲データの終了後も継続して表示させる。したがって、演奏練習中で音域範囲外である表示をみおとした場合でも、曲の終了後で音域範囲外であることを認識できる。
【0085】
なお、上記実施形態においては、スイッチ部12のファンクションスイッチ32、セレクトスイッチ34、バリュースイッチ39の操作によって、電子鍵盤楽器20の鍵盤に合わせた鍵域設定を行う構成にしたが、他の実施形態として、接続された電子鍵盤楽器20の鍵盤についての情報を検出して、CPU11の制御によって自動的に鍵域設定を行う構成にしてもよい。このような構成によれば、迅速かつ正確に鍵域設定を行うことができる。また、接続する電子鍵盤楽器が変更されたときも、鍵域設定をやり直す必要がない。
【0086】
また、上記実施形態においては、電子鍵盤楽器20と専用の演奏教習装置10とを接続するシステム構成について説明したが、パソコン等の汎用のコンピュータと電子鍵盤楽器とを接続して、コンピュータによる演奏教習処理を行うシステム構成も可能である。
この場合には、フロッピーディスク等の記録媒体に、曲データを入力するデータ入力手順と、このデータ入力手順によって入力された曲データに基づいて演奏を教習する演奏教習データを所定の通信手段を介して接続された電子鍵盤楽器に送信するデータ送信手順と、前記接続された電子鍵盤楽器の鍵盤の鍵域に対応する音域範囲を設定する音域設定手順と、前記データ入力手順によって入力された曲データの音高が設定された前記音域範囲内であるか否かを判別する音高判別手順と、この音高判別手順によって曲データの音高が前記音域範囲外であると判別された場合には所定の表示手段に音域範囲外である旨の表示をさせる表示制御手順と、を実行する演奏教習処理プログラムを記録して、このプログラムをコンピュータにロードして、上記実施形態に示した演奏教習処理を実行させる。
【0087】
【発明の効果】
本発明によれば、入力された曲データの音高が、接続された電子鍵盤楽器の鍵盤の音域範囲外である場合には、その音高が鍵盤の音域範囲外であることを表示して、ユーザにそのことを通知する。したがって、入力する曲データの音域が電子鍵盤楽器の鍵盤の音域より広い場合でも、表示によってそのことを認識するので、ユーザは戸惑うことなく演奏練習を行うことができる。
【図面の簡単な説明】
【図1】本発明の演奏教習装置を用いた実施形態のシステム構成を示すブロック図。
【図2】図1における演奏教習装置の外観を示す斜視図。
【図3】図2におけるスイッチ部の詳細図。
【図4】図2におけるLCD表示部の表示内容を示す図。
【図5】図1におけるFDに記憶されている曲データの構成を示す図。
【図6】図1におけるRAMの記憶エリアの構成を示す図。
【図7】図1における演奏教習装置のCPUのメインフローチャート。
【図8】CPUのMIDI割込処理のフローチャート。
【図9】図7におけるスイッチ処理のフローチャート。
【図10】図9におけるファンクションスイッチ処理のフローチャート。
【図11】図9におけるガイドパートスイッチ処理のフローチャート。
【図12】図9におけるイージー(1)スイッチ処理のフローチャート。
【図13】図9におけるイージー(2)スイッチ処理のフローチャート。
【図14】図9におけるノーマルスイッチ処理のフローチャート。
【図15】図9におけるプレイスイッチ処理のフローチャート。
【図16】図9におけるストップスイッチ処理のフローチャート。
【図17】図9におけるセレクトスイッチ処理のフローチャート。
【図18】図9におけるバリュースイッチ処理のフローチャート。
【図19】図7における表示処理のフローチャート。
【図20】図19に続く表示処理のフローチャート。
【図21】LCD表示部における鍵域設定画面を示す図。
【図22】LCD表示部におけるナビチャンネル設定画面を示す図。
【図23】LCD表示部における鍵域オーバーの画面を示す図。
【図24】図7におけるシーケンス処理のフローチャート。
【図25】図24における通常再生処理のフローチャート。
【図26】図24に続くシーケンス処理のフローチャート。
【図27】図26における予告ノート検出処理STEP(3)のフローチャート。
【図28】図26、図29、図30、及び図31における曲データ読込み処理のフローチャート。
【図29】図24に続くシーケンス処理のフローチャート。
【図30】図29に続くシーケンス処理のフローチャート。
【図31】図30に続くシーケンス処理のフローチャート。
【図32】図29及び図30における予告ノート検出処理STEP(1,2)のフローチャート。
【図33】図32に続く予告ノート検出処理STEP(1,2)のフローチャート。
【図34】図7における送信データ作成処理のフローチャート。
【図35】送信データ作成処理におけるチャンネル変更の様子を示す図。
【図36】図34におけるSTEP(1,2)再生処理のフローチャート。
【図37】図36に続くSTEP(1,2)再生処理のフローチャート。
【図38】図36に続くSTEP(1,2)再生処理のフローチャート。
【図39】図34におけるSTEP(3)再生処理のフローチャート。
【図40】図39に続くSTEP(3)再生処理のフローチャート。
【図41】図7における予告点滅処理のフローチャート。
【図42】図7におけるMIDI処理のフローチャート。
【符号の説明】
11 CPU
12 スイッチ部
13 FDDC
14 FDD
15 FD
16 RAM
17 MIDIインターフェース
18 LCDD
19 LCD表示部
20 電子鍵盤楽器
Claims (4)
- 接続された電子鍵盤楽器の鍵盤の鍵域に対応する音域範囲を設定する音域設定手段と、
記憶手段に記憶されている曲データを読み込むデータ読込み手段と、
前記データ読込み手段によって読み込まれた曲データの音高が前記設定された音域範囲内であるか否かを判別する音高判別手段と、
この音高判別手段によって曲データの音高が前記音域範囲外であると判別された場合には表示手段に音域範囲外である旨の表示をさせる表示制御手段と、
前記データ読込み手段によって読み込まれた曲データの音高を演奏教習データとして前記接続された電子鍵盤楽器に送信するデータ送信手段と、
を備えたことを特徴とする演奏教習データ送信装置。 - 前記音高判別手段は、前記入力された曲データの音高が前記音域範囲外である場合に、当該音高が高音側の音高範囲外であるか又は低音側の音高範囲外であるかを判別し、前記表示制御手段は、高音側の音高範囲外又は低音側の音高範囲外である旨を前記表示手段に表示させることを特徴とする請求項1に記載の演奏教習データ送信装置。
- 前記演奏教習データ送信装置は更に、
前記データ読込み手段による曲データ読込みに先行して当該曲データを読み込む先行データ読込み手段と、
この先行データ読込み手段により読み込まれた曲データの音高が前記音域設定手段にて設定された音域範囲内であるか否かを判別する第2の音高判別手段と、
この第2の音高判別手段により前記設定された音域範囲内であると判別された曲データの音高のみを予告点滅用演奏教習データとして前記接続された電子鍵盤楽器に送信する第2のデータ送信手段と、
前記第2の音高判別手段により前記設定された音域範囲内であると判別された曲データの音高のみを、前記接続された電子鍵盤楽器の押鍵により供給される音高データとの一致判定に用いる押鍵一致判定手段と、
を有することを特徴とする請求項1記載の演奏教習データ送信装置。 - コンピュータに、
接続された電子鍵盤楽器の鍵盤の鍵域に対応する音域範囲を設定する音域設定手順と、
記憶手段に記憶されている曲データを読み込むデータ読込み手順と、
前記データ読込み手順によって読み込まれた曲データの音高が前記設定された音域範囲内であるか否かを判別する音高判別手順と、
この音高判別手順によって曲データの音高が前記音域範囲外であると判別された場合には表示手段に音域範囲外である旨の表示をさせる表示制御手順と、
前記データ読込み手段によって読み込まれた曲データの音高を演奏教習データとして前記接続された電子鍵盤楽器に送信するデータ送信手順と、
を実行させるための演奏教習データ送信処理プログラムを記録したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29852999A JP3757709B2 (ja) | 1999-10-20 | 1999-10-20 | 演奏教習データ送信装置及び演奏教習データ送信処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP29852999A JP3757709B2 (ja) | 1999-10-20 | 1999-10-20 | 演奏教習データ送信装置及び演奏教習データ送信処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001117562A JP2001117562A (ja) | 2001-04-27 |
JP3757709B2 true JP3757709B2 (ja) | 2006-03-22 |
Family
ID=17860916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP29852999A Expired - Fee Related JP3757709B2 (ja) | 1999-10-20 | 1999-10-20 | 演奏教習データ送信装置及び演奏教習データ送信処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3757709B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4513713B2 (ja) * | 2005-10-21 | 2010-07-28 | カシオ計算機株式会社 | 演奏教習装置および演奏教習処理のプログラム |
-
1999
- 1999-10-20 JP JP29852999A patent/JP3757709B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001117562A (ja) | 2001-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI296980B (en) | Vehicle capable of auditorily informing its state and method for auditorily informing state of vehicle | |
JPH11513811A (ja) | リアルタイム音楽作成システム | |
CN1841495A (zh) | 电子乐器 | |
US20070119291A1 (en) | Musical performance training device and recording medium for storing musical performance training program | |
US20190251936A1 (en) | Keyboard instrument | |
JPH08123416A (ja) | 楽譜表示装置 | |
JP2004302438A (ja) | 弦楽器型の電子楽器 | |
JP4626551B2 (ja) | 楽器のペダル操作表示装置 | |
JP3757712B2 (ja) | 演奏教習データ送信装置及び演奏教習データ送信処理プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3757709B2 (ja) | 演奏教習データ送信装置及び演奏教習データ送信処理プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3358292B2 (ja) | 電子楽器 | |
JP3757711B2 (ja) | 演奏教習データ送信装置及び演奏教習データ送信処理プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3743878B2 (ja) | 演奏教習データ送信装置及び演奏教習データ送信処理のプログラムを記録した記録媒体 | |
JP2001125566A (ja) | 演奏教習装置及び演奏教習処理プログラムを記録した記録媒体 | |
JP4189568B2 (ja) | 演奏教習装置及び演奏教習処理のプログラム | |
JP3896963B2 (ja) | 演奏教習装置および演奏教習プログラム | |
JPH0869282A (ja) | 自動演奏装置 | |
JP2985717B2 (ja) | 押鍵指示装置 | |
CN1030270C (zh) | 具有指导系统的电脑电子琴 | |
JP4211854B2 (ja) | 合奏システム、コントローラ、およびプログラム | |
JP3787642B2 (ja) | 演奏指示装置及び演奏指示のプログラムを記録した記録媒体 | |
CN1085678A (zh) | 多功能音乐发生器 | |
JP2000293168A (ja) | 鍵盤楽器の演奏支援装置 | |
JP2006189515A (ja) | 電子鍵盤楽器 | |
JP3587796B2 (ja) | 循環的キーコントロールに特徴を有するカラオケ装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040107 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20050829 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050906 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051003 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20051206 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20051219 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090113 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100113 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110113 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110113 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120113 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130113 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130113 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |