JP2003108119A - 演奏情報表示装置、及びプログラム - Google Patents

演奏情報表示装置、及びプログラム

Info

Publication number
JP2003108119A
JP2003108119A JP2001300728A JP2001300728A JP2003108119A JP 2003108119 A JP2003108119 A JP 2003108119A JP 2001300728 A JP2001300728 A JP 2001300728A JP 2001300728 A JP2001300728 A JP 2001300728A JP 2003108119 A JP2003108119 A JP 2003108119A
Authority
JP
Japan
Prior art keywords
performance information
event
data
pitch
variable
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.)
Withdrawn
Application number
JP2001300728A
Other languages
English (en)
Inventor
Naoyuki Komata
直幸 小股
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2001300728A priority Critical patent/JP2003108119A/ja
Publication of JP2003108119A publication Critical patent/JP2003108119A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 発音させるべき楽音の音高やその発音期間以
外の演奏情報をユーザに提示できる演奏情報表示装置を
提供する。 【解決手段】 ROM102に格納された曲データは、
処理すべきタイミングを示す時間データ、及びイベント
の種類や内容を表す各種パラメータデータを有する多数
のイベントデータから構成されている。イベントの種類
としては、楽音の発音を指示するノートイベント、親指
を他の指の下にくぐらせることをユーザに指示するため
の指くぐりイベント、演奏を行う際の手の位置をユーザ
に指示するための手の位置イベント、などがある。CP
U101は、曲データの自動演奏を行う場合、ノートイ
ベント以外のイベントをユーザの選択に従い、表示部1
05にスクロール表示させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、楽音の音高別に、
その音高の楽音の発音持続時間を示すオブジェクトをス
クロール表示するための技術に関する。
【0002】
【従来の技術および発明が解決しようとする課題】現在
では、多くの鍵盤楽器に、演奏の進行に応じて押鍵(操
作)すべき鍵を順次、ユーザ(演奏者)に通知していく
ナビゲーション機能が搭載されている。楽音の音高別
に、その音高の楽音の発音持続時間を示すオブジェクト
をスクロール表示させる演奏情報表示装置は、例えばそ
のナビゲーション機能として鍵盤楽器に搭載される。
【0003】その演奏情報表示装置では、オブジェクト
のスクロールする方向上の長さは発音持続時間に応じて
変化させる。そのオブジェクトの端は、それが発音持続
時間を示す楽音の発音を開始させるタイミングで消去を
開始、或いは予め定めた位置に到達させる。それによ
り、そのオブジェクトのスクロール表示を通して、発音
させるべき楽音の音高、その楽音の発音を開始させるタ
イミング、及びその楽音を消音させるタイミングを表現
している。このため、そのスクロール表示に従って楽音
を発音させれば、即ちそのオブジェクトが発音持続時間
を示す楽音の音高が割り当てられた鍵の押鍵、及びその
離鍵を行えば、発音させるべき楽音を正確に発音できる
ようになっている。なお、楽音を発音させているべき発
音期間は、楽音の発音を開始させるタイミング、及びそ
の楽音を消音させるタイミング(発音持続時間)で表さ
れる。
【0004】従来の演奏情報表示装置は、基本的にオブ
ジェクトのスクロール表示のみを行うようになってい
た。しかし、演奏情報表示装置を利用するユーザの多く
は技術的に未熟である。そのようなユーザにとっては、
オブジェクトのスクロール表示に従って演奏を行うのは
困難であるというのが実情である。たとえスクロール表
示に従って演奏を正しく行えたとしても、その演奏が音
楽的表現の豊かなものになるとは思われない。このた
め、発音させるべき楽音の音高、その楽音期間(発音を
開始させるタイミング、及びそれの発音持続時間(消音
させるタイミング))以外の演奏情報をユーザに提供す
る必要があると考えられる。
【0005】本発明の課題は、発音させるべき楽音の音
高やその発音期間以外の演奏情報をユーザに提示できる
演奏情報表示装置を提供することにある。
【0006】
【課題を解決するための手段】本発明の第1〜第3の態
様の演奏情報表示装置は、楽音の音高別に、該音高の楽
音の発音持続時間を示すオブジェクトをスクロール表示
することを前提とし、楽音の音高、該音高の楽音の発音
開始タイミング、及び該楽音の発音持続時間を該楽音単
位で表す曲データを取得する曲データ取得手段と、曲デ
ータ取得手段が取得した曲データ中で発音持続時間が表
されている楽音のオブジェクトを表示装置上にスクロー
ル表示させる第1の演奏情報表示手段と、を備えてい
る。それらの手段以外に、それぞれ以下の手段を更に具
備する。
【0007】第1の態様の演奏情報表示装置は、曲デー
タ取得手段が取得した曲データ中で表されている、オブ
ジェクトのスクロール表示で表現されない演奏情報であ
る第2の演奏情報を表示装置上に表示させる第2の演奏
情報表示手段、を更に具備する。
【0008】なお、上記第2の演奏情報表示手段は、第
2の演奏情報として、該楽音の音量、コードを構成する
楽音の組み合わせ、及びコード名のうちの少なくとも一
つを表示装置上に表示させる、ことが望ましい。
【0009】第2の態様の演奏情報表示装置は、上記第
1の態様における構成に加えて、発音させる楽音の音高
を指示するための音高操作子群への操作の仕方、或いは
該音高操作子群以外に演奏操作の対象となる演奏操作子
への操作内容を表す第3の演奏情報を取得する第3の演
奏情報取得手段と、第3の演奏情報取得手段が取得した
第3の演奏情報を表示装置上に表示させる第3の演奏情
報表示手段と、を更に具備する。
【0010】なお、上記第3の演奏情報取得手段が取得
する第3の演奏情報は、音高操作子群が鍵盤であった場
合に、該鍵盤上での手の位置、該手の移動方向、該手を
移動させるタイミング、指を交差させることの有無、及
び演奏操作子への操作の有無、のうちの少なくとも一つ
を含む、ことが望ましい。
【0011】第3の態様の演奏情報表示装置は、発音さ
せる楽音の音高を指示するための音高操作子群への操作
の仕方、或いは該音高操作子群以外に演奏操作の対象と
なる演奏操作子への操作内容を表す第2の演奏情報を取
得する第2の演奏情報取得手段と、第2の演奏情報取得
手段が取得した第2の演奏情報を表示装置上に表示させ
る第2の演奏情報表示手段と、を具備する。
【0012】なお、上記第1〜第3の態様において、各
演奏情報表示手段は、対応する演奏情報をパート別に表
示させる、ことが望ましい。本発明の第1、及び第2の
態様のプログラムは、楽音の音高別に、該音高の楽音の
発音持続時間を示すオブジェクトをスクロール表示する
演奏情報表示装置に実行させることを前提として、それ
ぞれ、以下の機能を実現させる。
【0013】第1の態様のプログラムは、楽音の音高、
該音高の楽音の発音開始タイミング、及び該楽音の発音
持続時間を該楽音単位で表す曲データを取得する機能
と、取得する機能により取得した曲データ中で発音持続
時間が表されている楽音のオブジェクトを表示装置上に
スクロール表示させる機能と、取得する機能により取得
した曲データ中で表されている、オブジェクトのスクロ
ール表示で表現されない演奏情報である第2の演奏情報
を表示装置上に表示させる機能と、を実現させる。
【0014】第2の態様のプログラムは、楽音の音高、
該音高の楽音の発音開始タイミング、及び該楽音の発音
持続時間を該楽音単位で表す曲データを取得する機能
と、曲データを取得する機能により取得した曲データ中
で発音持続時間が表されている楽音のオブジェクトを表
示装置上にスクロール表示させる機能と、発音させる楽
音の音高を指示するための音高操作子群への操作の仕
方、或いは該音高操作子群以外に演奏操作の対象となる
演奏操作子への操作内容を表す第2の演奏情報を取得す
る機能と、第2の演奏情報を取得する機能により取得し
た第2の演奏情報を表示装置上に表示させる機能と、を
実現させる。
【0015】本発明では、楽音の音高、及びその発音持
続時間を示すオブジェクトをスクロール表示させつつ、
楽音の音高、及びその発音期間(発音を開始させてから
消音させるまでの期間)以外の演奏情報を表示してユー
ザ(演奏者)に提示する。
【0016】その演奏情報とは、例えば曲想(楽音の音
量)や、鍵盤などの音高操作子群への操作の仕方、或い
は音高操作子群以外の演奏操作子(例えばペダル)への
操作内容である。そのような演奏情報を提示することに
より、ユーザはより容易な演奏、より適切な形での演
奏、或いは音楽的表現がより豊かな演奏を行えるように
なる。その結果、ユーザはより効率的な練習を行った
り、音楽的表現力をより迅速に身に付けられるようにな
る。
【0017】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら詳細に説明する。図1は、本実
施の形態による演奏情報表示装置を搭載した電子楽器の
回路構成図である。
【0018】本実施の形態による演奏情報表示装置は、
電子楽器のユーザが行う演奏をナビゲートさせるために
搭載されている。それを搭載した電子楽器は、図1に示
すように、楽器全体の制御を行うCPU101と、その
CPU101が実行するプラグラムや各種曲データ、及
び各種制御データ(画像表示用の各種データを含む)な
どを格納したROM102と、そのCPU101がワー
ク用に用いるRAM103と、多数の鍵を有する鍵盤1
04と、CPU101から送られたデータを画面上に表
示する表示部105と、ユーザが操作の対象とする操作
部106と、CPU101の指示に従って楽音の波形デ
ータを生成する音源107と、その音源107が出力し
た波形データをサウンドに変換して放音するサウンドシ
ステム108と、演奏操作の対象となるペダル109
と、そのペダル109が接続されるインターフェース1
10と、CPU101を各部102〜107、110と
接続するバス111と、を備えて構成されている。
【0019】上記表示部105は、例えばCRT、或い
は液晶表示装置などの表示装置である。操作部106
は、例えば各種スイッチやキー等の複数の操作子、及び
それら操作子への操作を検出する検出回路から構成され
た入力装置である。サウンドシステム108は、例えば
D/Aコンバータ、アンプ、及びスピーカからなるシス
テムである。ペダル109は、例えば離鍵後に楽音を急
速に消音させるためのダンパーペダルである。なお、ペ
ダル109は、そのダンパーペダルにのみ限定されるも
のではなく、別のペダルであっても良い。その数も一つ
ではなく、複数であっても良い。
【0020】図2は、上記曲データの構成を説明する図
である。その曲データは、ROM102に複数、格納さ
れており、それぞれ、複数のトラックデータから構成さ
れている。各トラックデータは、それぞれ、対象とする
演奏を自動的に再生するための演奏データ、或いはその
演奏に係わる設定などを自動的に変更していくための設
定データである。本実施の形態では、左手で行う演奏の
再生用、右手で行う演奏の再生用、伴奏1の再生用、伴
奏2の再生用、及びテンポ変更用などに対象を分類し
て、各分類毎にトラックデータを用意している。
【0021】各トラックデータは、それぞれ1つ以上の
イベントデータから構成される。そのイベントデータ
は、イベントの内容を表す複数のパラメータのデータ
と、そのデータを処理すべきタイミングを示す時間デー
タと、から構成されている。そのパラメータとしては、
特に図示していないが、イベントのタイプを示すもの
(以降、そのデータをタイプデータと呼ぶ)、タイプ別
に用意されるパラメータなどがある。
【0022】タイプデータが表すイベントのタイプとし
ては、楽音の発音を指示するノートイベント、和音(コ
ード)の発音を指示する和音イベント、テンポの変更を
指示するテンポイベント、親指を他の指の下にくぐらせ
る(指くぐりさせる)ことをユーザに指示するための指
くぐりイベント、ペダル109への操作をユーザに指示
するためのペダルイベント、演奏を行う際の手の位置を
ユーザに指示するための手の位置イベント、その手の位
置の移動をユーザに指示するための手の移動イベント、
などがある。それらのなかでテンポイベントを除く各イ
ベントが表示の対象となる演奏情報である。それら各イ
ベントには、以下のようなパラメータ(データ)を用意
している。
【0023】先ず、ノートイベントでは、楽音の音高を
示す音高データ、その音量を示すベロシティデータ、発
音持続時間を示すゲートタイムデータ、その楽音を発音
させるためにユーザが使うべき指を示す指番号データ、
及びその楽音に対応する音符を示す音符データを用意し
ている。和音イベントでは、和音を構成する楽音の最低
音高を示す最低音高データ、それの最高音高を示す最高
音高データ、コード名を示すコード名データ、及びゲー
トタイムデータを用意している。テンポイベントでは、
新たに設定すべきテンポ値を示すデータを用意してい
る。
【0024】指くぐりイベントでは、親指を指くぐりさ
せる指で押鍵させているべき鍵の音高を示すデータを用
意している。ペダルイベントでは、ペダルのオン、或い
はオフを示すデータを用意している。手の位置イベント
では、手の位置を示すデータ、及びその位置を保持する
時間を示すデータを用意している。手の移動イベントで
は、移動を開始させる手の位置を示すデータ、及びその
移動を終了させる手の位置を示すデータを用意してい
る。
【0025】なお、上記曲データには、手の位置イベン
トや手の移動イベント、及び指くぐりイベントなど、演
奏の再生に関係しないイベントデータ(それらはユーザ
が演奏を行う際の動作に係わるものであることから、以
降、便宜的に動作イベントデータと呼ぶ)を含ませてい
るが、そのようなイベントデータは曲データに含めない
ようにしても良い。即ち曲データは、演奏の再生に関係
するイベントデータのみで構成させて、動作イベントデ
ータは、曲データとは別に、或いはその曲データの内容
を解析して取得するようにしても良い。動作イベントデ
ータ、及び曲データの少なくとも一方を外部から取得す
るようにしても良い。それらのデータ形式についても特
に限定されるものではない。動作イベントデータについ
ては、上述した種類、数に限定されるものではない。例
えば指くぐりイベントと同様に指を交差させるイベント
として、親指の上を他の指にまたがせる(指またぎさせ
る)ことをユーザに指示するための指またぎイベントを
動作イベントに加え、そのデータを取得するようにして
も良い。
【0026】以上の構成において、その動作を説明す
る。CPU101は、電源がオンされると、ROM10
2に格納されているプログラムを読み出して実行するこ
とにより、楽器全体の制御を開始し、表示部105には
初期画面を表示させる。それ以降は、ユーザの鍵盤10
4、操作部106、或いはペダル109への操作に応じ
て制御を行う。
【0027】CPU101は、その初期画面を表示させ
るための画像データを、例えばRAM103を作業用に
使用して、ROM102から読み出した複数の画像デー
タを用いて生成する。そのようにして生成された初期画
面の画像データを送られた表示部105は、それを特に
は図示しないメモリ(例えばデュアルポートRAM)に
格納する。それ以降における表示内容の全体的、或いは
部分的な変更は、例えばCPU101が、そのメモリに
格納された画像データ中でデータを書き換えるべき部分
の画像データをROM102から読み出すか、或いはそ
れを用いて生成し、そのようにして得た画像データを、
そのメモリ中の画像データを書き換えるべき部分に上書
きすることで行われる。そのようにして、CPU101
は、表示部105に、表示すべき画面やメッセージを表
示させたり、演奏情報をスクロールさせて表示させる。
【0028】演奏情報のスクロール表示は、ユーザが操
作部106を操作して、例えば自動再生の対象とする曲
データを選択した後、その自動再生を指示した場合に行
うようになっている。本実施の形態では、各種演奏情
報、即ち各種イベントを以下のように表示させている。
図3〜図9に示す各種表示例を参照して具体的に説明す
る。
【0029】図3は、曲想(楽音の音量(ベロシティ
値))の表示例を示す図である。表示部105の画面の
下方には、鍵盤を上方から見た上面図301が配置され
ている。その上面図301は、表示させておく可能性が
高いことから、例えば印刷したものである。
【0030】その上面図301の上方には、それの白鍵
に合わせて縦に線が表示、或いは印刷されている。発音
させるべき(曲データの再生によって発音される)楽音
の発音持続時間を示す発音オブジェクト302は、その
楽音の音高が割り当てられた鍵の上方に配置され、曲デ
ータの再生の進行に応じて、図3中の矢印で示す方向に
移動させていくことでスクロール表示される。曲想は、
そのような状況下で表示させる。
【0031】本実施の形態では、図3に示すように、発
音オブジェクト302を除く部分である背景に色の濃淡
により曲想を表示させている。その濃淡は、スクロール
の方向に、楽音間の音量(ベロシティ値)の違いに合わ
せて形成させている。楽音の発音を開始する位置、即ち
その楽音の発音オブジェクト302の上面図301側の
端の位置では、その楽音の音量に合った色の濃さとさせ
ている。そのために、濃淡も発音オブジェクト302の
スクロールに合わせてスクロールさせている。そのよう
にして、ユーザが発音させるべき楽音の音量だけでな
く、その音量変化も表現させている。それにより、ユー
ザが演奏の流れに合った強弱で楽音を発音させていくの
を支援している。
【0032】なお、本実施の形態では、楽音の音量変化
を背景の濃淡で表現するようにしているが、他の方法で
それを表現するようにしても良い。例えば発音オブジェ
クト302だけを対象にして、それが対応する楽音の音
量を色、色の濃淡、或いはシンボルなどで表すと共に、
その楽音の音量と比較して次に発音させるべき楽音の音
量が大きいか否かをシンボル、或いは色などで表すよう
にしても良い。このようなことから、様々な変形を行う
ことができる。発音オブジェクト302などをスクロー
ルしていく方向については、その方向上の長さが時間を
表していることから、以降、時間軸とも呼ぶことにす
る。その直交方向、即ち上面図301で鍵が並ぶ方向に
ついては、その方向上の位置が音階(音高)を表してい
ることから、音階軸とも呼ぶことにする。
【0033】図4は、ペダルイベントの表示例を示す図
である。そのペダルイベントは、図4に示すように、ペ
ダル109をオンさせているべき時間を示す矩形形の枠
401を表示させることで表している。その枠401内
の色、或いはその濃さは背景色とは異なるものとしてい
る。
【0034】本実施の形態では、ノートイベント以外の
イベントや曲想を表示させるか否かはユーザに選択させ
ている。図4に示すような枠401の表示は、ペダルイ
ベントのみをユーザが選択した場合のものである。これ
は図5〜図8においても同様である。ユーザが曲想も選
択した場合には異なる形で枠401は表示させている。
具体的には、例えば曲想を表す濃淡を表示する範囲を狭
め、その範囲内での色の表示を避けて枠401を表示さ
せている。それにより、曲想を表す濃淡の把握をユーザ
が困難になるのを回避させつつ、ペダル109をオンさ
せるべき時間も明確に把握できるようにさせている。こ
れは、他の組み合わせでイベントをユーザが選択した場
合も同様である。のなお、それ以外の方法で枠401、
或いは曲想の濃淡を表示させるようにしても良い。ペダ
ルイベントを別の方法で表示させるようにしても良い。
【0035】手の位置イベントとは、鍵盤104を操作
する際に手があるべき位置を表すものである。その手の
位置イベントは、図5に示すように、手をそこに位置さ
せているべき時間を示す矩形形の位置オブジェクト50
1を、その位置に対応する画面上の位置に表示させるこ
とで表している。
【0036】手の移動イベントとは、鍵盤104上の鍵
を操作するうえで手の移動のさせかた、及びそのタイミ
ングを表すものである。その手の移動イベントは、図6
に示すように、手があるべき位置から移動させるべき位
置までの方向、及び移動量を示す矢印の形をした移動オ
ブジェクト601を、それらの位置の間に配置すること
で表している。その図6に示す移動オブジェクト601
は、図5に示す2つの位置オブジェクト501で表され
る手の位置でユーザに演奏を行わせるためのものであ
る。
【0037】図7は、和音イベントの表示例を示す図で
ある。和音は、複数の楽音から構成される。このことか
ら、本実施の形態では、図7に示すように、和音の各構
成音は発音オブジェクト302で表し、それら発音オブ
ジェクト302で表される楽音が和音を構成しているこ
とは、それら発音オブジェクト302の一部と重ねた形
で表示した和音オブジェクト701で表している。その
和音オブジェクト701内には、その和音名(コード
名)を表すシンボル(図中の「E」「D」が対応)を表
示させている。それにより、和音の構成音だけでなく、
その名前もユーザが把握できるようにさせている。
【0038】図8は、指くぐりイベントの表示例を示す
図である。その指くぐりイベントは、図8に示すよう
に、指くぐりさせて発音させるべき楽音を示す発音オブ
ジェクト801に対し、その指くぐりを行うべきである
ことを示す指くぐりオブジェクト801の一部を重ねる
形で表示することで表している。
【0039】図3〜図8を参照して説明した濃淡や枠4
01、及び各種オブジェクトは、全て曲データ中のイベ
ントデータ(図2参照)を参照して表示させるものであ
る。その曲データ中のイベントデータを参照して表示で
きる演奏情報はそれらに限定されるわけではない。例え
ば図9に示すように、発音させるべき楽音を示す発音オ
ブジェクト302をパート別に分ける境界線901を表
示させても良い。その境界線901を表示させる位置や
形状は、例えば右手演奏用、及び左手演奏用の少なくと
も一方のトラックデータで発音される楽音の音高、その
時間変化などを解析してその音高の範囲を特定して決定
すれば良い。そのようにして境界線901を表示させる
ようにした場合には、発音させるべき楽音のパートをユ
ーザは容易に把握できるようになり、そのパートを意識
した演奏を行えることとなる。
【0040】図3〜図9を参照して説明した演奏情報の
何れを表示させても、ユーザにとっては従来の演奏情報
表示装置と比較して、より多くの演奏情報を得られるよ
うになる。自身が行うべき演奏のやりかたなどを確認で
きるようになる。このため、ユーザがより適切な形で演
奏を行うのを支援することになる。それにより、音楽的
表現がより豊かな演奏もより短時間で行えるようにな
る。
【0041】次に、上述したような演奏情報のスクロー
ル表示を実現するCPU101の動作について、図10
〜図19に示す各種フローチャートを参照して詳細に説
明する。
【0042】図10は、全体処理のフローチャートであ
る。この全体処理は、ユーザが電源をオンさせた場合
に、CPU101が、ROM102に格納されているプ
ログラムを実行することで実現される処理の全体的な流
れを表したものである。始めに図10を参照して、その
全体処理について詳細に説明する。
【0043】先ず、ステップ1001では、楽器を状態
を所定の状態に初期化する初期化処理を実行する。次に
移行するステップ1002では、操作部106を構成す
る各種スイッチの状態を示すデータを、その操作部10
6の検出回路から取り込む処理を実行する。その後はス
テップ1003に移行する。
【0044】ステップ1003では、操作部106の検
出回路から取り込んだデータを解析して、何らかのスイ
ッチがユーザに操作されたか否か判定する。操作部10
6を構成する何らかのスイッチをユーザが操作した場
合、判定はYESとなってステップ1004に移行す
る。そうでない場合には、判定はNOとなってステップ
1012に移行する。
【0045】電源のオン/オフを指示するための電源ス
イッチは、操作部106を構成するスイッチとして設け
られている。ステップ1004では、その電源スイッチ
が操作されたか否か判定する。そのスイッチをユーザが
操作した場合、判定はYESとなり、ここで一連の処理
を終了する。そうでない場合には、判定はNOとなって
ステップ1005に移行する。
【0046】ステップ1005では、操作部106を構
成する、曲データの再生(自動演奏)の開始を指示する
ためのスタートスイッチが操作されたか否か判定する。
そのスイッチをユーザが操作した場合、判定はYESと
なり、ステップ1006に移行して、現在、選択されて
いる曲データの再生を開始するための演奏開始処理を実
行した後、ステップ1012に移行する。そうでない場
合には、判定はNOとなってステップ1007に移行す
る。その演奏開始処理を実行した際に、曲データの再生
を管理するために用意した変数Playflgには再生
中であることを表す値の1が代入される。
【0047】ステップ1007では、操作部106を構
成する、曲データの再生(自動演奏)の停止(終了)を
指示するためのストップスイッチが操作されたか否か判
定する。そのスイッチをユーザが操作した場合、判定は
YESとなり、ステップ1008に移行して、現在、再
生中の曲データの再生を停止させるための演奏停止処理
を実行した後、ステップ1012に移行する。そうでな
い場合には、判定はNOとなってステップ1009に移
行する。その演奏停止処理を実行した際に、上記変数P
layflgには曲データを再生中でないことを表す値
の0が代入される。
【0048】本実施の形態では、表示部105で表す時
間軸の単位、即ち1画面で表す演奏時間(以降、表示範
囲時間と呼ぶ)の長さをユーザが変更できるようにさせ
ている。ステップ1009では、操作部106を構成す
る、その変更を指示するためのスイッチが操作されたか
否か判定する。そのスイッチをユーザが操作した場合、
判定はYESとなってステップ1010に移行し、ユー
ザが操作したスイッチの種類に応じて表示範囲時間を変
更する表示時間処理を実行して、変更後の表示範囲時間
を表す値を変数tkDispRangeに代入した後、
ステップ1012に移行する。そうでない場合には、判
定はNOとなり、ステップ1011に移行して、操作部
106を構成する他のスイッチへのユーザの操作に対応
するための処理を実行した後、ステップ1012に移行
する。
【0049】操作部106を構成するスイッチのなかに
は、上記動作イベント(ノートイベント以外のイベン
ト)、及び曲想のなかで表示させる対象を選択するため
のものがある。そのためのスイッチへのユーザの操作
は、ステップ1011の処理を実行することで対応させ
ている。和音イベント、指くぐりイベント、手の位置イ
ベント、ペダルイベント、手の移動イベント、及び曲想
の表示をユーザが選択した場合には、ステップ1011
の処理を実行することで、それぞれ、その表示を管理す
るために用意した変数Choflg、Kugflg、P
dlfig、Posflg、Dirflg、及びVol
figに、その旨を示す値の1が代入される。それら変
数のなかでユーザが表示を選択していないものには、そ
の旨を示す値の0が代入される。また、鍵盤104やペ
ダル109へのユーザの操作に応じた楽音の発音もステ
ップ1011の処理を実行することで対応するようにな
っている。その楽音の発音(発音開始や消音、更には各
種音響効果の付加など)は、CPU101が、音源10
7に送出すべきコマンドを生成してそれに送出すること
で実現される。
【0050】ステップ1012では、現在、曲データを
自動演奏(再生)中か否か判定する。その自動演奏用に
用意した上記変数Playflgに1が代入されていた
場合、判定はYESとなり、ステップ1013に移行し
て、時間の経過に応じて曲データの自動演奏を進行させ
るための演奏処理を実行した後、ステップ1014に移
行する。そうでない場合には、判定はNOとなってその
ステップ1014に移行する。
【0051】ステップ1014では、発音オブジェクト
302(図3等参照)、更には他のオブジェクトなどを
曲データの自動演奏の進行に合わせてスクロール表示す
るための楽音表示処理を実行する。続くステップ101
5では、ユーザに通知すべき他の情報や各種設定内容な
どを必要に応じて表示するためのその他の表示処理を実
行する。その次に移行するステップ1016では、上述
した以外のことに対応するためのその他の処理を実行す
る。その実行後に上記ステップ1002に戻る。特には
図示しないMIDIインターフェースを介してのMID
Iデータの送受信は、ステップ1016の処理を実行す
ることで実現される。
【0052】このように、電源がオンされている間は、
上記ステップ1002〜1016で形成される処理ルー
プを繰り返し実行するようになっている。それにより、
ユーザの鍵盤104やペダル109への操作、曲データ
の自動演奏(再生)、更にはその自動演奏の進行に合わ
せたスクロール表示に対応するようになっている。
【0053】以降は、上記全体処理内で実行される各種
サブルーチン処理について詳細に説明する。図11は、
上記ステップ1013として実行される演奏処理のフロ
ーチャートである。全体処理内で実行されるサブルーチ
ン処理では、始めに図11を参照して、演奏処理につい
て詳細に説明する。
【0054】この演奏処理が自動演奏の対象とする曲デ
ータは、図2に示すように、複数のトラックデータから
構成される。このことから、演奏処理は、トラックデー
タ別に、対象とするトラックデータを順次、変更しなが
ら、そのトラックデータ中で処理すべきタイミングとな
ったイベントデータを抽出して処理するようになってい
る。それを実現させるために、1次元の配列変数pPl
ayEventの各要素には、それぞれ対応するトラッ
クデータ中で次に処理すべきイベントデータを示すアド
レス値を保持させている。曲データの自動演奏開始時に
は、それぞれ、対応するトラックデータのなかで先頭に
位置するイベントデータを指定するアドレス値を保持さ
せている。
【0055】先ず、ステップ1101では、処理対象と
するトラックデータを管理するための変数trkに0
(トラッ番号は0〜15である)を代入し、現在の演奏
時間(曲データの自動演奏を開始してから経過した時
間)を計算して、それを示す値を変数tkPlayに代
入する。続くステップ1102では、変数trkの値
が、変数MAXTRKに保持されている、トラック番号
の最大値より小さいか否か判定する。本実施の形態で
は、変数trkに代入した0を初期値として、それに代
入した値を随時、インクリメントしながら、変数trk
の値と番号が一致するトラックデータを処理していくよ
うになっている。このことから、全てのトラックデータ
を処理対象としていない場合、判定はYESとなってス
テップ1103に移行する。そうでない場合には、判定
はNOとなり、ここで一連の処理を終了する。なお、上
記変数tkPlayには、曲データの自動演奏の開始時
に0が代入される。
【0056】上記したように、ノートイベントデータで
は、そのイベントの内容を表すパラメータデータとし
て、音高データ、ベロシティデータ、及びゲートタイム
データなどがある。時間データに従って発音を開始させ
た楽音は、ゲートタイムデータが表す発音持続時間が経
過した後、消音させなければならない。このことから、
本実施の形態では、2次元の配列変数pPlayOff
を用意し、各トラックデータ毎に、発音中の楽音のイベ
ントデータを示すアドレス値を保持させている。その直
後に位置する括弧内の添字はトラックデータ(番号)の
指定用である。その配列変数pPlayOffによって
提供される作業領域については、以降、オフバッファと
も呼ぶことにする。配列変数pPlayOffの各要素
には、曲データの自動演奏開始時にNULL(アドレス
値が保持されていないことを示す値である)を代入させ
ている。
【0057】ステップ1103では、そのオフバッファ
にアドレス値が保持されたイベントデータを処理の対象
にするオフバッファ演奏処理を実行する。次に移行する
ステップ1104では、配列変数pPlayEvent
のなかで変数trkの値により指定される要素pPla
yEvent[trk]の値を変数peに代入する。そ
の後はステップ1105に移行する。
【0058】ステップ1105では、変数peの値で指
定されるイベントデータ中の時間データ(図中では「p
e→tktime」と表記)が表す時間が変数tkPl
ayの値が表す演奏時間以上か否か判定する。変数pe
の値で指定されるイベントデータが処理すべきタイミン
グとなった、或いはなっていた場合、その関係を満たす
ことから、判定はYESとなってステップ1107に移
行する。そうでない場合には、判定はNOとなり、ステ
ップ1106で変数trkの値をインクリメントした
後、上記ステップ1102に戻る。それにより、対象と
するトラックデータを次に代えて、そのステップ110
2以降の処理を同様に実行する。
【0059】ステップ1107では、処理すべきタイミ
ングとなったイベントデータを処理することで曲データ
の自動演奏を進行させるためのイベント演奏処理を実行
する。続くステップ1108では、変数peに、それま
での値が示すイベントデータの次に位置しているイベン
トデータのアドレス値を代入する。その次に移行するス
テップ1109では、配列変数pPlayEventの
なかで変数trkの値により指定される要素pPlay
Event[trk]に、変数peの値を代入する。そ
の後に上記ステップ1105に戻る。それにより、変数
trkの値で指定されるトラックデータのなかで処理す
べきイベントデータを全て処理するまで、ステップ11
05、1107〜1109で形成される処理ループを繰
り返し実行する。
【0060】ここで、上記演奏処理内で実行される各種
サブルーチン処理について、図12、及び図13を参照
して詳細に説明する。図12は、上記ステップ1103
として実行されるオフバッファ処理のフローチャートで
ある。演奏処理内で実行されるサブルーチン処理では、
始めに図12を参照して、オフバッファ処理について詳
細に説明する。その演奏処理からは、各種変数の値が渡
される。
【0061】先ず、ステップ1201では、変数Off
に0を代入する。その変数Offは、その値を用いて指
定される配列変数pPlayOff中の要素にアドレス
値が保持されたイベントデータを処理するために用意し
た変数であり、その値は順次、インクリメントされる。
【0062】ステップ1201に続くステップ1202
では、変数Offの値が、変数MAXOFFに保持され
たトラックデータを対象とする最大同時発音数より小さ
いか否か判定する。変数Offの値を変更して指定でき
る配列変数pPlayOff中の要素を全て指定してい
ない場合、判定はYESとなってステップ1203に移
行し、変数trk、及びOffの各値によって指定され
る配列変数pPlayOff中の要素pPlayOff
[trk][Off]に保持されたアドレス値を変数p
eに代入した後、ステップ1204に移行する。そうで
ない場合には、判定はNOとなり、配列変数pPlay
Off中で変数Offの値により指定される要素にアド
レス値が保持されたイベントデータのなかで処理すべき
ものは全て処理したとして、ここで一連の処理を終了す
る。
【0063】ステップ1204では、変数peの値がN
ULLか否か、即ち要素pPlayOff[trk]
[Off]にアドレス値が保持されていなかったか否か
判定する。その要素にアドレス値が保持されていなかっ
た場合、判定はYESとなってステップ1207に移行
する。そうでない場合には、判定はNOとなってステッ
プ1205に移行する。
【0064】ステップ1205では、変数peの値で指
定されるイベントデータを構成する時間データが示す時
間(図中では「pe→tktime」と表記)に、それ
を構成するゲートタイムデータが示す時間(図中では
「pe→tkoff」と表記)を加算した時間、即ちそ
のイベントデータが表す楽音を消音させるべき時間が、
変数tkPlayの値が示す演奏時間以上か否か判定す
る。そのイベントデータによって発音を開始させた楽音
を消音させるべきタイミングとなったような場合、判定
はYESとなってステップ1206に移行する。そうで
ない場合には、判定はNOとなってステップ1207に
移行する。
【0065】ステップ1206では、変数peの値で指
定されるイベントデータによって発音させた楽音の消音
を音源107に指示するとともに、要素pPlayOf
f[trk][Off]にNULLを代入する。続くス
テップ1207では、変数Offの値をインクリメント
する。その後は上記ステップ1202に戻る。それによ
り、変数Offの値を変更することで指定される配列変
数pPlayOff中の要素にアドレス値が保持された
イベントデータのなかで処理すべきイベントデータを全
て処理する。なお、音源107に楽音の消音を指示する
コマンドは、イベントデータを構成する音高データを用
いて生成されるものである。
【0066】次に、図11に示す演奏処理内でステップ
1107として実行されるイベント演奏処理について、
図13に示すそのフローチャートを参照して詳細に説明
する。そのイベント演奏処理は、上述したように、処理
すべきタイミングとなったイベントデータを処理するこ
とで曲データの自動演奏を進行させるための処理であ
り、演奏処理からは、変数pe、trkの値などが渡さ
れる。
【0067】先ず、ステップ1301では、変数peの
アドレス値で指定されるイベントデータ中のパラメータ
データが示すイベントの種類がノートイベントか否か判
定する。そのイベントの種類がノートイベントであった
場合、判定はYESとなってステップ1302に移行
し、イベントデータ中の音高データで音高が指定される
楽音の発音を音源107に指示するとともに、そのアド
レス値を配列変数pPlayOff中の要素に保持させ
た後、一連の処理を終了する。そうでない場合には、判
定はNOとなってステップ1303に移行する。
【0068】なお、アドレス値を保持させる要素は、変
数trkの値で指定される要素のなかでNULLを保持
しているか、或いは対応する楽音の発音を最も早く開始
させたイベントデータのアドレス値を保持している要素
を抽出してそれに決定している。アドレス値を保持させ
ている要素にアドレス値を上書きする場合には、上書き
されるアドレス値で指定されるイベントデータによって
発音中の楽音は消音させる。それにより、NULLを保
持している要素が残っている間はその残っている要素に
アドレス値を保持させ、そのNULLを保持している要
素が残っていなければ、上書きされるアドレス値で指定
されるイベントデータによって発音中の楽音を消音させ
て、新たに保持すべきアドレス値を保持させる要素を確
保するようにしている。
【0069】ステップ1303では、変数peのアドレ
ス値で指定されるイベントデータ中のパラメータデータ
が示すイベントの種類がテンポイベントか否か判定す
る。そのイベントの種類がテンポイベントであった場
合、判定はYESとなってステップ1304に移行し、
変数tkTempoChangeにはイベントデータ中
の時間データ(図中では「pe→tktime」と表
記)、即ちテンポ値を変更するタイミングでの演奏時間
を示す値、変数dwTempoChangeには変数d
wClockの値、変数doTempoにはイベントデ
ータ中のデータが示すテンポ値をそれぞれ代入した後、
一連の処理を終了する。そうでない場合には、判定はN
Oとなってステップ1305に移行し、他のイベントに
対応するための処理を実行した後、一連の処理を終了す
る。
【0070】上記変数dwClockは、例えば一定時
間毎に実行されるタイマインタラプト処理によってイン
クリメントされるカウンタ値を保持させるために用意し
た変数である。そのカウント値によって表される時間
は、テンポ値によって変化する。テンポ値を変更するタ
イミングでのそのカウント値を変数dwTempoCh
angeに保持させるのは、その変化に対応できるよう
にするためである。曲データの自動演奏開始時には、変
数tkTempoChangeには0、変数dwテンポ
Changeには変数dwClockの値、変数doT
empoには所定の初期値がそれぞれ代入される。この
ことから、図11に示す演奏処理(より具体的にはステ
ップ1101の処理)の実行時に計算される演奏時間
は、その計算に用いる値を変数のシンボルで表現すれ
ば、 tkPlay=tkTempoChange+(dwC
lock−dwTempoChange)×doTem
po により算出している。
【0071】図10に示す全体処理内で実行されるサブ
ルーチン処理の説明に戻る。図14は、その全体処理内
でステップ1014として実行される楽音表示処理のフ
ローチャートである。次に図14を参照して、楽音表示
処理について詳細に説明する。図3〜図8を参照して説
明した各種オブジェクトや色の濃淡などは、その楽音表
示処理を実行することでスクロール表示される。
【0072】先ず、ステップ1401では、現在、曲デ
ータ(図2参照)を自動演奏中か否か判定する。それが
自動演奏中であることを示す値の1が変数Playfl
gに代入されていた場合、判定はYESとなり、ステッ
プ1402で変数tkPlayの値を変数tkDisp
に代入した後、ステップ1403に移行する。そうでな
い場合には、判定はNOとなり、ここで一連の処理を終
了する。
【0073】上記tkDispには、表示部105でス
クロール表示における先頭の演奏時間を保持させるよう
になっている。その演奏時間として変数tkPlayに
保持された値を代入することから明らかなように、本実
施の形態では、現在の演奏時間(曲データの自動演奏を
開始してから経過した時間)をスクロール表示の範囲の
先頭とさせている。それにより、例えば発音オブジェク
ト302が表す楽音の発音を開始させるべきタイミング
は、そのオブジェクト302の先端を上面図301の端
にまで移動させることで表現し、その楽音を消音させる
べきタイミングは、そのオブジェクト302の後端まで
全て消去させることで表現するようにしている。当然の
ことながら、それとは別の形でスクロール表示を行うよ
うにしても良い。
【0074】ステップ1403では、変数tkDisp
の値が変数tkDispOldの値より小さいか否か判
定する。その変数tkDispOldには、後述するス
テップ1413で変数tkDispの値を代入してその
値を更新するようになっている。変数tkDispに値
を代入する変数tkPlayには、曲データの演奏開始
時に0が代入される。このことから、曲データの自動演
奏開始後、初めてステップ1403を実行した場合、変
数tkPlayには変数tkDispOldの値よりも
小さい値が代入されていることから、判定はYESとな
ってステップ1404に移行する。そうでない場合に
は、判定はNOとなってステップ1405に移行する。
【0075】ステップ1404では、1次元の配列変数
pDispEventの各要素(トラック番号は0〜1
5の何れかであることから、それに合わせて要素の数は
16としている)に、それぞれが曲データを構成する各
トラックデータの先頭に位置するイベントデータのアド
レス値を保持している配列変数pTrkの各要素の値を
対応させて代入する。表示中の発音オブジェクト302
が表すイベントデータのアドレス値の保持用に用意した
2次元の配列変数pDispOffの各要素には、それ
ぞれNULLを代入する。変数CurTrkには、曲想
表示、ペダルイベント表示の対象となるトラック番号が
代入されている。変数pImgEventには、その変
数CurTrkに保持されたトラック番号のトラックデ
ータ中で最初に位置するノートイベントのイベントデー
タのアドレス値を代入する。変数pPdlEventに
は、そのトラックデータ中で最初に位置するペダルイベ
ントのイベントデータのアドレス値を代入する。曲想や
ペダルイベント以外のイベント表示用に用意した1次元
で2つの要素を有する配列変数pEtcEventの各
要素には、それぞれ、配列変数pTrkの各要素pTr
k[0]、pTrk[1]の値を対応させて代入する。
そのようにしてスクロール表示を行ううえでの初期設定
を行った後にステップ1405に移行する。なお、配列
変数pDispOffによって提供される作業領域につ
いては、以降、表示オフバッファとも呼ぶことにする。
【0076】このように、本実施の形態では、曲想やペ
ダルイベント以外のイベントを表示させる対象はトラッ
ク番号0、1、即ち左手演奏用と右手演奏用のトラック
データのみとしている。それに合わせて、配列保持pD
ispOffの先頭に位置する括弧内で指定できる値
(1番目の添字)は0と1の何れかとさせている。
【0077】ステップ1405では、スクロール表示の
対象とならない各オブジェクトを表示部105に表示さ
せる処理を実行する。続くステップ1406では、変数
Volflgの値が1か否か判定する。ユーザが曲想の
表示を選択していた場合、変数Volflgには1が代
入されることから、判定はYESとなり、ステップ14
06で曲データの自動演奏の進行に合わせて曲想を表示
させるための曲想表示処理を実行した後、ステップ14
08に移行する。そうでない場合には、判定はNOとな
ってそのステップ1408に移行する。
【0078】ステップ1408では、変数Pdlflg
の値が1か否か判定する。ユーザがペダルイベントの表
示を選択していた場合、変数Pdlflgには1が代入
されることから、判定はYESとなり、ステップ140
9で曲データの自動演奏の進行に合わせてペダルイベン
トを表示させるためのペダルイベント表示処理を実行し
た後、ステップ1410に移行する。そうでない場合に
は、判定はNOとなってそのステップ1410に移行す
る。
【0079】ステップ1410では、曲想、ペダルイベ
ント、及びノートイベント以外のイベントをスクロール
表示させるための各種イベント表示処理を実行する。続
くステップ1411では、ノートイベントを表す発音オ
ブジェクト302を表示させるためのノートイベント表
示処理を実行する。その次に移行するステップ1412
では、配列変数pDispOffによって提供される表
示オフバッファに格納させるイベントデータのアドレス
値を管理し、既に処理すべきタイミングが来たイベント
データを示す発音オブジェクト302を対象にスクロー
ル表示させるための表示オフバッファ処理を実行する。
それを実行すると、ステップ1413で変数tkDis
pOldに変数tkDispの値を代入した後、一連の
処理を終了する。
【0080】上記楽音表示処理を実行することにより、
図3〜図8を参照して説明したような各種オブジェクト
や色の濃淡などの表示がユーザの選択内容に応じて行わ
れることになる。それらの表示位置は、曲データの自動
演奏の進行に応じて変化する。それにより、それらはス
クロール表示される。以降、その楽音表示処理内で実行
される各種サブルーチン処理について、図15〜図19
を参照して詳細に説明する。
【0081】図15は、上記ステップ1406として実
行される曲想表示処理のフローチャートである。楽音表
示処理内で実行されるサブルーチン処理では、始めに図
15を参照して、曲想表示処理について詳細に説明す
る。
【0082】先ず、ステップ1501では、変数peo
ldに、変数pImgEventの値を代入する。続く
ステップ1502では、変数peoldに代入された値
がNULLか否か判定する。曲想を表示するうえで対象
となるイベントデータが無くなることでNULLが変数
pImgEventに代入される。このことから、曲想
を表示するうえで対象となるイベントデータが、変数C
urTrkが番号を保持するトラックデータ中に無くな
ったような場合、判定はYESとなり、ここで一連の処
理を終了する。そうでない場合には、判定はNOとなっ
てステップ1503に移行する。
【0083】ステップ1503では、変数peoldに
保持されたアドレス値で指定されるイベントデータの次
に位置するイベントデータのアドレス値を変数peに代
入する。次に移行するステップ1504では、変数pe
に代入された値がNULLか否か判定する。その次に位
置するイベントデータが存在していない場合、変数pe
にはステップ1503でNULLを代入することになる
ことから、判定はYESとなり、ステップ1505に移
行して、変数peoldのアドレス値で指定されるイベ
ントデータ中のベロシティ値に対応する濃さの色をスク
ロール表示の対象となる表示部105のエリア全体、即
ち変数tkDispの値で示される現在の演奏時間から
それに変数tkDispRangeの値(表示範囲時
間)を加算した時間まで表示させた後、一連の処理を終
了する。そうでない場合には、判定はNOとなってステ
ップ1506に移行する。
【0084】ステップ1506では、変数peのアドレ
ス値で指定されるイベントデータが表すイベントの種類
がノートイベントか否か判定する。その種類がノートイ
ベントであった場合、判定はYESとなってステップ1
507に移行する。そうでない場合には、判定はNOと
なってステップ1512に移行する。
【0085】ステップ1507では、変数peのアドレ
ス値で指定されるイベントデータ中の時間データが表す
時間が、変数tkDispの値が表す現在の演奏時間よ
りも前か否か判定する。その時間データが表す時間が現
在の演奏時間よりも前であった場合、判定はYESとな
り、ステップ1508で変数pImgEventに変数
peの値を代入した後、ステップ1511に移行する。
それにより、変数pImgEventには、発音を開始
すべきタイミングが現在の演奏時間の直前に位置する形
となっている楽音のイベントデータを示すアドレス値を
保持させる。一方、そうでない場合には、判定はNOと
なってステップ1509に移行する。
【0086】ステップ1509では、ユーザが表示の対
象として選択したイベントの種類を考慮しつつ、変数p
eoldのアドレス値で指定されるイベントデータ中の
時間データが表す時間から変数peのアドレス値で指定
されるイベントデータ中の時間データが表す時間までの
範囲を対象にして、それらイベントデータ中の各ベロシ
ティ値、それらの差によって決まる色、その勾配で表示
部105に曲想を表示させる。その表示は、当然のこと
ながら、変数tktimeの値が表す現在の演奏時間以
降、変数tkDispRangeの値が表す表示範囲時
間までの間で行う。それにより、曲想だけをユーザが表
示の対象として選択していた場合には、図3に示すよう
に曲想を表示させる。その後はステップ1510に移行
する。
【0087】ステップ1510では、変数peのアドレ
ス値で指定されるイベントデータ中の時間データが表す
時間が、変数tktimeの値が表す現在の演奏時間に
変数tkDispRangeの値が表す表示範囲時間を
足した時間(以降、表示終了時間と呼ぶ)より後か(長
いか)否か判定する。変数peのアドレス値で指定され
るイベントデータ中の時間データが表す時間が表示終了
時間よりも長い場合、即ち表示部105にこれ以上、曲
想を表示できない場合、判定はYESとなり、ここで一
連の処理を終了する。そうでない場合には、判定はNO
となってステップ1511に移行する。
【0088】ステップ1511では、変数peoldに
変数peの値を代入する。続くステップ1512では、
変数peに、それまでの値で指定されるイベントデータ
の次に位置するイベントデータのアドレス値(対象とな
るイベントデータがなければNULL)を代入する。そ
の後は上記ステップ1504に戻る。それにより、表示
させるべき曲想が無くなるまで、ステップ1504、1
506〜1512で形成される処理ループを繰り返し実
行する。
【0089】図16は、図14に示す楽音表示処理内で
ステップ1409として実行されるペダルイベント表示
処理のフローチャートである。次に図16を参照して、
ペダルイベント表示処理について詳細に説明する。
【0090】先ず、ステップ1601では、変数peo
ldに、変数pPdlEventの値を代入する。続く
ステップ1602では、変数peoldに代入された値
がNULLか否か判定する。ペダルイベントを表す枠4
01を表示するうえで対象となるイベントデータが無く
なることでNULLが変数pImgEventに代入さ
れる。このことから、ペダルイベントを表示するうえで
対象となるイベントデータが、変数CurTrkが番号
を保持するトラックデータ中に無くなったような場合、
判定はYESとなり、ここで一連の処理を終了する。そ
うでない場合には、判定はNOとなってステップ160
3に移行する。
【0091】ステップ1603では、変数peoldに
保持されたアドレス値で指定されるイベントデータの次
に位置するイベントデータのアドレス値を変数peに代
入する。次に移行するステップ1604では、変数pe
に代入された値がNULLか否か判定する。その次に位
置するイベントデータが存在していない場合、変数pe
にはステップ1603でNULLを代入することになる
ことから、判定はYESとなってステップ1613に移
行する。そうでない場合には、判定はNOとなってステ
ップ1605に移行する。
【0092】ステップ1605では、変数peのアドレ
ス値で指定されるイベントデータが表すイベントの種類
がペダルイベントか否か判定する。その種類がペダルイ
ベントであった場合、判定はYESとなってステップ1
606に移行する。そうでない場合には、判定はNOと
なってステップ1612に移行する。
【0093】ステップ1606では、変数peのアドレ
ス値で指定されるイベントデータ中の時間データが表す
時間が、変数tkDispの値が表す現在の演奏時間よ
りも前か否か判定する。その時間データが表す時間が現
在の演奏時間よりも前であった場合、判定はYESとな
り、ステップ1607で変数pPdlEventに変数
peの値を代入した後、ステップ1611に移行する。
それにより、変数pPdlEventには、ペダル10
9をオン、或いはオフすべきタイミングが現在の演奏時
間の直前に位置する形となっているペダルイベントのイ
ベントデータを示すアドレス値を保持させる。一方、そ
うでない場合には、判定はNOとなってステップ160
8に移行する。
【0094】ステップ1608では、変数peoldの
値で指定されるイベントデータ中のデータが表している
のはペダル109のオンか否か判定する。そのイベント
データ中のデータがペダル109のオンを表していた場
合、判定はYESとなってステップ1609に移行す
る。そうでない場合には、判定はNOとなってステップ
1610に移行する。
【0095】ステップ1609では、ユーザが表示の対
象として選択したイベントの種類を考慮しつつ、変数p
eoldのアドレス値で指定されるイベントデータ中の
時間データが表す時間から変数peのアドレス値で指定
されるイベントデータ中の時間データが表す時間までの
範囲を囲む形で枠402を表示部105に表示させる。
その表示は、当然のことながら、変数tktimeの値
が表す現在の演奏時間以降、変数tkDispRang
eの値が表す表示範囲時間までの間で行う。それによ
り、ペダルイベントだけをユーザが表示の対象として選
択していた場合には、図4に示すようにペダル109を
オンさせている期間を示す枠402を表示させる。その
後はステップ1610に移行する。
【0096】ステップ1610では、変数peのアドレ
ス値で指定されるイベントデータ中の時間データが表す
時間が、変数tktimeの値が表す現在の演奏時間に
変数tkDispRangeの値が表す表示範囲時間を
足した表示終了時間より後か(長いか)否か判定する。
変数peのアドレス値で指定されるイベントデータ中の
時間データが表す時間が表示終了時間よりも長い場合、
即ち表示部105にこれ以上、ペダルイベントを示す枠
401を表示できない場合、判定はYESとなり、ここ
で一連の処理を終了する。そうでない場合には、判定は
NOとなってステップ1611に移行する。
【0097】ステップ1611では、変数peoldに
変数peの値を代入する。続くステップ1612では、
変数peに、それまでの値で指定されるイベントデータ
の次に位置するイベントデータのアドレス値(対象とな
るイベントデータがなければNULL)を代入する。そ
の後は上記ステップ1604に戻る。それにより、枠4
01を表示させる必要が無くなるまで、ステップ160
4〜1612で形成される処理ループを繰り返し実行す
る。
【0098】上記ステップ1604の判定がYESとな
って移行するステップ1613では、変数peoldの
値で指定されるイベントデータ中のデータ(パラメータ
データ)がペダル109のオンを表しているか否か判定
する。そのイベントデータ中のデータがペダル109の
オンを表していた場合、判定はYESとなり、ステップ
1614に移行して、スクロール表示の対象となる表示
部105のエリア全体、即ち変数peoldの値で指定
されるイベントデータ中の時間データが示す時間(図
中、「peold→tktime」と表記)から表示終
了時間(図中、「tkDisp+tkDispRang
e」と表記)までの範囲を囲むような形で枠401を表
示させた後、一連の処理を終了する。
【0099】図17は、図14に示す楽音表示処理内で
ステップ1410として実行される各種イベント表示処
理のフローチャートである。次に図17を参照して、各
種イベント表示処理について詳細に説明する。
【0100】上述したように、このイベント表示処理で
表示の対象とするのはノートイベント、曲想、及びペダ
ルイベント以外のイベントである。そのために処理の対
象とするのは、トラック番号が0、1の左手演奏(より
正確には、その自動演奏)用、及び右手演奏用のトラッ
クデータである。
【0101】先ず、ステップ1701では、変数trk
に、変数LEFTTRKに保持されている、左手演奏用
のトラックデータのトラック番号(ここでは0である)
を代入する。続くステップ1702では、変数trkの
値が、変数RIGHTTRKに保持されている、右手演
奏用のトラックデータのトラック番号(ここでは1であ
る)以下か否か判定する。変数trkの値は順次、イン
クリメントすることで、処理の対象とするトラックデー
タを切り換えるようになっている。このことから、右手
演奏用のトラックデータを対象にした処理が完了してい
た場合、判定はNOとなり、ここで一連の処理を終了す
る。そうでない場合には、判定はYESとなってステッ
プ1703に移行する。
【0102】ステップ1703では、変数peに、配列
変数pEtcEvent中で変数trkの値により指定
される要素pEtcEvent[trk]のアドレス値
を代入する。次に移行するステップ1704では、変数
peの値で指定されるイベントデータ中の時間データが
示す時間が、変数tkDispの値が示す現在の演奏時
間よりも前か(短いか)否か判定する。変数peの値で
指定されるイベントデータを処理すべきタイミングが来
ていない場合、判定はYESとなってステップ1716
に移行する。そうでない場合には、判定はNOとなって
ステップ1705に移行する。
【0103】ステップ1705では、変数peの値で指
定されるイベントデータ中の時間データが示す時間(図
中、「pe→tktime」と表記)が、表示終了時間
(図中、「tkDisp+tkDispRange」と
表記)よりも前か(短いか)否か判定する。そのイベン
トデータを処理すべきタイミングが表示終了時間以後で
あった場合、判定はNOとなり、ステップ1706で変
数trkの値をインクリメントし、要素pEtcEve
nt[trk]に代入するアドレス値を管理するための
変数ESCFには0を代入してそれをクリアした後、上
記ステップ1702に戻る。それにより、現在、トラッ
ク番号0のトラックデータを処理対象としていたのであ
れば、トラック番号1のトラックデータに処理対象を移
行させる。一方、そうでない場合には、判定はYESと
なってステップ1707に移行する。
【0104】上記ステップ1706で変数ESCFに0
を代入することにより、各種イベント表示処理は変数E
SCFに0が代入されている状態で終了する。それによ
り、その実行時には、変数ESCFに0が代入された状
態とさせている。
【0105】ステップ1707では、変数peの値で指
定されるイベントデータ中のデータが表すイベントの種
類が手の位置イベントであり、且つ、そのイベントが表
示対象であることを示す値の1が変数Posflgに代
入されているか否か判定する。そのイベントの種類が手
の位置イベントであり、且つ変数Posflgに1が代
入されていた場合、即ち2つの条件の何れも満たしてい
た場合、判定はYESとなり、ステップ1708に移行
して、音階軸上はそのイベントデータ中の手の位置を示
すデータに対応する位置で時間軸上はそのイベントデー
タ中の時間データに対応する位置に、そのイベントデー
タ中の位置を保持する時間を示すデータに対応する時間
軸上の長さで位置オブジェクト501を図5に示すよう
に表示部105に表示させた後、ステップ1709に移
行する。そうでない場合には、即ち2つの条件のうち少
なくとも一つが満たされていない場合には、判定はNO
となってそのステップ1709に移行する。
【0106】ステップ1709では、変数peの値で指
定されるイベントデータ中のデータが表すイベントの種
類が手の移動イベントであり、且つ、そのイベントが表
示対象であることを示す値の1が変数Dirflgに代
入されているか否か判定する。そのイベントの種類が手
の移動イベントであり、且つ変数Dirflgに1が代
入されていた場合、即ち2つの条件の何れも満たしてい
た場合、判定はYESとなり、ステップ1710に移行
して、時間軸上はそのイベントデータ中の時間データに
対応する位置に、そのイベントデータ中の移動を開始さ
せる手の位置を示すデータに対応する音階軸上の位置か
ら、そのイベントデータ中の移動を終了させる手の位置
を示すデータに対応する音階軸上の位置に達する長さ
で、矢印の向きは移動を終了させる手の位置を示す方向
で移動オブジェクト601を図6に示すように表示部1
05に表示させた後、ステップ1711に移行する。そ
うでない場合には、即ち2つの条件のうち少なくとも一
つが満たされていない場合には、判定はNOとなってそ
のステップ1711に移行する。
【0107】ステップ1711では、変数peの値で指
定されるイベントデータ中のデータが表すイベントの種
類が和音イベントであり、且つ、そのイベントが表示対
象であることを示す値の1が変数Choflgに代入さ
れているか否か判定する。そのイベントの種類が和音イ
ベントであり、且つ変数Choflgに1が代入されて
いた場合、即ち2つの条件の何れも満たしていた場合、
判定はYESとなり、ステップ1712に移行して、時
間軸上はそのイベントデータ中の時間データに対応する
位置に、和音オブジェクト701は和音の構成音の各音
高に応じた音階軸上の位置でその音高の範囲に応じた音
階軸上の長さで表示させ、コード名を示すシンボルはそ
の和音オブジェクト701の端に表示させ、和音の構成
音を示す発音オブジェクト302はそれぞれその音高に
対応する音階軸上の位置にゲートタイムデータに対応す
る時間軸上の長さで表示部105にそれぞれ表示させた
後、ステップ1713に移行する。それにより、図7に
示すように和音イベントを表示させる。一方、そうでな
い場合には、即ち2つの条件のうち少なくとも一つが満
たされていない場合には、判定はNOとなってそのステ
ップ1713に移行する。
【0108】ステップ1713では、変数peの値で指
定されるイベントデータ中のデータが表すイベントの種
類が指くぐりイベントであり、且つ、そのイベントが表
示対象であることを示す値の1が変数Kugflgに代
入されているか否か判定する。そのイベントの種類が指
くぐりイベントであり、且つ変数Kugflgに1が代
入されていた場合、即ち2つの条件の何れも満たしてい
た場合、判定はYESとなり、ステップ1714に移行
して、時間軸上はそのイベントデータ中の時間データに
対応する位置で、音階軸上はそのイベントデータ中の音
高を示すデータに対応する位置に指くぐりオブジェクト
801を図8に示すように表示部105に表示させ、更
にステップ1715で変数peに、それまでの値で指定
されるイベントデータの次に位置するイベントデータの
アドレス値を代入した後、上記ステップ1704に戻
る。一方、そうでない場合には、判定はNOとなり、次
にそのステップ1715の処理を実行する。
【0109】上記ステップ1704の判定がYESとな
って移行するステップ1716では、変数peの値で指
定されるイベントデータ中のデータが表すイベントの種
類が手の位置イベント、或いは和音イベントか否か判定
する。そのイベントの種類が手の位置イベント、及び和
音イベントの何れでもなかった場合、判定はNOとな
り、ステップ1717に移行して、そのイベントデータ
を表すオブジェクトを表示部105から消去させた後、
ステップ1722に移行する。そうでない場合には、判
定はYESとなってステップ1718に移行する。
【0110】ステップ1718では、そのイベントデー
タ中の時間データが示す時間(図中、「pe→tkti
me」と表記)に保持時間(手の位置イベントでは手の
位置を保持させる時間であり、和音イベントでは発音持
続時間(ゲートタイム)である)を足した時間が変数t
kDispの値が示す現在の演奏時間よりも前か(短い
か)否か判定する。手の位置イベントでは位置オブジェ
クト501、和音イベントでは発音オブジェクト302
の全てを消去させるべき状態であった場合、判定はYE
Sとなり、ステップ1719で消去させるべきオブジェ
クトを表示部105から消去させた後、ステップ172
2に移行する。そうでない場合には、判定はNOとな
り、ステップ1720で変数ESCFに1を代入すると
ともに、そのイベントデータを表すオブジェクトの時間
軸上の表示位置を変更させ、更にステップ1721で要
素要素pEtcEvent[trk]に変数peの値を
代入した後、そのステップ1722に移行する。
【0111】ステップ1722では、変数peに、それ
までの値で指定されるイベントデータの次に位置するイ
ベントデータのアドレス値を代入する。続くステップ1
723では、変数ESCFの値が0か否か判定する。そ
の値が0であった場合、判定はYESとなり、ステップ
1724で要素pEtcEvent[trk]に変数p
eの値を代入した後、上記ステップ1704に戻る。そ
うでない場合には、判定はNOとなり、他のステップの
処理を実行することなく、そのステップ1704に戻
る。
【0112】このようにして、本実施の形態では、処理
すべきタイミングが最も早く、且つオブジェクトの一部
を表示させるべき状態となっているイベントデータのア
ドレス値を配列変数pEtcEventの対応する要素
に保持させるようにしている。それにより、手の位置イ
ベントを表す位置オブジェクト501や和音イベントを
表す発音オブジェクト302などは、それを全て消去さ
せるべきタイミングとなるまでスクロール表示させてい
る。
【0113】次に、図14に示す楽音表示処理内でステ
ップ1411として実行されるノートイベント表示処理
について、図18に示すそのフローチャートを参照して
詳細に説明する。
【0114】上述したように、このイベント表示処理で
表示の対象とするのはノートイベントのみである。その
ために処理の対象とするのは、上記各種イベント表示処
理と同様に、トラック番号が0、1の左手演奏用、及び
右手演奏用のトラックデータである。
【0115】先ず、ステップ1801では、変数trk
に、変数LEFTTRKに保持されているトラック番号
(ここでは0である)を代入する。続くステップ180
2では、変数trkの値が、変数RIGHTTRKに保
持されているトラック番号(ここでは1である)以下か
否か判定する。変数trkの値は順次、インクリメント
することで、処理の対象とするトラックデータを切り換
えるようになっている。このことから、右手演奏用のト
ラックデータを対象にした処理が完了していた場合、判
定はNOとなり、ここで一連の処理を終了する。そうで
ない場合には、判定はYESとなってステップ1803
に移行する。
【0116】ステップ1803では、変数peに、配列
変数pDispEvent中で変数trkの値により指
定される要素pDispEvent[trk]のアドレ
ス値を代入する。次に移行するステップ1804では、
変数peの値で指定されるイベントデータ中の時間デー
タが示す時間の長さが、変数tkDispの値が示す現
在の演奏時間の長さ以下か否か判定する。変数peの値
で指定されるイベントデータを処理すべきタイミングが
来たような場合、判定はYESとなってステップ105
に移行する。そうでない場合には、判定はNOとなって
ステップ1810に移行する。
【0117】ステップ1805では、変数peの値で指
定されるイベントデータ中のデータが示すイベントの種
類(タイプ)がノートイベントか否か判定する。そのイ
ベントの種類がノートイベントであった場合、判定はY
ESとなってステップ1806に移行する。そうでない
場合には、判定はNOとなってステップ1808に移行
する。
【0118】ステップ1806では、時間軸上はそのイ
ベントデータ中の時間データに対応する位置で音階軸上
はそのイベントデータ中の音高データに対応する位置
に、そのイベントデータ中のゲートタイムデータに対応
する時間軸上の長さで発音オブジェクト302を表示部
105に表示させる。続くステップ1807では、その
イベントデータのアドレス値を、配列変数pDispO
ffの変数trkで指定される要素pDispOff
[trk][](「[]」は2番目の添字は予め予想で
きない値であることを表す。以降、特に断らない限り、
同様の意味で用いる)に保持させる。その後にステップ
1808に移行する。ここでアドレス値を保持させる要
素は、図13に示すイベント演奏処理内で実行されるス
テップ1302の処理と同様に、NULLを保持してい
るか、或いは発音開始時刻が最も早い楽音を表すイベン
トデータのアドレス値を保持しているものである。
【0119】ステップ1808では、変数peに、それ
までの値で指定されるイベントデータの次に位置するイ
ベントデータのアドレス値を代入する。その次に移行す
るステップ1809では、要素pDispEvent
[trk]に、変数peの値を代入する。その後は上記
ステップ1804に戻る。
【0120】そのステップ1804の判定がNOとなっ
て移行するステップ1810では、変数peの値で指定
されるイベントデータ中の時間データが示す時間(図
中、「pe→tktime」と表記)が、表示終了時間
(図中、「tkDisp+tkDispRange」と
表記)よりも前か(短いか)否か判定する。そのイベン
トデータを処理すべきタイミングが表示終了時間以後で
あった場合、判定はNOとなり、ステップ1811で変
数trkの値をインクリメントした後、上記ステップ1
802に戻る。それにより、現在、トラック番号0のト
ラックデータを処理対象としていたのであれば、トラッ
ク番号1のトラックデータに処理対象を移行させる。一
方、そうでない場合には、判定はYESとなってステッ
プ1812に移行する。
【0121】ステップ1812では、変数peの値で指
定されるイベントデータ中のデータが表すイベントの種
類がノートイベントか否か判定する。そのイベントの種
類がノートイベントであった場合、判定はYESとなっ
てステップ1813に移行する。そうでない場合には、
判定はNOとなってステップ1814に移行する。
【0122】ステップ1813では、時間軸上はそのイ
ベントデータ中の時間データに対応する位置で音階軸上
はそのイベントデータ中の音高データに対応する位置
に、そのイベントデータ中のゲートタイムデータに対応
する時間軸上の長さで発音オブジェクト302を表示部
105に表示させられるだけ表示させる。続くステップ
1814では、変数peに、それまでの値で指定される
イベントデータの次に位置するイベントデータのアドレ
ス値を代入する。その後は上記ステップ1804に戻
る。
【0123】このようにして、ノートイベント表示処理
では、処理すべきタイミングが現在の演奏時間から表示
終了時間までの間となっているイベントデータ(イベン
トの種類として対象となるのはノートイベントのみであ
る)の発音オブジェクト302の表示、及びスクロール
を行うようにしている。
【0124】図19は、図14に示す楽音表示処理内で
ステップ1412として実行される表示オフバッファ処
理のフローチャートである。最後に図19を参照して、
その表示オフバッファ処理について詳細に説明する。
【0125】この表示オフバッファ処理では、配列変数
pDispOffの要素にアドレス値が保持されたイベ
ントデータ(イベントの種類はノートイベントのみであ
る)のみを処理対象にしている。それにより、処理すべ
きタイミングとなったイベントデータの発音オブジェク
ト302のスクロール表示は表示オフバッファ処理を実
行することで対応するようになっている。
【0126】先ず、ステップ1901では、変数trk
に、変数LEFTTRKに保持されているトラック番号
(ここでは0である)を代入する。続くステップ190
2では、変数trkの値が、変数RIGHTTRKに保
持されているトラック番号(ここでは1である)以下か
否か判定する。変数trkの値は順次、インクリメント
することで、処理の対象とするトラックデータを切り換
えるようになっている。このことから、右手演奏用のト
ラックデータを対象にした処理が完了していた場合、判
定はNOとなり、ここで一連の処理を終了する。そうで
ない場合には、判定はYESとなってステップ1903
に移行する。
【0127】ステップ1903では、変数offに0を
代入する。次に移行するステップ1904では、変数t
rk、offの各値で指定される要素pDispOff
[trk][off]に保持された値を変数peに代入
する。その後に移行するステップ1905では、変数p
eの値がNULL(アドレス値ではない値)か否か判定
する。要素pDispOff[trk][off]にN
ULLが保持されていた場合、判定はYESとなってス
テップ1910に移行する。そうでない場合には、判定
はNOとなってステップ1906に移行する。
【0128】ステップ1906では、変数peの値で指
定されるイベントデータ中の時間データが示す時間にそ
のイベントデータ中のゲートタイムデータが示す発音持
続時間を足した時間(発音終了時間)が、変数tkDi
spの値が示す現在の演奏時間より前か(短いか)否か
判定する。その発音終了時間が現在の演奏時間よりも前
であった場合、判定はYESとなり、ステップ1907
で要素pDispOff[trk][off]にNUL
Lを保持させた後、ステップ1910に移行する。そう
でない場合には、即ち変数peの値で指定されるイベン
トデータの発音オブジェクト302を全て消去させる必
要がない場合には、判定はNOとなってステップ190
8に移行する。
【0129】ステップ1908では、変数peの値で指
定されるイベントデータ中の時間データが示す時間が表
示終了時間よりも前か(短いか)否か判定する。そのイ
ベントデータの発音オブジェクト302の表示を開始す
べきタイミングが来ていないような場合、その条件は満
たされないことから、判定はNOとなってステップ19
10に移行する。そうでない場合には、判定はYESと
なってステップ1909に移行する。
【0130】ステップ1909では、時間軸上はそのイ
ベントデータ中の時間データに対応する位置(通常、そ
の位置は現在の演奏時間に対応する位置よりも前となっ
て表示できない)で音階軸上はそのイベントデータ中の
音高データに対応する位置に、そのイベントデータ中の
ゲートタイムデータに対応する時間軸上の長さで発音オ
ブジェクト302を表示部105に表示できるだけ表示
させる。続くステップ1910では、変数offの値を
インクリメントする。その後はステップ1911に移行
する。
【0131】ステップ1911では、変数offの値が
変数MAXOFFに保持されたトラックデータを対象と
する最大同時発音数より小さいか否か判定する。変数o
ffの値は0を初期値として順次インクリメントする。
このことから、配列変数pDispoffの要素に保持
されたトラック番号が変数trkの値と一致するトラッ
クデータ中のイベントデータを示すアドレス値を全て読
み出して処理を行った場合、判定はNOとなり、ステッ
プ1912で変数trkの値をインクリメントした後、
上記ステップ1902に戻る。それにより、処理対象と
するトラックデータの切替を行う。一方、そうでない場
合には、判定はNOとなって上記ステップ1904に戻
る。それにより、値を読み出すべき要素を変更して、そ
れ以降の処理を同様に実行する。
【0132】なお、本実施の形態では、ペダルイベント
や手の位置イベント、及び手の移動イベントなどのノー
トイベント以外のイベント(演奏情報)をスクロール表
示させているが、それらのイベントは必ずしもスクロー
ル表示させなくても良い。例えば、そのイベントを通知
するメッセージやそれを表すシンボルなどを一時的に表
示させるようにしても良い。スクロール表示させるか否
かを含め、そのようなメッセージ、或いはシンボルの表
示方法をユーザに選択させるようにしても良い。このよ
うに、それらの表示方法は様々な変形を行えるものであ
る。
【0133】また、イベントについては、1つの曲デー
タ(図2参照)中で表されているものだけを表示させて
いるが、複数の曲データ中で表されているものを並行し
て同時に表示させるようにしても良い。ユーザが行った
演奏を曲データの形で保存して、その曲データ中で表さ
れているイベントを単独、或いは他の曲データ中で表さ
れているイベントと合わせて表示できるようにしても良
い。処理対象とする曲データが複数となっても、各曲デ
ータを対象として行う処理内容自体は処理対象とする曲
データが1つの場合と基本的には同じであることから、
詳細な説明は省略する。
【0134】本実施の形態は、電子楽器に搭載されたに
よる演奏情報表示装置に本発明を適用したものである。
しかし、本発明を適用できる演奏情報表示装置は、電子
楽器などに搭載されたものに限定されるわけではない。
本発明は、他の装置に搭載されていない専用の演奏情報
表示装置を含めて幅広く適用できるものである。表示部
105についても、外部の表示装置と接続できるのであ
れば無くても良い。
【0135】上記演奏情報表示装置の動作を実現させる
ようなプログラムは、CD−ROM、DVD、或いは光
磁気ディスク等の記録媒体に記録させて配布しても良
い。或いは、公衆網等で用いられる伝送媒体を介して、
そのプログラムの一部、若しくは全部を配信するように
しても良い。そのようにした場合には、ユーザはプログ
ラムを取得して任意の演奏情報表示装置、或いはコンピ
ュータ等のデータ処理装置にロードすることにより、そ
の装置に本発明を適用させることができる。このことか
ら、記録媒体は、プログラムを配信する装置がアクセス
できるものであっても良い。
【0136】
【発明の効果】以上、説明したように本発明は、楽音の
音高、及びその発音持続時間を示すオブジェクトをスク
ロール表示させつつ、楽音の音高、及びその発音期間
(発音を開始させてから消音させるまでの期間)以外の
演奏情報を表示してユーザ(演奏者)に提示する。
【0137】そのような演奏情報、例えば曲想(楽音の
音量)や、鍵盤などの音高操作子群への操作の仕方、或
いは音高操作子群以外の演奏操作子(例えばペダル)へ
の操作内容を提示することにより、ユーザはより容易な
演奏、より適切な形での演奏、或いは音楽的表現がより
豊かな演奏を行えるようになる。このため、ユーザはよ
り効率的な練習を行ったり、音楽的表現力をより迅速に
身に付けることができる。
【図面の簡単な説明】
【図1】本実施の形態による演奏情報表示装置を搭載し
た電子楽器の回路構成図である。
【図2】曲データの構成を説明する図である。
【図3】曲想の表示例を示す図である。
【図4】ペダルイベントの表示例を示す図である。
【図5】手の位置イベントの表示例を示す図である。
【図6】手の移動イベントの表示例を示す図である。
【図7】和音イベントの表示例を示す図である。
【図8】指くぐりイベントの表示例を示す図である。
【図9】曲想のパート別表示例を示す図である(変形
例)。
【図10】全体処理のフローチャートである。
【図11】演奏処理のフローチャートである。
【図12】オフバッファ演奏処理のフローチャートであ
る。
【図13】イベント演奏処理のフローチャートである。
【図14】楽音表示処理のフローチャートである。
【図15】曲想表示処理のフローチャートである。
【図16】ペダルイベント表示処理のフローチャートで
ある。
【図17】各種イベント表示処理のフローチャートであ
る。
【図18】ノートイベント表示処理のフローチャートで
ある。
【図19】表示オフバッファ処理のフローチャートであ
る。
【符号の説明】
101 CPU 102 ROM 103 RAM 104 鍵盤 105 表示部 106 操作部 107 音源 108 サウンドシステム 109 ペダル 110 インターフェース 301 上面図 302 発音オブジェクト 401 枠 501 位置オブジェクト 601 移動オブジェクト 701 和音オブジェクト 801 指くぐりオブジェクト 901 境界線

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 楽音の音高別に、該音高の楽音の発音持
    続時間を示すオブジェクトをスクロール表示する演奏情
    報表示装置において、 前記楽音の音高、該音高の楽音の発音開始タイミング、
    及び該楽音の発音持続時間を該楽音単位で表す曲データ
    を取得する曲データ取得手段と、 前記曲データ取得手段が取得した曲データ中で前記発音
    持続時間が表されている楽音のオブジェクトを表示装置
    上にスクロール表示させる第1の演奏情報表示手段と、 前記曲データ取得手段が取得した曲データ中で表されて
    いる、前記オブジェクトのスクロール表示で表現されな
    い演奏情報である第2の演奏情報を前記表示装置上に表
    示させる第2の演奏情報表示手段と、 を具備することを特徴とする演奏情報表示装置。
  2. 【請求項2】 前記第2の演奏情報表示手段は、前記第
    2の演奏情報として、該楽音の音量、コードを構成する
    楽音の組み合わせ、及びコード名のうちの少なくとも一
    つを前記表示装置上に表示させる、 ことを特徴とする請求項1記載の演奏情報表示装置。
  3. 【請求項3】 発音させる楽音の音高を指示するための
    音高操作子群への操作の仕方、或いは該音高操作子群以
    外に演奏操作の対象となる演奏操作子への操作内容を表
    す第3の演奏情報を取得する第3の演奏情報取得手段
    と、 前記第3の演奏情報取得手段が取得した第3の演奏情報
    を前記表示装置上に表示させる第3の演奏情報表示手段
    と、 を更に具備することを特徴とする請求項1、または2記
    載の演奏情報表示装置。
  4. 【請求項4】 前記第3の演奏情報取得手段が取得する
    第3の演奏情報は、前記音高操作子群が鍵盤であった場
    合に、該鍵盤上での手の位置、該手の移動方向、該手を
    移動させるタイミング、指を交差させることの有無、及
    び演奏操作子への操作の有無、のうちの少なくとも一つ
    を含む、 ことを特徴とする請求項3記載の演奏情報表示装置。
  5. 【請求項5】 楽音の音高別に、該音高の楽音の発音持
    続時間を示すオブジェクトをスクロール表示する演奏情
    報表示装置において、 前記楽音の音高、該音高の楽音の発音開始タイミング、
    及び該楽音の発音持続時間を該楽音単位で表す曲データ
    を取得する曲データ取得手段と、 前記曲データ取得手段が取得した曲データ中で前記発音
    持続時間が表されている楽音のオブジェクトを表示装置
    上にスクロール表示させる第1の演奏情報表示手段と、 発音させる楽音の音高を指示するための音高操作子群へ
    の操作の仕方、或いは該音高操作子群以外に演奏操作の
    対象となる演奏操作子への操作内容を表す第2の演奏情
    報を取得する第2の演奏情報取得手段と、 前記第2の演奏情報取得手段が取得した第2の演奏情報
    を前記表示装置上に表示させる第2の演奏情報表示手段
    と、 を具備することを特徴とする演奏情報表示装置。
  6. 【請求項6】 各演奏情報表示手段は、対応する演奏情
    報をパート別に表示させる、 ことを特徴とする請求項1〜5の何れか1項に記載の演
    奏情報表示装置。
  7. 【請求項7】 楽音の音高別に、該音高の楽音の発音持
    続時間を示すオブジェクトをスクロール表示する演奏情
    報表示装置に実行させるプログラムであって、 前記楽音の音高、該音高の楽音の発音開始タイミング、
    及び該楽音の発音持続時間を該楽音単位で表す曲データ
    を取得する機能と、 前記取得する機能により取得した曲データ中で前記発音
    持続時間が表されている楽音のオブジェクトを表示装置
    上にスクロール表示させる機能と、 前記取得する機能により取得した曲データ中で表されて
    いる、前記オブジェクトのスクロール表示で表現されな
    い演奏情報である第2の演奏情報を前記表示装置上に表
    示させる機能と、 を実現させるためのプログラム。
  8. 【請求項8】 楽音の音高別に、該音高の楽音の発音持
    続時間を示すオブジェクトをスクロール表示する演奏情
    報表示装置に実行させるプログラムであって、 前記楽音の音高、該音高の楽音の発音開始タイミング、
    及び該楽音の発音持続時間を該楽音単位で表す曲データ
    を取得する機能と、 前記曲データを取得する機能により取得した曲データ中
    で前記発音持続時間が表されている楽音のオブジェクト
    を表示装置上にスクロール表示させる機能と、 発音させる楽音の音高を指示するための音高操作子群へ
    の操作の仕方、或いは該音高操作子群以外に演奏操作の
    対象となる演奏操作子への操作内容を表す第2の演奏情
    報を取得する機能と、 前記第2の演奏情報を取得する機能により取得した第2
    の演奏情報を前記表示装置上に表示させる機能と、 を実現させるためのプログラム。
JP2001300728A 2001-09-28 2001-09-28 演奏情報表示装置、及びプログラム Withdrawn JP2003108119A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001300728A JP2003108119A (ja) 2001-09-28 2001-09-28 演奏情報表示装置、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001300728A JP2003108119A (ja) 2001-09-28 2001-09-28 演奏情報表示装置、及びプログラム

Publications (1)

Publication Number Publication Date
JP2003108119A true JP2003108119A (ja) 2003-04-11

Family

ID=19121262

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001300728A Withdrawn JP2003108119A (ja) 2001-09-28 2001-09-28 演奏情報表示装置、及びプログラム

Country Status (1)

Country Link
JP (1) JP2003108119A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015069170A (ja) * 2013-09-30 2015-04-13 カシオ計算機株式会社 演奏操作ガイド装置、方法、およびプログラム
JP2015146035A (ja) * 2015-04-06 2015-08-13 ヤマハ株式会社 表示制御装置、音響処理装置およびプログラム
CN110088831A (zh) * 2017-03-03 2019-08-02 雅马哈株式会社 演奏辅助装置以及方法
CN110088830A (zh) * 2017-03-03 2019-08-02 雅马哈株式会社 演奏辅助装置以及方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015069170A (ja) * 2013-09-30 2015-04-13 カシオ計算機株式会社 演奏操作ガイド装置、方法、およびプログラム
JP2015146035A (ja) * 2015-04-06 2015-08-13 ヤマハ株式会社 表示制御装置、音響処理装置およびプログラム
CN110088831A (zh) * 2017-03-03 2019-08-02 雅马哈株式会社 演奏辅助装置以及方法
CN110088830A (zh) * 2017-03-03 2019-08-02 雅马哈株式会社 演奏辅助装置以及方法
CN110088831B (zh) * 2017-03-03 2023-08-18 雅马哈株式会社 演奏辅助装置、方法以及存储介质
CN110088830B (zh) * 2017-03-03 2024-02-13 雅马哈株式会社 演奏辅助装置以及方法

Similar Documents

Publication Publication Date Title
JP3632522B2 (ja) 演奏データ編集装置、方法及び記録媒体
JP3632523B2 (ja) 演奏データ編集装置、方法及び記録媒体
JP6988343B2 (ja) 歌唱音声の編集支援方法、および歌唱音声の編集支援装置
US7514622B2 (en) Musical sound production apparatus and musical
JP2705568B2 (ja) 自動演奏装置
JP2000056756A (ja) 楽器練習の支援装置および楽器練習用情報の記録媒体
JP3843735B2 (ja) 演奏ガイド方法、演奏ガイド装置および記録媒体
JP2003108119A (ja) 演奏情報表示装置、及びプログラム
JP4501590B2 (ja) 音楽情報表示装置および音楽情報表示方法を実現するためのプログラム
JP2001324919A (ja) 演奏動作表示装置、及び記録媒体
JP3636045B2 (ja) 自動演奏装置における楽曲制御方法および自動演奏装置、並びに楽曲制御プログラムを記憶した記憶媒体
JP2003114674A (ja) 演奏情報表示装置、及びプログラム
JPH10240117A (ja) 楽器練習の支援装置および楽器練習用情報の記録媒体
JP4127088B2 (ja) 音楽再生と動画表示の制御装置およびそのプログラム
JP3972899B2 (ja) 楽譜表示装置
JP3899778B2 (ja) 楽譜表示装置、及び記録媒体
JP4853054B2 (ja) 演奏データ編集装置及びプログラム
JP2005099264A (ja) 音楽演奏プログラム
JP3528051B2 (ja) 演奏動作表示装置、及び記録媒体
JP4685226B2 (ja) 波形再生用自動演奏装置
JP2002169540A (ja) 楽譜表示装置、及び記録媒体
JP3837994B2 (ja) 楽譜データ変換装置、及び記録媒体
JP3873872B2 (ja) 演奏情報記録装置及びプログラム
JPH07302080A (ja) イベントデータ作成装置
JP3873871B2 (ja) 演奏情報記録装置及びプログラム

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20081202