[go: up one dir, main page]

JP3613935B2 - Performance practice device and medium recording program - Google Patents

Performance practice device and medium recording program Download PDF

Info

Publication number
JP3613935B2
JP3613935B2 JP15890697A JP15890697A JP3613935B2 JP 3613935 B2 JP3613935 B2 JP 3613935B2 JP 15890697 A JP15890697 A JP 15890697A JP 15890697 A JP15890697 A JP 15890697A JP 3613935 B2 JP3613935 B2 JP 3613935B2
Authority
JP
Japan
Prior art keywords
note
event
performance
velocity
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
Application number
JP15890697A
Other languages
Japanese (ja)
Other versions
JPH1069215A (en
Inventor
和郎 春山
竹夫 渋川
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP15890697A priority Critical patent/JP3613935B2/en
Publication of JPH1069215A publication Critical patent/JPH1069215A/en
Application granted granted Critical
Publication of JP3613935B2 publication Critical patent/JP3613935B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

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

Description

【0001】
【発明の属する技術分野】
本発明は、電子鍵盤楽器等の演奏練習に用いる演奏練習装置及びプログラムを記録した媒体に関する。
【0002】
【従来の技術】
演奏練習装置の一つとして、演奏者による押鍵操作と予め記憶されている同一曲の演奏データとを比較し、その比較結果に応じて曲の進行を制御するものがある。演奏者の押鍵操作が演奏データに一致しているときには曲の進行を続け、一致しないときには一致するまで曲の進行を中断する。
【0003】
一致の比較対象である演奏データは、ガイドトラックと呼ばれるトラックに記憶されている。ユーザは、上記の一致進行制御を行うか否かを選択することができる。
【0004】
一致進行制御を行う場合には、ガイドトラックに記憶されている演奏データ中の全ての音符(ノート)について一致進行制御を行う。一致進行制御を行わない場合には、全ての音符について一致進行制御を行わない。この場合、曲が中断されることはない。
【0005】
初心者が、装飾音や和音等を含む難しい曲について演奏練習を行うと、誤った押鍵操作が多くなったり、または演奏速度が遅くなったりする。その結果、曲が中々先に進まない。初心者は、簡単なフレーズの部分については、スムーズに演奏練習を行うことができるが、難しいフレーズの部分については演奏が滞る。演奏練習を行う曲の中に難しいフレーズがあり、曲が中々進行しないときには、演奏者は演奏練習が嫌になり、途中で練習を諦める場合が多い。
【0006】
また、上記の問題を解決するため、曲をアレンジし簡単なものにしてしまう手段が考えられる。この手段だと、初心者には都合が良いものとなるが、中級者または上級者には簡単すぎて、練習にならなくなってしまうという欠点がある。
【0007】
そこで、必ずしも曲の全部の音符について一致進行制御を行うのではなく、個々の音符について一致進行制御を行うか否かを決める方法が、特開平2−189572号公報に示されている。
【0008】
当該公報は、個々の音符に一致進行制御を行うか否かを決めるためのキューフラグを持たせる技術を開示している。しかし、キューフラグは、演奏データ中の各音符に付加されるので、データ量が増加してしまう。特に、音符の数が多い、すなわち長い曲については、データ量が大きく増加してしまう。
【0009】
また、キューフラグは、演奏データ中の各音符に付加されるものであるので、演奏データが特殊フォーマットを形成することになり、データの汎用性がなくなってしまう。演奏データは、通常、自動演奏用の演奏データを用いる。汎用性のある演奏データであれば、一般的な自動演奏装置を用いて再生することができる。ところが、キューフラグを付加し、演奏データの汎用性がなくなってしまうと、一般的な自動演奏装置では再生できなくなってしまう。
【0010】
【発明が解決しようとする課題】
演奏練習装置としての機能を充実させるため、個々の音符にキューフラグを付加すると、演奏データのデータ量が増加してしまう。また、キューフラグを付加すると、演奏データのフォーマットが専用になってしまうため、演奏データの汎用性がなくなってしまう。
【0011】
本発明の目的は、演奏データのデータ量を増加させず、かつ演奏データの汎用性を維持しつつ、充実した機能を有する演奏練習装置又はプログラムを記録した媒体を提供することである。
【0012】
【課題を解決するための手段】
本発明の一観点によれば、演奏練習装置は、演奏データ中から複数のビットで構成される第1のデータを検出する検出手段と、前記第1のデータを演奏情報として解釈し処理する第1の処理手段と、前記第1のデータの下位2ビットの4つの値をそれぞれ親指、人差し指、中指、及び薬指又は小指を指示する運指情報として解釈し、前記運指情報に基づき指を表す情報を表示する第2の処理手段とを有する。
【0013】
演奏データ中の第1のデータは、複数のビットで構成される。第1のデータの全ビットを演奏情報として解釈することができる。ただし、第1のデータの下位ビットは、形式的には演奏情報データの一部であっても、内容的には演奏情報としての意義を失っている。第1のデータの下位ビットは演奏練習情報として用いることができる。第1のデータの下位ビットは、演奏情報と演奏練習情報の2つの役割を兼ねている。第1のデータが2つの情報を兼ね備えることにより、2つの情報を別のデータ領域に格納する場合に比べ、演奏データのデータ量は少ない。また、第1のデータは、演奏情報としての汎用性を維持している。
【0014】
また、本発明の演奏練習装置は、演奏データを順次読み出す読み出し手段と、前記読み出し手段が演奏データ中からノートオンイベントを読み出すのに応じて、該ノートオンイベントに対応するノートオフイベント中のノートオフベロシティをサーチするサーチ手段と、前記サーチ手段がサーチしたノートオフベロシティを演奏練習情報として処理する演奏練習処理手段とを有する。
【0015】
ノートオフベロシティは、内容的にはベロシティデータとしての意義を失い、演奏練習情報としての意義を有する。ただし、ノートオフベロシティは、ベロシティデータとしての形式を維持しているので、演奏データとしての汎用性を維持している。演奏データは、演奏練習情報を有するので、演奏練習機能を付加することができる。ノートオンイベントを読み出すとき、対応するノートオフベロシティをサーチし、当該ノートオフベロシティを演奏練習情報として得ることができる。
【0016】
さらに、本発明の演奏練習装置は、ノートオンイベントとノートオフイベントを含む演奏データを変換し新たな演奏データを生成する手段であって、演奏データにおいてノートオフイベント中のノートオフベロシティに対応する演奏練習情報を、該ノートオフイベントに対応するノートオンイベントに関連付けて記憶する形式の演奏データを生成する演奏データ変換手段と、前記演奏データ変換手段が生成する演奏データを順次読み出す読み出し手段と、前記読み出し手段が演奏データ中からノートオンイベントを読み出すと、該ノートオンイベントに関連付けられた演奏練習情報を基に演奏練習の処理を行う演奏練習処理手段とを有する。
【0017】
ノートオフベロシティは、形式的にはベロシティデータであるが、内容的には演奏練習情報としての意義を有する。ノートオンイベントとそれに対応するノートオフベロシティは演奏データ中において離れた位置にあるので、まず前処理として演奏データの変換を行い、演奏データとしての意義を有するノートオフベロシティを対応するノートオンイベントに関連付けて記憶しておく。その後、演奏データを順次読み出し、ノートオンイベントを読み出したときには、関連付けられた演奏練習情報を容易に取得し、演奏練習のための処理を行うことができる。
【0018】
【発明の実施の形態】
図2は、本発明の実施例による演奏練習装置に用いる演奏データのフォーマット例を示す。このフォーマットは、スタンダードMIDIファイルと呼ばれているものであり、演奏データとしては汎用的なフォーマットである。
【0019】
演奏データ10は、ノートイベント1、タイミングデータ2、ノートイベント3、タイミングデータ4、エンドデータ5を有する。演奏データ10は、その他、コントロールチェンジまたはプログラムチェンジ等を含むことができる。
【0020】
ノートイベント1は、ノートオンイベントである。タイミングデータ2は、ノートイベント1とその次のノートイベント3との間の時間間隔を示す。ノートイベント3は、ノートオフイベントである。タイミングデータ4は、ノートイベント3とその次のノートイベント(図示せず)との間の時間間隔を示す。エンドデータ5は、演奏データ10の終了を示す。
【0021】
ノートイベント1と3は、共にMIDI形式のデータであり、3バイトのデータである。ノートオンイベント1は、第1バイトがノートオン1aであり、第2バイトがノートナンバ1bであり、第3バイトがベロシティ1cである。ノートオフイベント3は、第1バイトがノートオフ3aであり、第2バイトがノートナンバ3bであり、第3バイトがベロシティ3cである。
【0022】
本実施例では、ノートオンベロシティ1cまたはノートオフベロシティ3cの中に演奏練習フラグを埋め込む。演奏練習フラグは、演奏練習装置に演奏練習機能を付加するためのフラグである。
【0023】
図1(A)は、MIDI規格によるノートオンベロシティ1cの構成を示す。本実施例では、まず、同図のように、MIDI規格のノートオンベロシティ1cを準備する。なお、ノートオフベロシティ3cも同様の構成である。
【0024】
ノートオンベロシティ1cは、1バイト(8ビット)からなり、その最上位ビットは、必ず0である。これは、MIDI規格で決められているデータフォーマットである。下位7ビットのデータ6が実際のベロシティのデータである。ベロシティデータ6は、7ビットであり、0〜127の範囲の数値で示される。ベロシティデータ6は、通常、音量を表すものとして用いられる。ノートオンベロシティ1cは、市販されているソフトウエアから読み出したものでも電子楽器を用いて作成したものでもよい。
【0025】
図1(B)は、図1(A)のノートオンベロシティ1cに演奏練習フラグ7を埋め込んだ図である。演奏データ提供者は、図1(A)に示すノートオンベロシティ1cを準備した後、ノートオンベロシティ1cの下位2ビットを演奏練習フラグ7に書き換える。演奏練習フラグ7は、演奏者が設定または変更するようにしてもよい。
【0026】
ノートオンベロシティ1cは、2通りに用いることができる。1つは、通常のMIDI規格に従って下位7ビットまたは全ビットがベロシティデータ6として用いられる。もう1つは、下位2ビットが演奏練習フラグ7として用いられる。すなわち、ノートオンベロシティ1cの下位2ビットは、ベロシティデータ6の一部として使われると共に、演奏練習フラグ7としても使われる。演奏練習フラグ7は、下位2ビットに限定されず、下位1または3ビットでもよい。
【0027】
ベロシティデータ6は、一部のビットが演奏練習フラグ7に書き換えられてしまうので、ベロシティデータ6としての値にはわずかな誤差を含むことになる。演奏練習フラグ7を設定する前のベロシティデータ6(図1(A))は7ビットの精度を有するが、演奏練習フラグ7を設定した後のベロシティデータ6(図1(B))は上位5ビットの精度を有することになる。
【0028】
ただし、ベロシティ1cの下位ビットに演奏練習フラグ7を設定するので、ベロシティデータ6としての精度はわずかに悪くなるものの、ベロシティデータ6が全く別の値に変わってしまうことはない。ベロシティデータ6の下位の1または2ビットを演奏練習フラグ7として用いる程度であれば、聴覚上許容できる範囲である。
【0029】
ベロシティ1cの下位ビットに演奏練習フラグ7を設定すれば、データ量を増加させずに、演奏練習フラグ7を付加したのと同様の効果が得られる。また、ベロシティデータ6は、汎用性のある自動演奏装置においてもベロシティの値として用いることができるので汎用性が維持される。
【0030】
ノートオフベロシティ3cの下位ビットに演奏練習フラグを埋め込んでもよい。一般的に、ノートオフベロシティを利用しない(無視する)音源装置が多く、ノートオフベロシティは、ノートオンベロシティよりも重要性が低いので、さらに多くの下位ビット、極端な場合はベロシティデータの全ビット、を演奏練習フラグに書き換えてもよい。
【0031】
次に、演奏練習フラグ7の具体例を説明する。
(1)キューフラグ
ノートオンベロシティの下位1ビットを、キューフラグに用いる。キューフラグは、例えば演奏者による押鍵操作と演奏データとを比較し、曲の進行を制御するためのフラグである。
【0032】
キューフラグが1であるときには、そのノートオンに対応する音符(ノート)が押鍵一致進行のための判断を行う音符であることを示す。逆に、キューフラグが0であるときは、そのノートオンに対応する音符が押鍵一致進行のための判断を行わない音符であることを示す。
【0033】
キューフラグは、ノートオンの一致に応じて曲の進行を制御するものであり、鍵盤に限らず、ノートオンを生成することができる楽器であれば適用できる。
【0034】
(2)運指情報
ノートオンベロシティの下位2ビット(数値0〜3)、ないし3ビット(数値0〜7)を、運指情報に用いる。運指情報(3ビットの場合)は、例えば演奏者が押鍵すべき指を示し、0が親指、1が人差し指、2が中指、3が薬指、4が小指である。運指情報を表示器に表示させれば、演奏者は、適切な指遣いを練習することができる。3ビットの場合、さらに3種類の情報を識別することができるので、グリッサンド(手のひら、指)の情報などを含ませてもよい。
【0035】
なお、下位3ビットを運指情報に用いると、ノートオンベロシティの精度が悪くなってしまうので、下位2ビット(数値0〜3)を運指情報に用いるようにしてもよい。その場合、運指情報は、0が親指、1が人差し指、2が中指、3が薬指または小指とする。薬指と小指の区別はなくなるが、この区別はそれほど重要ではなく、それよりもノートオンベロシティの精度をそれほど低下させないことの利点は大きい。
【0036】
(3)右手/左手情報
ノートオンベロシティの下位1ビットを、右手/左手情報に用いる。右手/左手情報は、例えば演奏者が押鍵操作すべき手の情報であり、0が右手、1が左手である。右手と左手の別を曲の進行に合わせて表示すれば、演奏者は、右手と左手を適切に使い分ける練習を行うことができる。
【0037】
通常の演奏データは、右手のパートと左下のパートとを別のトラックに記録してあるので、左手のパートのみまたは右手のパートのみを再生することができる。しかし、右手用と左手用の2つのトラックが必要になる。
【0038】
右手/左手情報を設定すれば、1つのトラックに右手のパートと左手のパートの両方を記録することができる。右手のパートのみを再生したい場合には、右手情報が設定されている音符(ノート)のみを再生すればよい。右手/左手情報を設定することにより、使用するトラックの数を減らすことができる。例えば、トラック数の少ない再生または録音装置(例えば4または8トラック)においては、使用するトラックを減らすことができる効果は大きい。
【0039】
(4)音名情報(♯または♭)
ノートオンベロシティの下位1ビットを、音名情報に用いる。1つの黒鍵には、2通りの音名表現がある。例えば、C♯とD♭は、同じ黒鍵を表す。音名情報は、黒鍵を♯または♭のいずれで表すかを区別する。例えば、0が♯であり、1が♭である。演奏者は、その音名を♯または♭のいずれで表現するのが音楽的に正しいのかを学習することができる。
【0040】
(5)演奏補助情報
ノートオンベロシティの下位2ビットまたは3ビットを、演奏補助情報に用いる。演奏補助情報は、例えば、スタッカート、レガート、クレッシェンド、デクレッシェンド、pp、p、mp、mf、f、ffである。
【0041】
以上、5つの演奏練習フラグの例を示した。演奏練習フラグは、ノートオンベロシティ1cに設定する場合に限定されず、ノートオフベロシティ3c(図2)に設定するようにしてもよい。ノートオンベロシティは、通常、音量として用いられるが、ノートオフベロシティは、通常、使用されないことが多い。したがって、ノートオフベロシティに演奏練習フラグを設定する場合には、全てのビットを演奏練習フラグに用いてもよい。
【0042】
ただし、演奏練習フラグをノートオフベロシティに設定する場合は、以下の工夫を要する。演奏練習フラグをノートオンベロシティに設定するのであれば、発音開始を指示するためのノートオンに対応して、容易に演奏練習フラグの処理を行うことができる。それに対し、演奏練習フラグをノートオンベロシティ1c(図2)に設定するのではなく、その後に出現するノートオフベロシティ3c(図2)に設定する場合には、発音開始を指示するためのノートオンに対応させることが困難である。これは、ノートオンイベント1とノートオフイベント3(図2)の間に種々のデータが入る可能性があるからである。このような不都合を解消するためには、ある工夫が必要になる。この点については、後にフローチャートを参照しながら説明する。
【0043】
さらに、演奏練習フラグは、ノートオンベロシティまたはノートオフベロシティに限定されず、例えば、ボリュームやエフェクト等の他の制御情報の中に設定してもよい。
【0044】
図3は、本実施例による演奏練習装置の構成を示すブロック図である。
押鍵検出回路18は、鍵盤17における鍵操作およびその操作速度を検出し、ノートオンまたはノートオフ信号等を生成する。これらノートオンまたはノートオフ信号には鍵の押鍵速度または離鍵速度を示すベロシティ情報が含まれる。スイッチ検出回路20は、スイッチ19におけるスイッチ操作を検出し、スイッチ信号を生成する。
【0045】
バス25には、押鍵検出回路18およびスイッチ検出回路20の他、表示回路21、音源回路22、効果回路23、ROM11、RAM12、CPU13、タイマ14、MIDIインターフェース15、フロッピディスク駆動装置16が接続されている。これらの他、CD−ROMドライブや各種ネットワーク等を介して他のコンピュータ等とやりとりをするための通信インターフェースなどを備えてもよい。
【0046】
RAM12は、フラグまたはバッファ等を記憶するCPU13用のワーキングエリアを有する。ROM11は、各種パラメータまたはコンピュータプログラムを記憶する。CPU13は、ROM11に記憶されているコンピュータプログラムに従い、演算または制御を行う。なお、ROM11に記憶されているコンピュータプログラムに代えて、フロッピディスク、CD−ROM、他のコンピュータ等からプログラムを本装置にインストールし、該プログラムに基づいて演算または制御を行うようにしてもよい。
【0047】
タイマ14は、CPU13に接続される。CPU13は、タイマ14から供給される時間情報に応じて、所定の時間間隔でタイマ割り込み処理を行う。MIDIインターフェース15は、外部に対してMIDIデータを入出力することができる。
【0048】
図2に示した演奏データは、フロッピディスク駆動装置16またはROM11に記憶される。フロッピディスク駆動装置16に演奏データが記憶されている場合には、フロッピディスク駆動装置16からRAM12に演奏データがロードされてから、演奏データの再生処理が行われる。
【0049】
CPU13は、RAM12またはROM11に記憶されている演奏データを読み出し、楽音パラメータおよび効果パラメータをそれぞれ音源回路22および効果回路23に供給する。また、CPU13は、押鍵検出回路18で生成されるノートオン信号等やスイッチ検出回路20で生成されるスイッチ信号に応じて、楽音パラメータおよび効果パラメータを生成し、それぞれ音源回路22および効果回路23に供給する。
【0050】
音源回路22は、供給される楽音パラメータに応じて楽音信号を生成する。効果回路23は、供給される効果パラメータに応じて、音源回路22で生成される楽音信号に、例えばディレイやリバーブ等の効果を付与し、サウンドシステム24に供給する。サウンドシステム24は、D/A変換器およびスピーカを含み、供給されるデジタル形式の楽音信号をアナログ形式に変換し、発音する。
【0051】
なお、音源回路22は、波形メモリ方式、FM方式、物理モデル方式、高調波合成方式、フォルマント合成方式、VCO+VCF+VCAのアナログシンセサイザ方式等、どのような方式であってもよい。
【0052】
また、音源回路22は、専用のハードを用いて構成するものに限らず、DSP+マイクロプログラムを用いて構成してもよいし、CPU+ソフトウェアのプログラムで構成するようにしてもよい。
【0053】
さらに、1つの音源回路を時分割で使用することにより複数の発音チャンネルを形成するようにしてもよいし、1つの発音チャンネルにつき1つの音源回路で複数の発音チャンネルを構成するようにしてもよい。
【0054】
次に、演奏練習フラグの説明を行う。例えば、演奏データ中において、ノートオンベロシティの下位のビットに演奏練習フラグを設定する。演奏練習フラグとしてキューフラグを用いた場合、CPU13は、RAM12またはROM11に記憶されている演奏データと鍵盤17における押鍵操作とを比較し、一致する場合には曲を進行し、一致しない場合には曲の進行を中断する。
【0055】
演奏練習フラグとして、運指情報、右手/左手情報、音名情報、演奏補助情報等を用いる場合には、それらの情報を表示回路21に表示し、演奏者の演奏練習を補助する。
【0056】
演奏練習フラグは、演奏データ中に予め設定しておくことができる。また、演奏者が演奏練習フラグを設定または変更することができる。その場合は、表示回路21に表示されるエディット画面を用いて、個々のノートについて設定または変更を行うことができる。当該エディット画面は、シーケンサ用のエディット画面を用いることができる。
【0057】
また、人間の手作業により演奏練習フラグを設定する他、演奏データを所定のアルゴリズムによって解析することで演奏練習フラグを設定してもよいし、演奏者の各指にセンサを装着した状態で演奏を収録し、どの指、どちらの手で演奏したかを検出することができるようにして演奏練習フラグを設定してもよい。
【0058】
次に、ノートオンベロシティの一部に、キューフラグ、運指情報、右手/左手情報、音名情報をそれぞれ設定した場合についての処理を説明する。
【0059】
図4は、ノートオンベロシティの一部をキュー(一致進行)フラグとして使用した場合のメインルーチンのフローチャートである。
【0060】
ステップSA1では、フラグまたはレジスタ等のイニシャライズを行う。
ステップSA2では、一致進行処理を行う。一致進行処理は、演奏データの次の音に対応する鍵を所定時間経過しても演奏者が押鍵しないときに曲の進行を中断する処理である。詳細な処理は、後に図9を参照しながら説明する。
【0061】
ステップSA3では、演奏データ読み出し処理を行う。演奏データ読み出し処理は、RAMまたはROMに記憶されている演奏データを読み出し、読み出した演奏データの音に対応する鍵のLED等を点灯する処理である。詳細な処理は、後に図5、図7を参照しながら説明する。
【0062】
ステップSA4では、押鍵処理を行う。押鍵処理は、鍵盤における押鍵操作等を検出して、当該操作に応じた処理を行う。ノートオンを検出したときには、発音処理を行い、ノートオフを検出したときには消音処理を行う。演奏者が正しい押鍵操作を行わないために曲の進行が中断しているときにノートオンが検出されかつそのノートオンが演奏データの音に一致しているときには、曲の進行を再開する。詳細な処理は、後に図10を参照しながら説明する。
【0063】
ステップSA5では、その他処理を行う。その他処理は、例えば演奏練習のスタートを指示するための処理、テンポや音量の変更、各種モードの設定を行う。その後、ステップSA2へ戻り、上記の処理を繰り返す。
【0064】
演奏者による押鍵操作が演奏データと一致すれば曲が進行し、一致しなければ曲が停止する。
【0065】
図5は、図4のステップSA3における演奏データ読み出し処理の詳細を示すフローチャートである
ステップSB1では、再生タイマが0以下であるか否かをチェックする。再生タイマが0以下であることは、次のイベントのタイミングに達していることを意味する。再生タイマは、タイミング情報によって設定され、次に示す再生タイマ割り込み処理によりカウントが行われる。
【0066】
図6(A)は、再生タイマ割り込み処理を示すフローチャートである。この割り込み処理は、例えば10msの所定時間間隔で行われる。ステップSC1では、再生タイマの値をデクリメントする。その後、割り込み前の処理に戻る。再生タイマは、演奏練習のスタートが指示されると0に初期設定され、その後例えば10ms毎にデクリメントされる。
【0067】
図5に戻り、ステップSB1において、再生タイマが0以下であると判断されたときには、ステップSB2へ進む。ステップSB2では、RAMまたはROMに記憶されている演奏データからイベントを読み出す。1イベントとは、例えば図2に示すノートイベント1またはタイミングデータ2である。
【0068】
ステップSB3では、読み出したイベントがノートイベントであるか否かをチェックする。ノートイベントとは、ノートオン、ノートオフ等のイベントであり、例えば図2に示すノートイベント1または3である。ノートイベントであるときには、ステップSB4へ進み、ノートイベント処理を行う。ノートイベント処理は、ノートオンベロシティの一部に設定されているキューフラグの処理等を含む。詳細な処理は、後に図7を参照しながら説明する。その後、図4のメインルーチンの処理へ戻る。
【0069】
ステップSB3において、読み出したイベントがノートイベントでないと判断されたときには、ステップSB5へ進む。ステップSB5では、読み出したイベントがタイミングデータであるか否かをチェックする。タイミングデータとは、ノートイベントと次のノートイベントとの間の時間間隔を示し、例えば図2に示すタイミングデータ2または4である。読み出したイベントがタイミングデータであるときには、ステップSB6へ進む。
【0070】
ステップSB6では、該タイミングデータ×テンポ係数の値を、再生タイマに加算する。再生タイマは、図6(A)の割り込み処理により10ms単位でデクリメントされている。テンポ係数は、タイミングデータの単位を再生タイマの単位(10ms)に変換するための係数である。このようにして次のノートイベントまでの時間が再生タイマに設定される。その後、図4のメインルーチンの処理へ戻る。
【0071】
再生タイマに上記の値が加算されると、その後10ms間隔で再生タイマの値がデクリメントされる。ステップSB1では、再生タイマが0よりも大きい間は、演奏データのイベントを読み出さずに、図4のメインルーチンの処理へ戻る。再生タイマの値が0以下になったときには、次のイベントの読み出しタイミングがきたことを意味するので、ステップSB2へ進み、次のイベントを読み出し、上記と同様の処理を繰り返す。
【0072】
なお、ステップSB6において、再生タイマに所定の値を設定するのではなく、所定の値を加算している点に注意する必要がある。図5に示す演奏データ読み出し処理は、タイマ割り込み処理ではないので、通常一定時間間隔では行われない。つまり、ステップSB1において毎回再生タイマが0の時点でステップSB2へ進むのであれば、ステップSB6において再生タイマを所定の値に更新するようにしてもよいが、ステップSB1において再生タイマの値が負の時にステップSB2へ進む場合もあるので、ステップSB6においては再生タイマに所定の値を加算する必要がある。
【0073】
読み出したイベントが、ステップSB3においてノートイベントではないと判断され、かつステップSB5においてタイミングデータでないと判断されたときには、その他イベントであるので、ステップSB7へ進む。その他イベントは、例えばプログラムチェンジまたはコントロールチェンジ等である。
【0074】
ステップSB7では、その他イベントの処理を行う。例えば、その他イベントがプログラムチェンジである場合は、音色変更の処理を行う。その後、図4のメインルーチンの処理へ戻る。
【0075】
図7は、図5のステップSB4におけるノートイベント処理の詳細を示すフローチャートである。
【0076】
ステップSD1では、読み出したノートイベントがノートオンイベントであるか否かをチェックする。ノートオンイベントであるときには、ステップSD11へ進み、発音処理を行う。発音処理は、ノートオンイベントに含まれるノートナンバ(音高)およびノートオンベロシティ(音量)に応じた楽音パラメータを音源回路に供給し、サウンドシステムにおいて発音させる。
【0077】
ノートオンベロシティは、ベロシティデータ(音量)として解釈され処理される。ただし、ノートオンベロシティは、下位ビットにキュー(一致進行)フラグが設定されているので、ベロシティデータとしての精度は少し落ちる。なお、この発音処理は、演奏者の押鍵処理により発音される音と区別するため、小さい音量で発音させたり、異なる音色で発音させることができる。その後、ステップSD2へ進み、ガイドランプを点灯する。
【0078】
図15(A)に、ガイドランプの例を示す。鍵盤は、複数の鍵44を有する。複数の鍵44のそれぞれに一つずつガイドランプ42が設けられている。ガイドランプ42は、例えばLEDである。ノートオンイベントが読み出されると、それに対応するノートナンバのガイドランプ43が点灯する。ガイドランプ43を点灯することにより、次に押鍵すべき鍵を演奏者に知らせることができる。これは、演奏者のマニュアル演奏を助ける。
【0079】
ステップSD3は、キュー(一致進行)フラグをノートオフベロシティの下位ビットに設定した場合の処理である。この処理の説明は、後に行う。キューフラグをノートオンベロシティの下位ビットに設定した場合には、ステップSD3の処理を飛び越し、ステップSD4へ進む。
【0080】
ステップSD4では、ノートオンベロシティが奇数であるか偶数であるかをチェックする。ノートオンベロシティが奇数であることは、ノートオンベロシティの下位1ビットが1であることを示す。つまり、キューフラグが1であることを示す。その場合は、当該音符が一致進行のための判断をする音符であることを意味するので、ステップSD5へ進む。
【0081】
ステップSD5では、図8(A)に示す再生一致進行バッファにイベントを格納し、該イベントのタイマ値を0に設定する。例えば再生一致進行バッファに、読み出した演奏データのノートオンイベント1(図2)中のノートナンバ1b(例えばC4またはG4)を格納し、タイマ値を0に設定する。このタイマ値は、先の再生タイマ(図6(A))とは無関係であり、再生一致進行バッファに当該イベントが格納されてからの時間を表す。その後、図5(図4)のフローチャートの処理に戻る。
【0082】
ステップSD4において、ノートオンベロシティが偶数であると判断されたときには、ノートオンベロシティの下位1ビットが0であることを示す。つまり、キューフラグが0であることを示す。その場合は、当該音符が一致進行対象外の音符であることを意味するので、ステップSD6へ進む。
【0083】
ステップSD6では、一致進行モードが1であるか2であるかをチェックする。一致進行モードが1のときは上級者向けのモードであり、一致進行制御を全ての音符について行う。一致進行モードが2のときは初級者向けのモードであり、キューフラグに応じた所定の音符のみについて一致進行制御を行う。この一致進行制御モードは、図4のステップSA5におけるその他処理で設定される。
【0084】
一致進行モードが1であるときには、キューフラグの値にかかわらず、全ての音符について一致進行制御を行うので、ステップSD5へ進み、上記と同様に、再生一致進行バッファにイベントを格納し、タイマ値を0に設定する。
【0085】
すなわち、一致進行モードが1のときは、キューフラグが0であっても1であっても、必ずイベントを再生一致進行バッファに格納する。その後、図5(図4)のフローチャートの処理へ戻る。
【0086】
一致進行モードが2であるときには、キューフラグに応じて一致進行のための判断を行うか否かを決めるので、ノートオンベロシティが偶数、すなわちキューフラグが0のものについては、イベントを再生一致進行バッファに格納せずに、ステップSD6から図5(図4)のフローチャートの処理へ戻る。
【0087】
ステップSD1において、読み出したイベントがノートオンイベントでないと判断されたときには、ノートオフイベントであることを意味するので、ステップSD12へ進み、当該ノートオフイベントに対応する音の消音処理を行う。その後、ステップSD7へ進む。
【0088】
ステップSD7では、当該ノートオフイベントに対応するノートオンイベント読み出し時にステップSD2で点灯したガイドランプを消灯する。その後、図5(図4)のフローチャートの処理へ戻る。
【0089】
なお、キューフラグをノートオンベロシティの下位ビットではなく、ノートオフベロシティの下位ビットに設定する場合には、ステップSD3の処理を行う。ステップSD3は、ステップSD2においてガイドランプを点灯した後に行われる。
【0090】
ステップSD3では、上記で読み出したノートオンイベントに対応するノートオフイベントをサーチし、当該ノートオフイベント中のノートオフベロシティを得る。ステップSD4では、ノートオフベロシティが奇数であるか偶数であるかをチェックし、後は上記と同様な処理を行う。
【0091】
図9は、図4のステップSA2における一致進行処理の詳細を示すフローチャートである。
【0092】
ステップSE1では、一致進行タイマが0より大きいか否かをチェックする。一致進行タイマは、次に示す一致進行タイマ割り込み処理によりカウントが行われる。
【0093】
図6(B)は、一致進行タイマ割り込み処理を示すフローチャートである。この割り込み処理は、例えば10msの所定時間間隔で行われる。ステップSC2では、一致進行タイマの値をインクリメントする。その後、割り込み前の処理に戻る。一致進行タイマは、演奏練習のスタートが指示されると0に初期設定され、その後例えば10ms毎にインクリメントされる。
【0094】
図9に戻り、ステップSE1において、一致進行タイマが0より大きいと判断されたときには、一致進行制御を行うため、ステップSE2へ進む。一致進行タイマが0であるときには、一致進行処理を行わずに、図4のメインルーチンの処理へ戻る。このように、一致進行タイマを用いて一致進行制御のための負荷を軽減し、かつほぼ一定時間毎に一致進行制御を行わせる。
【0095】
ステップSE2では、一致進行タイマを0にリセットする。一致進行タイマは、次のインクリメント(図6(B))まで0となる。ステップSE2の処理は、後により詳しく説明するように、平均して一致進行タイマの単位時間(例えば10ms)間隔で通過することになる。
【0096】
ステップSE3では、ステップSE1およびSE2で述べた一致進行タイマとは別に、再生一致進行バッファ(図8(A))と手弾き一致進行バッファ(図8(B))の両方の全てのイベントについてのタイマ値をインクリメントする。
【0097】
既に述べたように、演奏データのイベントを格納するための再生一致進行バッファは、図7のステップSD5においてイベントを格納する。後に説明するが、手弾き一致進行バッファは、鍵盤における押鍵操作によるイベントを格納するバッファである。
【0098】
両バッファのタイマ値は、共に平均して10ms間隔でインクリメントされる。
【0099】
ステップSE4では、ポーズ判定を行い、ポーズ条件を満たしているか否かをチェックする。再生一致進行バッファ(図8(A))の中のイベントにおいて、タイマ値が所定値以上のものがあるときにはポーズ条件を満たすと判断する。
【0100】
バッファのタイマ値はステップSE3において約10ms毎にインクリメントされるので、タイマ値の1は10msに相当する。所定値が例えば50である場合は、500ms経過したイベントがバッファに残っているときにポーズ条件を満たすことになる。演奏者が、演奏データに対応する適切な鍵を500ms経過しても押鍵しないときには、ポーズ条件を満たし、ステップSE5へ進む。
【0101】
ステップSE5では、ポーズ設定を行う。具体的には、ポーズフラグを1にセットし、図6(A)に示す割り込み処理による再生タイマのデクリメントを停止する。その後、図4のメインルーチンの処理へ戻る。再生タイマのデクリメントを停止すれば、図5のステップSB1において、再生タイマが0以下にならないので、ステップSB2における演奏データの次のイベントの読み出しが停止され、曲の進行が停止する。
【0102】
すなわち、演奏データが読み出されてから例えば500ms経過しても、演奏者が当該演奏データに対応する鍵を押鍵しないときには、ポーズ設定により曲の進行が中断し、演奏者の適正な押鍵操作を待つ。
【0103】
ステップSE4において、ポーズ条件を満たさないと判断されたときには、ポーズ設定を行わずに、図4のフローチャートの処理へ戻る。
【0104】
次に、ステップSE1において平均して10ms毎にYES(ステップSE2)へ進む理由を説明する。一致進行タイマ(図6(B))は、例えば10ms毎にインクリメントされる。
【0105】
図9の一致進行処理は、タイマ割り込み処理ではないので、一定時間間隔では行われないが、平均して1ms間隔でステップSE1の判断が行われる場合を考える。その場合、一致進行タイマが1にインクリメントした後、次のインクリメントまで平均10回ステップSE1を通る。最初のステップSE1では、一致進行タイマが1なので、YES(ステップSE3〜SE5)へ進む。残り9回のステップSE1では、一致進行タイマが0にリセットされているため一致進行処理はスルーする。このようにして、ステップSE2〜SE5の処理は、約10msに1回行われることになる。
【0106】
図10は、図4のステップSA4における押鍵処理の詳細を示すフローチャートである。
【0107】
ステップSF1では、鍵盤上における鍵操作により生じたキーイベントがあるか否かをチェックする。キーイベントがあるときには、キーイベントの処理を行うため、ステップSF2へ進む。キーイベントがないときには、キーイベントの処理を行わずに、図4のメインルーチンへ戻る。
【0108】
ステップSF2では、上記のキーイベントがキーオンイベントであるか否かをチェックする。キーオンイベントであるときには、ステップSF11へ進む。
【0109】
ステップSF11では、当該キーオンイベントの発音処理を行う。発音処理は、キーオンイベントおよびそれに対応するパラメータを音源回路22および効果回路23(図3)に供給する処理である。サウンドシステム24では、当該キーオンイベントに応じて発音される。その後、ステップSF3へ進む。
【0110】
ステップSF3では、図8(B)に示す手弾き一致進行バッファに上記のイベントを格納し、該イベントのタイマ値を0に設定する。手弾き一致進行バッファには、ノートナンバとして例えばA3を格納し、タイマ値を0に設定する。このタイマ値は、当該バッファにイベントが格納されてからの時間を表すものであり、その後、図9のステップSE3においてインクリメントされる。
【0111】
ステップSF4では、再生一致進行バッファ(図8(A))と手弾き一致進行バッファ(図8(B))のイベントを比較する。再生一致進行バッファには、演奏データのイベントが格納され、手弾き一致進行バッファには演奏者の鍵盤操作によるイベントが格納される。
【0112】
ステップSF5では、両バッファに一致するイベントがあるか否か、すなわち同じノートナンバのイベントがあるか否かをチェックする。一致するイベントがないときには、図4のメインルーチンの処理へ戻る。一致するイベントがあるときには、演奏者が正しい鍵を押鍵したことを意味するので、ステップSF6へ進み、一致するイベントを両バッファから削除する。
【0113】
ステップSF7では、現在ポーズ中であるか否かをチェックする。ポーズ中でないときには、図4のメインルーチンの処理へ戻る。ポーズ設定は、図9のステップSE5において行われる。ポーズフラグが1にセットされているときには、ポーズ中であると判断する。ポーズ中に正しいキーオンがなされたときはポーズを解除するため、ステップSF8へ進む。
【0114】
ステップSF8では、ポーズ解除を行う。具体的には、ポーズフラグを0にリセットする。そして、図9のステップSE5で停止された再生タイマのデクリメントを再開する。再生タイマのデクリメントを再開すれば、再び演奏データの読み出しが再開し(図5のステップSB2)、曲が進行する。その後、図4のメインルーチンの処理へ戻る。
【0115】
ステップSF2においてキーオフイベントが検出されたときには、ステップSF12へ進む。ステップSF12では、当該キーオフイベントに対応する音の消音処理を行う。その後、ステップSF9へ進む。
【0116】
ステップSF9では、手弾き一致進行バッファ(図8(B))から当該キーオフイベントに対応するキーオンイベントを削除する。なお、演奏者が正しい押鍵をしたときには、ステップSF6において当該イベントが手弾き進行バッファおよび再生一致進行バッファから削除される。演奏者が誤った押鍵をしたときには、ステップSF9において当該イベントが手弾き進行バッファから削除される。その後、図4のメインルーチンの処理へ戻る。
【0117】
なお、キューフラグに応じてノートナンバ用一致進行バッファを用いて一致進行を制御する場合を説明したが、その際、ノートナンバが一致するか否かにより進行を制御すると共に進行速度を制御してもよい。
【0118】
以上は、演奏練習フラグ(例えばキューフラグ)をノートオンベロシティまたはノートオフベロシティの一部に設定する場合について説明した。演奏練習フラグをノートオフベロシティの一部に設定する場合には、ノートオンイベントが検出された時点で、対応するノートオフイベントのベロシティをサーチし、ノートオフベロシティ中の演奏フラグの判断を行った。
【0119】
次に、演奏練習フラグをノートオフベロシティに設定した場合の他の例を示す。演奏練習の処理を行う前に、前処理として、ノートオフベロシティに含まれている演奏練習フラグを読み出して、当該ノートオフに対応するノートオンの後に格納する処理を行う。
【0120】
図11は、処理前の演奏データ10と処理後の演奏データ30を示す。
処理前の演奏データ10は、図2と同じスタンダードMIDIファイルの形式であり、ノートオンイベント1とそれに対応するタイミングデータ2とノートオフイベント3とそれに対応するタイミングデータ4を有する。ノートオフイベント3は、ノートオンイベント1によるノートオンをノートオフするためのイベントである。
【0121】
演奏練習フラグは、ノートオフベロシティ3cの一部に設定されている。通常、ノートオフベロシティ3cの値は演奏データとして用いられないことが多いので、ノートオフベロシティ3cの全ビットを演奏練習フラグに用いてもよい。
【0122】
処理後の演奏データ30は、演奏データ10に演奏練習フラグ31を付加したものである。処理前において、演奏データ10は、ノートオフベロシティ3c中に演奏練習フラグを有する。処理後において、演奏データ30は、ノートオンイベント1とそのタイミングデータ2との間に演奏練習フラグ31を有する。
【0123】
演奏練習フラグ31をノートオンイベント1の直後に設けることにより、ノートオンイベント1を読み出した時点で、直ちに演奏練習フラグ31を判断することができる。
【0124】
図12は、演奏データ10から演奏データ30へのデータ変換の処理を示すフローチャートである。
【0125】
ステップSG1では、演奏データ10からイベントを読み出す。例えば、ノートオンイベント、ノートオフイベントまたはタイミングデータである。
【0126】
ステップSG2では、読み出したイベントがノートオンイベントであるか否かをチェックする。ノートオンイベントであるときには、ステップSG3で演奏データ30を生成するためのバッファにノートオンイベントを転送する。
【0127】
ステップSG4では、上記の演奏データ30用のバッファにおいてノートオンイベントの後に1バイトの空白バイトを作成する。その後、ステップSG1へ戻り、演奏データ10から次のイベントを読み出す。
【0128】
ステップSG2において読み出したイベントがノートオンイベントでないと判断されたときには、ステップSG5へ進む。ステップSG5では、読み出したイベントがノートオフイベントであるか否かをチェックする。ノートオフイベントであるときには、ステップSG6へ進む。
【0129】
ステップSG6では、当該ノートオフイベントに含まれるノートオフベロシティ中の演奏練習フラグを演奏データ10から読み出す。ステップSG7では、当該演奏練習フラグを対応ノートオンの空白バイトに書き込む。空白バイトは、ステップSG4においてノートオンイベントの後に既に生成されている。
【0130】
ステップSG8では、当該ノートオフイベントを演奏データ30用のバッファに転送する。その後、ステップSG1へ戻り、次のイベントについて処理を繰り返す。
【0131】
ステップSG5において読み出したイベントがノートオフイベントでないと判断されたときには、タイミングデータ、エンドデータまたはコントロールチェンジ等であるので、ステップSG9へ進み、当該イベントを演奏データ30用のバッファに転送する。
【0132】
ステップSG10では、当該イベントがエンドデータであるか否かをチェックする。エンドデータでないときには、ステップSG1へ戻り、次のイベントについて処理を繰り返す。エンドデータであるときには、演奏データの終了を意味するので、処理を終了する。
【0133】
このフローチャート全体の処理は、図4のメインルーチンのステップSA5におけるその他処理において行われる。具体的には、演奏者が演奏練習のスタートスイッチを押した後に行われ、その後、前述の演奏練習の処理が行われる。演奏練習の処理は、前述の通り、ノートオンベロシティ中に演奏練習フラグが設定されている場合と同様の処理である。
【0134】
上記の方法により、データ変換を行った場合は、元来ノートオフベロシティに演奏練習フラグが設定されているが、変換後のデータについてはノートオンベロシティに演奏練習フラグが設定されているものとして扱うことができる。しかも、ノートオンベロシティ自体にはフラグが設定されていないので、ノートオンベロシティの精度が低下しない。
【0135】
なお、ノートオフベロシティをノートオンイベントと対応させて記憶する方法は上述した方法に限られるものではない。例えば、次のような方法も可能である。
【0136】
まず、予めノートナンバとノートオフベロシティを、ノートオンイベントの出現順に記憶させる配列を用意する。この配列は、1曲全体のノートナンバとノートオフベロシティを記憶させるだけの容量を用意してもよいし、所定数(例えば16個)のノートナンバとノートオフベロシティのみを記憶させるだけの容量を用意し、演奏練習の進行とともに、使用済みの領域を新たなデータの記憶に利用するリングバッファ形式としてもよい。
【0137】
そして、前処理として、演奏練習の開始前に、演奏データを読み出し、ノートオンイベントを見つけたら、該ノートオンイベントに含まれるノートナンバを配列中のノートナンバ領域に記憶させ、ノートオフイベントを見つけたら、該ノートオフイベントに含まれるノートオフベロシティの値を、該ノートオフイベントに含まれるノートナンバと同一ノートナンバを直前に記憶させた配列中の位置に対応するノートオフベロシティ領域に書き込む。
【0138】
このような処理により、ノートオンイベントの出現順に、ノートナンバ、ノートオフベロシティを記憶させた配列ができあがる。そして、演奏練習の際、ノートオンイベントが読み出されたときにこの配列を参照し、順番に対応するノートオフベロシティを読み出すようにすればよい。
【0139】
なお、配列の数を所定数に限定した場合は、演奏練習の進行とともに、配列中の使用済みとなった領域に、新たにノートナンバとノートオフベロシティを記憶させる処理を適宜並行して行えばよい。また、ノートオンイベントの出現順にノートナンバとノートオフベロシティを記憶させるようにしたが、ノートオンイベントの出現順にノートオフイベントが並んでいることになるので、ノートナンバをあえて記憶させなくてもよい。この場合、ノートオフイベントを記憶させる配列を作成する際に、ノートオンイベントの出現順にノートオフベロシティが記憶されるように、適宜記憶順序を管理しながら配列作成処理を行うようにすればよい。
【0140】
以上は、演奏練習フラグの一例としてキューフラグを用いる場合を説明した。次に、演奏練習フラグの他の例として、運指識別フラグ(運指情報)を用いる場合を説明する。
【0141】
図13は、運指識別フラグを用いる場合のメインルーチンの処理を示すフローチャートである。このメインルーチンは、図4のメインルーチンと一部重複している。
【0142】
ステップSA1では、フラグまたはレジスタ等のイニシャライズを行う。ステップSA3では、演奏データ読み出し処理を行う。ステップSA5では、その他処理を行う。その後、ステップSA3へ戻り、処理を繰り返す。
【0143】
なお、図4におけるステップSA2の一致進行処理を省略しているが、同様な処理を行ってもよい。また、図4のステップSA4に対応する押鍵処理は、図13のステップSA5のその他処理で行われる。
【0144】
図13のステップSA3における演奏データ読み出し処理は、具体的には、先に示した図5のフローチャートの処理である。ただし、図5のステップSB4のノートイベント処理は、キューフラグの場合と異なり、図14に示す通りである。
【0145】
図14は、運指識別フラグを用いた場合のノートイベント処理の詳細を示すフローチャートである。運指識別フラグが2ビットである場合を説明する。
【0146】
ステップSI1では、先に読み出したイベントがノートオンイベントであるか否かをチェックする。ノートオンイベントであるときには、ステップSI11へ進み、発音処理を行う。発音処理は、ノートオンイベントに含まれるノートナンバ(音高)およびノートオンベロシティ(音量)に応じた楽音パラメータを音源回路に供給し、サウンドシステムにおいて発音させる。
【0147】
ノートオンベロシティは、ベロシティデータ(音量)として解釈され処理される。ただし、ノートオンベロシティは、下位ビットに運指識別フラグが設定されているので、ベロシティデータとしての精度は少し落ちる。その後、ステップSI2へ進み、当該ノートオンイベント中のノートナンバ1b(図2)に対応する鍵のガイドランプを点灯する。
【0148】
図15(A)は、ガイドランプの点灯例を示す。鍵盤は、複数の鍵44を有する。ガイドランプ42は、例えばLEDであり、複数の各鍵44のそれぞれに一つずつ設けられる。ノートオンイベントが読み出されると、ノートオンイベント中のノートナンバに対応するガイドランプ43が点灯する。ガイドランプ42は、演奏者が次に押鍵すべき鍵を知らせる。液晶表示器(LCD)41は、後に示す処理により、演奏者が押鍵すべき指の番号を表示する。なお、LCD41は、全鍵について1つ設けてもよいし、各鍵に1つずつ設けてもよい。
【0149】
図14のフローチャートに戻り、運指識別フラグをノートオンベロシティの下位2ビットに設定するか、またはノートオフベロシティの下位2ビットに設定するかにより処理は異なる。
【0150】
ノートオンベロシティに設定した場合には、ステップSI3の処理を飛び越し、ステップSI4へ進む。ノートオフベロシティに設定した場合には、ステップSI3の処理を行ってから、ステップSI4へ進む。
【0151】
ステップSI3では、上記で読み出したノートオンイベントに対応するノートオフイベントをサーチし、当該ノートオフイベント中のノートオフベロシティを得る。
【0152】
ステップSI4では、ノートオンベロシティまたはノートオフベロシティの下位2ビットである運指識別フラグの値をチェックする。
【0153】
下位2ビットの値が0であるときには、ステップSI5へ進み、親指を意味する「1」をLCD41(図15(A))に表示し、図5の処理へ戻る。
【0154】
下位2ビットの値が1であるときには、ステップSI6へ進み、人差し指を意味する「2」をLCD41(図15(A))に表示し、図5の処理へ戻る。
【0155】
下位2ビットの値が2であるときには、ステップSI7へ進み、中指を意味する「3」をLCD41(図15(A))に表示し、図5の処理へ戻る。
【0156】
下位2ビットの値が3であるときには、ステップSI8へ進み、薬指または小指を意味する「4または5」をLCD41(図15(A))に表示し、図5の処理へ戻る。
【0157】
運指識別フラグは、2ビットに限定されず3ビットでもよい。運指識別フラグを2ビットにした場合には、薬指と小指の識別をすることができないが、運指識別フラグを3ビットにした場合には、薬指と小指を識別、すなわち5本の指を識別することができる。
【0158】
ステップSI1において読み出したノートイベントがノートオンイベントでないと判断されたときには、ノートオフイベントであることを意味するので、ステップSI12へ進み、当該ノートオフイベントに対応する音の消音処理を行う。その後、ステップSI9へ進む。
【0159】
ステップSI9では、ノートオフイベントに対応するガイドランプ43(図15(A))を消灯する。その後、図5の処理へ戻る。
【0160】
図15(B)は、図15(A)とは異なる、他の表示例を示す。
表示器は、例えばパソコンに接続された表示器、または鍵盤上に設けられた大きなLCDである。表示器には、複数の鍵46とロール譜45が表示される。ロール譜45は、いわゆるピアノロール譜を縦に表示したものであり、演奏データのノートオン情報および運指情報を表す。
【0161】
ロール譜45は、時間の経過と共に矢印ARの方向(図の下方向)にスクロール表示される。複数の鍵46は、スクロールせず、固定された位置に表示される。ロール譜45において、時間t0は現在のノートオン情報等を指示する。時間軸は、図の上方向に向いており、時間t0,t1,t2の順に時間は経過する。
【0162】
表示50は、F♯の音が時刻t1でノートオンし、時刻t2でノートオフすることを意味する。表示50の下の表示「2」は、運指情報であり、人差し指で押鍵すべきことを示唆する。
【0163】
表示49は、D♯の音のノートオン情報を表す。表示49の下の表示「1」は、運指情報であり、親指で押鍵すべきことを示唆する。
【0164】
表示48は、C♯の音のノートオン情報を表す。C♯の音は、現在の時刻t0においてノートオン中であることを示す。当該ノートオンに対応する鍵47は色付け等される。鍵47は、演奏者が現在押鍵すべき鍵である。
【0165】
なお、運指情報は、指番号で表示する利用形態に限定されない。例えば、手の形の表示、手を置く位置の表示、フレーズ分割等に利用してもよい。手の形は、運指情報に基づく鍵の押さえ方により変化する。手を置く位置は、運指情報に基づき、手をどの辺りに置けば押鍵しやすいかを示す。フレーズ分割は、運指情報をフレーズ分割のための条件の1つとしてメロディを所定フレーズに分割するものであり、分割したフレーズは繰り返し演奏や和音検出の区間に使用される。
【0166】
次に、演奏練習フラグの例として、左右手識別フラグ(右手/左手情報)を用いる場合を説明する。図13のメインルーチンの処理と図5の演奏データ読み出し処理は、そのまま適用することができる。図5のステップSB4のノートイベント処理は、上記の場合と異なり、図16に示す通りである。
【0167】
図16は、左右手識別フラグを用いた場合のノートイベント処理の詳細を示すフローチャートである。
【0168】
ステップSJ1では、先に読み出したイベントがノートオンイベントであるか否かをチェックする。ノートオンイベントであるときには、ステップSJ11へ進み、発音処理を行う。発音処理は、ノートオンイベントに含まれるノートナンバ(音高)およびノートオンベロシティ(音量)に応じた楽音パラメータを音源回路に供給し、サウンドシステムにおいて発音させる。
【0169】
ノートオンベロシティは、ベロシティデータ(音量)として解釈され処理される。ただし、ノートオンベロシティは、下位ビットに左右手識別フラグが設定されている場合は、ベロシティデータとしての精度は少し落ちる。その後、以下の条件に応じて、ステップSJ2またはステップSJ3へ進む。
【0170】
左右手識別フラグをノートオンベロシティに設定した場合には、ステップSJ2の処理を飛び越し、ステップSJ3へ進む。左右手識別フラグをノートオフベロシティに設定した場合には、ステップSJ2の処理を行ってから、ステップSJ3へ進む。
【0171】
ステップSJ2では、上記で読み出したノートオンイベントに対応するノートオフイベントをサーチし、当該ノートオフイベント中のノートオフベロシティを得る。
【0172】
ステップSJ3では、ベロシティが奇数か否かをチェックする。すなわち、ベロシティの下位1ビットに設定されている左右手識別フラグが1か否かをチェックする。左右手識別フラグは、ノートオンベロシティまたはノートオフベロシティの下位1ビットである。
【0173】
ベロシティが奇数であるときには、左手を意味するので、ステップSJ4へ進み、表示器に「左手」を表示する。その後、図5の処理へ戻る。ベロシティが偶数であるときには、右手を意味するので、ステップSJ5へ進み、表示器に「右手」を表示する。その後、図5の処理へ戻る。
【0174】
図17は、左手または右手の表示例を示す。鍵盤は、複数の鍵56を有する。複数の鍵56のそれぞれに対応して、一つずつ表示器55が設けられる。表示器52に「L」が表示されれば、表示器52に対応する鍵51を左手で押鍵すべきことを演奏者に示唆する。表示器54に「R」が表示されれば、表示器54に対応する鍵53を右手で押鍵すべきことを演奏者に示唆する。
【0175】
なお、図15(B)の表示と同様な表示を行ってもよい。例えば、表示49の下の表示「1」の代わりに「L1」を表示し、左手(L)の親指(1)で押鍵すべきことを演奏者に示唆する。
【0176】
図16のフローチャートに戻り、ステップSJ1において読み出したイベントがノートオンイベントでないと判断されたときには、ノートオフイベントであることを意味するので、ステップSJ12へ進み、当該ノートオフイベントに対応する音の消音処理を行う。その後、ステップSJ6へ進む。
【0177】
ステップSJ6では、表示器の当該ノートオフイベントに対応する表示を消灯する。その後、図5の処理へ戻る。
【0178】
次に、演奏練習フラグの他の例として、音名識別フラグ(音名情報)を用いる場合を説明する。音名識別フラグは、黒鍵の音名を♯または♭のいずれで表現するのかを示す。図13のメインルーチンの処理と図5の演奏データ読み出し処理は、そのまま適用することができる。図5のステップSB4のノートイベント処理は、上記の場合と異なり、図18に示す通りである。
【0179】
図18は、音名識別フラグを用いた場合のノートイベント処理の詳細を示すフローチャートである。
【0180】
ステップSK1では、先に読み出したイベントがノートオンイベントであるか否かをチェックする。ノートオンイベントであるときには、ステップSK11へ進み、発音処理を行う。発音処理は、ノートオンイベントに含まれるノートナンバ(音高)およびノートオンベロシティ(音量)に応じた楽音パラメータを音源回路に供給し、サウンドシステムにおいて発音させる。
【0181】
ノートオンベロシティは、ベロシティデータ(音量)として解釈され処理される。ただし、ノートオンベロシティは、下位ビットに音名識別フラグが設定されている場合は、ベロシティデータとしての精度は少し落ちる。その後、以下の条件により、ステップSK2またはステップSK3へ進む。
【0182】
音名識別フラグをノートオンベロシティに設定した場合には、ステップSK2の処理を飛び越し、ステップSK3へ進む。音名識別フラグをノートオフベロシティに設定した場合には、ステップSK2の処理を行ってから、ステップSK3へ進む。
【0183】
ステップSK2では、上記で読み出したノートオンイベントに対応するノートオフイベントをサーチし、当該ノートオフイベント中のノートオフベロシティを得る。
【0184】
ステップSK3では、上記で読み出したノートオンイベント中のノートナンバ1b(図2)が黒鍵または白鍵のいずれを示すものであるのかをチェックする。黒鍵の場合は、その音名を♯または♭のいずれで表現すべきかを決めるため、ステップSK5へ進む。
【0185】
ステップSK5では、ベロシティが奇数か否かをチェックする。すなわち、ノートオンベロシティまたはノートオフベロシティの下位1ビットである音名識別フラグが1か否かをチェックする。
【0186】
ベロシティが奇数であるときには、♭を意味するので、ステップSK6へ進み、表示器に音名を♭で表示または発音する。表示する場合は、例えば「D♭」と表示する。発音する場合は、例えば「ディー・フラット」と発音する。その後、図5の処理へ戻る。
【0187】
ベロシティが偶数であるときには、♯を意味するので、ステップSK7へ進み、表示器に音名を♯で表示または発音する。表示する場合は、例えば「C♯」と表示する。発音する場合は、例えば「シー・シャープ」と発音する。その後、図5の処理へ戻る。
【0188】
ステップSK3においてノートオンイベントに対応する鍵が白鍵であると判断される場合には、♭も♯も付かないので、ステップSK4へ進む。ステップSK4では、表示器に音名を表示または発音する。表示する場合は、例えば「C」と表示する。発音する場合は、例えば「シー」と発音する。その後、図5の処理へ戻る。
【0189】
ステップSK1において読み出したイベントがノートオンイベントでないと判断されたときには、ノートオフイベントであることを意味するので、ステップSK12へ進み、当該ノートオフイベントに対応する音の消音処理を行う。その後、ステップSK8へ進む。
【0190】
ステップSK8では、表示器の当該ノートオフイベントに対応する表示を消灯する。その後、図5の処理へ戻る。
【0191】
図19は、音名を表示する例を示す。鍵盤は、複数の鍵61を有する。複数の鍵61のそれぞれには、一つずつ表示器62が設けられる。表示器64は、黒鍵63に対応するものであり、音名識別フラグに応じて、「D♭」または「C♯」と表示される。
【0192】
ノートオンベロシティ等にキューフラグを設定する例と、ノートオンベロシティ等に運指情報の設定する例等とを別々に示したが、キューフラグや運指情報等の複数種類の演奏練習フラグを1つのノートオンベロシティ等に設定してもよい。
【0193】
ノートオンベロシティに演奏練習フラグを設定する場合には、ノートオンベロシティデータの精度を考慮し下位1〜3ビットに設定するのが好ましい。より好ましくは、ノートオンベロシティの下位1または2ビットに演奏練習フラグを設定するのがよい。
【0194】
ノートオフベロシティに演奏練習フラグを設定する場合には、全ビット(7ビット)に演奏練習フラグを設定することができる。
【0195】
ノートオンベロシティ、ノートオフベロシティの他、ボリュームやエフェクトの制御情報等にも演奏練習フラグを設定することができる。
【0196】
上記複数の実施例では、演奏データ中に演奏練習フラグ独自のデータ領域を新たに設けるのではなく、ノートオンベロシティまたはノートオフベロシティ等の一部または全部に設定することにより、演奏データのデータ量を増加させることなく、演奏練習機能を付加することができる。
【0197】
また、演奏練習フラグをノートオンベロシティ等の一部に設定するので、汎用の演奏データのフォーマットを崩さず、演奏データに演奏練習フラグを付加することができる。
【0198】
演奏データは、汎用の演奏データ(例えばスタンダードMIDIファイル)との互換性を保っているので、演奏練習機能を有しない一般の自動演奏装置にも広く活用することができる。本実施例による演奏練習装置を用いた場合には、自動演奏の他、さらに音符毎に一致進行制御をしたり、運指識別、左右手の識別、黒鍵の♯または♭の識別等の演奏練習機能を付加することができる。
【0199】
なお、上記複数の実施例では、音符毎に演奏練習フラグを設定する場合について説明したが、フレーズまたは小節毎に演奏練習フラグを設定してもよい。その場合、フレーズの先頭に演奏練習フラグを設定、あるいは小節の最初の音符(ノート)に演奏練習フラグを設定することができる。フレーズ分割装置等を用いれば、演奏練習フラグを所定の位置に自動的に設定することも可能である。
【0200】
また、ノートオンベロシティまたはノートオフベロシティ等は、全ビットをベロシティデータ(演奏情報)等として解釈する場合に限定されず、下位ビットの演奏練習フラグを除いた上位ビットのみをベロシティデータ(演奏情報)等として解釈してもよい。ただし、汎用性のある自動演奏装置との互換性を考慮すれば、全ビットを演奏情報に用いることが好ましい。
【0201】
また、ノートオンベロシティとノートオフベロシティのどちらに演奏練習フラグを設定したか、あるいは設定したフラグの種類は何かを示す情報を演奏データの一部(例えば、ヘッダ部等)に記憶させてもよい。このようにすると、フラグを誤って解釈するおそれがなくなる。
【0202】
演奏練習装置は、電子楽器の形態に限らず、パソコンとアプリケーションソフトウエアとによる形態でもよい。また、演奏練習装置は、音源装置や自動演奏装置等と共に電子楽器に内蔵されている場合に限らず、それぞれが別体の装置であり、MIDIや各種ネットワーク等の通信手段を用いて各装置を接続するようなものであってもよい。さらに、自動演奏ピアノに適用することもできる。
【0203】
演奏データのフォーマットは、スタンダードMIDIファイルの他、「イベント+相対時間」、「イベント+絶対時間」、「音高+符長」、「ベタ方式」等の形式でもよい。
【0204】
自動演奏のテンポを変更する方法は、テンポクロックの周期を変更するものや、テンポクロックの周期をそのままにしてタイミングデータの値を修正するものや、1回の処理においてタイミングデータをカウントする値を変更するものであってもよい。
【0205】
自動演奏データは、複数のチャンネルのデータが混在した形式であってもよいし、各チャンネルのデータがトラック毎に別れているような形式であってもよい。
【0206】
以上実施例に沿って本発明を説明したが、本発明はこれらに制限されるものではない。例えば、種々の変更、改良、組み合わせ等が可能なことは当業者に自明であろう。
【0207】
【発明の効果】
以上説明したように、本発明によれば、演奏データ中のデータの下位ビットを演奏練習情報に書き換えるので、演奏データとしての汎用性は維持される。また、演奏練習情報のための特別なデータ領域を確保する必要がないので、演奏データのデータ量を増加させずに演奏データに演奏練習情報を付加することができる。演奏練習情報は、演奏練習装置に演奏練習機能を付加することができる。
【図面の簡単な説明】
【図1】図1(A)はMIDI規格のノートオンベロシティの構成を示す図であり、図1(B)は本発明の実施例による演奏練習フラグを埋め込んだノートオンベロシティの構成を示す図である。
【図2】本実施例による演奏練習装置に用いる演奏データのフォーマット例を示す図である。
【図3】本実施例による演奏練習装置の構成を示すブロック図である。
【図4】ノートオンベロシティの一部をキュー(一致進行)フラグとして使用する場合のメインルーチンのフローチャートである。
【図5】図4のステップSA3における演奏データ読み出し処理の詳細を示すフローチャートである
【図6】図6(A)は再生タイマ割り込み処理を示すフローチャートであり、図6(B)は一致進行タイマ割り込み処理を示すフローチャートである。
【図7】図5のステップSB4におけるノートイベント処理の詳細を示すフローチャートである。
【図8】図8(A)は再生一致進行バッファの構成を示す図であり、図8(B)は手弾き一致進行バッファの構成を示す図である。
【図9】図4のステップSA2における一致進行処理の詳細を示すフローチャートである。
【図10】図4のステップSA4における押鍵処理の詳細を示すフローチャートである。
【図11】ノートオフベロシティの一部に演奏練習フラグを設定する例を示す図である。
【図12】演奏データのデータ変換処理を示すフローチャートである。
【図13】運指識別フラグを用いる場合のメインルーチンの処理を示すフローチャートである。
【図14】運指識別フラグを用いた場合のノートイベント処理の詳細を示すフローチャートである。
【図15】図15(A)と図15(B)は運指情報の表示例を示す図である。
【図16】左右手識別フラグを用いた場合のノートイベント処理の詳細を示すフローチャートである。
【図17】左右手情報の表示例を示す図である。
【図18】音名識別フラグを用いた場合のノートイベント処理の詳細を示すフローチャートである。
【図19】音名情報の表示例を示す図である。
【符号の説明】
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 演奏練習フラグ、 41 液晶表示器(LCD)、 42 LED
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a performance practice device used for performance practice of an electronic keyboard instrument or the like and a medium on which a program is recorded.
[0002]
[Prior art]
As one of the performance practice devices, there is a device that compares a key pressing operation by a performer with performance data of the same song stored in advance and controls the progress of the song according to the comparison result. When the player's key pressing operation matches the performance data, the music continues to progress, and when it does not match, the music progress is interrupted until they match.
[0003]
The performance data to be compared is stored in a track called a guide track. The user can select whether or not to perform the matching progress control.
[0004]
When the coincidence progress control is performed, the coincidence progress control is performed for all the notes (notes) in the performance data stored in the guide track. When matching progress control is not performed, matching progress control is not performed for all the notes. In this case, the song is not interrupted.
[0005]
When beginners practice playing difficult songs including decoration sounds and chords, erroneous key press operations increase or the performance speed slows down. As a result, the song does not go forward. Beginners can practice smoothly for simple phrase parts, but performance is delayed for difficult phrase parts. When there are difficult phrases in a song to be practiced, and the song does not progress well, the performer often dislikes practice and often gives up practice.
[0006]
In order to solve the above problem, a means for arranging songs to be simple can be considered. This means that it is convenient for beginners, but it is too easy for intermediate or advanced users to practice.
[0007]
Therefore, Japanese Patent Application Laid-Open No. 2-189572 discloses a method for determining whether or not to perform the coincidence progress control for each note, not necessarily performing the coincidence progression control for all the notes of the song.
[0008]
The gazette discloses a technique for providing a cue flag for deciding whether or not to perform coincidence progress control for each note. However, since the cue flag is added to each note in the performance data, the amount of data increases. In particular, the data amount increases greatly for a large number of notes, that is, a long song.
[0009]
Further, since the cue flag is added to each note in the performance data, the performance data forms a special format, and the versatility of the data is lost. As performance data, performance data for automatic performance is usually used. General-purpose performance data can be reproduced using a general automatic performance device. However, if the cue flag is added and the versatility of the performance data is lost, it cannot be played back by a general automatic performance device.
[0010]
[Problems to be solved by the invention]
If a cue flag is added to each note in order to enhance the function as a performance practice device, the amount of performance data will increase. In addition, if the cue flag is added, the performance data format is dedicated, so the versatility of the performance data is lost.
[0011]
An object of the present invention is to provide a performance training apparatus or a medium on which a program is recorded having a full function without increasing the amount of performance data and maintaining the versatility of the performance data.
[0012]
[Means for Solving the Problems]
According to one aspect of the present invention, a performance practice device detects first data composed of a plurality of bits from performance data, and first interprets and processes the first data as performance information. 1 processing means and four values of the lower 2 bits of the first data are interpreted as fingering information indicating the thumb, index finger, middle finger, and ring finger or little finger, respectively, and the finger is represented based on the fingering information. Second processing means for displaying information.
[0013]
The first data in the performance data is composed of a plurality of bits. All bits of the first data can be interpreted as performance information. However, even if the lower bits of the first data are formally part of the performance information data, the contents are no longer meaningful as performance information. The lower bits of the first data can be used as performance practice information. The lower bits of the first data have two roles of performance information and performance practice information. Since the first data has two pieces of information, the amount of performance data is smaller than when the two pieces of information are stored in different data areas. The first data maintains versatility as performance information.
[0014]
Further, the performance practice device of the present invention includes a reading means for sequentially reading performance data, and a note in a note-off event corresponding to the note-on event in response to the reading means reading a note-on event from the performance data. Search means for searching for off velocity, and performance practice processing means for processing the note off velocity searched by the search means as performance practice information.
[0015]
Note-off velocity loses its significance as velocity data in terms of content, and has significance as performance practice information. However, note off velocity maintains the general format as performance data because it maintains the format as velocity data. Since the performance data includes performance practice information, a performance practice function can be added. When a note-on event is read, the corresponding note-off velocity can be searched and the note-off velocity can be obtained as performance practice information.
[0016]
Furthermore, the performance practice device of the present invention is means for converting performance data including a note-on event and a note-off event to generate new performance data, and corresponds to the note-off velocity in the note-off event in the performance data. Performance data conversion means for generating performance data in a format for storing performance practice information in association with a note-on event corresponding to the note-off event; and reading means for sequentially reading performance data generated by the performance data conversion means; When the reading means reads a note-on event from the performance data, it has performance practice processing means for performing performance practice based on performance practice information associated with the note-on event.
[0017]
The note-off velocity is formally velocity data, but is meaningful as performance practice information in terms of content. Since note-on events and their corresponding note-off velocities are located apart from each other in the performance data, performance data is first converted as preprocessing, and note-off velocities that have significance as performance data are converted into corresponding note-on events. Store it in association. Thereafter, when the performance data is sequentially read and the note-on event is read, the associated performance practice information can be easily obtained and processing for performance practice can be performed.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
FIG. 2 shows a format example of performance data used in the performance practice device according to the embodiment of the present invention. This format is called a standard MIDI file, and is a general-purpose format for performance data.
[0019]
The performance data 10 includes note event 1, timing data 2, note event 3, timing data 4, and end data 5. The performance data 10 can include control changes or program changes.
[0020]
Note event 1 is a note-on event. Timing data 2 indicates a time interval between the note event 1 and the next note event 3. Note event 3 is a note-off event. The timing data 4 indicates a time interval between the note event 3 and the next note event (not shown). End data 5 indicates the end of the performance data 10.
[0021]
Note events 1 and 3 are both MIDI format data and 3 bytes of data. In the note-on event 1, the first byte is the note-on 1a, the second byte is the note number 1b, and the third byte is the velocity 1c. In the note-off event 3, the first byte is the note-off 3a, the second byte is the note number 3b, and the third byte is the velocity 3c.
[0022]
In this embodiment, a performance practice flag is embedded in the note-on velocity 1c or the note-off velocity 3c. The performance practice flag is a flag for adding a performance practice function to the performance practice device.
[0023]
FIG. 1A shows a configuration of note-on velocity 1c according to the MIDI standard. In this embodiment, first, a MIDI standard note-on velocity 1c is prepared as shown in FIG. Note off velocity 3c has the same configuration.
[0024]
The note-on velocity 1c consists of 1 byte (8 bits), and the most significant bit is always 0. This is a data format determined by the MIDI standard. The lower 7 bits of data 6 are the actual velocity data. The velocity data 6 is 7 bits and is represented by a numerical value in the range of 0 to 127. Velocity data 6 is usually used to represent volume. The note-on velocity 1c may be read from commercially available software or created using an electronic musical instrument.
[0025]
FIG. 1B is a diagram in which a performance practice flag 7 is embedded in the note-on velocity 1c of FIG. The performance data provider prepares the note on velocity 1c shown in FIG. 1A, and then rewrites the lower 2 bits of the note on velocity 1c to the performance practice flag 7. The performance practice flag 7 may be set or changed by the performer.
[0026]
Note-on velocity 1c can be used in two ways. One is that the lower 7 bits or all bits are used as velocity data 6 in accordance with the normal MIDI standard. In the other, the lower 2 bits are used as the performance practice flag 7. That is, the lower 2 bits of the note-on velocity 1c are used as a part of velocity data 6 and also as a performance practice flag 7. The performance practice flag 7 is not limited to the lower 2 bits, and may be the lower 1 or 3 bits.
[0027]
Since some bits of the velocity data 6 are rewritten to the performance practice flag 7, the value as the velocity data 6 includes a slight error. The velocity data 6 (FIG. 1 (A)) before setting the performance practice flag 7 has 7-bit precision, but the velocity data 6 (FIG. 1 (B)) after setting the performance practice flag 7 is the upper five. It will have bit precision.
[0028]
However, since the performance practice flag 7 is set in the lower bits of the velocity 1c, the accuracy as the velocity data 6 is slightly deteriorated, but the velocity data 6 never changes to another value. As long as the lower 1 or 2 bits of the velocity data 6 are used as the performance practice flag 7, the range is perceptually acceptable.
[0029]
If the performance practice flag 7 is set in the lower bits of the velocity 1c, the same effect as that obtained by adding the performance practice flag 7 can be obtained without increasing the data amount. Further, since the velocity data 6 can be used as a velocity value even in a versatile automatic performance device, versatility is maintained.
[0030]
A performance practice flag may be embedded in the lower bits of the note-off velocity 3c. In general, there are many sound source devices that do not use (ignore) note-off velocity, and note-off velocity is less important than note-on velocity, so there are more low-order bits and, in extreme cases, all bits of velocity data. , May be rewritten as a performance practice flag.
[0031]
Next, a specific example of the performance practice flag 7 will be described.
(1) Queue flag
The lower 1 bit of the note on velocity is used as the cue flag. The cue flag is a flag for controlling the progression of music by comparing, for example, a key pressing operation by a player with performance data.
[0032]
When the cue flag is 1, it indicates that the note (note) corresponding to the note-on is a note for making a determination for the progress of the key press coincidence. On the other hand, when the cue flag is 0, it indicates that the note corresponding to the note-on is a note that does not make a determination for the key-pressing progression.
[0033]
The cue flag controls the progress of music according to the match of note-on, and is not limited to the keyboard, and can be applied to any instrument that can generate note-on.
[0034]
(2) Fingering information
The lower 2 bits (numerical values 0 to 3) or 3 bits (numerical values 0 to 7) of note-on velocity are used for fingering information. The fingering information (in the case of 3 bits) indicates, for example, the finger to be pressed by the performer, where 0 is the thumb, 1 is the index finger, 2 is the middle finger, 3 is the ring finger, and 4 is the little finger. If the fingering information is displayed on the display, the performer can practice proper fingering. In the case of 3 bits, since three types of information can be identified, glissando (palm, finger) information and the like may be included.
[0035]
Note that if the lower 3 bits are used for fingering information, the accuracy of note-on velocity will deteriorate, so the lower 2 bits (numerical values 0 to 3) may be used for fingering information. In this case, the fingering information is 0 for the thumb, 1 for the index finger, 2 for the middle finger, 3 for the ring finger or little finger. The distinction between ring finger and little finger is lost, but this distinction is not so important, and the advantage of not reducing the accuracy of note-on velocity is much greater.
[0036]
(3) Right / left hand information
The lower 1 bit of note-on velocity is used for right / left hand information. The right hand / left hand information is, for example, information on a hand to be pressed by the performer, where 0 is the right hand and 1 is the left hand. By displaying the right hand and left hand as the song progresses, the performer can practice using the right hand and left hand appropriately.
[0037]
In normal performance data, the right hand part and the lower left part are recorded on different tracks, so that only the left hand part or the right hand part can be reproduced. However, two tracks for right hand and left hand are required.
[0038]
If the right / left hand information is set, both the right hand part and the left hand part can be recorded in one track. When only the right hand part is to be played back, it is sufficient to play back only the note (note) for which the right hand information is set. By setting the right / left hand information, the number of tracks to be used can be reduced. For example, in a reproducing or recording apparatus having a small number of tracks (for example, 4 or 8 tracks), the effect of reducing the number of tracks used is great.
[0039]
(4) Pitch name information (# or ♭)
The lower 1 bit of note-on velocity is used for pitch name information. One black key has two pitch name expressions. For example, C # and D ♭ represent the same black key. The pitch name information distinguishes whether the black key is represented by # or ♭. For example, 0 is # and 1 is ♭. The performer can learn whether it is musically correct to express the note name in # or ♭.
[0040]
(5) Performance support information
The lower 2 bits or 3 bits of note-on velocity are used as performance auxiliary information. The performance auxiliary information is, for example, staccato, legato, crescendo, decrescendo, pp, p, mp, mf, f, ff.
[0041]
In the above, the example of five performance practice flags was shown. The performance practice flag is not limited to the case of setting the note-on velocity 1c, but may be set to the note-off velocity 3c (FIG. 2). Note-on velocity is usually used as a volume, but note-off velocity is usually not used in many cases. Therefore, when setting the performance practice flag to note-off velocity, all bits may be used as the performance practice flag.
[0042]
However, when setting the performance practice flag to note-off velocity, the following measures are required. If the performance practice flag is set to note-on velocity, the performance practice flag can be easily processed in response to note-on for instructing the start of sound generation. On the other hand, when the performance practice flag is set not to the note-on velocity 1c (FIG. 2) but to the note-off velocity 3c (FIG. 2) that appears thereafter, the note-on for instructing the start of pronunciation It is difficult to deal with. This is because various data may enter between the note-on event 1 and the note-off event 3 (FIG. 2). In order to eliminate such inconvenience, a certain device is required. This point will be described later with reference to a flowchart.
[0043]
Furthermore, the performance practice flag is not limited to note-on velocity or note-off velocity, and may be set in other control information such as volume and effect.
[0044]
FIG. 3 is a block diagram showing the configuration of the performance practice device according to this embodiment.
The key press detection circuit 18 detects a key operation on the keyboard 17 and its operation speed, and generates a note-on or note-off signal or the like. These note-on or note-off signals include velocity information indicating the key pressing speed or key releasing speed. The switch detection circuit 20 detects a switch operation in the switch 19 and generates a switch signal.
[0045]
In addition to the key depression detection circuit 18 and the switch detection circuit 20, the bus 25 is connected with a display circuit 21, a sound source circuit 22, an effect circuit 23, a ROM 11, a RAM 12, a CPU 13, a timer 14, a MIDI interface 15, and a floppy disk drive device 16. Has been. In addition to these, a communication interface for communicating with other computers or the like via a CD-ROM drive or various networks may be provided.
[0046]
The RAM 12 has a working area for the CPU 13 that stores a flag or a buffer. The ROM 11 stores various parameters or computer programs. The CPU 13 performs calculation or control according to the computer program stored in the ROM 11. Instead of the computer program stored in the ROM 11, a program may be installed in the apparatus from a floppy disk, a CD-ROM, another computer, or the like, and calculation or control may be performed based on the program.
[0047]
The timer 14 is connected to the CPU 13. The CPU 13 performs timer interrupt processing at predetermined time intervals in accordance with the time information supplied from the timer 14. The MIDI interface 15 can input / output MIDI data to / from the outside.
[0048]
The performance data shown in FIG. 2 is stored in the floppy disk drive 16 or the ROM 11. When performance data is stored in the floppy disk drive device 16, the performance data is loaded from the floppy disk drive device 16 into the RAM 12, and then the performance data is reproduced.
[0049]
The CPU 13 reads performance data stored in the RAM 12 or the ROM 11 and supplies a musical tone parameter and an effect parameter to the tone generator circuit 22 and the effect circuit 23, respectively. Further, the CPU 13 generates a musical tone parameter and an effect parameter according to a note-on signal generated by the key depression detection circuit 18 and a switch signal generated by the switch detection circuit 20, and a sound source circuit 22 and an effect circuit 23, respectively. To supply.
[0050]
The tone generator circuit 22 generates a tone signal according to the supplied tone parameter. The effect circuit 23 gives an effect such as delay or reverberation to the musical sound signal generated by the tone generator circuit 22 according to the supplied effect parameter, and supplies it to the sound system 24. The sound system 24 includes a D / A converter and a speaker, converts a digital tone signal supplied to an analog format and generates a sound.
[0051]
The sound source circuit 22 may be of any method such as a waveform memory method, FM method, physical model method, harmonic synthesis method, formant synthesis method, VCO + VCF + VCA analog synthesizer method, or the like.
[0052]
Further, the tone generator circuit 22 is not limited to being configured using dedicated hardware, but may be configured using a DSP + microprogram, or may be configured using a CPU + software program.
[0053]
Further, a plurality of tone generation channels may be formed by using one tone generator circuit in a time division manner, or a plurality of tone generation channels may be configured by one tone generator circuit for each tone generation channel. .
[0054]
Next, the performance practice flag will be described. For example, a performance practice flag is set in the lower bits of note-on velocity in the performance data. When the cue flag is used as the performance practice flag, the CPU 13 compares the performance data stored in the RAM 12 or the ROM 11 with the key pressing operation on the keyboard 17, and if they match, the music advances, and if they do not match, Interrupts the progress of the song.
[0055]
When fingering information, right / left hand information, pitch name information, performance assistance information, or the like is used as the performance practice flag, such information is displayed on the display circuit 21 to assist the performer in practice.
[0056]
The performance practice flag can be set in advance in the performance data. In addition, the performer can set or change the performance practice flag. In that case, it is possible to set or change individual notes using the edit screen displayed on the display circuit 21. As the edit screen, an edit screen for a sequencer can be used.
[0057]
In addition to setting a performance practice flag manually by a human, the performance practice flag may be set by analyzing performance data using a predetermined algorithm, or performing with a sensor attached to each finger of the performer. May be recorded, and a performance practice flag may be set so that it is possible to detect which finger and which hand have performed.
[0058]
Next, processing when a cue flag, fingering information, right / left hand information, and pitch name information are set as part of note-on velocity will be described.
[0059]
FIG. 4 is a flowchart of the main routine when a part of the note-on velocity is used as a cue (match progress) flag.
[0060]
In step SA1, flags or registers are initialized.
In step SA2, matching progress processing is performed. The coincidence progress process is a process of interrupting the progress of the music when the player does not press the key corresponding to the next sound of the performance data even after a predetermined time has elapsed. Detailed processing will be described later with reference to FIG.
[0061]
In step SA3, performance data reading processing is performed. The performance data reading process is a process of reading performance data stored in the RAM or ROM and lighting a key LED or the like corresponding to the sound of the read performance data. Detailed processing will be described later with reference to FIGS.
[0062]
In step SA4, a key pressing process is performed. In the key pressing process, a key pressing operation or the like on the keyboard is detected, and a process corresponding to the operation is performed. When note-on is detected, sound generation processing is performed, and when note-off is detected, mute processing is performed. When note-on is detected when the progress of the song is interrupted because the performer does not perform the correct key pressing operation, and the note-on matches the sound of the performance data, the progression of the song is resumed. Detailed processing will be described later with reference to FIG.
[0063]
In step SA5, other processing is performed. Other processing includes, for example, processing for instructing the start of performance practice, changing the tempo and volume, and setting various modes. Thereafter, the process returns to step SA2 to repeat the above processing.
[0064]
If the player's key pressing operation matches the performance data, the song progresses, and if it does not match, the song stops.
[0065]
FIG. 5 is a flowchart showing details of the performance data reading process in step SA3 of FIG.
In step SB1, it is checked whether or not the reproduction timer is 0 or less. If the playback timer is 0 or less, it means that the timing of the next event has been reached. The playback timer is set according to timing information, and is counted by the following playback timer interrupt processing.
[0066]
FIG. 6A is a flowchart showing the reproduction timer interruption process. This interruption process is performed at a predetermined time interval of 10 ms, for example. In step SC1, the value of the reproduction timer is decremented. Thereafter, the processing returns to the state before the interruption. The reproduction timer is initialized to 0 when the start of performance practice is instructed, and then decremented, for example, every 10 ms.
[0067]
Returning to FIG. 5, when it is determined in step SB1 that the regeneration timer is 0 or less, the process proceeds to step SB2. In step SB2, the event is read from the performance data stored in the RAM or ROM. One event is, for example, note event 1 or timing data 2 shown in FIG.
[0068]
In step SB3, it is checked whether or not the read event is a note event. Note events are events such as note-on and note-off, such as note event 1 or 3 shown in FIG. If it is a note event, the process proceeds to step SB4 to perform note event processing. The note event processing includes processing of a cue flag set as a part of note on velocity. Detailed processing will be described later with reference to FIG. Thereafter, the process returns to the main routine of FIG.
[0069]
When it is determined in step SB3 that the read event is not a note event, the process proceeds to step SB5. In step SB5, it is checked whether or not the read event is timing data. The timing data indicates a time interval between a note event and the next note event, and is, for example, the timing data 2 or 4 shown in FIG. If the read event is timing data, the process proceeds to step SB6.
[0070]
In step SB6, the timing data × tempo coefficient value is added to the reproduction timer. The playback timer is decremented in units of 10 ms by the interrupt process of FIG. The tempo coefficient is a coefficient for converting the unit of timing data into the unit of reproduction timer (10 ms). In this way, the time until the next note event is set in the playback timer. Thereafter, the process returns to the main routine of FIG.
[0071]
When the above value is added to the reproduction timer, the value of the reproduction timer is decremented at intervals of 10 ms thereafter. In step SB1, as long as the reproduction timer is greater than 0, the performance data event is not read, and the process returns to the main routine of FIG. When the value of the reproduction timer becomes 0 or less, it means that the next event read timing has come, so the process proceeds to step SB2, the next event is read, and the same processing as described above is repeated.
[0072]
It should be noted that, in step SB6, a predetermined value is added to the regeneration timer instead of setting a predetermined value. Since the performance data reading process shown in FIG. 5 is not a timer interrupt process, it is usually not performed at regular time intervals. That is, if the reproduction timer proceeds to step SB2 every time when the reproduction timer is 0 in step SB1, the reproduction timer may be updated to a predetermined value in step SB6, but the value of the reproduction timer is negative in step SB1. Since the process sometimes proceeds to step SB2, it is necessary to add a predetermined value to the reproduction timer in step SB6.
[0073]
When the read event is determined not to be a note event in step SB3 and is determined not to be timing data in step SB5, it is an other event, so the process proceeds to step SB7. Other events are, for example, program change or control change.
[0074]
In step SB7, other events are processed. For example, if the other event is a program change, a timbre change process is performed. Thereafter, the process returns to the main routine of FIG.
[0075]
FIG. 7 is a flowchart showing details of the note event processing in step SB4 of FIG.
[0076]
In step SD1, it is checked whether or not the read note event is a note-on event. If it is a note-on event, the process proceeds to step SD11 to perform sound generation processing. In the sound generation process, musical tone parameters corresponding to the note number (pitch) and note on velocity (volume) included in the note-on event are supplied to the tone generator circuit, and the sound system generates sound.
[0077]
Note-on velocity is interpreted and processed as velocity data (volume). However, note-on velocity is slightly less accurate as velocity data because a cue (match progress) flag is set in the lower bits. Note that this sound generation process can be generated with a low sound volume or with a different tone color so as to be distinguished from the sound generated by the player's key pressing process. Then, it progresses to step SD2 and turns on a guide lamp.
[0078]
FIG. 15A shows an example of a guide lamp. The keyboard has a plurality of keys 44. One guide lamp 42 is provided for each of the plurality of keys 44. The guide lamp 42 is an LED, for example. When a note-on event is read, the corresponding guide number 43 of the note number is turned on. By turning on the guide lamp 43, the player can be notified of the key to be pressed next. This helps the performer's manual performance.
[0079]
Step SD3 is processing when the cue (coincidence progress) flag is set to the lower bits of the note-off velocity. This process will be described later. When the cue flag is set to the lower bit of the note on velocity, the process of step SD3 is skipped and the process proceeds to step SD4.
[0080]
In step SD4, it is checked whether the note on velocity is an odd number or an even number. An odd number of note-on velocities indicates that the lower 1 bit of the note-on velocity is 1. That is, the queue flag is 1. In this case, it means that the note is a note for making a judgment for the progress of matching, and the process proceeds to step SD5.
[0081]
In step SD5, the event is stored in the reproduction match progress buffer shown in FIG. 8A, and the timer value of the event is set to zero. For example, note number 1b (for example, C4 or G4) in note-on event 1 (FIG. 2) of the read performance data is stored in the reproduction match progress buffer, and the timer value is set to zero. This timer value is irrelevant to the previous playback timer (FIG. 6A), and represents the time since the event was stored in the playback match progress buffer. Thereafter, the processing returns to the flowchart of FIG. 5 (FIG. 4).
[0082]
If it is determined in step SD4 that the note on velocity is an even number, it indicates that the lower 1 bit of the note on velocity is 0. That is, the queue flag is 0. In that case, it means that the note is a note that is not subject to coincidence progression, so the process proceeds to step SD6.
[0083]
In step SD6, it is checked whether the matching progress mode is 1 or 2. When the coincidence progress mode is 1, it is a mode for advanced users, and coincidence progression control is performed for all the notes. When the match progress mode is 2, it is a mode for beginners, and the match progress control is performed only for a predetermined note corresponding to the cue flag. This coincidence progress control mode is set by other processing in step SA5 in FIG.
[0084]
When the match progress mode is 1, match progress control is performed for all the notes regardless of the value of the cue flag. Therefore, the process proceeds to step SD5, and similarly to the above, the event is stored in the playback match progress buffer, and the timer value Is set to 0.
[0085]
That is, when the match progress mode is 1, regardless of whether the queue flag is 0 or 1, events are always stored in the playback match progress buffer. Thereafter, the process returns to the process of the flowchart of FIG. 5 (FIG. 4).
[0086]
When the match progress mode is 2, it is determined whether or not to make a decision for match progress according to the cue flag. Therefore, when the note on velocity is an even number, that is, the cue flag is 0, the event is played and the match progresses. Without storing in the buffer, the process returns from step SD6 to the process of the flowchart of FIG. 5 (FIG. 4).
[0087]
If it is determined in step SD1 that the read event is not a note-on event, it means that it is a note-off event. Therefore, the process proceeds to step SD12 and a sound muting process corresponding to the note-off event is performed. Thereafter, the process proceeds to step SD7.
[0088]
In step SD7, the guide lamp lit in step SD2 is turned off when the note-on event corresponding to the note-off event is read. Thereafter, the process returns to the process of the flowchart of FIG. 5 (FIG. 4).
[0089]
When the cue flag is set not to the lower bits of note-on velocity but to the lower bits of note-off velocity, the process of step SD3 is performed. Step SD3 is performed after the guide lamp is turned on in step SD2.
[0090]
In step SD3, a note-off event corresponding to the note-on event read out above is searched to obtain a note-off velocity in the note-off event. In step SD4, it is checked whether the note off velocity is an odd number or an even number, and thereafter the same processing as described above is performed.
[0091]
FIG. 9 is a flowchart showing details of the matching progress process in step SA2 of FIG.
[0092]
In step SE1, it is checked whether or not the match progress timer is greater than zero. The match progress timer is counted by the match progress timer interrupt process described below.
[0093]
FIG. 6B is a flowchart showing the match progress timer interrupt process. This interruption process is performed at a predetermined time interval of 10 ms, for example. In step SC2, the value of the match progress timer is incremented. Thereafter, the processing returns to the state before the interruption. The coincidence progress timer is initialized to 0 when the start of performance practice is instructed, and then incremented, for example, every 10 ms.
[0094]
Returning to FIG. 9, when it is determined in step SE1 that the coincidence progress timer is greater than 0, the process proceeds to step SE2 in order to perform coincidence progress control. When the coincidence progress timer is 0, the coincidence progress process is not performed and the process returns to the main routine of FIG. In this way, the coincidence progress timer is used to reduce the load for coincidence progress control, and the coincidence progress control is performed almost at regular intervals.
[0095]
In step SE2, the coincidence progress timer is reset to zero. The coincidence progress timer becomes 0 until the next increment (FIG. 6B). As will be described in more detail later, the process of step SE2 passes on average at a unit time (for example, 10 ms) interval of the coincidence progress timer.
[0096]
In step SE3, apart from the coincidence progress timers described in steps SE1 and SE2, all the events in both the reproduction coincidence progress buffer (FIG. 8A) and the replay coincidence progress buffer (FIG. 8B) are detected. Increment timer value.
[0097]
As already described, the reproduction matching progress buffer for storing performance data events stores events in step SD5 of FIG. As will be described later, the hand-play match progress buffer is a buffer for storing an event caused by a key pressing operation on the keyboard.
[0098]
The timer values of both buffers are incremented at an average interval of 10 ms.
[0099]
In step SE4, a pose determination is performed, and it is checked whether or not a pose condition is satisfied. If an event in the reproduction match progress buffer (FIG. 8A) has a timer value equal to or greater than a predetermined value, it is determined that the pause condition is satisfied.
[0100]
Since the timer value of the buffer is incremented approximately every 10 ms in step SE3, the timer value 1 corresponds to 10 ms. If the predetermined value is 50, for example, the pause condition is satisfied when an event that has passed 500 ms remains in the buffer. If the performer does not press the appropriate key corresponding to the performance data after 500 ms, the pause condition is satisfied and the process proceeds to step SE5.
[0101]
In step SE5, pause setting is performed. Specifically, the pause flag is set to 1, and the decrement of the reproduction timer by the interrupt process shown in FIG. Thereafter, the process returns to the main routine of FIG. If the decrement of the playback timer is stopped, the playback timer does not become 0 or less in step SB1 in FIG. 5, so reading of the next event of the performance data in step SB2 is stopped, and the progression of the music stops.
[0102]
That is, even if, for example, 500 ms elapses after the performance data is read, if the player does not press the key corresponding to the performance data, the progress of the song is interrupted by the pause setting, and the player's proper key pressing is performed. Wait for operation.
[0103]
If it is determined in step SE4 that the pause condition is not satisfied, the process returns to the process of the flowchart of FIG. 4 without performing the pause setting.
[0104]
Next, the reason why the process proceeds to YES (step SE2) every 10 ms on average in step SE1 will be described. The coincidence progress timer (FIG. 6B) is incremented, for example, every 10 ms.
[0105]
Since the coincidence progress process of FIG. 9 is not a timer interrupt process, it is not performed at a constant time interval, but a case is considered in which the determination of step SE1 is performed at an interval of 1 ms on average. In that case, after the coincidence progress timer is incremented to 1, step SE1 is averaged 10 times until the next increment. In the first step SE1, since the coincidence progress timer is 1, the process proceeds to YES (steps SE3 to SE5). In the remaining nine steps SE1, since the coincidence progress timer has been reset to 0, the coincidence progress process passes through. In this way, the processing of steps SE2 to SE5 is performed once every about 10 ms.
[0106]
FIG. 10 is a flowchart showing details of the key pressing process in step SA4 of FIG.
[0107]
In step SF1, it is checked whether there is a key event generated by a key operation on the keyboard. When there is a key event, the process proceeds to step SF2 to process the key event. When there is no key event, the process returns to the main routine of FIG. 4 without processing the key event.
[0108]
In step SF2, it is checked whether or not the key event is a key-on event. If it is a key-on event, the process proceeds to step SF11.
[0109]
In step SF11, sound generation processing for the key-on event is performed. The sound generation process is a process of supplying a key-on event and a parameter corresponding thereto to the sound source circuit 22 and the effect circuit 23 (FIG. 3). In the sound system 24, a sound is generated in response to the key-on event. Thereafter, the process proceeds to step SF3.
[0110]
In step SF3, the above event is stored in the hand-play match progress buffer shown in FIG. 8B, and the timer value of the event is set to zero. For example, A3 is stored as a note number in the hand-play match progress buffer, and the timer value is set to zero. This timer value represents the time since the event was stored in the buffer, and is then incremented in step SE3 in FIG.
[0111]
In step SF4, the events in the reproduction match progress buffer (FIG. 8A) and the hand-play match progress buffer (FIG. 8B) are compared. The play match progress buffer stores performance data events, and the hand-play match progress buffer stores events due to the player's keyboard operation.
[0112]
In step SF5, it is checked whether there is an event that matches both buffers, that is, whether there is an event with the same note number. If there is no matching event, the process returns to the main routine of FIG. If there is a matching event, it means that the performer has pressed the correct key, so the process proceeds to step SF6, and the matching event is deleted from both buffers.
[0113]
In step SF7, it is checked whether or not the current pause is being performed. When not paused, the process returns to the main routine of FIG. The pause setting is performed in step SE5 of FIG. When the pause flag is set to 1, it is determined that a pause is in progress. If the correct key-on is made during the pause, the process proceeds to step SF8 to cancel the pause.
[0114]
In step SF8, the pause is released. Specifically, the pause flag is reset to 0. Then, the decrement of the reproduction timer stopped in step SE5 in FIG. 9 is resumed. When the decrement of the reproduction timer is resumed, the performance data reading is resumed (step SB2 in FIG. 5), and the music progresses. Thereafter, the process returns to the main routine of FIG.
[0115]
When a key-off event is detected in step SF2, the process proceeds to step SF12. In step SF12, a sound muting process corresponding to the key-off event is performed. Thereafter, the process proceeds to step SF9.
[0116]
In step SF9, the key-on event corresponding to the key-off event is deleted from the hand-play match progress buffer (FIG. 8B). When the performer correctly presses the key, the event is deleted from the hand-playing progress buffer and the reproduction match progress buffer in step SF6. When the performer presses the wrong key, the event is deleted from the hand-play progress buffer in step SF9. Thereafter, the process returns to the main routine of FIG.
[0117]
In addition, although the case where match progress is controlled using the note number match progress buffer according to the cue flag has been described, the progress is controlled and the progress speed is controlled depending on whether or not the note numbers match. Also good.
[0118]
The case where the performance practice flag (for example, the cue flag) is set as a part of the note-on velocity or the note-off velocity has been described above. When setting the performance practice flag as a part of the note-off velocity, when the note-on event is detected, the velocity of the corresponding note-off event is searched and the performance flag during the note-off velocity is determined. .
[0119]
Next, another example when the performance practice flag is set to note-off velocity is shown. Before performing the performance practice process, as a pre-process, the performance practice flag included in the note-off velocity is read and stored after the note-on corresponding to the note-off.
[0120]
FIG. 11 shows the performance data 10 before processing and the performance data 30 after processing.
The performance data 10 before processing is in the same standard MIDI file format as that in FIG. 2, and has a note-on event 1, a timing data 2 corresponding thereto, a note-off event 3 and timing data 4 corresponding thereto. Note-off event 3 is an event for note-off of note-on by note-on event 1.
[0121]
The performance practice flag is set as a part of the note-off velocity 3c. Usually, since the value of the note-off velocity 3c is often not used as performance data, all the bits of the note-off velocity 3c may be used as a performance practice flag.
[0122]
The processed performance data 30 is obtained by adding a performance practice flag 31 to the performance data 10. Before processing, the performance data 10 has a performance practice flag in the note-off velocity 3c. After the processing, the performance data 30 has a performance practice flag 31 between the note-on event 1 and its timing data 2.
[0123]
By providing the performance practice flag 31 immediately after the note-on event 1, the performance practice flag 31 can be immediately determined when the note-on event 1 is read.
[0124]
FIG. 12 is a flowchart showing a process of data conversion from the performance data 10 to the performance data 30.
[0125]
In step SG1, an event is read from the performance data 10. For example, note on event, note off event or timing data.
[0126]
In step SG2, it is checked whether or not the read event is a note-on event. If it is a note-on event, the note-on event is transferred to the buffer for generating the performance data 30 in step SG3.
[0127]
In step SG4, one blank byte is created after the note-on event in the performance data 30 buffer. Thereafter, the process returns to step SG1, and the next event is read from the performance data 10.
[0128]
When it is determined that the event read in step SG2 is not a note-on event, the process proceeds to step SG5. In step SG5, it is checked whether or not the read event is a note-off event. If it is a note-off event, the process proceeds to step SG6.
[0129]
In step SG6, a performance practice flag during note-off velocity included in the note-off event is read from the performance data 10. In step SG7, the performance practice flag is written in the blank byte of the corresponding note-on. A blank byte has already been generated after the note-on event in step SG4.
[0130]
In step SG8, the note-off event is transferred to the performance data 30 buffer. Thereafter, the process returns to step SG1, and the process is repeated for the next event.
[0131]
When it is determined that the event read in step SG5 is not a note-off event, it is timing data, end data, control change or the like, so the process proceeds to step SG9, and the event is transferred to the performance data 30 buffer.
[0132]
In step SG10, it is checked whether or not the event is end data. If it is not end data, the process returns to step SG1 to repeat the process for the next event. If it is end data, it means the end of the performance data, so the processing is ended.
[0133]
The entire process in the flowchart is performed in other processes in step SA5 of the main routine of FIG. Specifically, this is performed after the performer has pressed the start switch for performance practice, and then the performance practice process described above is performed. As described above, the performance practice process is the same process as when the performance practice flag is set during note-on velocity.
[0134]
When data conversion is performed by the above method, the performance practice flag is originally set to note-off velocity, but the converted data is treated as if the performance practice flag is set to note-on velocity. be able to. In addition, since the flag is not set in the note on velocity itself, the accuracy of the note on velocity does not decrease.
[0135]
Note that the method of storing the note-off velocity in association with the note-on event is not limited to the method described above. For example, the following method is also possible.
[0136]
First, an arrangement is prepared for storing note numbers and note-off velocities in the order in which note-on events appear. This arrangement may provide a capacity for storing the note number and note-off velocity of the entire song, or a capacity for storing only a predetermined number (for example, 16) of note numbers and note-off velocity. A ring buffer format may be used in which the used area is used to store new data as the performance practice progresses.
[0137]
As pre-processing, before performance practice starts, the performance data is read out, and when a note-on event is found, the note number included in the note-on event is stored in the note number area in the array, and the note-off event is found. Then, the value of the note-off velocity included in the note-off event is written in the note-off velocity area corresponding to the position in the array where the same note number as the note number included in the note-off event is stored immediately before.
[0138]
By such processing, an arrangement in which note numbers and note-off velocities are stored in the order in which note-on events appear is completed. Then, during the performance practice, this arrangement may be referred to when the note-on event is read out, and the note-off velocity corresponding to the order may be read out.
[0139]
If the number of arrangements is limited to a predetermined number, as the performance practice progresses, a process for newly storing note numbers and note-off velocities in the used areas in the arrangement may be performed in parallel as appropriate. Good. In addition, note numbers and note-off velocities are stored in the order of appearance of note-on events, but note-off events are arranged in the order of appearance of note-on events, so it is not necessary to store note numbers intentionally. . In this case, when creating an array for storing note-off events, the array creation process may be performed while appropriately managing the storage order so that note-off velocities are stored in the order in which the note-on events appear.
[0140]
The case where the cue flag is used as an example of the performance practice flag has been described above. Next, a case where a fingering identification flag (fingering information) is used as another example of the performance practice flag will be described.
[0141]
FIG. 13 is a flowchart showing the processing of the main routine when the fingering identification flag is used. This main routine partially overlaps with the main routine of FIG.
[0142]
In step SA1, flags or registers are initialized. In step SA3, performance data reading processing is performed. In step SA5, other processing is performed. Then, it returns to step SA3 and repeats a process.
[0143]
Although the coincidence progress process in step SA2 in FIG. 4 is omitted, a similar process may be performed. The key pressing process corresponding to step SA4 in FIG. 4 is performed in the other processes in step SA5 in FIG.
[0144]
The performance data reading process in step SA3 in FIG. 13 is specifically the process of the flowchart in FIG. However, the note event processing in step SB4 in FIG. 5 is as shown in FIG. 14, unlike the case of the cue flag.
[0145]
FIG. 14 is a flowchart showing details of the note event processing when the fingering identification flag is used. A case where the fingering identification flag is 2 bits will be described.
[0146]
In step SI1, it is checked whether or not the previously read event is a note-on event. If it is a note-on event, the process proceeds to step SI11 to perform sound generation processing. In the sound generation process, musical tone parameters corresponding to the note number (pitch) and note on velocity (volume) included in the note-on event are supplied to the sound source circuit, and the sound system generates sound.
[0147]
Note-on velocity is interpreted and processed as velocity data (volume). However, note-on velocity is slightly less accurate as velocity data because the fingering identification flag is set in the lower bits. Thereafter, the process proceeds to step SI2, and the guide lamp for the key corresponding to the note number 1b (FIG. 2) during the note-on event is turned on.
[0148]
FIG. 15A shows a lighting example of the guide lamp. The keyboard has a plurality of keys 44. The guide lamp 42 is an LED, for example, and is provided for each of the plurality of keys 44. When the note-on event is read, the guide lamp 43 corresponding to the note number in the note-on event is turned on. The guide lamp 42 informs the player which key to press next. The liquid crystal display (LCD) 41 displays the number of the finger to be pressed by the performer by the processing described later. Note that one LCD 41 may be provided for all keys, or one for each key.
[0149]
Returning to the flowchart of FIG. 14, the processing differs depending on whether the fingering identification flag is set in the lower 2 bits of the note-on velocity or in the lower 2 bits of the note-off velocity.
[0150]
If the note on velocity is set, the process of step SI3 is skipped and the process proceeds to step SI4. When the note off velocity is set, the process proceeds to step SI4 after performing the process of step SI3.
[0151]
In step SI3, a note-off event corresponding to the note-on event read out above is searched, and a note-off velocity in the note-off event is obtained.
[0152]
In step SI4, the value of the fingering identification flag which is the lower 2 bits of the note on velocity or note off velocity is checked.
[0153]
When the value of the lower 2 bits is 0, the process proceeds to step SI5, where “1” representing the thumb is displayed on the LCD 41 (FIG. 15A), and the process returns to the process of FIG.
[0154]
When the value of the lower 2 bits is 1, the process proceeds to step SI6, “2” meaning the index finger is displayed on the LCD 41 (FIG. 15A), and the process returns to the process of FIG.
[0155]
When the value of the lower 2 bits is 2, the process proceeds to step SI7, “3” meaning the middle finger is displayed on the LCD 41 (FIG. 15A), and the process returns to the process of FIG.
[0156]
When the value of the lower 2 bits is 3, the process proceeds to step SI8, “4 or 5” meaning the ring finger or little finger is displayed on the LCD 41 (FIG. 15A), and the process returns to the process of FIG.
[0157]
The fingering identification flag is not limited to 2 bits and may be 3 bits. If the fingering identification flag is set to 2 bits, the ring finger and the little finger cannot be identified. However, if the fingering identification flag is set to 3 bits, the ring finger and the little finger are identified. Can be identified.
[0158]
If it is determined that the note event read in step SI1 is not a note-on event, it means that it is a note-off event, so that the process proceeds to step SI12 and a sound muting process corresponding to the note-off event is performed. Thereafter, the process proceeds to step SI9.
[0159]
In step SI9, the guide lamp 43 (FIG. 15A) corresponding to the note-off event is turned off. Thereafter, the process returns to the process of FIG.
[0160]
FIG. 15B shows another display example which is different from FIG.
The display device is, for example, a display device connected to a personal computer or a large LCD provided on a keyboard. A plurality of keys 46 and a roll score 45 are displayed on the display. The roll score 45 is a so-called piano roll score displayed vertically, and represents note-on information and fingering information of performance data.
[0161]
The roll score 45 is scroll-displayed in the direction of the arrow AR (downward in the figure) as time passes. The plurality of keys 46 are displayed at fixed positions without scrolling. In the roll score 45, time t0 indicates the current note-on information and the like. The time axis is directed upward in the figure, and time elapses in the order of times t0, t1, and t2.
[0162]
The display 50 means that the sound of F # is note-on at time t1 and note-off at time t2. The display “2” below the display 50 is fingering information, and suggests that the key should be pressed with the index finger.
[0163]
A display 49 represents note-on information of the sound of D #. The display “1” below the display 49 is fingering information, and suggests that the user should press the key with the thumb.
[0164]
The display 48 represents note-on information of C # sound. The sound of C # indicates that the note is on at the current time t0. The key 47 corresponding to the note-on is colored or the like. The key 47 is a key that the performer should currently press.
[0165]
In addition, fingering information is not limited to the usage form displayed with a finger number. For example, you may use for the display of the shape of a hand, the display of the position which puts a hand, and phrase division. The shape of the hand changes depending on how the key is pressed based on the fingering information. The position where the hand is placed indicates, based on fingering information, where the hand is placed to facilitate key pressing. In the phrase division, the melody is divided into predetermined phrases using the fingering information as one of the conditions for dividing the phrase, and the divided phrases are used in the section for repeated performance and chord detection.
[0166]
Next, a case where a left / right hand identification flag (right / left hand information) is used as an example of a performance practice flag will be described. The processing of the main routine of FIG. 13 and the performance data reading processing of FIG. 5 can be applied as they are. Unlike the above case, the note event processing in step SB4 in FIG. 5 is as shown in FIG.
[0167]
FIG. 16 is a flowchart showing details of the note event process when the left and right hand identification flag is used.
[0168]
In step SJ1, it is checked whether or not the previously read event is a note-on event. If it is a note-on event, the process proceeds to step SJ11 to perform sound generation processing. In the sound generation process, musical tone parameters corresponding to the note number (pitch) and note on velocity (volume) included in the note-on event are supplied to the sound source circuit, and the sound system generates sound.
[0169]
Note-on velocity is interpreted and processed as velocity data (volume). However, note-on velocity is slightly less accurate as velocity data when the left / right hand identification flag is set in the lower bits. Thereafter, the process proceeds to step SJ2 or step SJ3 according to the following conditions.
[0170]
When the left / right hand identification flag is set to note-on velocity, the process of step SJ2 is skipped and the process proceeds to step SJ3. If the left / right hand identification flag is set to note-off velocity, the process proceeds to step SJ3 after performing the process of step SJ2.
[0171]
In step SJ2, a note-off event corresponding to the note-on event read out above is searched to obtain a note-off velocity in the note-off event.
[0172]
In step SJ3, it is checked whether or not the velocity is an odd number. That is, it is checked whether the left / right hand identification flag set in the lower 1 bit of velocity is 1 or not. The left / right hand identification flag is the lower 1 bit of note-on velocity or note-off velocity.
[0173]
When the velocity is an odd number, it means the left hand, so the process proceeds to step SJ4, and “left hand” is displayed on the display. Thereafter, the process returns to the process of FIG. When the velocity is an even number, it means the right hand, so the process proceeds to step SJ5, and “right hand” is displayed on the display. Thereafter, the process returns to the process of FIG.
[0174]
FIG. 17 shows a display example of the left hand or the right hand. The keyboard has a plurality of keys 56. One indicator 55 is provided for each of the plurality of keys 56. If “L” is displayed on the display 52, this indicates to the player that the key 51 corresponding to the display 52 should be pressed with the left hand. If "R" is displayed on the display 54, it indicates to the player that the key 53 corresponding to the display 54 should be pressed with the right hand.
[0175]
Note that a display similar to the display in FIG. 15B may be performed. For example, “L1” is displayed instead of the display “1” below the display 49 to indicate to the player that the left hand (L) thumb (1) should be pressed.
[0176]
Returning to the flowchart of FIG. 16, when it is determined that the event read in step SJ1 is not a note-on event, it means that the event is a note-off event. Therefore, the process proceeds to step SJ12 and the sound corresponding to the note-off event is muted. Process. Thereafter, the process proceeds to step SJ6.
[0177]
In step SJ6, the display corresponding to the note-off event on the display is turned off. Thereafter, the process returns to the process of FIG.
[0178]
Next, a case where a pitch name identification flag (pitch name information) is used as another example of the performance practice flag will be described. The pitch name identification flag indicates whether the pitch name of the black key is expressed by # or ♭. The processing of the main routine of FIG. 13 and the performance data reading processing of FIG. 5 can be applied as they are. Unlike the above case, the note event processing in step SB4 in FIG. 5 is as shown in FIG.
[0179]
FIG. 18 is a flowchart showing details of note event processing when a pitch name identification flag is used.
[0180]
In step SK1, it is checked whether or not the previously read event is a note-on event. If it is a note-on event, the process proceeds to step SK11 to perform sound generation processing. In the sound generation process, musical tone parameters corresponding to the note number (pitch) and note on velocity (volume) included in the note-on event are supplied to the tone generator circuit, and the sound system generates sound.
[0181]
Note-on velocity is interpreted and processed as velocity data (volume). However, note-on velocity is slightly less accurate as velocity data when a pitch identification flag is set in the lower bits. Thereafter, the process proceeds to step SK2 or step SK3 under the following conditions.
[0182]
When the note name identification flag is set to note-on velocity, the process of step SK2 is skipped and the process proceeds to step SK3. If the note name identification flag is set to note-off velocity, the process proceeds to step SK3 after performing the process of step SK2.
[0183]
In step SK2, a note-off event corresponding to the note-on event read out above is searched to obtain a note-off velocity in the note-off event.
[0184]
In step SK3, it is checked whether the note number 1b (FIG. 2) in the note-on event read above indicates a black key or a white key. In the case of a black key, the process proceeds to step SK5 to determine whether the pitch name should be expressed by # or ♭.
[0185]
In step SK5, it is checked whether or not the velocity is an odd number. That is, it is checked whether or not the pitch name identification flag which is the lower 1 bit of the note on velocity or note off velocity is 1.
[0186]
When the velocity is an odd number, it means ♭, so the process proceeds to step SK6, where the note name is displayed or pronounced on the display. For display, for example, “D「 ”is displayed. In the case of pronunciation, for example, it is pronounced “D-flat”. Thereafter, the process returns to the process of FIG.
[0187]
If the velocity is an even number, it means #, so the process proceeds to step SK7, where the note name is displayed or pronounced as # on the display. For display, for example, “C #” is displayed. When pronounced, for example, pronounced “Sea Sharp”. Thereafter, the process returns to the process of FIG.
[0188]
If it is determined in step SK3 that the key corresponding to the note-on event is a white key, neither ♭ nor # is attached, and the process proceeds to step SK4. In step SK4, the note name is displayed or pronounced on the display. For display, for example, “C” is displayed. When pronounced, for example, pronounced “Sea”. Thereafter, the process returns to the process of FIG.
[0189]
If it is determined that the event read in step SK1 is not a note-on event, it means that the event is a note-off event. Therefore, the process proceeds to step SK12, and a sound muting process corresponding to the note-off event is performed. Thereafter, the process proceeds to Step SK8.
[0190]
In step SK8, the display corresponding to the note-off event on the display is turned off. Thereafter, the process returns to the process of FIG.
[0191]
FIG. 19 shows an example of displaying a note name. The keyboard has a plurality of keys 61. One indicator 62 is provided for each of the plurality of keys 61. The display 64 corresponds to the black key 63 and displays “D ♭” or “C #” in accordance with the pitch name identification flag.
[0192]
An example of setting a cue flag for note-on velocity, etc. and an example of setting fingering information for note-on velocity, etc. are shown separately. However, a plurality of types of performance practice flags such as cue flag and fingering information are shown. Two note-on velocities may be set.
[0193]
When the performance practice flag is set in the note on velocity, it is preferable to set the lower 1 to 3 bits in consideration of the accuracy of the note on velocity data. More preferably, a performance practice flag is set in the lower 1 or 2 bits of note-on velocity.
[0194]
When the performance practice flag is set for note-off velocity, the performance practice flag can be set for all bits (7 bits).
[0195]
In addition to note-on velocity and note-off velocity, performance practice flags can be set for volume and effect control information.
[0196]
In the above embodiments, the data amount of the performance data is not set by newly setting a data area unique to the performance practice flag in the performance data, but by setting a part or all of the note on velocity or note off velocity. A performance practice function can be added without increasing the performance.
[0197]
Further, since the performance practice flag is set as a part of note-on velocity or the like, the performance practice flag can be added to the performance data without destroying the format of general-purpose performance data.
[0198]
Since the performance data maintains compatibility with general-purpose performance data (for example, standard MIDI file), it can be widely used for general automatic performance devices that do not have a performance practice function. In the case of using the performance practice device according to this embodiment, in addition to automatic performance, performance control such as matching progress control for each note, fingering identification, left and right hand identification, black key # or ♭ identification, etc. Functions can be added.
[0199]
In the above embodiments, the case where the performance practice flag is set for each note has been described. However, the performance practice flag may be set for each phrase or measure. In that case, a performance practice flag can be set at the beginning of a phrase, or a performance practice flag can be set at the first note (note) of a measure. If a phrase dividing device or the like is used, it is also possible to automatically set the performance practice flag at a predetermined position.
[0200]
Note on note velocity or note off velocity is not limited to interpreting all bits as velocity data (performance information), etc., but only the upper bits excluding the lower bit performance practice flag are velocity data (performance information). And so on. However, in consideration of compatibility with a general-purpose automatic performance device, it is preferable to use all bits for performance information.
[0201]
Also, information indicating whether the performance practice flag is set for note-on velocity or note-off velocity, or what kind of flag is set may be stored in part of the performance data (for example, the header portion). Good. This eliminates the possibility of misinterpreting the flag.
[0202]
The performance practice device is not limited to an electronic musical instrument, but may be a personal computer and application software. In addition, the performance practice device is not limited to being built in an electronic musical instrument together with a sound source device, an automatic performance device, etc., but each is a separate device, and each device is connected using communication means such as MIDI or various networks. It may be connected. Furthermore, it can be applied to an automatic performance piano.
[0203]
The format of the performance data may be a format such as “event + relative time”, “event + absolute time”, “pitch + note length”, “solid method”, etc. in addition to the standard MIDI file.
[0204]
Methods for changing the tempo of automatic performance include changing the tempo clock period, modifying the timing data value while leaving the tempo clock period unchanged, or changing the timing data value in one process. It may be changed.
[0205]
The automatic performance data may have a format in which data of a plurality of channels are mixed, or may have a format in which the data of each channel is separated for each track.
[0206]
Although the present invention has been described with reference to the embodiments, the present invention is not limited thereto. It will be apparent to those skilled in the art that various modifications, improvements, combinations, and the like can be made.
[0207]
【The invention's effect】
As described above, according to the present invention, since the lower bits of the data in the performance data are rewritten with the performance practice information, versatility as performance data is maintained. Further, since it is not necessary to secure a special data area for performance practice information, performance practice information can be added to performance data without increasing the amount of performance data. The performance practice information can add a performance practice function to the performance practice device.
[Brief description of the drawings]
FIG. 1A is a diagram showing a MIDI standard note-on velocity configuration, and FIG. 1B is a diagram showing a note-on velocity configuration in which a performance practice flag is embedded according to an embodiment of the present invention. It is.
FIG. 2 is a diagram showing a format example of performance data used in the performance practice device according to the present embodiment.
FIG. 3 is a block diagram showing a configuration of a performance practice device according to the present embodiment.
FIG. 4 is a flowchart of a main routine when a part of note-on velocity is used as a cue (match progress) flag.
FIG. 5 is a flowchart showing details of performance data reading processing in step SA3 of FIG. 4;
6A is a flowchart showing a reproduction timer interrupt process, and FIG. 6B is a flowchart showing a match progress timer interrupt process.
FIG. 7 is a flowchart showing details of note event processing in step SB4 of FIG. 5;
8A is a diagram showing a configuration of a reproduction match progress buffer, and FIG. 8B is a diagram showing a configuration of a hand match progress buffer.
FIG. 9 is a flowchart showing details of matching progress processing in step SA2 of FIG. 4;
FIG. 10 is a flowchart showing details of a key pressing process in step SA4 of FIG.
FIG. 11 is a diagram illustrating an example in which a performance practice flag is set in a part of note-off velocity.
FIG. 12 is a flowchart showing data conversion processing of performance data.
FIG. 13 is a flowchart showing processing of a main routine when a fingering identification flag is used.
FIG. 14 is a flowchart showing details of note event processing when a fingering identification flag is used.
FIGS. 15A and 15B are diagrams showing display examples of fingering information. FIGS.
FIG. 16 is a flowchart showing details of note event processing when a left / right hand identification flag is used;
FIG. 17 is a diagram illustrating a display example of left and right hand information.
FIG. 18 is a flowchart showing details of note event processing when a pitch name identification flag is used.
FIG. 19 is a diagram illustrating a display example of pitch name information.
[Explanation of symbols]
1 note-on event, 2, 4 timing data, 3 note-off event, 5 end data, 6 velocity data, 7 performance practice flag, 10 performance data, 11 ROM, 12 RAM, 13 CPU, 14 timer, 15 MIDI interface, 16 Floppy disk drive, 17 keyboard, 18 keyboard detection circuit, 19 switch, 20 switch detection circuit, 21 display circuit, 22 sound source circuit, 23 effect circuit, 24 sound system, 25 bus, 30 performance data, 31 performance practice flag, 41 Liquid crystal display (LCD), 42 LED

Claims (6)

演奏データ中から複数のビットで構成される第1のデータを検出する検出手段と、
前記第1のデータを演奏情報として解釈し処理する第1の処理手段と、
前記第1のデータの下位2ビットの4つの値をそれぞれ親指、人差し指、中指、及び薬指又は小指を指示する運指情報として解釈し、前記運指情報に基づき指を表す情報を表示する第2の処理手段と
を有する演奏練習装置。
Detecting means for detecting first data composed of a plurality of bits from the performance data;
First processing means for interpreting and processing the first data as performance information;
A second value that interprets the four values of the lower 2 bits of the first data as fingering information indicating the thumb, index finger, middle finger, and ring finger or little finger, respectively, and displays information representing the finger based on the fingering information. And a performance practice apparatus.
演奏データを順次読み出す読み出し手段と、
前記読み出し手段が演奏データ中からノートオンイベントを読み出すのに応じて、該ノートオンイベントに対応するノートオフイベント中のノートオフベロシティをサーチするサーチ手段と、
前記サーチ手段がサーチしたノートオフベロシティを演奏練習情報として処理する演奏練習処理手段と
を有する演奏練習装置。
Reading means for sequentially reading performance data;
Search means for searching for a note-off velocity in a note-off event corresponding to the note-on event in response to the reading means reading a note-on event from the performance data;
A performance practice device comprising performance practice processing means for processing the note-off velocity searched by the search means as performance practice information.
ノートオンイベントとノートオフイベントを含む演奏データを変換し新たな演奏データを生成する手段であって、演奏データにおいてノートオフイベント中のノートオフベロシティに対応する演奏練習情報を、該ノートオフイベントに対応するノートオンイベントに関連付けて記憶する形式の演奏データを生成する演奏データ変換手段と、
前記演奏データ変換手段が生成する演奏データを順次読み出す読み出し手段と、
前記読み出し手段が演奏データ中からノートオンイベントを読み出すと、該ノートオンイベントに関連付けられた演奏練習情報を基に演奏練習の処理を行う演奏練習処理手段と
を有する演奏練習装置。
A means for converting performance data including a note-on event and a note-off event to generate new performance data, and performance practice information corresponding to the note-off velocity in the note-off event in the performance data is stored in the note-off event. Performance data conversion means for generating performance data in a format stored in association with the corresponding note-on event;
Reading means for sequentially reading out performance data generated by the performance data conversion means;
A performance practice device comprising performance practice processing means for performing performance practice processing based on performance practice information associated with the note-on event when the readout means reads a note-on event from performance data.
(a)演奏データ中から複数のビットで構成される第1のデータを検出する手順と、
(b)前記第1のデータを演奏情報として解釈し処理する手順と、
(c)前記第1のデータの下位2ビットの4つの値をそれぞれ親指、人差し指、中指、及び薬指又は小指を指示する運指情報として解釈し、前記運指情報に基づき指を表す情報を表示する処理手順と
をコンピュータに実行させるためのプログラムを記録した媒体。
(A) a procedure for detecting first data composed of a plurality of bits from the performance data;
(B) a procedure for interpreting and processing the first data as performance information;
(C) Interpreting the four values of the lower 2 bits of the first data as fingering information indicating the thumb, index finger, middle finger, and ring finger or little finger, respectively, and displaying information representing the finger based on the fingering information A medium storing a program for causing a computer to execute the processing procedure.
(a)演奏データを順次読み出す手順と、
(b)前記手順(a)で演奏データ中からノートオンイベントを読み出すのに応じて、該ノートオンイベントに対応するノートオフイベント中のノートオフベロシティをサーチする手順と、
(c)前記サーチしたノートオフベロシティを演奏練習情報として処理する手順と
をコンピュータに実行させるためのプログラムを記録した媒体。
(A) a procedure for sequentially reading performance data;
(B) a procedure for searching for a note-off velocity in a note-off event corresponding to the note-on event in response to reading the note-on event from the performance data in the procedure (a);
(C) A medium on which a program for causing a computer to execute a procedure for processing the searched note-off velocity as performance practice information is recorded.
(a)ノートオンイベントとノートオフイベントを含む演奏データを変換し新たな演奏データを生成する手順であって、演奏データにおいてノートオフイベント中のノートオフベロシティに対応する演奏練習情報を、該ノートオフイベントに対応するノートオンイベントに関連付けて記憶する形式の演奏データを生成する手順と、
(b)前記手順(a)で生成された演奏データを順次読み出す手順と、
(c)前記手順(b)で演奏データ中からノートオンイベントを読み出すと、該ノートオンイベントに関連付けられた演奏練習情報を基に演奏練習の処理を行う手順と
をコンピュータに実行させるためのプログラムを記録した媒体。
(A) A procedure for converting performance data including a note-on event and a note-off event to generate new performance data, and performing performance information corresponding to the note-off velocity in the note-off event in the performance data A procedure for generating performance data in a format to be stored in association with the note-on event corresponding to the off-event;
(B) a procedure for sequentially reading the performance data generated in the procedure (a);
(C) A program for causing a computer to execute a procedure of performing a performance practice based on performance practice information associated with the note-on event when a note-on event is read from the performance data in the procedure (b) The medium that recorded.
JP15890697A 1996-06-14 1997-06-16 Performance practice device and medium recording program Expired - Fee Related JP3613935B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP15890697A JP3613935B2 (en) 1996-06-14 1997-06-16 Performance practice device and medium recording program

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-154528 1996-06-14
JP15452896 1996-06-14
JP15890697A JP3613935B2 (en) 1996-06-14 1997-06-16 Performance practice device and medium recording program

Publications (2)

Publication Number Publication Date
JPH1069215A JPH1069215A (en) 1998-03-10
JP3613935B2 true JP3613935B2 (en) 2005-01-26

Family

ID=26482786

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15890697A Expired - Fee Related JP3613935B2 (en) 1996-06-14 1997-06-16 Performance practice device and medium recording program

Country Status (1)

Country Link
JP (1) JP3613935B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012002337A (en) * 2010-06-21 2012-01-05 Santoku Shoji Kk Pipe end fixture

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6965697B1 (en) 1998-07-15 2005-11-15 Sony Corporation Coding apparatus and method, decoding apparatus and method, data processing system, storage medium, and signal
US6417439B2 (en) 2000-01-12 2002-07-09 Yamaha Corporation Electronic synchronizer for musical instrument and other kind of instrument and method for synchronizing auxiliary equipment with musical instrument
JP3674469B2 (en) * 2000-07-24 2005-07-20 ヤマハ株式会社 Performance guide method and apparatus and recording medium
JP2002049301A (en) * 2000-08-01 2002-02-15 Kawai Musical Instr Mfg Co Ltd Key press display device, electronic musical instrument system, key press display method, and storage medium
JP4618704B2 (en) * 2003-09-04 2011-01-26 株式会社河合楽器製作所 Code practice device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012002337A (en) * 2010-06-21 2012-01-05 Santoku Shoji Kk Pipe end fixture

Also Published As

Publication number Publication date
JPH1069215A (en) 1998-03-10

Similar Documents

Publication Publication Date Title
JP3598598B2 (en) Karaoke equipment
JP3293745B2 (en) Karaoke equipment
JP3718919B2 (en) Karaoke equipment
JP6465136B2 (en) Electronic musical instrument, method, and program
CN104050952A (en) Musical performance device and musical performance method
JP3613935B2 (en) Performance practice device and medium recording program
JP4802857B2 (en) Musical sound synthesizer and program
JP3684774B2 (en) Performance instruction device and medium recording program
JP3484719B2 (en) Performance guide device with voice input function and performance guide method
JP3760833B2 (en) Karaoke equipment
JP3261990B2 (en) Karaoke equipment
JPH01288900A (en) Singing voice accompanying device
JP3613062B2 (en) Musical sound data creation method and storage medium
JPH1069216A (en) Karaoke sing-alone machine
JP2002268637A (en) Time signature device and program
JP2674452B2 (en) Music player
JPH0631977B2 (en) Electronic musical instrument
JP3654227B2 (en) Music data editing apparatus and program
JPH05204297A (en) Floor name generator
JP3747802B2 (en) Performance data editing apparatus and method, and storage medium
JP5257842B2 (en) Musical sound generating device and musical sound generating program
JP7425558B2 (en) Code detection device and code detection program
JP3752956B2 (en) PERFORMANCE GUIDE DEVICE, PERFORMANCE GUIDE METHOD, AND COMPUTER-READABLE RECORDING MEDIUM CONTAINING PERFORMANCE GUIDE PROGRAM
JP2570411B2 (en) Playing equipment
JPH10247059A (en) Play guidance device, play data generating device for play guide, and storage medium

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040120

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040713

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20040910

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: 20041012

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20041025

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: 20071112

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20081112

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091112

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101112

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111112

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees