[go: up one dir, main page]

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

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

Info

Publication number
JP2003114674A
JP2003114674A JP2001309074A JP2001309074A JP2003114674A JP 2003114674 A JP2003114674 A JP 2003114674A JP 2001309074 A JP2001309074 A JP 2001309074A JP 2001309074 A JP2001309074 A JP 2001309074A JP 2003114674 A JP2003114674 A JP 2003114674A
Authority
JP
Japan
Prior art keywords
performance information
data
musical tone
musical
display device
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
JP2001309074A
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 JP2001309074A priority Critical patent/JP2003114674A/ja
Publication of JP2003114674A publication Critical patent/JP2003114674A/ja
Withdrawn legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)
  • Processing Or Creating Images (AREA)
  • Auxiliary Devices For Music (AREA)

Abstract

(57)【要約】 【課題】 発音させるべき楽音の音高やその発音期間以
外の演奏情報をユーザに提示でき、更にはユーザがより
迅速、且つ容易に把握できるように演奏情報を提示でき
る演奏情報表示装置を提供する。 【解決手段】 発音させるべき楽音を表すノートオブジ
ェクト320の形状は、スクロール方向上の長さは楽音
の発音持続時間の長さから決め、その高さは楽音のベロ
シティ値(音量)から決める。それを表示させるうえで
の視点は、表示鍵盤301の手前側の上方から見下ろし
つつ、その表示鍵盤301を斜めに見る方向とさせる。
それにより、オブジェクト320の視認性の低下を回避
させつつ、それを3次元的に表示させてスクロールさせ
る。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、発音させるべき楽
音の音高や音高の楽音の発音開始タイミング、或いは楽
音の発音持続時間といった演奏情報をスクロール表示に
よりユーザに提示するための技術に関する。
【0002】
【従来の技術および発明が解決しようとする課題】現在
では、多くの鍵盤楽器に、演奏の進行に応じて押鍵(操
作)すべき鍵を順次、ユーザ(演奏者)に通知していく
ナビゲーション機能が搭載されている。楽音の音高別
に、その音高の楽音の発音持続時間を示すオブジェクト
をスクロール表示させる演奏情報表示装置は、例えばそ
のナビゲーション機能として鍵盤楽器に搭載される。
【0003】その演奏情報表示装置では、オブジェクト
のスクロールする方向上の長さは発音持続時間に応じて
変化させる。そのオブジェクトの端は、それが発音持続
時間を示す楽音の発音を開始させるタイミングで消去を
開始、或いは予め定めた位置に到達させる。それによ
り、そのオブジェクトのスクロール表示を通して、発音
させるべき楽音の音高、その楽音の発音を開始させるタ
イミング、及びその楽音を消音させるタイミングを表現
している。このため、そのスクロール表示に従って楽音
を発音させれば、即ちそのオブジェクトが発音持続時間
を示す楽音の音高が割り当てられた鍵の押鍵、及びその
離鍵を行えば、発音させるべき楽音を正確に発音できる
ようになっている。なお、楽音を発音させているべき発
音期間は、楽音の発音を開始させるタイミング、及びそ
の楽音を消音させるタイミング(発音持続時間)で表さ
れる。
【0004】従来の演奏情報表示装置は、上述したよう
なオブジェクトをスクロール表示させるようになってい
た。しかし、演奏情報表示装置を利用するユーザの多く
は技術的に未熟である。そのようなユーザにとっては、
オブジェクトのスクロール表示に従って演奏を行うのは
困難であるというのが実情である。たとえスクロール表
示に従って演奏を正しく行えたとしても、その演奏が音
楽的表現の豊かなものになるとは思われない。このた
め、発音させるべき楽音の音高、その楽音期間(発音を
開始させるタイミング、及びそれの発音持続時間(消音
させるタイミング))以外の演奏情報をユーザに提供す
る必要があると考えられる。
【0005】オブジェクトを表示させてのスクロール
(移動)は、オブジェクトを配置する仮想的な平面の垂
直方向を視点にして行うようになっていた。それによ
り、オブジェクトは全て同じように表示させていた。
【0006】技術的に未熟なユーザは余裕を持って演奏
を行えないのが普通である。そのようなユーザにとって
は、全てのオブジェクトを同じように表示させると、そ
のなかで注目すべき楽音、例えば現在、発音させるべき
タイミングとなった楽音、或いはそのタイミングが近い
楽音のオブジェクトを必ずしも迅速に探し出せないと考
えられる。言い換えれば、提示した(表示させた)演奏
情報の把握をユーザが必ずしも迅速に行えないと考えら
れる。このことから、演奏情報の把握をユーザがより迅
速に行えるようにするには、どのようなオブジェクトを
どのように表示させるかといったことが重要であると考
えられる。
【0007】本発明の課題は、発音させるべき楽音の音
高やその発音期間以外の演奏情報をユーザに提示できる
演奏情報表示装置、更にはユーザがより迅速、且つ容易
に把握できるように演奏情報を提示できる演奏情報表示
装置を提供することにある。
【0008】
【課題を解決するための手段】本発明の第1、及び第2
の態様の演奏情報表示装置は、共に、演奏情報をスクロ
ール表示によりユーザに提示することを前提として、そ
れぞれ以下の手段を具備する。
【0009】第1の態様の演奏情報表示装置は、発音さ
せるべき楽音の音高、その楽音の発音開始タイミング、
及びその楽音の発音持続時間を該楽音単位で表す曲デー
タを取得する曲データ取得手段と、曲データ取得手段が
取得した曲データ中で表されている楽音に関する該楽音
の発音持続時間を含む複数の演奏情報の各内容に基づく
形状のオブジェクトを表示装置上にスクロール表示させ
る演奏情報表示手段と、を具備する。
【0010】なお、上記演奏情報表示手段は、オブジェ
クトを3次元的に表示させて、該オブジェクトの形状で
複数の演奏情報を表現させる、ことが望ましい。そのオ
ブジェクトでは、発音持続時間を長さで表す方向の交差
方向上の長さで楽音を発音させるべき音量を複数の演奏
情報の一つとして表現させる、ことが望ましい。また、
オブジェクトを配置する仮想的平面の垂線に対する交差
方向を視点にして、該オブジェクトを表示させる、こと
が望ましく、更には楽音の音高が鍵盤の黒鍵に対応する
か否かに応じて、オブジェクトの表示形態を変更させ
る、ことが望ましい。
【0011】第2の態様の演奏情報表示装置は、発音さ
せるべき楽音の音高、その楽音の発音開始タイミング、
及びその楽音の発音持続時間を該楽音単位で表す曲デー
タを取得する曲データ取得手段と、曲データ取得手段が
取得した曲データ中で表されている楽音の発音持続時間
を少なくとも表現するオブジェクトを3次元的に表示装
置上に表示させてスクロール表示させる演奏情報表示手
段と、を具備する。
【0012】本発明の第1、及び第2の態様のプログラ
ムは、共に、演奏情報をスクロール表示によりユーザに
提示する演奏情報表示装置に実行させることを前提と
し、それぞれ以下の機能を実現させる。
【0013】第1の態様のプログラムは、発音させるべ
き楽音の音高、該音高の楽音の発音開始タイミング、及
び該楽音の発音持続時間を該楽音単位で表す曲データを
取得する機能と、取得する機能により取得した曲データ
中で表されている楽音に関する該楽音の発音持続時間を
含む複数の演奏情報の各内容に基づく形状のオブジェク
トを表示装置上にスクロール表示させる機能と、を実現
させる。
【0014】第2の態様のプログラムは、発音させるべ
き楽音の音高、該音高の楽音の発音開始タイミング、及
び該楽音の発音持続時間を該楽音単位で表す曲データを
取得する機能と、取得する機能により取得した曲データ
中で表されている楽音の発音持続時間を少なくとも表現
するオブジェクトを3次元的に表示装置上に表示させて
スクロール表示させる機能と、を実現させる。
【0015】本発明では、楽音の発音持続時間を含む複
数の演奏情報を基に、表示すべきオブジェクトの形状を
決定し、その決定した形状でオブジェクトをスクロール
表示させる。それにより、そのようにして表示させたオ
ブジェクトを通して、発音させるべき楽音の音高やその
発音期間以外の演奏情報をユーザに提示することが可能
となる。そのような演奏情報を提示することにより、ユ
ーザはより容易な演奏、より適切な形での演奏、或いは
音楽的表現がより豊かな演奏を行えるようになる。その
結果、ユーザはより効率的な練習を行ったり、音楽的表
現力をより迅速に身に付けられるようになる。
【0016】本発明では、楽音の発音持続時間を少なく
とも表現するオブジェクトを3次元(立体)的に表示さ
せてスクロールさせる。3次元的に表示させたオブジェ
クトは、2次元的に表示させたオブジェクトと比較し
て、オブジェクト自体が持つ情報量が多くなって目立つ
ようになるだけでなく、その形状を利用したオブジェク
トの表示のさせかたも行えるようになる。このようなこ
とから、ユーザに注目させるべき度合いが高いオブジェ
クトの視認性の向上や強調を行えるようになる。それに
より、ユーザがより迅速、且つ容易に把握できるように
演奏情報を提示することも可能となる。
【0017】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら詳細に説明する。図1は、本実
施の形態による演奏情報表示装置を搭載した電子楽器の
回路構成図である。
【0018】本実施の形態による演奏情報表示装置は、
電子楽器のユーザが行う演奏をナビゲートさせるために
搭載されている。それを搭載した電子楽器は、図1に示
すように、楽器全体の制御を行うCPU101と、その
CPU101が実行するプラグラムや各種曲データ、及
び各種制御データ(画像表示用の各種データを含む)な
どを格納したROM102と、そのCPU101がワー
ク用に用いるRAM103と、多数の鍵を有する鍵盤1
04と、CPU101から送られたデータを画面上に表
示する表示部105と、ユーザが操作の対象とする操作
部106と、CPU101の指示に従って楽音の波形デ
ータを生成する音源107と、その音源107が出力し
た波形データをサウンドに変換して放音するサウンドシ
ステム108と、CPU101を各部102〜107と
接続するバス109と、を備えて構成されている。
【0019】上記表示部105は、例えばCRT、或い
は液晶表示装置などの表示装置である。操作部106
は、例えば各種スイッチやキー等の複数の操作子、及び
それら操作子への操作を検出する検出回路から構成され
た入力装置である。サウンドシステム108は、例えば
D/Aコンバータ、アンプ、及びスピーカからなるシス
テムである。
【0020】図2は、上記曲データの構成を説明する図
である。その曲データは、ROM102に複数、格納さ
れており、それぞれ、複数のトラックデータから構成さ
れている。各トラックデータは、それぞれ、対象とする
演奏を自動的に再生するための演奏データ、或いはその
演奏に係わる設定などを自動的に変更していくための設
定データである。本実施の形態では、左手で行う演奏の
再生用、右手で行う演奏の再生用、伴奏1の再生用、伴
奏2の再生用、及びテンポ変更用などに対象を分類し
て、各分類毎にトラックデータを用意している。
【0021】各トラックデータは、それぞれ1つ以上の
イベントデータから構成される。そのイベントデータ
は、イベントの内容を表す複数のパラメータのデータ
と、そのデータを処理すべきタイミングを示す時間デー
タと、から構成されている。そのパラメータとしては、
特に図示していないが、イベントのタイプを示すもの
(以降、そのデータをタイプデータと呼ぶ)、タイプ別
に用意されるパラメータなどがある。
【0022】タイプデータが表すイベントのタイプとし
ては、楽音の発音を指示するノートイベントやテンポの
変更を指示するテンポイベント、などがある。それら各
イベントが表示の対象となる演奏情報である。ノートイ
ベントでは、パラメータ(データ)として、楽音の音高
を示す音高データ、その音量を示すベロシティデータ、
発音持続時間を示すゲートタイムデータ、その楽音を発
音させるためにユーザが使うべき指を示す指番号デー
タ、及びその楽音に対応する音符を示す音符データを用
意している。テンポイベントでは、新たに設定すべきテ
ンポ値を示すデータを用意している。
【0023】なお、上記曲データには、ノートイベント
の内容を表すデータ(パラメータ)として、指番号デー
タや音符データを予め用意しているが、それらのデータ
は必ずしも用意しなくても良い。曲データとは別に、或
いはその曲データの内容を解析して取得するようにして
も良い。それらのデータ形式についても特に限定される
ものではない。
【0024】以上の構成において、その動作を説明す
る。CPU101は、電源がオンされると、ROM10
2に格納されているプログラムを読み出して実行するこ
とにより、楽器全体の制御を開始し、表示部105には
初期画面を表示させる。それ以降は、ユーザの鍵盤10
4、或いは操作部106への操作に応じて制御を行う。
【0025】CPU101は、その初期画面を表示させ
るための画像データを、例えばRAM103を作業用に
使用して、ROM102から読み出した複数の画像デー
タを用いて生成する。そのようにして生成された初期画
面の画像データを送られた表示部105は、それを特に
は図示しないメモリ(例えばデュアルポートRAM)に
格納する。それ以降における表示内容の全体的、或いは
部分的な変更は、例えばCPU101が、そのメモリに
格納された画像データ中でデータを書き換えるべき部分
の画像データをROM102から読み出すか、或いはそ
れを用いて生成し、そのようにして得た画像データを、
そのメモリ中の画像データを書き換えるべき部分に上書
きすることで行われる。そのようにして、CPU101
は、表示部105に、表示すべき画面やメッセージを表
示させたり、演奏情報をスクロールさせて表示させる。
【0026】演奏情報のスクロール表示は、ユーザが操
作部106を操作して、例えば自動再生の対象とする曲
データを選択した後、その自動再生を指示した場合に行
うようになっている。本実施の形態では、ノートイベン
トの内容を示すイベントデータ中で表されている演奏情
報を対象にして、以下のようにスクロール表示を行って
いる。図3〜図5を参照して具体的に説明する。
【0027】図3は、そのスクロール表示方法を説明す
る図である。本実施の形態では、図3に示すように、多
数の白鍵、黒鍵で表す鍵盤(ユーザが演奏操作の対象と
する鍵盤104との混同を避けるために、以降、表示鍵
盤と呼ぶ)301、及びその鍵盤301と同一の平面上
となるように配置したスクロール面310を常時、表示
させ、発音させるべき楽音を示すノートオブジェクト3
20は、そのスクロール面310上のその音高に応じた
位置に表示させている。スクロール面310上に表示さ
せたノートオブジェクト320は、曲データの自動演奏
の進行に合わせて図中の矢印で示すスクロール方向に移
動させ、表示鍵盤301の先端に位置に達した部分は消
去させている。それにより、スクロール面310に対応
する演奏範囲に対応する部分だけを表示させる形でノー
トオブジェクト320のスクロール表示を行っている。
そのスクロール面310は、特許請求の範囲に記載の仮
想的平面と少なくとも平行な平面である。
【0028】そのスクロール面310上には、小節の区
切りを示す小節線311と、表示鍵盤301の白鍵に合
わせて領域を分ける線312と、を配置している。その
先311を配置することにより、上記ノートオブジェク
ト320が示す楽音の音高をユーザがより容易に把握で
きるようにさせている。
【0029】スクロール面310や表示鍵盤301を表
示させるうえでの視点は、図3に示すように、その面3
10の垂線に対する交差方向とさせている。より具体的
には、表示鍵盤301よりスクロール方向側(鍵盤を演
奏操作する際にユーザが位置する側)から、その鍵盤3
01上の鍵を低音側から高音側を斜めに見る方向で、且
つ、その鍵盤301を上方から斜めに見る方向を視点と
させている。
【0030】そのような視点でノートオブジェクト32
0を表示させてスクロールさせた場合、各音高では、最
も早く発音させるべき楽音のノートオブジェクト320
が先頭に位置するようになって、他のノートオブジェク
ト320よりも強調されることになる。そのノートオブ
ジェクト320が3次元的な形状であっても、ノートオ
ブジェクト320が表す演奏情報をユーザが把握できな
くなる形で他のノートオブジェクト320がそれを隠し
てしまうようなことが回避される。2次元的な形状と比
較して大きな情報量を持つことによって目に付きやすい
という利点を常に生かせるようになる。このようなこと
から、ユーザにとっては、演奏を行ううえで注目すべき
度合いが高いノートオブジェクト320を常に極めて容
易、且つ迅速に探し出せるようになる。即ちそのノート
オブジェクト320で表現する演奏情報を常に極めて容
易、且つ迅速に把握できるようになる。
【0031】また、そのような視点では、ノートオブジ
ェクト320が自身に向かってスクロール(移動)して
くるような印象をユーザに与えることになる。実際に鍵
盤104に向かっている視点と近いため、感覚的な違和
感が抑えられて、ノートオブジェクト320のスクロー
ル表示によって表現される各種タイミングもより把握し
易くなる。そのようにして演奏の流れがより把握し易く
なる結果、ユーザはスクロール表示に合わせた演奏をよ
り容易に行えるようになる。
【0032】図3中のオブジェクト302は、鍵盤10
4のなかでユーザが現在、押鍵している鍵、言い換えれ
ば実際の演奏によって発音させている楽音の音高を確認
させるために表示させたものであり、表示鍵盤301上
のその鍵に対応する鍵の表示色も他の同じ種類の鍵のそ
れとは異ならせている。それにより、表示部105を見
るだけで、演奏すべき内容の他に、実際の演奏内容をユ
ーザが確認できるようにさせている。なお、オブジェク
ト302については、以降、実ノートオブジェクトと呼
ぶことにする。
【0033】本実施の形態では、上記ノートオブジェク
ト320が示す楽音の音高が白鍵に割り当てられた音高
か否か、及びその楽音は左手で発音させるべきか否かの
2つの条件のうちで満たしている条件に応じてその表示
形態を異ならせている。その表示形態は、図4に示すよ
うに、ノートオブジェクト320をスクロール方向上の
先頭に位置する6面体の形状をした前部320aとそれ
に続く後部320bとに分け、その2つの部分320
a、320bの表示色を変えることで異ならせている。
具体的には、図4(a)、(b)と図4(c)、(d)
とを対比すれば明らかなように、楽音の音高が白鍵に対
応しているか否かに応じて前部320aの表示色を異な
らせ、図4(a)、(c)と図4(b)、(d)とを対
比すれば明らかなように、楽音を左手で発音させるべき
か否かに応じて後部320bの表示色を異ならせてい
る。そのようにして、発音させるべき楽音が左手のパー
トと右手のパートの何れに属しているか、その楽音を発
音させるために押鍵すべき鍵の種類をノートオブジェク
ト320で表すことにより、それらの演奏情報を容易に
把握できる形でユーザに提示している。
【0034】図5は、上記ノートオブジェクト320の
形状を説明する図である。その図5を参照して、ノート
オブジェクト320の形状やその決定方法、及びその表
示位置について詳細に説明する。その形状や表示位置
は、CPU101によって決定される。
【0035】そのノートオブジェクト320は3次元の
形状としている。3次元の座標軸は図5に示すように定
めている。X軸は、表示鍵盤301の鍵が並ぶ方向と平
行であり、Z軸は線312(スクロール方向)と平行で
ある。Y軸はそれらX軸、Z軸と垂直である。なお、X
軸については、その軸上の位置は楽音の音高を表してい
ることから、以降、音階軸とも呼ぶことにする。Z軸に
ついては、その軸上の位置は時間を表していることか
ら、以降、時間軸とも呼ぶことにする。
【0036】各ノートオブジェクト320は、図5に示
すように、点a(x0,y0,z0)、b(x1,y
0,z0)、c(x1,y1,z0)、d(x0,y
1,z0)、e(x0,y0,z1)、f(x1,y
0,z1)、g(x1,y1,z1)、h(x0,y
1,z1)、i(x0,y0,z2)、及びj(x1,
y0,z2)の計10個の点で形状を管理している。
【0037】それらの点の座標値を表すシンボルx0、
x1、y0、y1、z0、z1、及びz2において、シ
ンボルy0で表すY軸上の座標値だけが固定値である。
z1で表すZ軸上の座標値はz0で表す座標値に一定値
を加算した値である。x0、及びx1は、楽音の音高
(イベントデータ中の音高データ)によって決まる値で
ある。x0、或いはx1が表す座標値と音高との対応関
係を定義したテーブルを参照して、それらの値は決定し
ている。それらの差は一定値として、ノートオブジェク
ト320のX軸上の幅は楽音の音高が割り当てられた鍵
の種類が白鍵か否かに係わらず変更しないようにさせて
いる。なお、実ノートオブジェクト302におけるx
0、x1に対応する座標値は、鍵盤104から送出され
る音高データにより同様に決定している。そのZ軸上の
幅は固定とさせている。
【0038】y1は、楽音の音量を示すベロシティ値
(イベントデータ中のベロシティデータ)から決定して
いる(y0の座標値は固定値である)。本実施の形態で
は、y1が表す座標値とベロシティ値の対応関係を定義
したテーブルを参照して決定している。ベロシティ値が
大きくなるほど、y1が表す座標値も大きくさせてい
る。言い換えれば、ノートオブジェクト320のY軸上
の幅は、楽音を発音させるべき音量が大きくなるほど大
きくさせている。それにより、ノートオブジェクト32
0のY軸上の幅から楽音を発音させるべき音量の大きさ
をユーザが把握できるようにさせている。ここでは、ベ
ロシティ値の値域が0〜127とすると、例えば0、1
〜23、24〜47、48〜71、72〜95、96〜
119、120〜127、の7つの値域に分け、値が0
でない6つの値域を対象にすることにより、ノートオブ
ジェクト320のY軸上の幅は6段階で切り換えるよう
にしている。なお、実ノートオブジェクト302におけ
るy1に対応する座標値も、鍵盤104から送出される
ベロシティ値によって同様に決定している。
【0039】楽音のベロシティ値に応じてY軸上の幅が
切り換えられるのは前部320aであり、そこの幅を最
大にして、後部320bではその幅を徐々に小さくさせ
ている。これは、前部320aが他のノートオブジェク
ト320に隠れてしまう部分をできる限り小さくさせ
て、その前部320aで表す楽音のベロシティ値やそれ
を発音させるべきタイミングをユーザが確実、且つ容易
に把握できるようにさせるためである。
【0040】z2が表す座標値とz0が表す座標値の差
は、楽音の発音持続時間(イベントデータ中のゲートタ
イムデータ)に応じて決定している。Z軸全体の幅で表
される時間(以降、表示範囲時間と呼ぶ)はユーザが変
更できるようにさせている。このことから、それらの差
は、Z軸上の単位長さが表す時間で発音持続時間を割っ
て得られる値とさせている。そのようにして、ノートオ
ブジェクト320のZ軸上の幅は発音持続時間に応じた
大きさとさせることにより、その発音持続時間をユーザ
が把握できるようにさせている。
【0041】z0が表す座標値は、曲データの自動演奏
の進行に応じて変更する。それにより、その自動演奏の
進行に合わせてノートオブジェクト320をスクロール
させる。
【0042】このようにして、ノートオブジェクト32
0(実ノートオブジェクト302)の形状を決定してい
る。それを構成する前部320aの表示色は、楽音の音
高とそれが割り当てられた鍵の種類の対応関係を定義し
たテーブルを参照して、その音高が白鍵(黒鍵)に割り
当てられているか否かに応じて切り換えている。後部3
20bの表示色は、イベントデータが属するトラックデ
ータが左手(右手)演奏用のものか否かに応じて切り換
えている。それにより、音高が割り当てられた鍵の種
類、その音高の楽音のパートに応じて、図4に示すよう
にノートオブジェクト320を表示させている。
【0043】上述したようにして形状が決定されるノー
トオブジェクト320は3次元図形である。しかし、そ
れは表示部105に2次元で表示させなければならな
い。即ち3次元空間データ(表示するオブジェクトの形
状や表示位置を表す各点の座標値を少なくとも含むデー
タ)を2次元平面データに変換しなければならない。そ
の変換は、例えば各オブジェクトの形状や表示位置を決
定して生成した1画面(ここでは、スクロール表示の対
象となる部分の領域という意味である。以降、混乱を避
けるために、演奏画面と呼ぶことにする)分の空間デー
タを対象にする場合には、その空間データに対してX、
Y、及びZ軸の各軸回りに回転させる処理を施した後、
XY平面に対して平行に投影させることで行う。
【0044】そのような変換を行って平面データを得た
後は、複数の点によって表される面のなかで表示される
部分を特定し、特定した部分毎に、その部分を構成する
画素のデータとして、その部分の表示色を表す値を書き
込む形で1画面分の画像データを生成する。音高が低い
楽音のノートオブジェクト320ほど、手前側に表示さ
せることから、表示される部分の特定は低音側のノート
オブジェクト320から行う。そのようにして生成した
画像データを表示部105に送って表示させることによ
り、図3に示すように各種オブジェクトを表示させての
スクロール表示を行わせる。その画像データは、状況に
より、演奏画面全体、或いはその一部分を対象に生成し
て表示部105に送っている。
【0045】なお、本実施の形態では、3次元空間デー
タから2次元平面データへの投影は平行に行うようにし
ているが、例えば図6に示すように、遠近法を取り入れ
た形で投影を行うようにしても良い。しかし、発音させ
るべき楽音をユーザに強調させるために、発音させるべ
きタイミングが早い楽音のノートオブジェクト320ほ
ど、大きくなるように表示させることが望ましい。その
図6では、視点も図3とは異ならせ、ノートオブジェク
ト320の音階軸上の幅は音高が白鍵に対応するか否か
に応じて異ならせ、表示色は1色とさせている。その視
点は、図3や図6におけるそれらと異ならせても良い。
【0046】ノートオブジェクト320については、そ
の形状は図3に示すものと異ならせても良い。例えば図
7(a)〜(e)にそれぞれ示す変形例1〜5のうちの
何れかを採用しても良い。それら以外の形状を採用して
も良い。図7(c)に示す変形例3は、それが表す音高
の楽音を発音させるために使うべき指を番号(図中の
「1」)を前部に配置するようにしたものである。図7
(d)に示す変形例4は、それが表す楽音の対応する音
符を示すシンボルを前部に配置するようにしたものであ
る。図7(e)に示す変形例5は、それが表す楽音の音
高(音名)を示すシンボル(図中の「c」)を前部に配
置するようにしたものである。図7(c)〜(e)から
明らかなように、ノートオブジェクト320は3次元
(立体)的に表示させることから、何らかの演奏情報を
表すシンボルも把握し易いように配置することができ
る。
【0047】上述したようなノートオブジェクト320
を表示させてスクロールさせることにより、ユーザにと
っては従来の演奏情報表示装置と比較して、より多くの
演奏情報をより容易、且つ迅速に得られるようになる。
このため、ユーザがより適切な形で演奏を行うのを支援
することになる。なた、音楽的表現がより豊かな演奏も
より短時間で行えるようになる。
【0048】次に、上述したような演奏情報のスクロー
ル表示を実現するCPU101の動作について、図8〜
図14に示す各種フローチャートを参照して詳細に説明
する。
【0049】図8は、全体処理のフローチャートであ
る。この全体処理は、ユーザが電源をオンさせた場合
に、CPU101が、ROM102に格納されているプ
ログラムを実行することで実現される処理の全体的な流
れを表したものである。始めに図8を参照して、その全
体処理について詳細に説明する。
【0050】先ず、ステップ801では、楽器を状態を
所定の状態に初期化する初期化処理を実行する。次に移
行するステップ802では、操作部106を構成する各
種スイッチの状態を示すデータを、その操作部106の
検出回路から取り込む処理を実行する。その後はステッ
プ803に移行する。
【0051】ステップ803では、操作部106の検出
回路から取り込んだデータを解析して、何らかのスイッ
チがユーザに操作されたか否か判定する。操作部106
を構成する何らかのスイッチをユーザが操作した場合、
判定はYESとなってステップ804に移行する。そう
でない場合には、判定はNOとなってステップ812に
移行する。
【0052】電源のオン/オフを指示するための電源ス
イッチは、操作部106を構成するスイッチとして設け
られている。ステップ804では、その電源スイッチが
操作されたか否か判定する。そのスイッチをユーザが操
作した場合、判定はYESとなり、ここで一連の処理を
終了する。そうでない場合には、判定はNOとなってス
テップ805に移行する。
【0053】ステップ805では、操作部106を構成
する、曲データの再生(自動演奏)の開始を指示するた
めのスタートスイッチが操作されたか否か判定する。そ
のスイッチをユーザが操作した場合、判定はYESとな
り、ステップ806に移行して、現在、選択されている
曲データの再生を開始するための演奏開始処理を実行し
た後、ステップ812に移行する。そうでない場合に
は、判定はNOとなってステップ807に移行する。そ
の演奏開始処理を実行した際に、曲データの再生を管理
するために用意した変数Playflgには再生中であ
ることを表す値の1が代入される。
【0054】ステップ807では、操作部106を構成
する、曲データの再生(自動演奏)の停止(終了)を指
示するためのストップスイッチが操作されたか否か判定
する。そのスイッチをユーザが操作した場合、判定はY
ESとなり、ステップ808に移行して、現在、再生中
の曲データの再生を停止させるための演奏停止処理を実
行した後、ステップ812に移行する。そうでない場合
には、判定はNOとなってステップ809に移行する。
その演奏停止処理を実行した際に、上記変数Playf
lgには曲データを再生中でないことを表す値の0が代
入される。
【0055】本実施の形態では、上述したように、表示
部105で表す時間軸の単位、即ち1演奏画面で表す演
奏時間である表示範囲時間の長さをユーザが変更できる
ようにさせている。ステップ809では、操作部106
を構成する、その変更を指示するためのスイッチが操作
されたか否か判定する。そのスイッチをユーザが操作し
た場合、判定はYESとなってステップ810に移行
し、ユーザが操作したスイッチの種類に応じて表示範囲
時間を変更する表示時間処理を実行して、変更後の表示
範囲時間を表す値を変数tkDispRangeに代入
した後、ステップ812に移行する。そうでない場合に
は、判定はNOとなり、ステップ811に移行して、操
作部106を構成する他のスイッチ、或いは鍵盤104
へのユーザの操作に対応するための処理を実行した後、
ステップ812に移行する。なお、鍵盤104へのユー
ザの操作に応じた楽音の発音(発音開始や消音、更には
各種音響効果の付加など)は、CPU101が、その鍵
盤104から受け取ったデータを用いて音源107に送
出すべきコマンドを生成し、それを音源107に送出す
ることで実現される。
【0056】ステップ812では、現在、曲データを自
動演奏(再生)中か否か判定する。その自動演奏用に用
意した上記変数Playflgに1が代入されていた場
合、判定はYESとなり、ステップ813に移行して、
曲データの自動演奏を進行させるための演奏処理を実行
した後、ステップ814に移行する。そうでない場合に
は、判定はNOとなってそのステップ814に移行す
る。
【0057】ステップ814では、ノートオブジェクト
320(図3等参照)、更には他のオブジェクトなどを
曲データの自動演奏の進行に合わせてスクロール表示す
るための楽音表示処理を実行する。続くステップ815
では、ユーザに通知すべき他の情報や各種設定内容など
を必要に応じて表示するためのその他の表示処理を実行
する。その次に移行するステップ816では、上述した
以外のことに対応するためのその他の処理を実行する。
その実行後に上記ステップ802に戻る。特には図示し
ないMIDIインターフェースを介してのMIDIデー
タの送受信は、ステップ816の処理を実行することで
実現される。
【0058】このように、電源がオンされている間は、
上記ステップ802〜816で形成される処理ループを
繰り返し実行するようになっている。それにより、ユー
ザの鍵盤104や操作部106への操作、曲データの自
動演奏(再生)、更にはその自動演奏の進行に合わせた
スクロール表示に対応するようになっている。
【0059】以降は、上記全体処理内で実行される各種
サブルーチン処理について詳細に説明する。図9は、上
記ステップ813として実行される演奏処理のフローチ
ャートである。全体処理内で実行されるサブルーチン処
理では、始めに図9を参照して、演奏処理について詳細
に説明する。
【0060】この演奏処理が自動演奏の対象とする曲デ
ータは、図2に示すように、複数のトラックデータから
構成される。このことから、演奏処理は、トラックデー
タ別に、対象とするトラックデータを順次、変更しなが
ら、そのトラックデータ中で処理すべきタイミングとな
ったイベントデータを抽出して処理するようになってい
る。それを実現させるために、1次元の配列変数pPl
ayEventの各要素には、それぞれ対応するトラッ
クデータ中で次に処理すべきイベントデータを示すアド
レス値を保持させている。曲データの自動演奏開始時に
は、それぞれ、対応するトラックデータのなかで先頭に
位置するイベントデータを指定するアドレス値を保持さ
せている。
【0061】先ず、ステップ901では、処理対象とす
るトラックデータを管理するための変数trkに0(ト
ラッ番号は0〜15である)を代入し、現在の演奏時間
(曲データの自動演奏を開始してから経過した時間)を
計算して、それを示す値を変数tkPlayに代入す
る。続くステップ902では、変数trkの値が、変数
MAXTRKに保持されている、トラック番号の最大値
より小さいか否か判定する。本実施の形態では、変数t
rkに代入した0を初期値として、それに代入した値を
随時、インクリメントしながら、変数trkの値と番号
が一致するトラックデータを処理していくようになって
いる。このことから、全てのトラックデータを処理対象
としていない場合、判定はYESとなってステップ90
3に移行する。そうでない場合には、判定はNOとな
り、ここで一連の処理を終了する。なお、上記変数tk
Playには、曲データの自動演奏の開始時に0が代入
される。
【0062】上記したように、ノートイベントデータで
は、そのイベントの内容を表すパラメータデータとし
て、音高データ、ベロシティデータ、及びゲートタイム
データなどがある。時間データに従って発音を開始させ
た楽音は、ゲートタイムデータが表す発音持続時間が経
過した後、消音させなければならない。このことから、
本実施の形態では、2次元の配列変数pPlayOff
を用意し、各トラックデータ毎に、発音中の楽音のイベ
ントデータを示すアドレス値を保持させている。その直
後に位置する括弧内の添字はトラックデータ(番号)の
指定用である。その配列変数pPlayOffによって
提供される作業領域については、以降、オフバッファと
も呼ぶことにする。配列変数pPlayOffの各要素
には、曲データの自動演奏開始時にNULL(アドレス
値が保持されていないことを示す値である)を代入させ
ている。
【0063】ステップ903では、そのオフバッファに
アドレス値が保持されたイベントデータを処理の対象に
するオフバッファ演奏処理を実行する。次に移行するス
テップ904では、配列変数pPlayEventのな
かで変数trkの値により指定される要素pPlayE
vent[trk]の値を変数peに代入する。その後
はステップ905に移行する。
【0064】ステップ905では、変数peの値で指定
されるイベントデータ中の時間データ(図中では「pe
→tktime」と表記)が表す時間が変数tkPla
yの値が表す演奏時間以上か否か判定する。変数peの
値で指定されるイベントデータが処理すべきタイミング
となった、或いはなっていた場合、その関係を満たすこ
とから、判定はYESとなってステップ907に移行す
る。そうでない場合には、判定はNOとなり、ステップ
906で変数trkの値をインクリメントした後、上記
ステップ902に戻る。それにより、対象とするトラッ
クデータを次に代えて、そのステップ902以降の処理
を同様に実行する。
【0065】ステップ907では、処理すべきタイミン
グとなったイベントデータを処理することで曲データの
自動演奏を進行させるためのイベント演奏処理を実行す
る。続くステップ908では、変数peに、それまでの
値が示すイベントデータの次に位置しているイベントデ
ータのアドレス値を代入する。その次に移行するステッ
プ909では、配列変数pPlayEventのなかで
変数trkの値により指定される要素pPlayEve
nt[trk]に、変数peの値を代入する。その後に
上記ステップ905に戻る。それにより、変数trkの
値で指定されるトラックデータのなかで処理すべきイベ
ントデータを全て処理するまで、ステップ905、90
7〜909で形成される処理ループを繰り返し実行す
る。
【0066】ここで、上記演奏処理内で実行される各種
サブルーチン処理について、図10、及び図11を参照
して詳細に説明する。図10は、上記ステップ903と
して実行されるオフバッファ処理のフローチャートであ
る。演奏処理内で実行されるサブルーチン処理では、始
めに図10を参照して、オフバッファ処理について詳細
に説明する。その演奏処理からは、各種変数の値が渡さ
れる。
【0067】先ず、ステップ1001では、変数off
に0を代入する。その変数offは、その値を用いて指
定される配列変数pPlayOff中の要素にアドレス
値が保持されたイベントデータを処理するために用意し
た変数であり、その値は順次、インクリメントされる。
【0068】ステップ1001に続くステップ1002
では、変数offの値が、変数MAXOFFに保持され
たトラックデータを対象とする最大同時発音数より小さ
いか否か判定する。変数offの値を変更して指定でき
る配列変数pPlayOff中の要素を全て指定してい
ない場合、判定はYESとなってステップ1003に移
行し、変数trk、及びoffの各値によって指定され
る配列変数pPlayOff中の要素pPlayOff
[trk][off]に保持されたアドレス値を変数p
eに代入した後、ステップ1004に移行する。そうで
ない場合には、判定はNOとなり、配列変数pPlay
Off中で変数offの値により指定される要素にアド
レス値が保持されたイベントデータのなかで処理すべき
ものは全て処理したとして、ここで一連の処理を終了す
る。
【0069】ステップ1004では、変数peの値がN
ULLか否か、即ち要素pPlayOff[trk]
[off]にアドレス値が保持されていなかったか否か
判定する。その要素にアドレス値が保持されていなかっ
た場合、判定はYESとなってステップ1007に移行
する。そうでない場合には、判定はNOとなってステッ
プ1005に移行する。
【0070】ステップ1005では、変数peの値で指
定されるイベントデータを構成する時間データが示す時
間(図中では「pe→tktime」と表記)に、それ
を構成するゲートタイムデータが示す時間(図中では
「pe→tkoff」と表記)を加算した時間、即ちそ
のイベントデータが表す楽音を消音させるべき時間が、
変数tkPlayの値が示す演奏時間以上か否か判定す
る。そのイベントデータによって発音を開始させた楽音
を消音させるべきタイミングとなったような場合、判定
はYESとなってステップ1006に移行する。そうで
ない場合には、判定はNOとなってステップ1007に
移行する。
【0071】ステップ1006では、変数peの値で指
定されるイベントデータによって発音させた楽音の消音
を音源107に指示するとともに、要素pPlayOf
f[trk][off]にNULLを代入する。続くス
テップ1007では、変数Offの値をインクリメント
する。その後は上記ステップ1002に戻る。それによ
り、変数offの値を変更することで指定される配列変
数pPlayOff中の要素にアドレス値が保持された
イベントデータのなかで処理すべきイベントデータを全
て処理する。なお、音源107に楽音の消音を指示する
コマンドは、イベントデータを構成する音高データを用
いて生成されるものである。
【0072】次に、図9に示す演奏処理内でステップ9
07として実行されるイベント演奏処理について、図1
1に示すそのフローチャートを参照して詳細に説明す
る。そのイベント演奏処理は、上述したように、処理す
べきタイミングとなったイベントデータを処理すること
で曲データの自動演奏を進行させるための処理であり、
演奏処理からは、変数pe、trkの値などが渡され
る。
【0073】先ず、ステップ1101では、変数peの
アドレス値で指定されるイベントデータ中のパラメータ
データが示すイベントの種類がノートイベントか否か判
定する。そのイベントの種類がノートイベントであった
場合、判定はYESとなってステップ1102に移行
し、イベントデータ中の音高データで音高が指定される
楽音の発音を音源107に指示するとともに、そのアド
レス値を配列変数pPlayOff中の要素に保持させ
た後、一連の処理を終了する。そうでない場合には、判
定はNOとなってステップ1103に移行する。
【0074】なお、アドレス値を保持させる要素は、変
数trkの値で指定される要素のなかでNULLを保持
しているか、或いは対応する楽音の発音を最も早く開始
させたイベントデータのアドレス値を保持している要素
を抽出してそれに決定している。アドレス値を保持させ
ている要素にアドレス値を上書きする場合には、上書き
されるアドレス値で指定されるイベントデータによって
発音中の楽音は消音させる。それにより、NULLを保
持している要素が残っている間はその残っている要素に
アドレス値を保持させ、そのNULLを保持している要
素が残っていなければ、上書きされるアドレス値で指定
されるイベントデータによって発音中の楽音を消音させ
て、新たに保持すべきアドレス値を保持させる要素を確
保するようにしている。
【0075】ステップ1103では、変数peのアドレ
ス値で指定されるイベントデータ中のパラメータデータ
が示すイベントの種類がテンポイベントか否か判定す
る。そのイベントの種類がテンポイベントであった場
合、判定はYESとなってステップ1104に移行し、
変数tkTempoChangeにはイベントデータ中
の時間データ(図中では「pe→tktime」と表
記)、即ちテンポ値を変更するタイミングでの演奏時間
を示す値、変数dwTempoChangeには変数d
wClockの値、変数doTempoにはイベントデ
ータ中のデータが示すテンポ値をそれぞれ代入した後、
一連の処理を終了する。そうでない場合には、判定はN
Oとなってステップ1105に移行し、他のイベントに
対応するための処理を実行した後、一連の処理を終了す
る。
【0076】上記変数dwClockは、例えば一定時
間毎に実行されるタイマインタラプト処理によってイン
クリメントされるカウンタ値を保持させるために用意し
た変数である。そのカウント値によって表される時間
は、テンポ値によって変化する。テンポ値を変更するタ
イミングでのそのカウント値を変数dwTempoCh
angeに保持させるのは、その変化に対応できるよう
にするためである。曲データの自動演奏開始時には、変
数tkTempoChangeには0、変数dwテンポ
Changeには変数dwClockの値、変数doT
empoには所定の初期値がそれぞれ代入される。この
ことから、図9に示す演奏処理(より具体的にはステッ
プ901の処理)の実行時に計算される演奏時間は、そ
の計算に用いる値を変数のシンボルで表現すれば、tk
Play=tkTempoChange+(dwClo
ck−dwTempoChange)×doTempo
により算出している。
【0077】図8に示す全体処理内で実行されるサブル
ーチン処理の説明に戻る。図12は、その全体処理内で
ステップ814として実行される楽音表示処理のフロー
チャートである。次に図12を参照して、楽音表示処理
について詳細に説明する。図3〜図5を参照して説明し
た各種オブジェクトの表示やスクロールは、その楽音表
示処理を実行することで行われる。
【0078】先ず、ステップ1201では、現在、曲デ
ータ(図2参照)を自動演奏中か否か判定する。それが
自動演奏中であることを示す値の1が変数Playfl
gに代入されていた場合、判定はYESとなり、ステッ
プ1202で変数tkPlayの値を変数tkDisp
に代入した後、ステップ1203に移行する。そうでな
い場合には、判定はNOとなり、ここで一連の処理を終
了する。
【0079】上記tkDispには、表示部105での
スクロール表示における先頭の演奏時間を保持させるよ
うになっている。その演奏時間として変数tkPlay
に保持された値を代入することから明らかなように、本
実施の形態では、現在の演奏時間(曲データの自動演奏
を開始してから経過した時間)をスクロール表示の範囲
の先頭とさせている。それにより、例えばノートオブジ
ェクト320が表す楽音の発音を開始させるべきタイミ
ングは、そのオブジェクト320の先端を表示鍵盤30
1の端にまで移動させることで表現し、その楽音を消音
させるべきタイミングは、そのオブジェクト320の後
端まで全て消去させることで表現するようにしている。
当然のことながら、それとは別の形でスクロール表示を
行うようにしても良い。
【0080】ステップ1203では、変数tkDisp
の値が変数tkDispOldの値より小さいか否か判
定する。その変数tkDispOldには、後述するス
テップ1208で変数tkDispの値を代入してその
値を更新するようになっている。変数tkDispに値
を代入する変数tkPlayには、曲データの演奏開始
時に0が代入される。このことから、曲データの自動演
奏開始後、初めてステップ1203を実行した場合、変
数tkPlayには変数tkDispOldの値よりも
小さい値が代入されていることから、判定はYESとな
ってステップ1204に移行する。そうでない場合に
は、判定はNOとなってステップ1205に移行する。
【0081】ステップ1204では、1次元の配列変数
pDispEventの各要素(トラック番号は0〜1
5の何れかであることから、それに合わせて要素の数は
16としている)に、それぞれが曲データを構成する各
トラックデータの先頭に位置するイベントデータのアド
レス値を保持している配列変数pTrkの各要素の値を
対応させて代入する。表示中のノートオブジェクト32
0が表すイベントデータのアドレス値の保持用に用意し
た2次元の配列変数pDispOffの各要素には、そ
れぞれNULLを代入する。そのようにしてスクロール
表示を行ううえでの初期設定を行った後にステップ12
05に移行する。なお、配列変数pDispOffによ
って提供される作業領域については、以降、表示オフバ
ッファとステップ1205では、スクロール表示の対象
とならない各オブジェクト、例えば表示鍵盤301や実
ノートオブジェクト302を表示部105に表示させる
処理を実行する。そのオブジェクト302の表示位置
(表示鍵盤301で表示色を他と異ならせる鍵)やY軸
上の幅(高さ)は、図8に示すステップ811の処理の
実行時に鍵盤104から受け取ったデータから決定す
る。
【0082】ステップ1205に続くステップ1206
では、ノートイベントを表すノートオブジェクト320
を表示させるためのイベント表示処理を実行する。その
次に移行するステップ1207では、配列変数pDis
pOffによって提供される表示オフバッファに格納さ
せるイベントデータのアドレス値を管理し、既に処理す
べきタイミングが来たイベントデータを示すノートオブ
ジェクト320を対象にスクロール表示させるための表
示オフバッファ処理を実行する。それを実行した後にス
テップ1208に移行する。
【0083】1演奏画面(スクロール表示を行う表示領
域)を表示させるうえで必要な3次元空間データは、上
記ステップ1206、1207の各処理を実行すること
により生成される。このことから、ステップ1208で
は、変数tkDispOldに変数tkDispの値を
代入する一方、その時点で生成されている3次元空間デ
ータから2次元平面データを生成する変換を行い、その
平面データから1演奏画面分、或いはその一部分の画像
データを生成し、それを表示部105に送出してその表
示内容を更新させる。一連の処理はその後に終了する。
【0084】上記楽音表示処理を実行することにより、
図3に示すように行うスクロール表示が実現される。以
降、その楽音表示処理内で実行される各種サブルーチン
処理について、図13、図14を参照して詳細に説明す
る。
【0085】図13は、上記ステップ1206として実
行されるイベント表示処理のフローチャートである。楽
音表示処理内で実行されるサブルーチン処理では、始め
に図13を参照して、イベント表示処理について詳細に
説明する。本実施の形態では、トラック番号が0、1で
ある左手演奏用、及び右手演奏用のトラックデータを構
成するイベントデータのみを対象にして、ノートオブジ
ェクト320のスクロール表示を行うようにしている。
【0086】先ず、ステップ1301では、変数trk
に、変数LEFTTRKに保持されているトラック番号
(ここでは0である)を代入する。続くステップ130
2では、変数trkの値が、変数RIGHTTRKに保
持されているトラック番号(ここでは1である)以下か
否か判定する。変数trkの値は順次、インクリメント
することで、処理の対象とするトラックデータを切り換
えるようになっている。このことから、右手演奏用のト
ラックデータを対象にした処理が完了していた場合、判
定はNOとなり、ここで一連の処理を終了する。そうで
ない場合には、判定はYESとなってステップ1303
に移行する。
【0087】ステップ1303では、変数peに、配列
変数pDispEvent中で変数trkの値により指
定される要素pDispEvent[trk]のアドレ
ス値を代入する。次に移行するステップ1304では、
変数peの値で指定されるイベントデータ中の時間デー
タが示す時間の長さが、変数tkDispの値が示す現
在の演奏時間の長さ以下か否か判定する。変数peの値
で指定されるイベントデータを処理すべきタイミングが
来たような場合、判定はYESとなってステップ105
に移行する。そうでない場合には、判定はNOとなって
ステップ1310に移行する。
【0088】ステップ1305では、変数peの値で指
定されるイベントデータ中のデータが示すイベントの種
類(タイプ)がノートイベントか否か判定する。そのイ
ベントの種類がノートイベントであった場合、判定はY
ESとなってステップ1306に移行する。そうでない
場合には、判定はNOとなってステップ1308に移行
する。
【0089】ステップ1306では、イベントデータ中
の時間データ、音高データ、ゲートタイムデータ、及び
ベロシティデータから、上述したようにしてそのイベン
トデータを表すノートオブジェクト320の形状、及び
その表示位置(各点のXYZ軸上の各座標値)を決定す
ることにより、そのノートオブジェクト320の3次元
空間データを生成する。また、その音高データや変数t
rkの値から、オブジェクト320の前部320a、後
部320bの表示色を決定する(図4参照)。そのよう
にしてスクロールさせるノートオブジェクト320を表
示させるためのデータを生成した後は、ステップ130
7に移行して、そのイベントデータのアドレス値を、配
列変数pDispOffの変数trkで指定される要素
pDispOff[trk][](「[]」は2番目の
添字は予め予想できない値であることを表す。以降、特
に断らない限り、同様の意味で用いる)に保持させる。
その後にステップ1308に移行する。ここでアドレス
値を保持させる要素は、図11に示すイベント演奏処理
内で実行されるステップ1102の処理と同様に、NU
LLを保持しているか、或いは発音開始時刻が最も早い
楽音を表すイベントデータのアドレス値を保持している
ものである。
【0090】ステップ1308では、変数peに、それ
までの値で指定されるイベントデータの次に位置するイ
ベントデータのアドレス値を代入する。その次に移行す
るステップ1309では、要素pDispEvent
[trk]に、変数peの値を代入する。その後は上記
ステップ1304に戻る。
【0091】そのステップ1304の判定がNOとなっ
て移行するステップ1310では、変数peの値で指定
されるイベントデータ中の時間データが示す時間(図
中、「pe→tktime」と表記)が、表示終了時間
(図中、「tkDisp+tkDispRange」と
表記)よりも前か(短いか)否か判定する。そのイベン
トデータを処理すべきタイミングが表示終了時間以後で
あった場合、判定はNOとなり、ステップ1311で変
数trkの値をインクリメントした後、上記ステップ1
302に戻る。それにより、現在、トラック番号0のト
ラックデータを処理対象としていたのであれば、トラッ
ク番号1のトラックデータに処理対象を移行させる。一
方、そうでない場合には、判定はYESとなってステッ
プ1312に移行する。
【0092】ステップ1312では、変数peの値で指
定されるイベントデータ中のデータが表すイベントの種
類がノートイベントか否か判定する。そのイベントの種
類がノートイベントであった場合、判定はYESとなっ
てステップ1313に移行する。そうでない場合には、
判定はNOとなってステップ1314に移行する。
【0093】ステップ1313では、処理すべきタイミ
ングが来ていないイベントデータを対象に、上記ステッ
プ1306の処理と同様にして、そのイベントデータを
表すノートオブジェクト320表示用の3次元空間デー
タを少なくとも生成する。その3次元空間データは、発
音を終了させるべきタイミングが表示終了時間よりも後
となっている場合、その表示終了時間の位置で前部32
0a、或いは後部320bをXY平面で切断させるか、
或いは、図5中のz1、或いはz2が表す時間(Z軸上
の座標値)をその表示終了時間と一致させる形で生成す
る。その次に移行するステップ1314では、変数pe
に、それまでの値で指定されるイベントデータの次に位
置するイベントデータのアドレス値を代入する。その後
は上記ステップ1304に戻る。
【0094】このようにして、イベント表示処理では、
処理すべきタイミングが現在の演奏時間から表示終了時
間までの間となっているイベントデータ(イベントの種
類として対象となるのはノートイベントのみである)の
ノートオブジェクト320の表示、及びスクロールを行
うようにしている。
【0095】図14は、図12に示す楽音表示処理内で
ステップ1207として実行される表示オフバッファ処
理のフローチャートである。最後に図14を参照して、
その表示オフバッファ処理について詳細に説明する。
【0096】この表示オフバッファ処理では、配列変数
pDispOffの要素にアドレス値が保持されたイベ
ントデータ(イベントの種類はノートイベントのみであ
る)のみを処理対象にしている。それにより、処理すべ
きタイミングが来たイベントデータのノートオブジェク
ト320のスクロール表示は表示オフバッファ処理を実
行することで対応するようになっている。
【0097】先ず、ステップ1401では、変数trk
に、変数LEFTTRKに保持されているトラック番号
(ここでは0である)を代入する。続くステップ140
2では、変数trkの値が、変数RIGHTTRKに保
持されているトラック番号(ここでは1である)以下か
否か判定する。変数trkの値は順次、インクリメント
することで、処理の対象とするトラックデータを切り換
えるようになっている。このことから、右手演奏用のト
ラックデータを対象にした処理が完了していた場合、判
定はNOとなり、ここで一連の処理を終了する。そうで
ない場合には、判定はYESとなってステップ1403
に移行する。
【0098】ステップ1403では、変数offに0を
代入する。次に移行するステップ1404では、変数t
rk、offの各値で指定される要素pDispOff
[trk][off]に保持された値を変数peに代入
する。その後に移行するステップ1405では、変数p
eの値がNULL(アドレス値ではない値)か否か判定
する。要素pDispOff[trk][off]にN
ULLが保持されていた場合、判定はYESとなってス
テップ1410に移行する。そうでない場合には、判定
はNOとなってステップ1406に移行する。
【0099】ステップ1406では、変数peの値で指
定されるイベントデータ中の時間データが示す時間にそ
のイベントデータ中のゲートタイムデータが示す発音持
続時間を足した時間(発音終了時間)が、変数tkDi
spの値が示す現在の演奏時間より前か(短いか)否か
判定する。その発音終了時間が現在の演奏時間よりも前
であった場合、判定はYESとなり、ステップ1407
で要素pDispOff[trk][off]にNUL
Lを保持させた後、ステップ1410に移行する。そう
でない場合には、即ち変数peの値で指定されるイベン
トデータの発音オブジェクト302を全て消去させる必
要がない場合には、判定はNOとなってステップ140
8に移行する。
【0100】ステップ1408では、変数peの値で指
定されるイベントデータ中の時間データが示す時間が表
示終了時間よりも前か(短いか)否か判定する。そのイ
ベントデータの発音オブジェクト302の表示を開始す
べきタイミングが来ていないような場合、その条件は満
たされないことから、判定はNOとなってステップ14
10に移行する。そうでない場合には、判定はYESと
なってステップ1409に移行する。
【0101】ステップ1409では、そのイベントデー
タ中の時間データ、音高データ、ゲートタイムデータ、
及びベロシティデータから、そのイベントデータを表す
ノートオブジェクト320表示用の3次元空間データを
少なくとも生成する。このときには、ノートオブジェク
ト320の全てを表示させないのであれば、3次元空間
データは、現在の演奏時間の位置でノートオブジェクト
320をXY平面で切断させる形で生成する。それに続
くステップ1410では、変数offの値をインクリメ
ントする。その後はステップ1411に移行する。
【0102】ステップ1411では、変数offの値が
変数MAXOFFに保持されたトラックデータを対象と
する最大同時発音数より小さいか否か判定する。変数o
ffの値は0を初期値として順次インクリメントする。
このことから、配列変数pDispoffの要素に保持
されたトラック番号が変数trkの値と一致するトラッ
クデータ中のイベントデータを示すアドレス値を全て読
み出して処理を行った場合、判定はNOとなり、ステッ
プ1412で変数trkの値をインクリメントした後、
上記ステップ1402に戻る。それにより、処理対象と
するトラックデータの切替を行う。一方、そうでない場
合には、判定はNOとなって上記ステップ1404に戻
る。それにより、値を読み出すべき要素を変更して、そ
れ以降の処理を同様に実行する。
【0103】なお、本実施の形態では、スクロール面3
10の垂線に対して交差する方向を視点とすることで、
ユーザに与える違和感を低減させているが、視認性の低
下や強調の度合いなどが低下しても、それを低減させる
効果はノートオブジェクト320を3次元(立体)的に
表示させなくても得られることから、ノートオブジェク
ト320を2次元の図形で表示できるようにしても良
い。そのようにした場合には、音階軸上の幅で楽音のベ
ロシティ値を表すようにしても良い。
【0104】また、イベントについては、1つの曲デー
タ(図2参照)中で表されているものだけを表示させて
いるが、複数の曲データ中で表されているものを並行し
て同時に表示させるようにしても良い。例えばユーザが
行った演奏を曲データの形で保存して、その曲データ中
で表されているイベントを単独、或いは他の曲データ中
で表されているイベントと合わせて表示できるようにし
ても良い。処理対象とする曲データが複数となっても、
各曲データを対象として行う処理内容自体は処理対象と
する曲データが1つの場合と基本的には同じであること
から、詳細な説明は省略する。
【0105】本実施の形態は、電子楽器に搭載されたに
よる演奏情報表示装置に本発明を適用したものである。
しかし、本発明を適用できる演奏情報表示装置は、電子
楽器などに搭載されたものに限定されるわけではない。
本発明は、他の装置に搭載されていない専用の演奏情報
表示装置を含めて幅広く適用できるものである。表示部
105についても、外部の表示装置と接続できるのであ
れば無くても良い。
【0106】上記演奏情報表示装置の動作を実現させる
ようなプログラムは、CD−ROM、DVD、或いは光
磁気ディスク等の記録媒体に記録させて配布しても良
い。或いは、公衆網等で用いられる伝送媒体を介して、
そのプログラムの一部、若しくは全部を配信するように
しても良い。そのようにした場合には、ユーザはプログ
ラムを取得して任意の演奏情報表示装置、或いはコンピ
ュータ等のデータ処理装置にロードすることにより、そ
の装置に本発明を適用させることができる。このことか
ら、記録媒体は、プログラムを配信する装置がアクセス
できるものであっても良い。
【0107】
【発明の効果】以上、説明したように本発明は、楽音の
発音持続時間を含む複数の演奏情報を基に、表示すべき
オブジェクトの形状を決定し、その決定した形状でオブ
ジェクトをスクロール表示させる。このため、そのよう
にして表示させたオブジェクトを通して、発音させるべ
き楽音の音高やその発音期間以外の演奏情報をユーザに
提示することができる。
【0108】本発明は、楽音の発音持続時間を少なくと
も表現するオブジェクトを3次元(立体)的に表示させ
てスクロールさせる。3次元的に表示させたオブジェク
トは、2次元的に表示させたオブジェクトと比較して、
オブジェクト自体が持つ情報量が多くなって目立つよう
になるだけでなく、その形状を利用したオブジェクトの
表示のさせかたも行えるようになる。このため、ユーザ
に注目させるべき度合いが高いオブジェクトの視認性の
向上や強調を行うことができる。それにより、ユーザが
より迅速、且つ容易に把握できるように演奏情報を提示
することができる。
【図面の簡単な説明】
【図1】本実施の形態による演奏情報表示装置を搭載し
た電子楽器の回路構成図である。
【図2】曲データの構成を説明する図である。
【図3】スクロール表示方法を説明する図である。
【図4】ノートオブジェクトの表示形態を説明する図で
ある。
【図5】ノートオブジェクトの形状を説明する図であ
る。
【図6】他のスクロール表示方法を示す図である。
【図7】ノートオブジェクトの変形例を示す図である。
【図8】全体処理のフローチャートである。
【図9】演奏処理のフローチャートである。
【図10】オフバッファ演奏処理のフローチャートであ
る。
【図11】イベント演奏処理のフローチャートである。
【図12】楽音表示処理のフローチャートである。
【図13】イベント表示処理のフローチャートである。
【図14】表示オフバッファ処理のフローチャートであ
る。
【符号の説明】
101 CPU 102 ROM 103 RAM 104 鍵盤 105 表示部 106 操作部 107 音源 108 サウンドシステム 301 表示鍵盤 302 実ノートオブジェクト 310 スクロール面 311 小節線 312 線 320 ノートオブジェクト 320a 前部 320b 後部

Claims (8)

    【特許請求の範囲】
  1. 【請求項1】 演奏情報をスクロール表示によりユーザ
    に提示する演奏情報表示装置において、 発音させるべき楽音の音高、該音高の楽音の発音開始タ
    イミング、及び該楽音の発音持続時間を該楽音単位で表
    す曲データを取得する曲データ取得手段と、 前記曲データ取得手段が取得した曲データ中で表されて
    いる楽音に関する該楽音の発音持続時間を含む複数の演
    奏情報の各内容に基づく形状のオブジェクトを表示装置
    上にスクロール表示させる演奏情報表示手段と、 を具備することを特徴とする演奏情報表示装置。
  2. 【請求項2】 前記演奏情報表示手段は、前記オブジェ
    クトを3次元的に表示させて、該オブジェクトの形状で
    前記複数の演奏情報を表現させる、 ことを特徴とする請求項1記載の演奏情報表示装置。
  3. 【請求項3】 前記演奏情報表示手段は、前記オブジェ
    クトにおいて、前記発音持続時間を長さで表す方向の交
    差方向上の長さで前記楽音を発音させるべき音量を前記
    複数の演奏情報の一つとして表現させる、 ことを特徴とする請求項2記載の演奏情報表示装置。
  4. 【請求項4】 前記演奏情報表示手段は、前記オブジェ
    クトを配置する仮想的平面の垂線に対する交差方向を視
    点にして、該オブジェクトを表示させる、 ことを特徴とする請求項1、2、または3記載の演奏情
    報表示装置。
  5. 【請求項5】 前記演奏情報表示手段は、前記楽音の音
    高が鍵盤の黒鍵に対応するか否かに応じて、前記オブジ
    ェクトの表示形態を変更させる、 ことを特徴とする請求項1〜4の何れか1項に記載の演
    奏情報表示装置。
  6. 【請求項6】 演奏情報をスクロール表示によりユーザ
    に提示する演奏情報表示装置において、 発音させるべき楽音の音高、該音高の楽音の発音開始タ
    イミング、及び該楽音の発音持続時間を該楽音単位で表
    す曲データを取得する曲データ取得手段と、 前記曲データ取得手段が取得した曲データ中で表されて
    いる楽音の発音持続時間を少なくとも表現するオブジェ
    クトを3次元的に表示装置上に表示させてスクロール表
    示させる演奏情報表示手段と、 を具備することを特徴とする演奏情報表示装置。
  7. 【請求項7】 演奏情報をスクロール表示によりユーザ
    に提示する演奏情報表示装置に実行させるプログラムで
    あって、 発音させるべき楽音の音高、該音高の楽音の発音開始タ
    イミング、及び該楽音の発音持続時間を該楽音単位で表
    す曲データを取得する機能と、 前記取得する機能により取得した曲データ中で表されて
    いる楽音に関する該楽音の発音持続時間を含む複数の演
    奏情報の各内容に基づく形状のオブジェクトを表示装置
    上にスクロール表示させる機能と、 を実現させるためのプログラム。
  8. 【請求項8】 演奏情報をスクロール表示によりユーザ
    に提示する演奏情報表示装置に実行させるプログラムで
    あって、 発音させるべき楽音の音高、該音高の楽音の発音開始タ
    イミング、及び該楽音の発音持続時間を該楽音単位で表
    す曲データを取得する機能と、 前記取得する機能により取得した曲データ中で表されて
    いる楽音の発音持続時間を少なくとも表現するオブジェ
    クトを3次元的に表示装置上に表示させてスクロール表
    示させる機能と、 を実現させるためのプログラム。
JP2001309074A 2001-10-04 2001-10-04 演奏情報表示装置、及びプログラム Withdrawn JP2003114674A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001309074A JP2003114674A (ja) 2001-10-04 2001-10-04 演奏情報表示装置、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001309074A JP2003114674A (ja) 2001-10-04 2001-10-04 演奏情報表示装置、及びプログラム

Publications (1)

Publication Number Publication Date
JP2003114674A true JP2003114674A (ja) 2003-04-18

Family

ID=19128281

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001309074A Withdrawn JP2003114674A (ja) 2001-10-04 2001-10-04 演奏情報表示装置、及びプログラム

Country Status (1)

Country Link
JP (1) JP2003114674A (ja)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004347703A (ja) * 2003-05-20 2004-12-09 Kawai Musical Instr Mfg Co Ltd 演奏操作表示装置
JP2007322447A (ja) * 2006-05-30 2007-12-13 Roland Corp 鍵盤表示装置および鍵盤表示プログラム
JP2009258291A (ja) * 2008-04-15 2009-11-05 Yamaha Corp 音声データ処理装置およびプログラム
JP2015146035A (ja) * 2015-04-06 2015-08-13 ヤマハ株式会社 表示制御装置、音響処理装置およびプログラム
JP2015152680A (ja) * 2014-02-12 2015-08-24 ヤマハ株式会社 音楽情報処理装置及びプログラム並びに方法
WO2016017623A1 (ja) * 2014-07-28 2016-02-04 ヤマハ株式会社 リファレンス表示装置、リファレンス表示方法およびプログラム
JP2021060572A (ja) * 2019-10-04 2021-04-15 国立大学法人大阪大学 楽音入力装置、操作子の配置方法、楽譜の作成方法、楽譜、楽譜教示装置、入力装置、楽音入力方法、楽譜教示方法、及び入力方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004347703A (ja) * 2003-05-20 2004-12-09 Kawai Musical Instr Mfg Co Ltd 演奏操作表示装置
JP2007322447A (ja) * 2006-05-30 2007-12-13 Roland Corp 鍵盤表示装置および鍵盤表示プログラム
JP2009258291A (ja) * 2008-04-15 2009-11-05 Yamaha Corp 音声データ処理装置およびプログラム
JP2015152680A (ja) * 2014-02-12 2015-08-24 ヤマハ株式会社 音楽情報処理装置及びプログラム並びに方法
WO2016017623A1 (ja) * 2014-07-28 2016-02-04 ヤマハ株式会社 リファレンス表示装置、リファレンス表示方法およびプログラム
JP2016031395A (ja) * 2014-07-28 2016-03-07 ヤマハ株式会社 リファレンス表示装置およびプログラム
JP2015146035A (ja) * 2015-04-06 2015-08-13 ヤマハ株式会社 表示制御装置、音響処理装置およびプログラム
JP2021060572A (ja) * 2019-10-04 2021-04-15 国立大学法人大阪大学 楽音入力装置、操作子の配置方法、楽譜の作成方法、楽譜、楽譜教示装置、入力装置、楽音入力方法、楽譜教示方法、及び入力方法
JP7565062B2 (ja) 2019-10-04 2024-10-10 国立大学法人大阪大学 楽音入力装置、操作子の配置方法、楽譜の作成方法、楽譜、楽譜教示装置、入力装置、楽音入力方法、楽譜教示方法、及び入力方法

Similar Documents

Publication Publication Date Title
JP6988343B2 (ja) 歌唱音声の編集支援方法、および歌唱音声の編集支援装置
JP3538242B2 (ja) 楽譜表示装置
JP2002082666A (ja) 運指生成表示方法、運指生成表示装置および記録媒体
JPH1040067A (ja) ポインティングデバイスの操作に連動した音の制御方式
JP2005241877A (ja) 運指指示装置およびプログラム
JP2003114674A (ja) 演奏情報表示装置、及びプログラム
US20070261539A1 (en) Music reproducing program and music reproducing apparatus
JP3521838B2 (ja) 演奏動作表示装置、及び記録媒体
JP3843735B2 (ja) 演奏ガイド方法、演奏ガイド装置および記録媒体
JP3579927B2 (ja) 自動演奏装置
US8878044B2 (en) Processing device and method for displaying a state of tone generation apparatus
JP3972899B2 (ja) 楽譜表示装置
JP3899778B2 (ja) 楽譜表示装置、及び記録媒体
JP3105421B2 (ja) 応用プログラム制御装置
JP2020003721A (ja) 楽器演奏練習装置及び楽器演奏練習用プログラム
JP2003108119A (ja) 演奏情報表示装置、及びプログラム
JP3528051B2 (ja) 演奏動作表示装置、及び記録媒体
JP2002169540A (ja) 楽譜表示装置、及び記録媒体
JP3096221B2 (ja) オルゴール・シミュレータ
JP3121739B2 (ja) メトロノーム・シミュレータ
JP5399831B2 (ja) 音楽ゲームシステム及びそのコンピュータプログラム並びに効果音データの生成方法
JP2003050577A (ja) 演奏動作表示装置、及びプログラム
JP3052875B2 (ja) シーケンスデータ編集方法およびシーケンサ
JPH08335076A (ja) 音楽演奏システム
JP3837994B2 (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: 20041207