JP3812729B2 - 演奏案内装置および演奏案内方法 - Google Patents
演奏案内装置および演奏案内方法 Download PDFInfo
- Publication number
- JP3812729B2 JP3812729B2 JP2002000368A JP2002000368A JP3812729B2 JP 3812729 B2 JP3812729 B2 JP 3812729B2 JP 2002000368 A JP2002000368 A JP 2002000368A JP 2002000368 A JP2002000368 A JP 2002000368A JP 3812729 B2 JP3812729 B2 JP 3812729B2
- Authority
- JP
- Japan
- Prior art keywords
- note
- hand
- previous
- difference
- pronounced
- 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
- Electrophonic Musical Instruments (AREA)
- Auxiliary Devices For Music (AREA)
Description
【発明の属する技術分野】
本発明は、電子楽器に用いて好適な演奏案内装置および演奏案内方法に関する。
【0002】
【従来の技術】
従来より、鍵盤の各鍵下部に発光手段を対向配置しておき、発音すべき音高とその発音タイミングとを表す曲データの再生に同期して、押鍵すべき鍵に対応して配設される発光手段を点灯させてユーザーに弾くべき鍵を案内する演奏案内装置が知られている。
【0003】
【発明が解決しようとする課題】
さて、従来の演奏案内装置では、両手を使った鍵操作が不得手な初心者ユーザーにも対応できるよう、曲データを左手パートおよび右手パートとに分けておき、ユーザーが選択するパート側の曲データに従って片手毎の押鍵案内を行うものも知られている。
ところで、このような押鍵案内では、鍵盤上で右手が左手の上に被さったり(例えば図12(イ)に図示する楽譜中の演奏ポイントA)、あるいは左手が右手の上に被さる(例えば図12(ロ)に図示する楽譜中の演奏ポイントB)、いわゆる腕交差が生じるタイミングや腕交差が生じる際の手の使い方を案内することができない、という問題が生じる。
そこで本発明は、このような事情に鑑みてなされたもので、腕交差が生じるタイミングや腕交差が生じる際の手の使い方を案内することができる演奏案内装置および演奏案内方法を提供することを目的としている。
【0004】
【課題を解決するための手段】
上記目的を達成するため、請求項1記載の発明では、発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段と、前回右手ノート及び前回左手ノートを記憶する前回ノート記憶手段と、前記曲データ記憶手段に記憶される左右両手パートの曲データを曲進行に同期して読み出す読出手段と、この読出手段により読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別手段と、前記右手ノートオン判別手段により右手パートの発音すべきノートが判別されない場合に、前記読出手段により読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン判別手段と、前記右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前記前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、前記左手ノートオン判別手段により左手パートの発音すべきノートオンが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出手段と、このパート間ノート差算出手段により算出されたパート差が0より小さいか否か判別する判別手段と、この判別手段にて0より小さいと判別された場合に腕交差が生じる旨を案内する案内手段と、前記判別手段による判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新手段とを具備することを特徴とする。
【0005】
請求項2に記載の発明では、発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段と、前回右手ノート及び前回左手ノートを記憶する前回ノート記憶手段と、前記曲データ記憶手段に記憶される左右両手パートの曲データを曲進行に同期して読み出す読出手段と、この読出手段により読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別手段と、この右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回右手ノートとし、前記前回ノート記憶手段に記憶されている前回右手ノートとして記憶されているノートとの差を右手ノート差として算出する右手ノート差算出手段と、前記右手ノートオン判別手段により右手パートの発音すべきノートが判別されない場合に、前記読出手段により読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン検出手段と、この左手ノートオン判別手段により左手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回左手ノートとし、前記前回ノート記憶手段に記憶されている前回左手ノートとして記憶されているノートとの差を左手ノート差として算出する左手ノート差算出手段と、前記右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合には、今回右手ノートから前記前回左手ノートを減算してパート間ノート差を算出するとともに、前記左手ノートオン判別手段により左手パートの発音すべきノートが判別された場合には、前記前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出手段と、このパート間ノート差算出手段により算出されたパート差が0より小さいか否か判別する判別手段と、この判別手段にて0より小さいと判別された場合に、前記左手ノート差算出手段にて算出された左手ノート差と前記右手ノート差算出手段にて算出された右手ノート差との大小を比較する比較手段と、この比較手段により前記左手ノート差が大きい場合に左手が右手に被さる腕交差である旨を案内する第1の案内手段と、前記比較手段により前記右手ノート差が大きい場合に右手が左手に被さる腕交差である旨を案内する第2の案内手段と、前記判別手段による判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新手段とを具備することを特徴とする。
【0006】
請求項3に記載の発明では、発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段から左右両手パートの曲データを曲進行に同期して読み出す読出過程と、この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別過程と、右手パートの発音すべきノートが判別されない場合に、読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン判別過程と、右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出過程と、この算出されたパート差が0より小さいか否か判別する判別過程と、0より小さいと判別された場合に腕交差が生じる旨を案内する案内過程と、前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新過程とを具備することを特徴とする演奏案内方法。
【0007】
請求項4に記載の発明によれば、発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段から左右両手パートの曲データを曲進行に同期して読み出す読出過程と、この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別過程と、右手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回右手ノートとし、前回ノート記憶手段に記憶されている前回右手ノートとの差を右手ノート差として算出する右手ノート差算出過程と、右手パートの発音すべきノートが判別されない場合に、前記読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン検出過程と、左手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回左手ノートとし、前記前回ノート記憶手段に記憶されている前回左手ノートとの差を左手ノート差として算出する左手ノート差算出過程と、右手パートの発音すべきノートが判別された場合には、今回右手ノートから前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出過程と、算出されたパート差が0より小さいか否か判別する判別過程と、0より小さいと判別された場合に、算出された左手ノート差と算出された右手ノート差との大小を比較する比較過程と、前記左手ノート差が大きい場合に左手が右手に被さる腕交差である旨を案内する第1の案内過程と、前記右手ノート差が大きい場合に右手が左手に被さる腕交差である旨を案内する第2の案内過程と、前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新過程とを具備することを特徴とする。
【0008】
本発明では、左手パートおよび右手パート別に記憶され、発音すべきノートとその発音タイミングとを表す曲データを曲進行に同期して読み出し、この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別し、右手パートの発音すべきノートが判別されない場合に、読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する。右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出し、この算出されたパート差が0より小さいか否か判別して、0より小さいと判別された場合に腕交差が生じる旨を案内するとともに、前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新するので、腕交差が生じるタイミングを案内することが可能になる。
【0009】
【発明の実施の形態】
以下、本発明の実施の一形態による演奏案内装置を搭載した電子楽器を実施例に挙げ、これについて図面を参照して説明する。
A.構成
図1は、本発明の一実施例による電子楽器の全体構成を示すブロック図である。この図において、1は押離鍵操作(演奏操作)に応じたキーオン/キーオフイベントやキーコード等の演奏情報を発生する鍵盤である。2はCPU5の制御の下に、押鍵すべき鍵を案内する押鍵ガイド部である。押鍵ガイド部2は、半透明樹脂材等で形成された各鍵下部に対向配置される発光手段2a(図示略)と、これら各鍵毎に配設される発光手段2aを点灯駆動するドライバ2b(図示略)とから構成され、CPU5から供給される点灯制御信号に従って、対応する発光手段2aについて点灯駆動して押鍵すべき鍵を案内する。
【0010】
3は各種スイッチを有し、操作されたスイッチに応じたスイッチイベントを発生するパネルスイッチ群である。このパネルスイッチ群3には、図示していないが、電源をオンオフする電源スイッチの他、演奏案内用の曲データを選択する曲選択スイッチ、演奏案内の開始を指示するスタートスイッチ等が設けられている。
4はLCDパネル等から構成される表示部である。表示部4は、後述するCPU5から供給される表示制御信号に応じて楽器各部の動作モードなどを表示する他、演奏案内する動作モード下では腕交差が生じる際の手の使い方をアイコン表示する。CPU5は鍵盤1から供給される演奏情報に応じて、音源8に楽音発生を指示したり、選択された曲データに基づき演奏案内するものであり、本発明の要旨に係わる特徴的な処理動作については追って詳述する。
【0011】
ROM6は、上記CPU5にロードされる各種制御プログラムの他、演奏案内用の曲データや腕交差が生じる際の手の使い方を表示するアイコン画像データをを記憶する。ここで、図2(イ)を参照してROM6に格納される曲データKDの構成について説明する。ROM6には、複数の曲データKD(1)〜KD(n)が格納されており、これら曲データKD(1)〜KD(n)は曲選択スイッチの操作に応じて選択される。
曲データKDは、右手パート開始アドレスRPA、左手パート開始アドレスLPA、テンポTMPおよび演奏データPDから構成される。演奏データPDは、上記右手パート開始アドレスRPAおよび左手パート開始アドレスLPAにより指定されるアドレス領域にそれぞれ格納される右手パートの演奏データPDRおよび左手パートの演奏データPDLからなる。
演奏データPDR、PDLは、所謂相対時間形式で形成されており、発音/消音すべき音高を表すイベント(ノートオンイベント・ノートナンバ/ノートオフイベント・ノートナンバ)、その発音タイミングを表す次イベントまでのステップタイムΔtおよび曲の終わりを表すENDマークからなる。
【0012】
RAM7は、図2(ロ)に示すように、各種レジスタ・フラグデータを一時記憶するワークエリアWEと、演奏データPDR、PDLを一時記憶するノートバッファエリアNBEとを備える。なお、このRAM7が備えるノートバッファエリアNBEが意図する点については追って述べる。
音源8は周知の波形メモリ読み出し方式によって構成され、時分割動作する複数の発音チャンネルを備える。この音源8は、各種音色の波形データを記憶しており、これらの内、CPU5が指定する波形データを読み出し、それを演奏情報や曲データに応じて波形修飾してなる楽音波形Wを形成する。
9はD/A変換回路であり、上記音源8の出力をアナログ波形信号に変換して次段のサウンドシステム10に供給する。サウンドシステム10は、例えば、前段から供給されるアナログ波形信号に対して不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカSPから発音する。
【0013】
B.動作
次に、図3〜図11を参照して実施例の動作について説明する。
(1)メインルーチンの動作
上記構成による実施例に電源が投入されると、CPU5はROM6から所定の制御プログラムを読み出して自身にロードした後、図3に示すメインルーチンを実行してステップSA1に処理を進める。ステップSA1では、RAM7のワークエリアWEに設けられる各種レジスタ・フラグを初期化したり、音源8に初期値を設定する等のイニシャライズ処理を行う。この後、ステップSA2に進み、操作されたスイッチが発生するスイッチイベントに対応したスイッチ処理を実行する。
続いて、ステップSA3では、演奏案内の開始を指示するスタートスイッチがオン操作されていれば、曲選択スイッチ操作に応じて選択された曲番号の曲データを再生しつつ演奏案内する曲データ再生処理を実行する。そして、ステップSA4では、鍵盤1で行われる押離鍵操作に対応して発生する演奏情報に従い、音源8に発音/消音を指示する鍵盤処理を実行する。そしてこの後、ステップSA2に処理を戻し、以後、電源スイッチがオフされる迄、ステップSA2〜SA4を繰り返し実行する。
【0014】
(2)タイマ割込み処理ルーチンの動作
次に、図4を参照してタイマ割込み処理ルーチンの動作について説明する。CPU5は上述したメインルーチンを実行している過程で、一定周期毎にタイマ割込み処理を実行する。一定周期毎にタイマ割込みがかかると、CPU5は図4に示すステップSB1に処理を進め、曲データ再生中であるか否かを判断する。ここで、曲データ再生中でなければ、判断結果は「NO」となり、何も処理せずに本ルーチンを完了させるが、曲データ再生中であると判断結果が「YES」となり、次のステップSB2に進み、テンポカウンタTMPCの値をインクリメントして歩進させる。
【0015】
次いで、ステップSB3では、歩進したテンポカウンタTMPCの値が再生中にある曲のテンポTMPの値と一致したか否かを判断する。一致していなければ、判断結果は「NO」となり、本ルーチンを完了させるが、一致すると、判断結果が「YES」となり、ステップSB4に処理を進める。ステップSB4では、テンポカウンタTMPCをゼロリセットし、続くステップSB5では再生中にある曲データの経過時間をインクリメントして歩進させてから本ルーチンを完了する。
このように、タイマ割込み処理ルーチンでは、曲データ再生中であると、一定周期毎にテンポカウンタTMPCを歩進させ、歩進させたテンポカウンタTMPCが曲のテンポTMPに一致すると、テンポカウンタTMPCをゼロリセットして再生中にある曲データの経過時間をインクリメントして曲再生を進行させるようになっている。
【0016】
(3)スイッチ処理ルーチンの動作
次に、図5〜図6を参照してスイッチ処理ルーチンの動作について説明する。上述のメインルーチン(図3参照)のステップSA2を介してスイッチ処理ルーチンが実行されると、操作されたスイッチ種類に応じたスイッチ処理を実行する。以下では本発明の要旨に係わる代表的なスイッチ処理として「曲選択スイッチ処理」および「スタートスイッチ処理」の各動作について述べる。
【0017】
▲1▼曲選択スイッチ処理ルーチンの動作
曲選択スイッチが操作されると、図5に示す曲選択スイッチ処理ルーチンが実行され、CPU5はステップSC1に処理を進め、スイッチ操作に応じて選択された曲番号をレジスタnにストアし、続くステップSC2ではレジスタnにセットされた曲番号に対応した曲データKD(n)の曲テンポTMPをROM6から読み出してRAM7のワークエリアWEにストアする。次いで、ステップSC3では、曲データKD(n)の左手/右手パートの各開始アドレスRPA,LPAを読み出し、それらをRAM7のワークエリアWEにセットする。
【0018】
▲2▼スタートスイッチ処理ルーチンの動作
スタートスイッチがオン操作されると、図6に示すスタートスイッチ処理ルーチンが実行され、CPU5はステップSD1に処理を進める。ステップSD1では、テンポカウンタTMPCをゼロリセットし、続くステップSD2では、各パートの先頭アドレスを、それぞれ対応するパートの現在アドレスとしてセットする。そして、ステップSD3,SD4では、各パートの次イベントまでの時間および各パートの経過時間をそれぞれゼロリセットする。
【0019】
(4)曲データ再生処理ルーチンの動作
次に、図7を参照して曲データ再生処理ルーチンの動作について説明する。前述したメインルーチン(図3参照)のステップSA3を介して曲データ再生処理ルーチンが実行されると、CPU5はステップSE1に処理を進め、パート番号を初期化し、続くステップSE2では左右パートの演奏データを再生し終えたかどうかを判断する。
再生し終えたならば、判断結果が「YES」となり、本ルーチンを完了させるが、再生終了していなければ判断結果は「NO」となり、次のステップSE3に進み、現在設定されているパートの演奏データを、現在アドレスに応じて読み出す。
【0020】
次いで、ステップSE4では、イベントタイミングに達したどうかを判断し、イベントタイミングに達していなければ、判断結果は「NO」となり、ステップSL9に進み、次パートの演奏データの読み出しを進めるべく、パート番号を更新してステップSE2に処理を戻す。
一方、イベントタイミングに達すると、ステップSE4の判断結果が「YES」となり、ステップSE5に進み、経過時間をゼロリセットする。そして、ステップSE6では、読み出された演奏データのイベント内容に応じて押鍵ガイド部2に点灯/消灯指示を与えて押鍵案内すると共に、腕交差が生じる際の手の使い方を案内するイベント処理を実行する。次に、ステップSE7では、次イベント迄の待ち時間をワークエリアにセットした後、ステップSE8にて読み出しアドレスをインクリメントして歩進させてからステップSE3に処理を戻す。
【0021】
(5)イベント処理ルーチンの動作
次に、図8〜図9を参照してイベント処理ルーチンの動作について説明する。上述したステップSE6を介してイベント処理が実行されると、CPU5は図8に示すステップSF1に進み、処理すべきイベントがノートオンイベントであれば、そのイベントに含まれるノートナンバに対応する鍵の発光手段2aを点灯するよう押鍵ガイド部2に指示し、一方、処理すべきイベントがノートオフイベントであれば、そのイベントに含まれるノートナンバに対応する鍵の発光手段2aを消灯するよう押鍵ガイド部2に指示する押鍵案内を実行する。
【0022】
次いで、ステップSF2では、処理すべきイベントが右手パートのノートオンイベントであるか否かを判断する。右手パートのノートオンイベントであると、判断結果は「YES」となり、ステップSF3に進む。ステップSF3では、後述する右手ノートBUF ON処理ルーチンを実行し、右手パートとして同時発音される複数のノートオンイベントの内から最高音のノートナンバを検索し、それを今回右手ノートに設定する。次いで、ステップSF4では、この今回右手ノートから前回右手ノートを減算して右手ノート差を算出する。
【0023】
一方、処理すべきイベントが左手パートのノートオンイベントであると、ステップSF5の判断結果が「YES」となり、ステップSF6に進み、左手ノートBUF ON処理ルーチンを実行し、左手パートとして同時発音される複数のノートオンイベントの内から最低音のノートナンバを検索し、それを今回左手ノートに設定する。そしてこの後、ステップSF7に処理を進め、この今回左手ノートから前回左手ノートを減算して左手ノート差を算出する。
なお、左手ノートBUF ON処理ルーチンは、後述する右手ノートBUF ON処理ルーチンと基本的に同様な処理フローにて構成され、ノートナンバを大小比較する判断が逆論理になる点で相違するだけである。したがって、説明の重複を避ける為、その詳細については省略する。
【0024】
続いて、ステップSF8では、今回右手ノートから前回左手ノートを減算するか、あるいは前回右手ノートから今回左手ノートを減算してパート間ノート差を算出する。次いで、図9に図示するステップSF9に処理を進め、算出したパート間ノート差が「0」より小さいか、つまり、腕交差が生じるかどうかを判断する。
腕交差が生じない場合には、判断結果が「NO」となり、ステップSF13に処理を進め、今回右手ノートを前回右手ノートに更新するか、あるいは今回左手ノートを前回左手ノートに更新して本ルーチンを完了させる。
【0025】
これに対し、右手パートの最大ノートが左手パートの最小ノートより低くなり、腕交差が生じる状況では、上記ステップSF9の判断結果が「YES」となり、ステップSF10に処理を進める。ステップSF10では、左手ノート差の絶対値が右手ノート差の絶対値より大きいかどうかを判断する。ここで、左手ノート差の絶対値が右手ノート差の絶対値より大きければ、判断結果は「YES」となり、ステップSF11に進み、左手が右手の上に被さるように腕交差する状態を表すアイコンを表示部4に画面表示して案内する。一方、右手ノート差の絶対値が左手ノート差の絶対値より大きければ、上記ステップSF10の判断結果が「NO」となり、ステップSF12に処理を進め、右手が左手の上に被さるように腕交差する状態を表すアイコンを表示部4に画面表示して案内する。そして、この後、ステップSF13を介して本ルーチンを完了させる。
【0026】
このように、イベント処理ルーチンでは、右手パートのノートオンイベントの内から最大ノートを、左手パートのノートオンイベントの内から最小ノートをそれぞれ検索し、右手パートの最大ノートが左手パートの最小ノートより低く、かつ左手パート側の前回ノートと今回ノートとの差が右手パート側より大きければ左手が右手の上に被さる腕交差をアイコン表示し、一方、右手パート側の前回ノートと今回ノートとの差が左手パート側より大きければ右手が左手の上に被さる腕交差をアイコン表示するので、腕交差が生じるタイミングや腕交差が生じる際の手の使い方を案内し得るようになっている。
【0027】
(6)右手ノートBUF ON処理ルーチンの動作
次に、図10を参照して右手ノートBUF ON処理ルーチンの動作について説明する。上述したステップSF3(図8参照)を介して本ルーチンが起動されると、CPU5は図10に示すステップSG1,SG2にてノートバッファアドレスおよびレジスタminNOTEを初期化する。次いで、ステップSG3に進むと、RAM7のノートバッファエリアNBE(図2参照)のアドレスがEND+1に達したか、つまりノートバッファ終端を超えたかどうかを判断する。
バッファ終端を超えていなければ、判断結果は「NO」となり、次のステップSG4に進む。ステップSG4では、現アドレスに応じてノートバッファエリアNBEを読み出す。続いて、ステップSG5では、読み出した値が「0」、つまりノートバッファに空きがあるか否かを判断する。
【0028】
ノートバッファに空きが無ければ、ステップSG5の判断結果は「NO」となり、ステップSG6に進む。ステップSG6では、ノートバッファから読み出したノートナンバがレジスタminNOTEに格納されるノートナンバより小さいか否かを判断する。このレジスタminNOTEとは、ノートバッファに格納されるノートナンバの内、最も低い音高のノートナンバ(以下、最小ノートと記す)を保持するものである。
【0029】
ノートバッファから読み出したノートナンバが最小ノートより高ければ、判断結果は「NO」となり、後述するステップSG9に処理を進めるが、最小ノートより低ければ、判断結果が「YES」となり、ステップSG7に進む。ステップSG7では、読み出したノートナンバを最小ノートとしてレジスタminNOTEにストアし、続くステップSG8では、この最小ノートが格納されるノートバッファのアドレス値をレジスタminNOTEadrに保持する。
【0030】
この後、ステップSG9に処理を進め、ノートバッファアドレスを歩進させてステップSG3に処理を戻す。そして、バッファ終端を超えていなければ、上述したステップSG4を介してノートバッファを読み出し、そこが空き領域であればステップSG5の判断結果が「YES」となり、ステップSG10に進み、右手パートのノートオンイベント中のノートナンバ(以下、これをオンノートと記す)を、その空き領域に書き込む。こうして、ノートバッファに新たなオンノートを書き込むと、CPU5はステップSG11を介して後述するmaxノートサーチ処理を実行し、ノートバッファに格納されるオンノートの内から最も高い音高のノートナンバを検索する。
【0031】
さて一方、ノートバッファに空きが無く、ノートバッファアドレスがバッファ終端を超えた場合には、ステップSG3の判断結果が「YES」となり、ステップSG12に進む。ステップSG12では、オンノートがレジスタminNOTEに格納される最小ノートより高い音高であるかどうかを判断する。
最小ノートより低ければ、判断結果は「NO」となり、ステップSG11のmaxノートサーチ処理に進むが、最小ノートより高い場合には、レジスタminNOTEadrに保持されたアドレスに従い、ノートバッファにオンノートを書き込む。
【0032】
このように、右手ノートBUF ON処理ルーチンでは、ノートバッファに空きがあれば、オンノートをその空き領域に書き込んだ後、maxノートサーチ処理を実行してノートバッファに格納されるオンノートの内から最も高い音高のノートナンバを検索する。
一方、ノートバッファに空きが無い場合には、ノートバッファ中の最小ノートとオンノートとを比較し、そのオンノートが最小ノートより高ければ、ノートバッファ中の最小ノートをオンノートに更新した後、maxノートサーチ処理を実行してノートバッファに格納されるオンノートの内から最も高い音高のノートナンバを検索するようになっている。
【0033】
(7)maxノートサーチ処理ルーチンの動作
次に、図11を参照してmaxノートサーチ処理ルーチンの動作について説明する。前述の右手ノートBUF ON処理ルーチンのステップSG11(図10参照)を介して本処理ルーチンが実行されると、CPU5は図11に示すステップSH1に処理を進めてノートバッファアドレスを初期化し、続くステップSH2では、レジスタmaxNOTEをゼロリセットする。
次いで、ステップSH3に進むと、ノートバッファアドレスがEND+1に達したか、つまりノートバッファ終端を超えたかどうかを判断する。ここで、バッファ終端を超えていなければ、判断結果は「NO」となり、次のステップSH4に進み、現アドレスに応じてノートバッファエリアNBEを読み出す。
【0034】
そして、ステップSH5では、読み出したノートナンバがレジスタmaxNOTEの値より大きいか否かを比較する。ここで、読み出したノートナンバがレジスタmaxNOTEの値より大きければ、判断結果は「YES」となり、次のステップSH6に処理を進め、その読み出したノートナンバをレジスタmaxNOTEにストアした後、ステップSH7に進む。
一方、読み出したノートナンバがレジスタmaxNOTEの値より小さければ、上記ステップSH5の判断結果は「NO」となり、ステップSH7に進み、ノートバッファアドレスを歩進させてステップSH3に処理を戻す。
【0035】
以後、ノートバッファアドレスがバッファ終端を超える迄、順次ノートバッファからノートナンバを読み出し、読み出したノートナンバとレジスタmaxNOTEに格納されるノートナンバとを大小比較し、読み出したノートナンバがレジスタmaxNOTEの値より大きければ、その読み出したノートナンバをレジスタmaxNOTEにストアすることによって、ノートバッファに格納されるノートナンバの内、最も高い音高のノートナンバがレジスタmaxNOTEに格納される。そして、ノートバッファアドレスがバッファ終端を超えると、ステップSF3の判断結果が「YES」となり、本処理ルーチンを完了させる。
【0036】
以上のように、本実施例によれば、右手パートのノートオンイベントの内から最大ノートを、左手パートのノートオンイベントの内から最小ノートをそれぞれ検索し、右手パートの最大ノートが左手パートの最小ノートより低く、かつ左手パート側の前回ノートと今回ノートとの差が右手パート側より大きければ左手が右手の上に被さる腕交差が生じる旨をアイコン表示し、一方、右手パートの最大ノートが左手パートの最小ノートより低く、かつ右手パート側の前回ノートと今回ノートとの差が左手パート側より大きければ右手が左手の上に被さる腕交差が生じる旨をアイコン表示するようにしたので、腕交差が生じるタイミングや腕交差が生じる際の手の使い方を案内できるようになっている。
【0037】
なお、本実施例では、左右両手パートの演奏データPDR、PDLに基づいて腕交差が生じる演奏タイミングを抽出し、そのタイミングで腕交差の状況をアイコン表示して案内するようにしたが、これに限らず、例えば腕交差が生じる旨を表すデータを予め曲データ中に設けておき、曲再生時にそのデータが読み出されたら腕交差の状況をアイコン表示する態様としても良い。また、案内する形態はアイコン表示に限らず、音声合成された人声音にて腕交差する旨をユーザーに報知することも可能である。
【0038】
【発明の効果】
請求項1、3に記載の発明によれば、左手パートおよび右手パート別に記憶され、発音すべきノートとその発音タイミングとを表す曲データを曲進行に同期して読み出し、この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別し、右手パートの発音すべきノートが判別されない場合に、読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する。右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出し、この算出されたパート差が0より小さいか否か判別して、0より小さいと判別された場合に腕交差が生じる旨を案内するとともに、前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新するので、腕交差が生じるタイミングを案内することが可能になる。
請求項2、4に記載の発明によれば、左手パートおよび右手パート別に記憶された発音すべきノートとその発音タイミングとを表す曲データを曲進行に同期して読み出し、読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別して右手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回右手ノートとし、前回ノート記憶手段に記憶されている前回右手ノートとの差を右手ノート差として算出する。右手パートの発音すべきノートが判別されない場合には、前記読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別し、左手パートの発音すべきノートが判別された場合には、当該判別されたノートを今回左手ノートとし、前記前回ノート記憶手段に記憶されている前回左手ノートとの差を左手ノート差として算出し、右手パートの発音すべきノートが判別された場合には、今回右手ノートから前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、前回右手ノートから今回左手ノートを減算してパート間ノート差を算出する。そして、算出されたパート差が0より小さいか否か判別して、0より小さいと判別された場合に、算出された左手ノート差と算出された右手ノート差との大小を比較し、前記左手ノート差が大きい場合に左手が右手に被さる腕交差である旨を案内するとともに、前記右手ノート差が大きい場合に右手が左手に被さる腕交差である旨を案内し、前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する為、腕交差が生じる際の手の使い方を案内することができる。
【図面の簡単な説明】
【図1】本発明による一実施例の構成を示すブロック図である。
【図2】ROM6に記憶される曲データの構成およびRAM7の構成を示す図である。
【図3】メインルーチンの動作を示すフローチャートである。
【図4】タイマ割込み処理ルーチンの動作を示すフローチャートである。
【図5】曲選択スイッチ処理ルーチンの動作を示すフローチャートである。
【図6】スタートスイッチ処理ルーチンの動作を示すフローチャートである。
【図7】曲データ再生処理ルーチンの動作を示すフローチャートである。
【図8】イベント処理ルーチンの動作を示すフローチャートである。
【図9】イベント処理ルーチンの動作を示すフローチャートである。
【図10】右手ノートBUF ON処理ルーチンの動作を示すフローチャートである。
【図11】maxノートサーチ処理ルーチンの動作を示すフローチャートである。
【図12】腕交差が生じる演奏ポイントの一例を示す楽譜である。
【符号の説明】
1 鍵盤
2 押鍵ガイド部
2a 発光手段
2b ドライバ
3 パネルスイッチ群
4 表示部
5 CPU
6 ROM
7 RAM
8 音源
9 D/A変換回路
10 サウンドシステム
Claims (4)
- 発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段と、
前回右手ノート及び前回左手ノートを記憶する前回ノート記憶手段と、
前記曲データ記憶手段に記憶される左右両手パートの曲データを曲進行に同期して読み出す読出手段と、
この読出手段により読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別手段と、
前記右手ノートオン判別手段により右手パートの発音すべきノートが判別されない場合に、前記読出手段により読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン判別手段と、
前記右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前記前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、前記左手ノートオン判別手段により左手パートの発音すべきノートオンが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出手段と、
このパート間ノート差算出手段により算出されたパート差が0より小さいか否か判別する判別手段と、
この判別手段にて0より小さいと判別された場合に腕交差が生じる旨を案内する案内手段と、
前記判別手段による判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新手段と、
を具備することを特徴とする演奏案内装置。 - 発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段と、
前回右手ノート及び前回左手ノートを記憶する前回ノート記憶手段と、
前記曲データ記憶手段に記憶される左右両手パートの曲データを曲進行に同期して読み出す読出手段と、
この読出手段により読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別手段と、
この右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回右手ノートとし、前記前回ノート記憶手段に記憶されている前回右手ノートとして記憶されているノートとの差を右手ノート差として算出する右手ノート差算出手段と、
前記右手ノートオン判別手段により右手パートの発音すべきノートが判別されない場合に、前記読出手段により読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン検出手段と、
この左手ノートオン判別手段により左手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回左手ノートとし、前記前回ノート記憶手段に記憶されている前回左手ノートとして記憶されているノートとの差を左手ノート差として算出する左手ノート差算出手段と、
前記右手ノートオン判別手段により右手パートの発音すべきノートが判別された場合には、今回右手ノートから前記前回左手ノートを減算してパート間ノート差を算出するとともに、前記左手ノートオン判別手段により左手パートの発音すべきノートが判別された場合には、前記前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出手段と、
このパート間ノート差算出手段により算出されたパート差が0より小さいか否か判別する 判別手段と、
この判別手段にて0より小さいと判別された場合に、前記左手ノート差算出手段にて算出された左手ノート差と前記右手ノート差算出手段にて算出された右手ノート差との大小を比較する比較手段と、
この比較手段により前記左手ノート差が大きい場合に左手が右手に被さる腕交差である旨を案内する第1の案内手段と、
前記比較手段により前記右手ノート差が大きい場合に右手が左手に被さる腕交差である旨を案内する第2の案内手段と、
前記判別手段による判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新手段と、
を具備することを特徴とする演奏案内装置。 - 発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段から左右両手パートの曲データを曲進行に同期して読み出す読出過程と、
この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別過程と、
右手パートの発音すべきノートが判別されない場合に、読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン判別過程と、
右手パートの発音すべきノートが判別された場合には、当該判別された右手ノートを今回右手ノートとして、今回右手ノートから前回ノート記憶手段に記憶されている前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、当該判別された左手ノートを今回左手ノートとして、前記前回ノート記憶手段に記憶されている前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出過程と、
この算出されたパート差が0より小さいか否か判別する判別過程と、
0より小さいと判別された場合に腕交差が生じる旨を案内する案内過程と、
前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新過程と、
を具備することを特徴とする演奏案内方法。 - 発音すべきノートとその発音タイミングとを表す曲データを、左手パートおよび右手パート別に記憶する曲データ記憶手段から左右両手パートの曲データを曲進行に同期して読み出す読出過程と、
この読み出された曲データから右手パートの発音すべきノートが検出されたか否か判別する右手ノートオン判別過程と、
右手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回右手ノートとし、前回ノート記憶手段に記憶されている前回右手ノートとの差を右手ノート差として算出する右手ノート差算出過程と、
右手パートの発音すべきノートが判別されない場合に、前記読み出された曲データの内から左手パートの発音すべきノートが検出されたか否か判別する左手ノートオン検出過程と、
左手パートの発音すべきノートが判別された場合に、当該判別されたノートを今回左手ノートとし、前記前回ノート記憶手段に記憶されている前回左手ノートとの差を左手ノート差として算出する左手ノート差算出過程と、
右手パートの発音すべきノートが判別された場合には、今回右手ノートから前回左手ノートを減算してパート間ノート差を算出するとともに、左手パートの発音すべきノートが判別された場合には、前回右手ノートから今回左手ノートを減算してパート間ノート差を算出するパート間ノート差算出過程と、
算出されたパート差が0より小さいか否か判別する判別過程と、
0より小さいと判別された場合に、算出された左手ノート差と算出された右手ノート差と の大小を比較する比較過程と、
前記左手ノート差が大きい場合に左手が右手に被さる腕交差である旨を案内する第1の案内過程と、
前記右手ノート差が大きい場合に右手が左手に被さる腕交差である旨を案内する第2の案内過程と、
前記判別の後に、今回右手ノートを前回右手ノートとして、あるいは今回左手ノートを前回左手ノートとして、前記前回ノート記憶手段の記憶内容を更新する更新過程と、
を具備することを特徴とする演奏案内方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002000368A JP3812729B2 (ja) | 2002-01-07 | 2002-01-07 | 演奏案内装置および演奏案内方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002000368A JP3812729B2 (ja) | 2002-01-07 | 2002-01-07 | 演奏案内装置および演奏案内方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003202860A JP2003202860A (ja) | 2003-07-18 |
JP3812729B2 true JP3812729B2 (ja) | 2006-08-23 |
Family
ID=27640781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002000368A Expired - Fee Related JP3812729B2 (ja) | 2002-01-07 | 2002-01-07 | 演奏案内装置および演奏案内方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3812729B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6427994B2 (ja) * | 2014-06-30 | 2018-11-28 | カシオ計算機株式会社 | 楽器演奏のための動作情報生成装置、電子楽器、方法、およびプログラム |
JP7107720B2 (ja) * | 2018-03-30 | 2022-07-27 | 株式会社河合楽器製作所 | 運指表示プログラム |
-
2002
- 2002-01-07 JP JP2002000368A patent/JP3812729B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003202860A (ja) | 2003-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4399961B2 (ja) | 楽譜画面表示装置及び演奏装置 | |
JP6402878B2 (ja) | 演奏装置、演奏方法およびプログラム | |
JP3018821B2 (ja) | 自動演奏装置 | |
JP2001242859A (ja) | 自動伴奏装置および自動伴奏方法 | |
JP2003330464A (ja) | 自動演奏装置および自動演奏方法 | |
JP3358292B2 (ja) | 電子楽器 | |
JP3812729B2 (ja) | 演奏案内装置および演奏案内方法 | |
JP3684774B2 (ja) | 演奏指示装置及びプログラムを記録した媒体 | |
JP2583809B2 (ja) | 電子楽器 | |
JP2003208155A (ja) | 電子楽器 | |
JP2500492B2 (ja) | 自動伴奏装置 | |
JP2003186467A (ja) | 演奏練習装置および演奏練習方法 | |
JP4645282B2 (ja) | 電子楽器 | |
JP2002182642A (ja) | 演奏案内装置および演奏案内方法 | |
JP3567294B2 (ja) | 音声発生装置 | |
JP4016333B2 (ja) | 演奏練習装置および演奏練習プログラム | |
JP3809789B2 (ja) | 演奏案内装置および演奏案内方法 | |
JP4221567B2 (ja) | 演奏練習装置、演奏練習方法および演奏練習プログラム | |
JP4345433B2 (ja) | 演奏装置および演奏処理プログラム | |
JP3388532B2 (ja) | 運指指示装置 | |
JP3931551B2 (ja) | 演奏装置および演奏方法 | |
JP4645285B2 (ja) | 電子楽器 | |
JP2000259154A (ja) | コード判定装置 | |
JP2000322058A (ja) | 演奏案内装置および演奏案内方法 | |
JP5181521B2 (ja) | 自動伴奏装置、及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040617 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060105 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060131 |
|
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: 20060511 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060524 |
|
R150 | Certificate of patent (=grant) or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060131 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090609 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100609 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110609 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110609 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120609 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120609 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (prs date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130609 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |