JP3684774B2 - 演奏指示装置及びプログラムを記録した媒体 - Google Patents
演奏指示装置及びプログラムを記録した媒体 Download PDFInfo
- Publication number
- JP3684774B2 JP3684774B2 JP19152597A JP19152597A JP3684774B2 JP 3684774 B2 JP3684774 B2 JP 3684774B2 JP 19152597 A JP19152597 A JP 19152597A JP 19152597 A JP19152597 A JP 19152597A JP 3684774 B2 JP3684774 B2 JP 3684774B2
- Authority
- JP
- Japan
- Prior art keywords
- note
- hand
- key
- finger
- image data
- 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と、演奏データに基づきLEDを用いて演奏者に指示を与える演奏指示装置とを備えている電子鍵盤楽器が知られている。演奏指示装置は、演奏者が次に押鍵すべき鍵に対応するLEDを点灯し、演奏者の演奏を誘導する。
【0003】
また、演奏者の演奏練習のため、演奏者の演奏操作が演奏データに一致しているか否かを判断する一致進行制御装置を備える電子鍵盤楽器が知られている。一致進行制御装置は、演奏者による押鍵操作と予め記憶されている演奏データとを比較し、その比較結果に応じて曲の進行を制御する。演奏者の押鍵操作が演奏データに一致しているときには曲の進行を続け、一致しないときには一致するまで曲の進行を中断する。
【0004】
上記の演奏指示装置と一致進行制御装置の両方を備えている電子鍵盤楽器において、演奏指示装置は、複数の鍵に対応するLEDを点灯することにより、演奏者の演奏を誘導し、一致進行制御装置は、演奏者が適正な鍵を押鍵するまで曲の進行を中断する。
【0005】
【発明が解決しようとする課題】
複数の鍵に対応するLEDを有する演奏指示装置は、押鍵する鍵を指示することはできるが、演奏方法をより詳細に指示することはできない。例えば、押鍵すべき指の種類や、手の開き方や、鍵盤上に置く手の位置等を指示することができない。
【0006】
演奏者は、押鍵すべき鍵を知ることができるが、押鍵すべき指の種類等を知ることができないので、初心者は、指1本で鍵盤を「モグラ叩き」のようにLEDを追いかける演奏方法を行うことが多く、演奏技術の上達が望めない。
【0007】
本発明の目的は、詳細な演奏方法を指示することができる演奏指示装置、演奏指示方法又はプログラムを記録した媒体を提供することである。
【0008】
【課題を解決するための手段】
本発明の一観点によれば、演奏指示装置は、親指が人差し指または手のひらに重なった手の画像データを1種類以上、および親指が人差し指または手のひらに重なっていない手の画像データを2種類以上記憶する画像記憶手段と、演奏データ中からノートオンまたはノートオフを検出するノート検出手段と、前記演奏データ中から手の種類情報を検出する検出手段と、前記ノート検出手段がノートオンまたはノートオフを検出すると、該ノートオン時またはノートオフ時に該ノートの他にノートオン中のノートがあるか否かを前記演奏データから検出する手段と、ノートオフ時に他にノートオン中のノートがなければ、次のノート情報に対応して検出された前記手の種類情報に応じて前記画像記憶手段に記憶されている複数の手の画像データの中から1つを選択して前記画像記憶手段に記憶されている手の画像データを基に次のノートの押鍵準備段階の手の画像データを生成出力し、ノートオン時に他にノートオン中のノートがあれば、新たに検出されたノートオンと前記画像記憶手段に記憶されている手の画像を基に該新たに検出されたノートに対応して検出された前記手の種類情報に応じて前記画像記憶手段に記憶されている複数の手の画像データの中から1つを選択して前記画像記憶手段に記憶されている手の画像を基に該新たに検出されたノートの押鍵の手の画像データを生成出力する画像生成手段とを有する。
【0009】
手の種類情報は、親指が人差し指または手のひらに重なった第1の手の形状と、親指が人差し指または手のひらに重なっていない第2の手の形状を識別する。第1の手の形状は、例えば鍵盤操作における指くぐりまたは指かぶせである(図3(A)参照)。第2の手の形状を、手の開き加減に応じて2種類以上用意すれば(図3(B)、図4(C)、図4(D)参照)、手の位置を動かさずに、スムーズな演奏方法を演奏者に指示することが可能である。生成された画像データを基に手の画像を表示する際、ノートオンのタイミングまたはノートオフのタイミングに応じて、押鍵準備段階の手の画像または押鍵時の手の画像を表示することができる。演奏者は、押鍵準備段階の手の画像をお手本にすることにより、押鍵する前から手を置く位置を知ることができる。
【0010】
前記検出手段は、さらに、演奏データ中から手の前後位置情報を検出し、前記画像生成手段は、前記手の前後位置情報に応じて前記画像記憶手段に記憶されている画像データが示す手が鍵盤の手前または奥に位置する画像データを生成出力することもできる。
【0011】
手の前後位置情報は、例えば鍵盤上に置く手の前後方向(手前または奥等)の位置を示す。手の前後位置は、押す指および押鍵する鍵等により適正な位置が決まる。また、黒鍵から白鍵へ移行する場合、または白鍵から黒鍵へ移行する場合等に応じて、次の音に移行しやすい演奏方法を演奏者に指示することができる。
【0012】
さらに、前記検出手段は、さらに、演奏データ中から押鍵する指を示すための指情報を検出し、前記画像生成手段は、前記指情報に応じて前記画像記憶手段に記憶されている画像データが示す手において押鍵する指の長さを押鍵しない場合とは異ならせた画像データを生成出力することもできる。
【0013】
指情報は、押鍵する指の種類を示す。当該押鍵する指の長さを変えて手の画像データを生成することにより、自然な指の演奏形態を表現することができる。例えば、黒鍵は鍵の高さが高いので、黒鍵を押鍵する場合には押鍵する指の長さを長くし、白鍵は鍵の高さが低いので、白鍵を押鍵する場合には押鍵する指の長さを短くする。
【0016】
【発明の実施の形態】
図2は、本発明の実施例による演奏指示装置に用いる演奏データのフォーマット例を示す。このフォーマットは、スタンダードMIDIファイルと呼ばれているものであり、演奏データとしては汎用的なフォーマットである。
【0017】
演奏データ10は、ノートイベント1、タイミングデータ2、ノートイベント3、タイミングデータ4のようなタイミングとノートイベントが対になって演奏のシーケンスを表すデータと、エンドデータ5を有する。演奏データ10は、その他、コントロールチェンジまたはプログラムチェンジ等を含むことができる。
【0018】
ノートイベント1は、ノートオンイベントである。タイミングデータ2は、ノートイベント1とその次のノートイベント3との間の時間間隔を示す。ノートイベント3は、ノートオフイベントである。タイミングデータ4は、ノートイベント3と次のノートイベント(図示せず)との間の時間間隔を示す。エンドデータ5は、演奏データ10の終了を示す。
【0019】
ノートイベント1と3は、共にMIDI形式のデータであり、3バイトのデータである。ノートオンイベント1は、第1バイトが発音開始(鍵盤の場合は押鍵)を示すノートオン1aであり、第2バイトが音高(鍵盤の場合はキーナンバ)を示すノートナンバ1bであり、第3バイトが音の立ち上がり状態(鍵盤の場合は押鍵速度)を示すベロシティ1cである。ノートオフイベント3は、第1バイトが発音終了(鍵盤の場合は離鍵)を示すノートオフ3aであり、第2バイトがノートナンバ3bであり、第3バイトが音の立ち下がり状態(鍵盤の場合は離鍵速度)を示すベロシティ3cである。
【0020】
図1(A)は、図2に示すMIDI規格によるノートオフベロシティ3cの構成を示す。
【0021】
本実施例では、まず、同図のように、MIDI規格のノートオフベロシティ3cを準備する。ノートオンベロシティ1cも同様の構成である。ただし、演奏データにおいては、一般的にノートオンベロシティ1cは音量として使用されるのに対し、ノートオフベロシティ3cは領域が確保されていながら使用されない場合がほとんどである。
【0022】
ノートオフベロシティ3cは、1バイト(8ビット)からなり、その最上位ビットは、必ず0である。これは、MIDI規格で決められているデータフォーマットである。下位7ビットのデータ6が実際のベロシティのデータである。ベロシティデータ6は、7ビットであり、0〜127の範囲の数値で示される。ノートオフベロシティ3c(演奏データ)は、市販されている曲データのソフトウエアから読み出したものでも電子楽器を用いて作成したものでもよい。
【0023】
図1(B)は、図1(A)のノートオフベロシティ3cに手表示情報7を埋め込んだ図である。演奏データ提供者は、図1(A)に示すノートオフベロシティ3cを準備した後、ノートオフベロシティ3cの下位7ビットを手表示情報7に書き換える。手表示情報7は、演奏者が設定または変更することもできる。
【0024】
手表示情報7をノートオフベロシティ3c中に設定すれば、新たに手表示情報7のデータ領域を確保する場合に比べ、データ量を増加させずにすむ。また、新たなデータ領域を確保する場合には、演奏データのフォーマットを変えることになるので、汎用フォーマットの演奏データとの互換性がなくなる。ノートオフベロシティ3c中に手表示情報7を設定すれば、演奏データのフォーマットを変えずにすむので、汎用フォーマットの演奏データとの互換性を維持することができる。
【0025】
ノートオフベロシティ3cは、2通りに用いることができる。1つは、演奏指示装置において手表示情報として用いることができる。もう1つは、MIDI規格に従って、自動演奏装置等においてノートオフベロシティデータ6として解釈される。元来のノートオフベロシティデータ6(図1(A))は、手表示情報7(図1(B))に書き換えられてしまうが、ノートオフベロシティデータが使用されない自動演奏装置等では影響がない。ノートオフベロシティデータを使用する自動演奏装置等であっても、演奏データのフォーマットは崩れていないので、誤動作することはない。
【0026】
ノートオフベロシティ3c中に手表示情報7を設定すれば、データ量を増加させずに、手表示情報7を付加したのと同様の効果が得られる。また、手表示情報7を設定しても、演奏データとしてのフォーマットは変化しないので、演奏データとしての汎用性は維持される。
【0027】
次に、手表示情報7の詳細を説明する。手表示情報7は、手の前後位置情報7a(第6および5ビット)と手の種類情報7b(第4および3ビット)と指情報7c(第2、1、0ビット)を有する。
【0028】
(1)手の前後位置情報(PosY)
手の前後位置情報7aは、2ビット(第6および5ビット)の情報であり、レジスタPosYに格納される。レジスタPosYの値は、以下の手の前後位置(Y軸座標)を示す。
【0029】
PosY=0:最手前
PosY=1:手前
PosY=2:奥
PosY=3:最奥
例えば、黒鍵を押鍵するときには手を奥に置き、白鍵を押鍵するときには手を手前に置くのが好ましい。また、押鍵する音の音高(鍵)と時間的に前後する音の音高(鍵)に応じて、適正な手の前後位置が決まる。
【0030】
(2)手の種類(HndPat)
手の種類情報7bは、手の開き加減(手の形状)を表す2ビット(第4および3ビット)の情報であり、レジスタHndPatに格納される。レジスタHndPatの値は、以下の手の種類を示す。
【0031】
HndPat=0:指くぐりまたは指かぶせ(図3(A)参照)
HndPat=1:閉じる(図3(B)参照)
HndPat=2:小さく開く(図4(C)参照)
HndPat=3:大きく開く(図4(D)参照)
【0032】
図3(A)、図3(B)、図4(C)、図4(D)は、手(右手)の種類を示す。ただし、手の前後位置は全て最手前(PosY=0)として示す。例えば、時間的に前後する音の音高(鍵)が離れているときには大きく開き、時間的に前後する音の音高(鍵)が隣であるときには閉じる。指くぐりは、人差し指をくぐって親指で押鍵する演奏であり、指かぶせは、親指にかぶせて人差し指等で押鍵する演奏である。いずれも、親指が人差し指または手のひらに重なる。
【0033】
(3)指情報(FngNo)
指情報7cは、押鍵すべき指を示す3ビット(第2、1、0ビット)の情報であり、レジスタFngNoに格納される。レジスタFngNoの値は、以下の指情報を示す。
【0034】
FngNo=0:未使用
FngNo=1:親指
FngNo=2:人差し指
FngNo=3:中指
FngNo=4:薬指
FngNo=5:小指
FngNo=6:グリッサンド右
FngNo=7:グリッサンド左
【0035】
指情報を用いることにより、演奏者は1本の指だけを使って演奏するのではなく、5本の指を使った演奏操作(指遣い)を練習することができる。グリッサンドは、ある音高の音から別の音高の音まで連続的に音高を変化させるものであり、鍵盤上で指を滑らせるように押鍵する演奏方法である。グリッサンド右は、右側方向すなわち、低音から高音へのグリッサンドであり、グリッサンド左は、左側方向すなわち高音から低音へのグリッサンドである。
【0036】
上記の3種類の手表示情報は、演奏者に正しい演奏操作(手の模範形)を示す。また、手表示情報は、手の動きをスムーズに見せるための情報をも含み、手がごく自然に動くように表示することができる。
【0037】
なお、キーオフベロシティに設定される手表示情報のビット配分を変えてもよい。例えば、手の前後位置情報(PosY)を1ビットにし、手の種類情報(HndPat)を3ビットにし、指情報(FngNo)を3ビットにしてもよい。
【0038】
図5は、手表示情報7およびノートナンバ1bを基にして表示器に手41の表示を行う例を示す。
【0039】
手表示情報7は、手の前後位置情報7aと手の種類情報7bと指情報7cを有する。ノートナンバ1bは、ノートオンイベント1(図2)に含まれているノートナンバである。
【0040】
表示器には、鍵盤45と手41が表示される。手を表示するために必要なパラメータは、手の形状41、押鍵すべき指42、手の前後位置(Y軸)43、手の左右位置(X軸)44である。
【0041】
手の形状41は、手の種類情報(HndPat)7bに応じて、4つの形状(図3(A)、図3(B)、図4(A)、図4(B))の中から1つが選択される。
【0042】
押鍵すべき指42は、指情報(FngNo)に応じて、親指、人差し指、中指、薬指、小指、グリッサンド右、グリッサンド左のいずれかが選ばれ、他の指と異なる色で表示される。さらに、自然な指の動きを表現するため、押鍵する際には押鍵前に比べ指の長さを変えて表示する。具体的には、白鍵を押鍵する時は指を少し短く表示、黒鍵を押鍵する時は指を少し長く表示する。指の長さを変えることにより、自然な動きに近くなり、押鍵している様子を明瞭に確認できる。
【0043】
手の前後位置43は、手の前後位置情報(PosY)に応じて、最手前、手前、奥、最奥のいずれかが選ばれる。
【0044】
手の左右位置44は、指情報(FngNo)7cとノートナンバ1bによって決まる。具体的には、押鍵する鍵46の位置と押鍵すべき指42の位置が一致するように手の位置を決める。
【0045】
押鍵する鍵46は、ノートオンのノートナンバ1bが示す鍵であり、他の鍵とは異なる色で表示される。
【0046】
鍵盤45上には、押鍵時の手41を表示するだけでなく、押鍵準備状態の手をも表示する。具体的には、全ての鍵が離鍵状態になり、かつ次の押鍵まで空き時間があるときには、次に押鍵すべき鍵の位置で準備状態の手を表示する。演奏者は、この表示に基づいて次の押鍵の準備をすることができる。また、準備状態の手を表示してから、その後押鍵時の手を表示することにより、手の動きが滑らかになる。
【0047】
手の模範形を表示器に表示することにより、各鍵に対応するLEDを点灯する場合に比べ、演奏者は直感的に演奏操作方法を知ることができる。
【0048】
次に、手表示情報を含む演奏データを用いて実際に表示を行った例を示す。演奏データには、ショパン作曲のノクターン第2番のデータを用いた。演奏データ中のノートオフベロシティには、手表示情報が設定されている。
【0049】
図6(A)、図6(B)、図7(C)、図7(D)、図8(E)、図8(F)は、ノクターン第2番の中から抜き出した6つの音符(ノート)B♭3、G4、F4、G4、F4、E♭4についての表示例を示す。
【0050】
図6(A)は、第1のノートオンイベントに対応する表示例である。
ノートナンバ=B♭3
ノートオフベロシティ
PosY=2(奥)
HndPat=2(開小)
FngNo=1(親指)
【0051】
ノートナンバ(B♭3)は押鍵すべき鍵の音高であるので、ノートナンバ(B♭3)に対応する黒鍵の色を変えて表示する。
【0052】
このB♭3の黒鍵を押鍵した後には高音側に白鍵5鍵半分離れたG4の白鍵を押鍵し、次に白鍵1鍵分低音側のF4の白鍵、再びG4の白鍵を押鍵することになる。このフレーズを滑らかに演奏するにはB♭3の黒鍵を親指で押鍵することが好ましい。
【0053】
手の前後位置情報PosY=2は、黒鍵を押鍵する親指に対応し、奥の位置を示す。
【0054】
手の種類HndPat=2は、親指と小指とがほぼ5鍵半分の間隔に対応する小さく開いた手の形状(図4(C))を示す。
【0055】
指情報FngNo=1は親指を示す。色を変えて親指を表示し、親指で押鍵すべきことを演奏者に知らせる。手は、鍵盤の上に重ねて表示される。
【0056】
この表示を行うことにより、親指を用いてB♭3の鍵を押鍵すべきことを演奏者に知らせる。手の左右方向は、押鍵すべき親指を押鍵されるべきB♭3の鍵上に表示する位置に決められる。
【0057】
このように鍵盤中の押鍵すべき鍵を色を変えること等によって表示し、押鍵に用いる指を押鍵すべき鍵に重ねて、かつ色を変えること等によって表示することにより、標準的な演奏形態を表示器上に明瞭に表示することができる。
【0058】
押鍵すべき鍵が黒鍵(B♭3)であるので、押鍵すべき指(親指)を少し長くして表示する。図4(C)に示す手の形状において、親指のみ長めのものを差し換えて表示することができる。親指で黒鍵(B♭3)を押鍵するには、手を奥の位置(PosY=2)に置くのがよい。
【0059】
なお、手の下の鍵盤は、透けるようにして表示される。例えば、手をハッチングで表示すれば、手を透かして鍵盤を表示することができる。さらに、押鍵する指についてはそのハッチングを反転させれば、他の指と区別することができる。
【0060】
図6(B)は、第2のノートオンイベントに対応する表示例である。
ノートナンバ=G4
ノートオフベロシティ
PosY=1(手前)
HndPat=2(開小)
FngNo=5(小指)
【0061】
ノートナンバ(G4)は押鍵すべき鍵の音高であるので、ノートナンバ(G4)に対応する白鍵の色を変えて表示する。前音、後音との関係から、この白鍵は小指で押鍵することが好ましい。すると、手の横方向位置は、ほとんど変化させないで演奏できる。
【0062】
手の前後位置情報PosY=1は、白鍵を押鍵する小指に合わせて、手前の位置を示す。
【0063】
手の種類HndPat=2は、低音側の隣の白鍵である次の音F4に合わせて、小さく開いた手の形状(図4(C))を示す。
【0064】
指情報FngNo=5は小指を示す。色を変えて小指を表示し、小指で押鍵すべきことを演奏者に知らせる。この小指がG4の鍵に重なるように手を表示する。
【0065】
押鍵すべき鍵が白鍵(G4)であるので、押鍵すべき指(小指)を少し短くして表示する。小指で白鍵(G4)を押鍵するには、手を手前の位置(PosY=1)に置くのがよい。小指で押鍵することにより、先の押鍵(図6(A))に対し、手の形状を変えず、かつ手を左右方向にほとんど動かさなくてよい。
【0066】
図7(C)は、第3のノートオンイベントに対応する表示例である。
ノートナンバ=F4
ノートオフベロシティ
PosY=0(最手前)
HndPat=1(閉)
FngNo=4(薬指)
【0067】
ノートナンバ(F4)は押鍵すべき鍵の音高であるので、ノートナンバ(F4)に対応する鍵の白色を変えて表示する。前後の音との関係から、この白鍵は薬指で押鍵することが好ましい。
【0068】
手の前後位置情報PosY=0は、白鍵を押鍵する薬指に合わせて、最手前の位置を示す。
【0069】
手の種類HndPat=1は、前後の音との関係から、閉じた手の形状(図3(B))を示す。
【0070】
指情報FngNo=4は薬指を示す。色を変えて薬指を表示し、薬指で押鍵すべきことを演奏者に知らせる。この薬指がF4の鍵に重なるように手を表示する。押鍵すべき鍵が白鍵(F4)であるので、押鍵すべき指(薬指)を少し短くして表示する。
【0071】
図7(D)は、第4のノートオンイベントに対応する表示例である。
ノートナンバ=G4
ノートオフベロシティ
PosY=0(最手前)
HndPat=1(閉)
FngNo=5(小指)
【0072】
ノートナンバ(G4)は押鍵すべき鍵の音高であるので、ノートナンバ(G4)に対応する白鍵の色を変えて表示する。前後の音との関係から、この白鍵は小指で押鍵することが好ましい。
【0073】
手の前後位置情報PosY=0は、白鍵を押鍵する小指に合わせて、最手前の位置を示す。
【0074】
手の種類HndPat=1は、前後の音との関係から、閉じた手の形状(図3(B))を示す。
【0075】
指情報FngNo=5は小指を示す。色を変えて小指を表示し、小指で押鍵すべきことを演奏者に知らせる。この小指がG4の鍵に重なるように手を表示する。押鍵すべき鍵が白鍵(G4)であるので、押鍵すべき指(小指)を少し短くして表示する。
【0076】
小指でG4の鍵を押鍵する操作は図6(B)と同じであるが、手の形状が異なる。ここでの押鍵は、先の押鍵(図7(C))が隣の白鍵(F4)であるので、閉じた手の形状が最適である。
【0077】
図8(E)は、第5のノートオンイベントに対応する表示例である。
ノートナンバ=F4
ノートオフベロシティ
PosY=0(最手前)
HndPat=1(閉)
FngNo=4(薬指)
【0078】
ノートナンバ(F4)は押鍵すべき鍵の音高であるので、ノートナンバ(F4)に対応する白鍵の色を変えて表示する。前後の音との関係から、この白鍵は薬指で押鍵することが好ましい。
【0079】
手の前後位置情報PosY=0は、白鍵を押鍵する薬指に合わせて、最手前の位置を示す。
【0080】
手の種類HndPat=1は、前後の音との関係から、閉じた手の形状(図3(B))を示す。
【0081】
指情報FngNo=4は薬指を示す。色を変えて薬指を表示し、薬指で押鍵すべきことを演奏者に知らせる。この薬指がF4の鍵に重なるように手を表示する。押鍵すべき鍵が白鍵(F4)であるので、押鍵すべき指(薬指)を少し短くして表示する。
【0082】
図8(F)は、第6のノートオンイベントに対応する表示例である。
ノートナンバ=E♭4
ノートオフベロシティ
PosY=1(手前)
HndPat=1(閉)
FngNo=3(中指)
【0083】
ノートナンバ(E♭4)は押鍵すべき鍵の音高であるので、ノートナンバ(E♭4)に対応する黒鍵の色を変えて表示する。前後の音との関係から、この黒鍵は中指で押鍵することが好ましい。
【0084】
手の前後位置情報PosY=1は、黒鍵を押鍵する中指に合わせて、手前の位置を示す。
【0085】
手の種類HndPat=1は、前後の音との関係から、閉じた手の形状(図3(B))を示す。
【0086】
指情報FngNo=3は中指を示す。色を変えて中指を表示し、中指で押鍵すべきことを演奏者に知らせる。この中指がE♭4の鍵に重なるように手を表示する。押鍵すべき鍵が黒鍵(E♭4)であるので、押鍵すべき指(中指)を少し長くして表示する。
【0087】
図9は、本実施例による演奏指示装置の構成を示すブロック図である。
押鍵検出回路18は、鍵盤17における鍵操作を検出し、キーオンまたはキーオフ信号等を生成する。スイッチ検出回路20は、スイッチ19におけるスイッチ操作を検出し、スイッチ信号を生成する。
【0088】
バス25には、押鍵検出回路18およびスイッチ検出回路20の他、表示回路21、音源回路22、効果回路23、ROM11、RAM12、CPU13、タイマ14、MIDIインターフェース15、フロッピディスク駆動装置(FDD)16、ハードディスクドライブ(HDD)52、CD−ROM(コンパクトディスク−リード・オンリィ・メモリ)ドライブ53、通信インターフェース54が接続されている。
【0089】
RAM12は、フラグまたはバッファ等を記憶するCPU13用のワーキングエリアを有する。ROM11は、各種パラメータおよびコンピュータプログラムを記憶する。CPU13は、ROM11に記憶されているコンピュータプログラムに従い、演算または制御を行う。
【0090】
HDD(ハードディスクドライブ)52は、動作プログラムや各種データを記憶しておく記憶装置である。ROM11に動作プログラムが記憶されていない場合、このHDD52内のハードディスクに動作プログラムを記憶させておき、それをRAM12に読み込むことにより、ROM11に動作プログラムを記憶している場合と同様の動作をCPU13にさせることができる。このようにすると、動作プログラムの追加やバージョンアップ等が容易に行える。
【0091】
CD−ROM(コンパクトディスク−リード・オンリィ・メモリ)ドライブ53は、CD−ROMに記憶されている動作プログラムや各種データを読み出す装置である。読み出した動作プログラムや各種データは、HDD52内のハードディスクにストアされる。動作プログラムの新規インストールやバージョンアップ等が容易に行える。なお、このCD−ROMドライブ53以外にも、外部記憶装置として、フロッピィディスク装置16、光磁気ディスク(MO)装置等、様々な形態のメディアを利用するための装置を設けるようにしてもよい。
【0092】
通信インターフェース54はLAN(ローカルエリアネットワーク)やインターネット、電話回線等の通信ネットワーク55に接続されており、該通信ネットワーク55を介して、サーバコンピュータ56と接続される。ハードディスク装置52内に上記各プログラムや各種パラメータが記憶されていない場合、サーバコンピュータ56からプログラムやパラメータをダウンロードするために用いられる。クライアントとなるコンピュータは、通信インターフェース54及び通信ネットワーク55を介してサーバコンピュータ56へとプログラムやパラメータのダウンロードを要求するコマンドを送信する。サーバコンピュータ56は、このコマンドを受け、要求されたプログラムやパラメータを、通信ネットワーク55を介してコンピュータへと送信し、コンピュータが通信インターフェース54を介して、これらプログラムやパラメータを受信してハードディスク装置52に蓄積することにより、ダウンロードが完了する。
【0093】
タイマ14は、CPU13に接続される。CPU13は、タイマ14から供給される時間情報に応じて、所定の時間間隔でタイマ割り込み処理を行う。MIDIインターフェース15は、他のMIDI機器51に対してMIDIデータを入出力することができる。
【0094】
図2に示した演奏データは、フロッピディスク駆動装置16またはROM11に記憶される。フロッピディスク駆動装置16に演奏データが記憶されている場合には、フロッピディスク駆動装置16からRAM12に演奏データがロードされてから、演奏データの再生処理が行われる。
【0095】
CPU13は、RAM12またはROM11に記憶されている演奏データを読み出し、楽音パラメータおよび効果パラメータをそれぞれ音源回路22および効果回路23に供給する。また、CPU13は、押鍵検出回路18で生成されるキーオン信号等やスイッチ検出回路20で生成されるスイッチ信号に応じて、楽音パラメータおよび効果パラメータを生成し、それぞれ音源回路22および効果回路23に供給する。
【0096】
また、CPU13は、RAM12またはROM11に記憶されている演奏データと鍵盤17における押鍵操作とを比較し、一致する場合には曲を進行し、一致しない場合には曲の進行を中断する。
【0097】
さらに、CPU13は、上記により演奏データを読み出す際、演奏データ中のキーオフベロシティに設定されている手表示情報に応じて、表示回路21に図6(A)等に示したような手の模範形を表示し、鍵盤の演奏方法を指示する。
【0098】
手の形状(図3(A)、図3(B)、図4(C)、図4(D))および鍵盤の画像データは、フロッピディスク駆動装置16またはROM11に記憶されている。表示回路21は、例えば電子楽器本体に設けられる液晶表示器(LCD)または電子楽器の外部に接続されるCRT(陰極線管)である。
【0099】
音源回路22は、供給される楽音パラメータに応じて楽音信号を生成する。効果回路23は、供給される効果パラメータに応じて、音源回路22で生成される楽音信号に、例えばディレイやリバーブ等の効果を付与し、サウンドシステム24に供給する。サウンドシステム24は、D/A変換器およびスピーカを含み、供給されるデジタル形式の楽音信号をアナログ形式に変換し、発音する。
【0100】
なお、音源回路22は、波形メモリ方式、FM方式、物理モデル方式、高調波合成方式、フォルマント合成方式、VCO+VCF+VCAのアナログシンセサイザ方式等、どのような方式であってもよい。
【0101】
また、音源回路22は、専用のハードを用いて構成するものに限らず、DSP+マイクロプログラムを用いて構成してもよいし、CPU+ソフトウェアのプログラムで構成するようにしてもよい。
【0102】
さらに、1つの音源回路を時分割で使用することにより複数の発音チャンネルを形成するようにしてもよいし、1つの発音チャンネルにつき1つの音源回路で複数の発音チャンネルを構成するようにしてもよい。
【0103】
次に、手表示情報の説明を行う。演奏データ中において、ノートオフベロシティに手表示情報を設定する。手表示情報は、演奏データ作成時に演奏データ中に予め設定しておくことができる。また、演奏者が手表示情報を設定または変更することができる。その場合は、表示回路21に表示されるエディット画面を用いて、個々の音符(ノート)について設定または変更を行うことができる。当該エディット画面は、シーケンサ用のエディット画面を用いることができる。
【0104】
また、人間の手作業により手表示情報を設定する他、演奏データを所定のアルゴリズムによって解析することで手表示情報を設定してもよいし、演奏者の各指にセンサを装着した状態で演奏を収録し、どの指、どの形状の手で演奏したかを検出することができるようにして手表示情報を設定してもよい。
【0105】
図10は、CPUが行う処理のメインルーチンのフローチャートである。
ステップSA1では、フラグまたはレジスタ等のイニシャライズを行う。
【0106】
ステップSA2では、一致進行処理を行う。一致進行処理は、演奏データ通りに押鍵が行われる間は曲を進行させるが、演奏データの次の音に対応する鍵を所定時間経過しても演奏者が押鍵しないときに曲の進行を中断する処理である。詳細な処理は、後に図18を参照しながら説明する。
【0107】
ステップSA3では、演奏データ読み出し処理を行う。演奏データ読み出し処理は、RAMまたはROMに記憶されている演奏データを読み出し、読み出した演奏データ中に含まれる手表示情報に応じて表示回路に手の模範形を表示する処理である。詳細な処理は、後に図13、図15を参照しながら説明する。
【0108】
ステップSA4では、押鍵処理を行う。押鍵処理は、鍵盤における押鍵操作等を検出して、当該操作に応じた処理を行う。キーオンを検出したときには、発音処理を行い、キーオフを検出したときには消音処理を行う。演奏者が正しい押鍵操作を行わないために曲の進行が中断しているときにキーオンが検出されかつそのキーオンが演奏データの音に一致しているときには、曲の進行を再開する。詳細な処理は、後に図19を参照しながら説明する。
【0109】
ステップSA5では、その他処理を行う。その他処理は、例えば演奏練習のスタートを指示するための処理、テンポや音量の変更、各種モードの設定を行う。その後、ステップSA2へ戻り、上記の処理を繰り返す。
【0110】
手表示情報は、押鍵開始を指示するノートオンイベントに対応する情報であるので、本来はノートオンベロシティ等に手表示情報を設定するのが好ましい。しかし、ノートオンベロシティは音量の情報として用いられるので、ノートオフベロシティに手表示情報を設定する必要がある。ノートオフベロシティは、演奏データとして何も処理されないことが多い。
【0111】
手表示情報をノートオンベロシティ1c(図2)に設定するのではなく、その後に出現するノートオフベロシティ3c(図2)に設定する場合には、押鍵開始を指示するためのノートオンに対応させることが困難である。これは、ノートオンイベント1とノートオフイベント3(図2)の間に種々のデータが入る可能性があるからである。このような不都合を解消するため、演奏練習の処理を行う前に、前処理として、ノートオフベロシティに含まれている手表示情報を読み出して、当該ノートオフに対応するノートオンの直後に格納する処理を行う。
【0112】
図11は、処理前の演奏データ10と処理後の演奏データ30を示す。
処理前の演奏データ10は、図2と同じスタンダードMIDIファイルの形式であり、ノートオンイベント1とそれに対応するタイミングデータ2とノートオフイベント3とそれに対応するタイミングデータ4を有する。ノートオフイベント3は、ノートオンイベント1によるノートオンをノートオフするためのイベントである。
【0113】
処理前の演奏データ10は、ノートオフベロシティ3c中に手表示情報を有する。処理後の演奏データ30は、処理前の演奏データ10に手表示情報31を付加したものである。手表示情報31は、処理前の演奏データ10のノートオフベロシティ3cから読み出され、処理後の演奏データ30中のノートオンイベント1とそのタイミングデータ2との間に格納される。ノートオフイベント3中のベロシティは手表示情報を含むものであるが、MIDIファイルの形式を保つためにそのまま残されている。
【0114】
手表示情報31をノートオンイベント1の直後に設けることにより、ノートオンイベント1を読み出した時点で、直ちに手表示情報31を判断することができる。
【0115】
図12は、演奏データ10から演奏データ30へのデータ変換の処理を示すフローチャートである。この処理は、図10のメインルーチンのステップSA5におけるその他処理において行われる。具体的には、演奏者が演奏練習のスタートスイッチを押した後に行われる。
【0116】
ステップSG1では、演奏データ10からイベントを読み出す。例えば、ノートオンイベント、ノートオフイベントまたはタイミングデータである。
【0117】
ステップSG2では、読み出したイベントがノートオンイベントであるか否かをチェックする。ノートオンイベントであるときには、ステップSG3で演奏データ30を生成するためのバッファにノートオンイベントを転送する。
【0118】
ステップSG4では、上記の演奏データ30用のバッファにおいてノートオンイベントの後に1バイトの空白バイトを作成する。その後、ステップSG1へ戻り、演奏データ10から次のイベントを読み出す。
【0119】
ステップSG2において読み出したイベントがノートオンイベントでないと判断されたときには、ステップSG5へ進む。ステップSG5では、読み出したイベントがノートオフイベントであるか否かをチェックする。ノートオフイベントであるときには、ステップSG6へ進む。
【0120】
ステップSG6では、当該ノートオフイベントに含まれるノートオフベロシティ中の手表示情報を演奏データ10から読み出す。ステップSG7では、当該手表示情報を対応ノートオンの空白バイトに書き込む。空白バイトは、ステップSG4においてノートオンイベントの後に既に生成されている。
【0121】
ステップSG8では、当該ノートオフイベントを演奏データ30用のバッファに転送する。その後、ステップSG1へ戻り、次のイベントについて処理を繰り返す。
【0122】
ステップSG5において読み出したイベントがノートオフイベントでないと判断されたときには、タイミングデータ、エンドデータまたはコントロールチェンジ等であるので、ステップSG9へ進み、当該イベントを演奏データ30用のバッファに転送する。
【0123】
ステップSG10では、当該イベントがエンドデータであるか否かをチェックする。エンドデータでないときには、ステップSG1へ戻り、次のイベントについて処理を繰り返す。エンドデータであるときには、演奏データの終了を意味するので、処理を終了する。
【0124】
なお、手表示情報31をノートオンイベントと対応させて記憶する方式として、演奏データ10からノートオフベロシティのみを抜き出してそれをノートオンイベント発生順に並べて演奏データ10とは別の記憶領域に記憶させるような方式でもよい。この場合、演奏データ10の読み出しと並行してノートオフベロシティの読み出しも行うようにすればよい。
【0125】
図13は、図10のステップSA3における演奏データ読み出し処理の詳細を示すフローチャートである
ステップSB1では、再生タイマが0以下であるか否かをチェックする。再生タイマが0以下であることは、次のイベントのタイミングに達していることを意味する。再生タイマは、タイミングデータによって設定され、次に示す再生タイマ割り込み処理によりカウントが行われる。
【0126】
図14(A)は、再生タイマ割り込み処理を示すフローチャートである。この割り込み処理は、例えば10msの所定時間間隔で行われる。ステップSC1では、再生タイマの値をデクリメントする。その後、割り込み前の処理に戻る。再生タイマは、演奏練習のスタートが指示されると0に初期設定され、その後例えば10ms毎にデクリメントされる。
【0127】
図13に戻り、ステップSB1において、再生タイマが0以下であると判断されたときには、ステップSB2へ進む。ステップSB2では、RAMまたはROMに記憶されている演奏データからイベントを読み出す。1イベントとは、例えば図2に示すノートイベント1またはタイミングデータ2である。読み出されるイベントは、ノートイベントであれば3バイトであり、タイミングデータであれば1バイトである。イベントがノートオンイベントであるときには、その直後の手表示情報と共にノートオンイベントを読み出してもよい。
【0128】
ステップSB3では、読み出したイベントがノートイベントであるか否かをチェックする。ノートイベントとは、ノートオン、ノートオフ等のイベントであり、例えば図2に示すノートイベント1または3である。ノートイベントであるときには、ステップSB4へ進み、ノートイベント処理を行う。ノートイベント処理は、ノートオンイベントの直後に格納されている手表示情報の処理を含む。詳細な処理は、後に図16を参照しながら説明する。その後、図10のメインルーチンの処理へ戻る。
【0129】
ステップSB3において、読み出したイベントがノートイベントでないと判断されたときには、ステップSB5へ進む。ステップSB5では、読み出したイベントがタイミングデータであるか否かをチェックする。タイミングデータとは、ノートイベントと次のノートイベントとの間の時間間隔を示し、例えば図2に示すタイミングデータ2または4である。読み出したイベントがタイミングデータであるときには、ステップSB6へ進む。
【0130】
ステップSB6では、該タイミングデータ×テンポ係数の値を、再生タイマに加算する。再生タイマは、図13(A)の割り込み処理により10ms単位でデクリメントされている。テンポ係数は、タイミングデータの単位を再生タイマの単位(10ms)に変換するための係数である。このようにして次のノートイベントまでの時間が再生タイマに設定される。その後、図10のメインルーチンの処理へ戻る。
【0131】
再生タイマに上記の値が加算されると、その後10ms間隔で再生タイマの値がデクリメントされる。ステップSB1では、再生タイマが0よりも大きい間は、演奏データのイベントを読み出さずに、図10のメインルーチンの処理へ戻る。再生タイマの値が0以下になったときには、次のイベントの読み出しタイミングがきたことを意味するので、ステップSB2へ進み、次のイベントを読み出し、上記と同様の処理を繰り返す。
【0132】
なお、ステップSB6において、再生タイマに所定の値を設定するのではなく、所定の値を加算している点に注意する必要がある。図13に示す演奏データ読み出し処理は、タイマ割り込み処理ではないので、通常一定時間間隔では行われない。つまり、ステップSB1において毎回再生タイマが0の時点でステップSB2へ進むのであれば、ステップSB6において再生タイマを所定の値に更新するようにしてもよいが、ステップSB1において再生タイマの値が負の時にステップSB2へ進む場合もあるので、ステップSB6においては再生タイマに所定の値を加算する必要がある。
【0133】
読み出したイベントが、ステップSB3においてノートイベントではないと判断され、かつステップSB5においてタイミングデータでないと判断されたときには、その他イベントであるので、ステップSB7へ進む。その他イベントは、例えばプログラムチェンジまたはコントロールチェンジ等である。
【0134】
ステップSB7では、その他イベントの処理を行う。例えば、その他イベントがプログラムチェンジである場合は、音色変更の処理を行う。その後、図10のメインルーチンの処理へ戻る。
【0135】
図15(A)、(B)は、ある音がノートオンするタイミングと他の音がノートオフするタイミングの組み合わせを2つ示す。
【0136】
図15(A)は、C4の音がノートオフした後、G4の音がノートオンする例を示す。C4の音は、時刻t1にノートオンし、その後時刻t2にノートオフする。さらに、その後、G4の音が、時刻t3にノートオンし、その後時刻t4にノートオフする。ここで、時刻t2におけるC4の音のノートオフをノートオフ▲1▼とし、時刻t3におけるG4の音のノートオンをノートオン▲2▼とする。
【0137】
図15(B)は、C4の音がノートオン中に、G4の音がノートオンする例を示す。時刻t1においてC4の音がノートオンし、その後時刻t3においてG4の音がノートオンする。さらに、その後、時刻t2においてC4の音がノートオフし、その後時刻t4においてG4の音がノートオフする。ここで、時刻t3におけるG4の音のノートオンをノートオン▲3▼とし、時刻t2におけるC4の音のノートオフをノートオフ▲4▼とする。
【0138】
次に、上記のノートオフ▲1▼、ノートオン▲2▼、ノートオン▲3▼、ノートオフ▲4▼のそれぞれ場合のノートイベント処理を説明する。
【0139】
図16は、図13のステップSB4におけるノートイベント処理の詳細を示すフローチャートである。
【0140】
まず、次の音のノートオン前のノートオフ▲1▼の場合を説明する。
ステップSD1では、読み出したノートイベントがノートオンイベントであるか否かをチェックする。ノートイベントがノートオフ▲1▼の場合は、ステップSD11へ進む。ステップSD11では、他にノートオン中のものがないかをチェックする。ノートオフ▲1▼の時点(図15(A)の時刻t2)において、他の音(G4)はノートオンしていないので、次の音(G4)を押鍵する準備段階の手を表示するため、ステップSD12へ進む。
【0141】
ステップSD12では、次の音(G4)のノートオンイベントをサーチし、そのノートオンイベントに対応する手表示情報を読み出す。手表示情報は、手の前後位置情報(PosY)と手の種類情報(HndPat)と指情報(FngNo)を含む。
【0142】
ステップSD13では、手の種類情報(HndPat)に応じて、手の種類(図3(A)、図3(B)、図4(C)、図4(D))を決定する。
【0143】
ステップSD14では、手表示情報およびノートナンバに応じて、手の前後位置および左右位置を決定する。手の前後位置(最手前、手前、奥、最奥)は、手の前後位置情報(PosY)に応じて決まる。左右位置は、指情報(FngNo)が示す指がノートナンバが示す鍵の位置にくるようにする。
【0144】
ステップSD15では、上記で決定された手の種類と位置に従って、押鍵準備段階の手を描画する。押鍵準備段階の手は、押鍵していない状態であるので、押鍵すべき指および鍵の色を変える必要はない。
【0145】
ステップSD16では、ノートオフ▲1▼に応じて例えばC4の音の消音処理を行う。具体的には、ノートオフイベントに含まれるノートナンバ(C4)の消音のための楽音パラメータを音源回路に供給する。ただし、ノートオフベロシティは手表示情報に書き換えられてしまっているので、本来のベロシティデータとしての値は保証されない。その後、図13、引き続き図10の処理に戻る。
【0146】
次に、前の音のノートオフ後のノートオン▲2▼の場合を説明する。
ステップSD1では、読み出したノートイベントがノートオンイベントであるか否かをチェックする。ノートイベントがノートオン▲2▼の場合は、ステップSD2へ進む。
【0147】
ステップSD2では、図17(A)に示す再生一致進行バッファにイベントを格納し、該イベントのタイマ値を0に設定する。例えば再生一致進行バッファに、読み出した演奏データのノートオンイベント1(図2)中のノートナンバ1b(例えばC4またはG4)を格納し、タイマ値を0に設定する。このタイマ値は、先の再生タイマ(図14(A))とは無関係であり、再生一致進行バッファに当該イベントが格納されてからの時間を表す。
【0148】
ステップSD3では、他にノートオン中のものがあるか否かをチェックする。具体的には、上記の再生一致進行バッファ(図17(A))に2以上のノートオンイベントが格納されているときには、自己以外に他のノートオンがあると判断することができる。ステップSD11においても、同様の判断により、他にノートオンがあるか否かを判断することができる。
【0149】
ノートオン▲2▼の時点(図15(A)の時刻t3)においては、他の音(C4)はノートオンしていないので、ステップSD4およびSD5を飛び越し、ステップSD6へ進む。
【0150】
ステップSD6では、ノートオン▲2▼に対応する手表示情報中の指情報(FngNo)に応じて押鍵する指(親指、人差し指等)を決定する。なお、手の種類および手の位置は、既にステップSD13およびSD14で決定されている。さらに、ノートオン▲2▼の押鍵準備段階の手が既にステップSD15において表示器に描画されている。
【0151】
ステップSD7では、上記で決定された押鍵する指(ステップSD6)、手の種類(ステップSD13)、手の位置(ステップSD14)に従って、手の模範形を表示器に描画する。その際、押鍵する指の色を変えると共に、押鍵する指の長さを変える。白鍵を押鍵するときは押鍵する指を短めに描画し、黒鍵を押鍵するときには押鍵する指を長めに描画する。
【0152】
ステップSD8では、ノートオン▲2▼のノートナンバ(G4)に対応する鍵の色を変える。この場合、G4の鍵が、演奏者が次に押鍵すべき鍵である。
【0153】
ステップSD9では、ノートオン▲2▼の発音処理を行う。具体的には、ノートオンイベントに含まれるノートナンバ(音高)およびノートオンベロシティ(音量)に応じた楽音パラメータを音源回路に供給し、サウンドシステムにおいて発音させる。
【0154】
なお、この発音処理は、演奏者の押鍵処理により発音される音と区別するため、小さい音量で発音させたり、演奏者の押鍵による音色とは異なる音色で発音させることが望ましい。その後、図13、引き続き図10の処理に戻る。
【0155】
次に、前の音のノートオフ前のノートオン▲3▼の場合を説明する。
ステップSD1では、読み出したノートイベントがノートオンイベントであるか否かをチェックする。ノートオン▲3▼の場合は、ステップSD2へ進む。ステップSD2では、図17(A)に示す再生一致進行バッファにイベントを格納し、該イベントのタイマ値を0に設定する。
【0156】
ステップSD3では、他にノートオン中のものがあるか否かをチェックする。ノートオン▲3▼の時点(図15(B)の時刻t3)においては、他の音(C4)がノートオンしているので、ステップSD4へ進む。この後は、現在押鍵中の音(C4)の手の表示を消去し、新たに押鍵を開始する音(G4)に対応する手を表示する。
【0157】
ステップSD4では、ノートオン▲3▼の手の種類情報(HndPat)に応じて、手の種類(図3(A)、図3(B)、図4(C)、図4(D))を決定する。
【0158】
ステップSD5では、ノートオン▲3▼の手表示情報およびノートナンバに応じて、手の前後位置および左右位置を決定する。手の前後位置(最手前、手前、奥、最奥)は、手の前後位置情報(PosY)に応じて決まる。左右位置は、指情報(FngNo)が示す指がノートナンバが示す鍵の位置にくるようにする。
【0159】
ステップSD6では、ノートオン▲3▼の指情報(FngNo)に応じて押鍵する指(親指、人差し指等)を決定する。
【0160】
ステップSD7では、上記で決定された押鍵する指、手の種類、手の位置に従って、手の模範形を表示器に描画する。その際、押鍵する指の色を変えると共に、押鍵する指の長さを変える。
【0161】
ステップSD8では、ノートオン▲3▼のノートナンバ(G4)に対応する鍵の色を変える。
【0162】
ステップSD9では、ノートオン▲2▼の発音処理を行う。その後、図13、引き続き図10の処理に戻る
次に、次の音のノートオン後のノートオフ▲4▼の場合を説明する。
【0163】
ステップSD1では、読み出したノートイベントがノートオンイベントであるか否かをチェックする。ノートイベントがノートオフ▲4▼の場合は、ステップSD11へ進む。ステップSD11では、他にノートオン中のものがないかをチェックする。ノートオフ▲4▼の時点(図15(B)の時刻t2)においては、他の音(G4)がノートオンしているので、ノートオン中の音(G4)に対応する手の模範形の表示を維持するため、ステップSD16へ進む。
【0164】
ステップSD16では、ノートオフ▲4▼に応じて例えばC4の音の消音処理を行う。その後、図13、引き続き図10の処理に戻る。
【0165】
図18は、図10のステップSA2における一致進行処理の詳細を示すフローチャートである。
【0166】
ステップSE1では、一致進行タイマが0より大きいか否かをチェックする。一致進行タイマは、次に示す一致進行タイマ割り込み処理によりカウントが行われる。
【0167】
図14(B)は、一致進行タイマ割り込み処理を示すフローチャートである。この割り込み処理は、例えば10msの所定時間間隔で行われる。ステップSC2では、一致進行タイマの値をインクリメントする。その後、割り込み前の処理に戻る。一致進行タイマは、演奏練習のスタートが指示されると0に初期設定され、その後例えば10ms毎にインクリメントされる。
【0168】
図18に戻り、ステップSE1において、一致進行タイマが0より大きいと判断されたときには、一致進行制御を行うため、ステップSE2へ進む。一致進行タイマが0以下であるときには、一致進行処理を行わずに、図10のメインルーチンの処理へ戻る。このように、一致進行タイマを用いて一致進行制御のための負荷を軽減し、かつほぼ一定時間毎に一致進行制御を行わせる。
【0169】
ステップSE2では、一致進行タイマを0にリセットする。一致進行タイマは、次のインクリメント(図14(B))まで0となる。ステップSE2の処理は、後により詳しく説明するように、平均して一致進行タイマの単位時間(例えば10ms)間隔で通過することになる。
【0170】
ステップSE3では、ステップSE1およびSE2で述べた一致進行タイマとは別に、再生一致進行バッファ(図17(A))と手弾き一致進行バッファ(図17(B))の両方の全てのイベントについてのタイマ値をインクリメントする。
【0171】
既に述べたように、演奏データのイベントを格納するための再生一致進行バッファは、図16のステップSD2においてイベントを格納する。後に説明するが、手弾き一致進行バッファは、鍵盤における押鍵操作によるイベントを格納するバッファである。
【0172】
両バッファのタイマ値は、共に平均して10ms間隔でインクリメントされる。
【0173】
ステップSE4では、ポーズ判定を行い、ポーズ条件を満たしているか否かをチェックする。再生一致進行バッファ(図17(A))の中のイベントにおいて、タイマ値が所定値(例えば50)以上のものがあるときにはポーズ条件を満たすと判断する。
【0174】
バッファのタイマ値はステップSE3において約10ms毎にインクリメントされるので、タイマ値の1は10msに相当する。所定値が例えば50である場合は、500ms経過したイベントがバッファに残っているときにポーズ条件を満たすことになる。演奏者が、演奏データに対応する適切な鍵を500ms経過しても押鍵しないときには、ポーズ条件を満たし、ステップSE5へ進む。
【0175】
ステップSE5では、ポーズ設定を行う。具体的には、ポーズフラグを1にセットし、図14(A)に示す割り込み処理による再生タイマのデクリメントを停止する。その後、図10のメインルーチンの処理へ戻る。再生タイマのデクリメントを停止すれば、図13のステップSB1において、再生タイマが0以下にならないので、ステップSB2における演奏データの次のイベントの読み出しが停止され、曲の進行が停止する。
【0176】
すなわち、演奏データが読み出されてから例えば500ms経過しても、演奏者が当該演奏データに対応する鍵を押鍵しないときには、ポーズ設定により曲の進行が中断し、演奏者の適正な押鍵操作を待つ。
【0177】
ステップSE4において、ポーズ条件を満たさないと判断されたときには、ポーズ設定を行わずに、図10のメインルーチンの処理へ戻る。
【0178】
次に、ステップSE1において平均して10ms毎にYES(ステップSE2)へ進む理由を説明する。一致進行タイマ(図14(B))は、例えば10ms毎にインクリメントされる。
【0179】
図18の一致進行処理は、タイマ割り込み処理ではないので、一定時間間隔では行われないが、平均して1ms間隔でステップSE1の判断が行われる場合を考える。その場合、一致進行タイマを0から1にインクリメントした後、次のインクリメントまで平均10回ステップSE1を通る。最初のステップSE1では、一致進行タイマが1なので、YES(ステップSE2〜SE5)へ進む。残り9回のステップSE1では、一致進行タイマが0にリセットされているため一致進行処理はスルーする。このようにして、ステップSE2〜SE5の処理は、約10msに1回行われることになる。
【0180】
図19は、図10のステップSA4における押鍵処理の詳細を示すフローチャートである。
【0181】
ステップSF1では、鍵盤上における鍵操作により生じたキーイベントがあるか否かをチェックする。キーイベントがあるときには、キーイベントの処理を行うため、ステップSF2へ進む。キーイベントがないときには、キーイベントの処理を行わずに、図10のメインルーチンの処理へ戻る。
【0182】
ステップSF2では、上記のキーイベントがキーオンイベントであるか否かをチェックする。キーオンイベントであるときには、ステップSF3へ進む。
【0183】
ステップSF3では、当該キーオンイベントに対応する発音処理を行う。具体的には、キーオンイベントおよびそれに対応するパラメータを音源回路22および効果回路23(図3)に供給する。サウンドシステム24では、当該キーオンイベントに応じた発音がされる。その後、ステップSF4へ進む。
【0184】
ステップSF4では、図17(B)に示す手弾き一致進行バッファに上記のイベントを格納し、該イベントのタイマ値を0に設定する。手弾き一致進行バッファには、ノートナンバとして例えばA3を格納し、タイマ値を0に設定する。このタイマ値は、当該バッファにイベントが格納されてからの時間を表すものであり、図18のステップSE3においてインクリメントされる。
【0185】
ステップSF5では、再生一致進行バッファ(図17(A))と手弾き一致進行バッファ(図17(B))の両イベントを比較する。再生一致進行バッファには、演奏データのイベントが格納され、手弾き一致進行バッファには演奏者の鍵盤操作によるイベントが格納される。
【0186】
ステップSF6では、両バッファに一致するイベントがあるか否か、すなわち同じノートナンバのイベントがあるか否かをチェックする。一致するイベントがあるときには、演奏者が正しい鍵を押鍵したことを意味するので、ステップSF7へ進む。
【0187】
ステップSF7では、演奏者の正押鍵に対してインタラクティブな反応を示すため、「うまい!」等の誉めるメッセージを表示器に表示する。処理の詳細は、後に図20のフローチャートを参照しながら説明する。
【0188】
ステップSF8では、一致するイベントを再生一致進行バッファと手弾き一致進行バッファの両バッファから削除する。
【0189】
ステップSF9では、現在ポーズ中であるか否かをチェックする。ポーズ中でないときには、図10のメインルーチンの処理へ戻る。ポーズ設定は、図18のステップSE5において行われる。ポーズフラグが1にセットされているときには、ポーズ中であると判断する。ポーズ中であるときはポーズを解除するため、ステップSF10へ進む。
【0190】
ステップSF10では、再生一致進行バッファ(図17(A))に残っているタイマ値の最大値が所定値(例えば50)以下であるか否かをチェックする。演奏者の正押鍵により、ステップSF8において両バッファから削除されたイベントは、タイマ値が所定値を越えたものであるとは限らない。当該イベントの他にも所定値を越えたタイマ値を有するイベントが再生一致進行バッファに格納されている場合には、ポーズ状態を継続するため、図10のメインルーチンの処理へ戻る。
【0191】
再生一致進行バッファに当該イベントの他に、タイマ値が所定値を越えたイベントがない場合には、ポーズを解除するため、ステップSF11へ進む。
【0192】
ステップSF11では、ポーズ解除を行う。具体的には、ポーズフラグを0にリセットする。そして、図18のステップSE5で停止された再生タイマのデクリメントを再開する。再生タイマのデクリメントを再開すれば、再び演奏データの読み出しが再開し(図13のステップSB2)、曲が進行する。その後、図10のメインルーチンの処理へ戻る。
【0193】
ステップSF6において両バッファに一致するイベントがないと判断されたときには、演奏者が誤った鍵を押鍵したことを意味するので、ステップSF21へ進む。
【0194】
ステップSF21では、演奏者の誤押鍵に対してインタラクティブな反応を示すため、「がんばって!」等の励ましのメッセージを表示器に表示する。処理の詳細は、後に図21のフローチャートを参照しながら説明する。
【0195】
ステップSF22では、現在ポーズ中であるか否かをチェックする。ポーズ中でないときには、図10のメインルーチンの処理へ戻る。ポーズ中であるときには、誤押鍵した鍵が正しい鍵とどの位離れているかを表示するため、ステップSF23へ進む。
【0196】
ステップSF23では、再生一致進行バッファ(図17(A))中のタイマ値が最大のノートオンイベントのノートナンバと、演奏者が押鍵した鍵のノートナンバの差に応じたメッセージを表示または発声する。表示器に表示する場合は、手の模範形の下の領域にメッセージを表示する。例えば、以下の表示または発声を行う。
【0197】
隣の鍵を押鍵した場合は、「右の黒鍵です」、「右の白鍵です」、「左の黒鍵です」、または「左の白鍵です」と表示または発声する。
【0198】
隣の鍵より離れかつ6度以内の鍵を押鍵した場合は、「もう少し右です」、または「もう少し左です」と表示または発声する。
【0199】
7度から9度離れた鍵を押鍵した場合は、「1オクターブ右です」、または「1オクターブ左です」と表示または発声する。
【0200】
ステップSF23の後は、図10のメインルーチンの処理へ戻る。
ステップSF2においてキーオフイベントが検出されたと判断されたときは、ステップSF31へ進む。ステップSF31では、当該キーオフイベントに対応する音の消音処理を行う。その後、ステップSF32へ進む。
【0201】
ステップSF32では、手弾き一致進行バッファ(図17(B))から当該キーオフイベントに対応するキーオンイベントを削除する。すなわち、演奏者が誤った押鍵をしたときには、このステップで当該イベントを手弾き進行バッファから削除する。ただし、演奏者が正しい押鍵をしたときには、ステップSF8で既に当該イベントが手弾き進行バッファおよび再生一致進行バッファから削除されているため、ステップSF32での処理は行われない。その後、図10のメインルーチンの処理へ戻る。
【0202】
図20は、図19のステップSF7に示す正押鍵処理の詳細を示すフローチャートである。
【0203】
ステップSH1では、フラグCORRECTが1であるか否かをチェックする。フラグCORRECTは、演奏者が正押鍵をしたときに1が設定され、演奏者が誤押鍵をしたときに0が設定されるフラグである。
【0204】
フラグCORRECTが1であるときには、今回の押鍵だけでなく前回の押鍵も正押鍵であったことを意味するので、ステップSH2へ進む。
【0205】
ステップSH2では、レジスタCRCT_NUMの値をインクリメントする。レジスタCRCT_NUMは、演奏者が連続して正押鍵した回数を格納するためのレジスタである。
【0206】
ステップSH3では、レジスタCRCT_NUMが6であるか否かをチェックする。レジスタCRCT_NUMが6であるときには、演奏者が6回連続正押鍵をしたことを意味するので、ステップSH6へ進み、「その調子」と表示または発声する。その後、図19のフローチャートの処理に戻る。
【0207】
レジスタCRCT_NUMが6でないときには、ステップSH4へ進み、レジスタCRCT_NUMが12であるか否かをチェックする。レジスタCRCT_NUMが12であるときには、演奏者が12回連続正押鍵をしたことを意味するので、ステップSH5へ進み、「うまいうまい」と表示または発声する。その後、図19のフローチャートの処理に戻る。
【0208】
レジスタCRCT_NUMが6でも12でもないときには、何も表示または発声せずに、図19のフローチャートの処理に戻る。
【0209】
ステップSH1においてフラグCORRECTが0であると判断されたときは、今回は正押鍵であるが前回は誤押鍵であることを意味するので、ステップSH7へ進む。
【0210】
ステップSH7では、今回の押鍵が正押鍵であることを記録しておくため、フラグCORRECTに1をセットする。
【0211】
ステップSH8では、レジスタCRCT_NUMに1を格納し、正押鍵の連続回数を1に設定する。その後、図19のフローチャートの処理に戻る。
【0212】
図21は、図19のステップSF21に示す誤押鍵処理の詳細を示すフローチャートである。
【0213】
ステップSI1では、フラグCORRECTが0であるか否かをチェックする。フラグCORRECTは、演奏者が正押鍵をしたときに1が設定され、演奏者が誤押鍵をしたときに0が設定されるフラグである。
【0214】
フラグCORRECTが0であるときは、今回の押鍵だけでなく前回の押鍵も誤押鍵であったことを意味するので、ステップSI2へ進む。
【0215】
ステップSI2では、レジスタWRNG_NUMの値をインクリメントする。レジスタWRNG_NUMは、演奏者が連続して誤押鍵した回数を格納するためのレジスタである。
【0216】
ステップSI3では、レジスタWRNG_NUMが3であるか否かをチェックする。レジスタWRNG_NUMが3であるときには、演奏者が3回連続誤押鍵をしたことを意味するので、ステップSI6へ進み、「がんばって」と表示または発声する。その後、図19のフローチャートの処理に戻る。
【0217】
レジスタWRNG_NUMが3でないときには、ステップSI4へ進み、レジスタWRNG_NUMが6であるか否かをチェックする。レジスタWRNG_NUMが6であるときには、演奏者が6回連続誤押鍵をしたことを意味するので、ステップSI5へ進み、「落ちついて」と表示または発声する。その後、図19のフローチャートの処理に戻る。
【0218】
レジスタWRNG_NUMが3でも6でもないときには、何も表示または発声せずに、図19のフローチャートの処理に戻る。
【0219】
ステップSI1においてフラグCORRECTが1であると判断されたときは、今回の押鍵が誤押鍵であり前回の押鍵が正押鍵であることを意味するので、ステップSI7へ進む。
【0220】
ステップSI7では、今回の押鍵が誤押鍵であることを記録しておくため、フラグCORRECTを0にリセットする。
【0221】
ステップSI8では、レジスタWRNG_NUMに1を格納し、誤押鍵の連続回数を1に設定する。その後、図19のフローチャートの処理に戻る。
【0222】
演奏者が正押鍵または誤押鍵を行ったときには、それに応じたメッセージを表示または発声することにより、インタラクティブな対応が可能になり、人間の教師から教育を受けているような感覚を受けることができ、効果的な演奏練習を行うことができる。
【0223】
手表示情報は、手の前後位置情報と手の種類情報と指情報を含む。手の前後位置情報は、鍵盤上に置く手の前後方向(手前または奥等)の位置を示す。手の前後位置は、押す指および押鍵する鍵等により適正な位置が決まる。また、黒鍵から白鍵へ移行する場合、または白鍵から黒鍵へ移行する場合等に応じて、次の音に移行しやすい位置が決まる。
【0224】
手の種類(形状)情報は、親指が人差し指または手のひらに重なった第1の手の形状と、親指が人差し指または手のひらに重なっていない第2の手の形状の両方を有する。第2の手の形状は、手の開き加減により複数種類用意する。手の開き加減に応じて、手の位置を動かさずに、次の音に移行できる場合がある。手の動きを少なくすることにより、スムーズな演奏を行うことができる。
【0225】
指情報は、押鍵する指の種類を示す。押鍵する指の色を変えて表示すると共に、押鍵する指の長さを変えて表示する。例えば、黒鍵は鍵の高さが高いので、黒鍵を押鍵する場合には押鍵する指の長さを長くし、白鍵は鍵の高さが低いので、白鍵を押鍵する場合には押鍵する指の長さを短くする。押鍵する指の長さを変えることにより、自然な指の動きを表現することができる。
【0226】
手の模範形を表示する際、ノートオンのタイミングまたはノートオフのタイミングに応じて、押鍵準備段階の手の模範形または押鍵時の手の模範形を表示する。演奏者は、押鍵準備段階の手の模範形をお手本にすることにより、押鍵する前から手の置く位置を知ることができる。
【0227】
手の模範形を表示すれば、各鍵に対応するLEDを点灯する場合に比べ、演奏者は直感的に演奏方法を知ることができる。また、演奏者は、教師がそばでお手本を示しているような感覚で練習することができる。
【0228】
なお、手の模範形の表示は、右手に限定されず左手でもよい。右手の画像データをROMまたはフロッピディスクに記憶する場合、そのまま表示すれば右手を表示することができる。左手を表示するときは、左右方向(X軸)を対称に右手用画像データを折り返し表示すればよい。右手と左手の両方を表示することもできる。手表示情報には、右手と左手を識別するための情報を含めてもよい。
【0229】
なお、図11に示すデータ変換により、スタンダードMIDIファイル形式の演奏データ10を、別の形式の演奏データ40に変換し、その後に演奏練習の処理を行う場合について説明したが、スタンダードMIDIファイル形式の演奏データ10について直接演奏練習の処理を行うこともできる。
【0230】
その場合、ノートオンイベントを読み出した(図16のステップSD1)後、直接手表示情報を読み出す代わりに、対応するノートオフベロシティをサーチし当該ノートオフベロシティに設定されている手表示情報を読み出すようにすればよい。
【0231】
手表示情報は、ノートオフベロシティに設定する場合に限定されない。その他、ノートオンベロシティ、エクスクルーシブメッセージ(MIDI規格)、またはボリュームやエフェクトの制御情報等に手表示情報を設定してもよい。また、ノートオフベロシティとノートオンベロシティ等の複数の情報エリアに手表示情報を設定してもよい。
【0232】
複数の情報エリアに手表示情報を設定すれば、8ビット以上の手表示情報を設定することができる。手表示情報は、上記の7ビットの情報(手の前後位置情報、手の種類、指情報)に限定されない。その他、大人用の手または子供用の手を識別するための情報を含むことができる。同じ曲を演奏する場合であっても、大人用の手に比べ子供用の手は全体的に大きく広げる必要がある。また、大人用の手であれば動かさなくても届く鍵であっても、子供用の手では動かさなくては届かない鍵がある。
【0233】
その他、手表示情報は、各指毎の開き方や、手首の回転方向等の情報を含めることができる。
【0234】
ノートオフベロシティは、ベロシティデータ(演奏情報)としては使われないことが多いので、全ビット(7ビット)に手表示情報を設定することができる。それに対し、ノートオンベロシティは、一般的に音量情報として使われるので、ノートオンベロシティデータの精度を考慮し下位1または2ビットに設定するのが好ましい。ノートオフベロシティとノートオンベロシティを用いれば、9ビットの手表示情報を設定することができる。
【0235】
表示器に手の模範形の表示を行う場合、表示用の2次元画像データ(動画)そのものを曲全体にわたって記憶し、表示器に表示する方法も考えられるが、当該画像データのデータ量は大量のものとなってしまう。本実施例における7〜9ビットの手表示情報は、2次元画像のデータ量と比較すれば、ごく少ないデータ量である。
【0236】
また、ノートオフベロシティ等に手表示情報を設定することにより、スタンダードMIDIファイル形式の演奏データと同じデータ量でありながら、演奏データに手表示情報を持たせることができる。
【0237】
本実施例では、演奏データ中に手表示情報独自のデータ領域を新たに設けるのではなく、ノートオフベロシティ等に設定することにより、演奏データのデータ量を増加させることなく、手表示情報を用いた演奏指示機能を付加することができる。もちろん、図11の演奏データ30のように、手表示情報専用のデータ領域を確保するようにしてもよい。
【0238】
演奏データは、汎用の演奏データ(例えばスタンダードMIDIファイル)との互換性を保っているので、演奏指示機能を有しない一般の自動演奏装置にも広く活用することができる。本実施例による演奏指示装置を用いた場合には、自動演奏の他、さらに手の模範形を表示器に表示させることができる。
【0239】
演奏指示装置は、電子楽器の形態に限らず、パソコンとアプリケーションソフトウエアとによる形態でもよい。また、演奏指示装置は、音源装置や自動演奏装置等と共に電子楽器に内蔵されている場合に限らず、それぞれが別体の装置であり、MIDIや各種ネットワーク等の通信手段を用いて各装置を接続するようなものであってもよい。さらに、自動演奏ピアノに適用することもできる。
【0240】
演奏データのフォーマットは、スタンダードMIDIファイルの他、「イベント+相対時間」、「イベント+絶対時間」、「音高+符長」、「ベタ方式」等の形式でもよい。
【0241】
自動演奏のテンポを変更する方法は、テンポクロックの周期を変更するものや、テンポクロックの周期をそのままにしてタイミングデータの値を修正するものや、1回の処理においてタイミングデータをカウントする値を変更するものであってもよい。
【0242】
自動演奏データは、複数のチャンネルのデータが混在した形式であってもよいし、各チャンネルのデータがトラック毎に別れているような形式であってもよい。
【0243】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【0244】
【発明の効果】
以上説明したように、本発明によれば、押鍵すべき鍵の他、例えば手の種類(形状)や手の位置や押鍵すべき指の種類を演奏者に指示することができるので、演奏者は詳細な演奏方法を知ることができる。また、演奏方法を示す手の画像を表示することが可能であるので、各鍵に対応するLEDを点灯する場合に比べ、演奏者は直感的に演奏方法を知ることができる。
【図面の簡単な説明】
【図1】 図1(A)はMIDI規格のノートオフベロシティの構成を示す図であり、図1(B)は本発明の実施例による手表示情報を埋め込んだノートオフベロシティの構成を示す図である。
【図2】 本実施例による演奏指示装置に用いる演奏データのフォーマット例を示す図である。
【図3】 図3(A)は指くぐりの手の形状を示す図であり、図3(B)は閉じた手の形状を示す図である。
【図4】 図4(C)は小さく開いた手の形状を示す図であり、図4(D)は大きく開いた手の形状を示す図である。
【図5】 手表示情報およびノートナンバを基にして手の表示を行う例を示す図である。
【図6】 図6(A)は第1のノートオンイベントに対応する手の表示例を示す図であり、図6(B)は第2のノートオンイベントに対応する手の表示例を示す図である。
【図7】 図7(C)は第3のノートオンイベントに対応する手の表示例を示す図であり、図7(D)は第4のノートオンイベントに対応する手の表示例を示す図である。
【図8】 図8(E)は第5のノートオンイベントに対応する手の表示例を示す図であり、図8(F)は第6のノートオンイベントに対応する手の表示例を示す図である。
【図9】 本実施例による演奏指示装置の構成を示すブロック図である。
【図10】 CPUが処理するメインルーチンのフローチャートである。
【図11】 演奏データのデータ変換により手表示情報を新たなメモリ領域に格納する例を示す図である。
【図12】 演奏データのデータ変換処理を示すフローチャートである。
【図13】 図10のステップSA3における演奏データ読み出し処理の詳細を示すフローチャートである
【図14】 図14(A)は再生タイマ割り込み処理を示すフローチャートであり、図14(B)は一致進行タイマ割り込み処理を示すフローチャートである。
【図15】 図15(A)と(B)はある音のノートオフと他の音のノートオンのタイミングを2種類示す図である。
【図16】 図13のステップSB4におけるノートイベント処理の詳細を示すフローチャートである。
【図17】 図17(A)は再生一致進行バッファの構成を示す図であり、図17(B)は手弾き一致進行バッファの構成を示す図である。
【図18】 図10のステップSA2における一致進行処理の詳細を示すフローチャートである。
【図19】 図10のステップSA4における押鍵処理の詳細を示すフローチャートである。
【図20】 図19のステップSF7における正押鍵処理の詳細を示すフローチャートである。
【図21】 図19のステップSF21における誤押鍵処理の詳細を示すフローチャートである。
【符号の説明】
1 ノートオンイベント、 2,4 タイミングデータ、 3 ノートオフイベント、 5 エンドデータ、 6 ベロシティデータ、 7 手表示情報、 10 演奏データ、 11 ROM、 12 RAM、 13 CPU、 14 タイマ、 15 MIDIインターフェース、 16 フロッピディスク駆動装置、 17 鍵盤、 18 鍵盤検出回路、 19 スイッチ、 20 スイッチ検出回路、 21 表示回路、 22 音源回路、 23 効果回路、 24 サウンドシステム、 25 バス、 30 演奏データ、 31 手表示情報、 51 他のMIDI機器、 52 ハードディスクドライブ、 53 CD−ROMドライブ、54 通信インターフェース、 55 通信ネットワーク、 56 サーバコンピュータ
Claims (12)
- 親指が人差し指または手のひらに重なった手の画像データを1種類以上、および親指が人差し指または手のひらに重なっていない手の画像データを2種類以上記憶する画像記憶手段と、
演奏データ中からノートオンまたはノートオフを検出するノート検出手段と、
前記演奏データ中から手の種類情報を検出する検出手段と、
前記ノート検出手段がノートオンまたはノートオフを検出すると、該ノートオン時またはノートオフ時に該ノートの他にノートオン中のノートがあるか否かを前記演奏データから検出する手段と、
ノートオフ時に他にノートオン中のノートがなければ、次のノート情報に対応して検出された前記手の種類情報に応じて前記画像記憶手段に記憶されている複数の手の画像データの中から1つを選択して前記画像記憶手段に記憶されている手の画像データを基に次のノートの押鍵準備段階の手の画像データを生成出力し、ノートオン時に他にノートオン中のノートがあれば、新たに検出されたノートオンと前記画像記憶手段に記憶されている手の画像を基に該新たに検出されたノートに対応して検出された前記手の種類情報に応じて前記画像記憶手段に記憶されている複数の手の画像データの中から1つを選択して前記画像記憶手段に記憶されている手の画像を基に該新たに検出されたノートの押鍵の手の画像データを生成出力する画像生成手段と
を有する演奏指示装置。 - 前記検出手段は、さらに、演奏データ中から手の前後位置情報を検出し、
前記画像生成手段は、前記手の前後位置情報に応じて前記画像記憶手段に記憶されている画像データが示す手が鍵盤の手前または奥に位置する画像データを生成出力する請求項1記載の演奏指示装置。 - 前記検出手段は、さらに、演奏データ中から押鍵する指を示すための指情報を検出し、
前記画像生成手段は、前記指情報に応じて前記画像記憶手段に記憶されている画像データが示す手において押鍵する指の長さを押鍵しない場合とは異ならせた画像データを生成出力する請求項1又は2記載の演奏指示装置。 - 前記検出手段はノートオフベロシティ中から情報を検出する請求項1〜3のいずれかに記載の演奏指示装置。
- 親指が人差し指または手のひらに重なった手の画像データを1種類以上、および親指が人差し指または手のひらに重なっていない手の画像データを2種類以上記憶する画像記憶手段から、画像データを読み出す読み出し手順と、
演奏データ中からノートオンまたはノートオフを検出するノート検出手順と、
前記演奏データ中から手の種類情報を検出する検出手順と、
前記ノート検出手順がノートオンまたはノートオフを検出すると、該ノートオン時またはノートオフ時に該ノートの他にノートオン中のノートがあるか否かを前記演奏データから検出する手順と、
ノートオフ時に他にノートオン中のノートがなければ、次のノート情報に対応して検出された前記手の種類情報に応じて前記画像記憶手段に記憶されている複数の手の画像データの中から1つを選択して前記画像記憶手段に記憶されている手の画像データを基に次のノートの押鍵準備段階の手の画像データを生成出力し、ノートオン時に他にノートオン中のノートがあれば、新たに検出されたノートオンと前記画像記憶手段に記憶されている手の画像を基に該新たに検出されたノートに対応して検出された前記手の種類情報に応じて前記画像記憶手段に記憶されている複数の手の画像データの中から1つを選択して前記画像記憶手段に記憶されている手の画像を基に該新たに検出されたノートの押鍵の手の画像データを生成出力する画像生成手順と
を有する演奏指示処理をコンピュータに実行させるためのプログラムを記録した媒体。 - 前記検出手順は、さらに、演奏データ中から手の前後位置情報を検出し、
前記画像生成手順は、前記手の前後位置情報に応じて前記画像記憶手段に記憶されている画像データが示す手が鍵盤の手前または奥に位置する画像データを生成出力する請求項5記載の演奏指示処理をコンピュータに実行させるためのプログラムを記録した媒体。 - 前記検出手順は、さらに、演奏データ中から押鍵する指を示すための指情報を検出し、
前記画像生成手順は、前記指情報に応じて前記画像記憶手段に記憶されている画像データが示す手において押鍵する指の長さを押鍵しない場合とは異ならせた画像データを生成出力する請求項5又は6記載の演奏指示処理をコンピュータに実行させるためのプログラムを記録した媒体。 - 前記検出手順はノートオフベロシティ中から情報を検出する請求項5〜7のいずれかに記載のプログラムを記録した媒体。
- 親指が人差し指または手のひらに重なった手の画像データを1種類以上、および親指が人差し指または手のひらに重なっていない手の画像データを2種類以上記憶する画像記憶手段から、画像データを読み出す読み出し手順と、
演奏データ中からノートオンまたはノートオフを検出するノート検出手順と、
前記演奏データ中から手の種類情報を検出する検出手順と、
前記ノート検出手順がノートオンまたはノートオフを検出すると、該ノートオン時またはノートオフ時に該ノートの他にノートオン中のノートがあるか否かを前記演奏データから検出する手順と、
ノートオフ時に他にノートオン中のノートがなければ、次のノート情報に対応して検出された前記手の種類情報に応じて前記画像記憶手段に記憶されている複数の手の画像データの中から1つを選択して前記画像記憶手段に記憶されている手の画像データを基に次のノートの押鍵準備段階の手の画像データを生成出力し、ノートオン時に他にノートオン中のノートがあれば、新たに検出されたノートオンと前記画像記憶手段に記憶されている手の画像を基に該新たに検出されたノートに対応して検出された前記手の種類情報に応じて前記画像記憶手段に記憶されている複数の手の画像データの中から1つを選択して前記画像記憶手段に記憶されている手の画像を基に該新たに検出されたノートの押鍵の手の画像データを生成出力する画像生成手順と
を有する演奏指示方法。 - 前記検出手順は、さらに、演奏データ中から手の前後位置情報を検出し、
前記画像生成手順は、前記手の前後位置情報に応じて前記画像記憶手段に記憶されている画像データが示す手が鍵盤の手前または奥に位置する画像データを生成出力する請求項9記載の演奏指示方法。 - 前記検出手順は、さらに、演奏データ中から押鍵する指を示すための指情報を検出し、
前記画像生成手順は、前記指情報に応じて前記画像記憶手段に記憶されている画像データが示す手において押鍵する指の長さを押鍵しない場合とは異ならせた画像データを生成出力する請求項9又は10記載の演奏指示方法。 - 前記検出手順はノートオフベロシティ中から情報を検出する請求項9〜11のいずれかに記載の演奏指示方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19152597A JP3684774B2 (ja) | 1996-07-16 | 1997-07-16 | 演奏指示装置及びプログラムを記録した媒体 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP8-186349 | 1996-07-16 | ||
JP18634996 | 1996-07-16 | ||
JP19152597A JP3684774B2 (ja) | 1996-07-16 | 1997-07-16 | 演奏指示装置及びプログラムを記録した媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH1091061A JPH1091061A (ja) | 1998-04-10 |
JP3684774B2 true JP3684774B2 (ja) | 2005-08-17 |
Family
ID=26503704
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19152597A Expired - Fee Related JP3684774B2 (ja) | 1996-07-16 | 1997-07-16 | 演奏指示装置及びプログラムを記録した媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3684774B2 (ja) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100273436B1 (ko) | 1998-07-31 | 2001-04-02 | 구자홍 | 음발생 장치 및 방법 |
JP2001092456A (ja) | 1999-09-24 | 2001-04-06 | Yamaha Corp | 演奏ガイド機能を備えた電子楽器および記憶媒体 |
JP3496137B2 (ja) * | 2000-03-02 | 2004-02-09 | コナミ株式会社 | ゲーム装置、情報記憶媒体、ゲーム配信装置、ゲーム配信方法及びゲーム装置の制御方法 |
JP3521838B2 (ja) * | 2000-03-24 | 2004-04-26 | カシオ計算機株式会社 | 演奏動作表示装置、及び記録媒体 |
JP3548825B2 (ja) * | 2001-07-18 | 2004-07-28 | カシオ計算機株式会社 | 演奏動作表示装置、及び記録媒体 |
JP3528051B2 (ja) * | 2001-07-18 | 2004-05-17 | カシオ計算機株式会社 | 演奏動作表示装置、及び記録媒体 |
JP7107719B2 (ja) * | 2018-03-30 | 2022-07-27 | 株式会社河合楽器製作所 | 運指表示プログラム |
JP7008560B2 (ja) * | 2018-03-29 | 2022-01-25 | 株式会社河合楽器製作所 | 運指表示装置及び運指表示プログラム |
-
1997
- 1997-07-16 JP JP19152597A patent/JP3684774B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH1091061A (ja) | 1998-04-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3598598B2 (ja) | カラオケ装置 | |
JP3632411B2 (ja) | 楽音信号生成方法、楽音信号生成装置及びプログラムを記録した媒体 | |
JP6402878B2 (ja) | 演奏装置、演奏方法およびプログラム | |
US6066795A (en) | Techniques of using computer keyboard as musical instrument keyboard | |
JP3684774B2 (ja) | 演奏指示装置及びプログラムを記録した媒体 | |
JP4802857B2 (ja) | 楽音合成装置及びプログラム | |
JP5732982B2 (ja) | 楽音生成装置および楽音生成プログラム | |
JP3613935B2 (ja) | 演奏練習装置及びプログラムを記録した媒体 | |
JP5029258B2 (ja) | 演奏練習支援装置および演奏練習支援処理のプログラム | |
JP3654227B2 (ja) | 楽曲データ編集装置及びプログラム | |
JP2674452B2 (ja) | 楽曲再生装置 | |
JP2640992B2 (ja) | 電子楽器の発音指示装置及び発音指示方法 | |
JP4337288B2 (ja) | 演奏動作表示装置、及びプログラム | |
JP5742592B2 (ja) | 楽音生成装置、楽音生成プログラム及び電子楽器 | |
JP3870964B2 (ja) | 楽音信号生成方法、楽音信号生成装置及びプログラムを記録した媒体 | |
JP5145875B2 (ja) | 演奏練習支援装置および演奏練習支援処理のプログラム | |
JP2006301274A (ja) | 電子楽器 | |
JP2596303B2 (ja) | 電子楽器 | |
JPH05204297A (ja) | 階名発生装置 | |
JP2842440B2 (ja) | 自動伴奏装置 | |
JPH07152372A (ja) | 演奏装置 | |
JPH10254443A (ja) | パンチイン装置、パンチイン方法及びプログラムを記録した媒体 | |
JP2961675B2 (ja) | 電子楽器 | |
JP5257842B2 (ja) | 楽音発生装置および楽音発生プログラム | |
JP3548825B2 (ja) | 演奏動作表示装置、及び記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20050125 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050328 |
|
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: 20050510 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050523 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080610 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090610 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100610 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100610 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110610 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120610 Year of fee payment: 7 |
|
LAPS | Cancellation because of no payment of annual fees |