JP2003195865A - 演奏教示装置、及びプログラム - Google Patents

演奏教示装置、及びプログラム

Info

Publication number
JP2003195865A
JP2003195865A JP2001400838A JP2001400838A JP2003195865A JP 2003195865 A JP2003195865 A JP 2003195865A JP 2001400838 A JP2001400838 A JP 2001400838A JP 2001400838 A JP2001400838 A JP 2001400838A JP 2003195865 A JP2003195865 A JP 2003195865A
Authority
JP
Japan
Prior art keywords
musical
performance
variable
data
value
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.)
Abandoned
Application number
JP2001400838A
Other languages
English (en)
Inventor
Hitotsugu Kato
仁嗣 加藤
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 JP2001400838A priority Critical patent/JP2003195865A/ja
Publication of JP2003195865A publication Critical patent/JP2003195865A/ja
Abandoned legal-status Critical Current

Links

Abstract

(57)【要約】 【課題】 楽器が備えた複数の演奏操作子を操作して楽
音を発音させるべきタイミングをユーザが容易に把握で
きるように教示する演奏教示装置を提供する。 【解決手段】 表示装置には、スクロール表示用に計2
1個のセグメントが用意されている。演奏教示装置は、
鍵盤を構成する鍵を操作して発音させるべき楽音を表す
シンボルを2個のセグメントにより表示させる。そのシ
ンボルを上から下に向けてスクロール表示させることに
より、21個のセグメントを用いて、各鍵を操作して楽
音を発音させるべきタイミングの時間的な位置関係を1
ライン上で表現させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、楽器に備えられた
複数の演奏操作子を対象に、それら複数の演奏操作子を
構成する演奏操作子を操作して楽音を発音させるべき発
音開始タイミングを教示するための技術に関する。
【0002】
【従来の技術】現在では、多くの鍵盤楽器に、演奏の進
行に応じて押鍵(操作)すべき鍵を順次、ユーザ(演奏
者)に通知していくナビゲーション機能が搭載されてい
る。しかし、単に押鍵すべきタイミングで押鍵すべき鍵
を通知したのでは、ユーザがそのタイミングで押鍵すべ
き鍵を押鍵するのは困難である。このことから、楽音の
音高別に、その楽音を示すシンボル(オブジェクト)を
スクロール表示させる演奏教示装置が開発されている
(特許第3120732号公報等参照)。なお、ここで
云う楽音とは、楽器に備えられた演奏操作子を操作して
発音される音と定義している。
【0003】その演奏教示装置では、例えばシンボルの
端は、それが示す楽音の発音を開始させるべきタイミン
グで消去を開始するか、或いは予め定めた位置に到達さ
せる。それにより、そのシンボルのスクロール表示を通
して、発音させるべき楽音の音高、及びその楽音の発音
を開始させるタイミングなどを表現している。このた
め、そのスクロール表示に従って楽音を発音させれば、
即ちそのシンボルが示す楽音の音高が割り当てられた鍵
の押鍵を行えば、発音させるべき楽音を正確に発音でき
るようになっている。
【0004】
【発明が解決しようとする課題】従来の演奏教示装置
は、上述したように、楽音の音高毎、例えば鍵盤を構成
する鍵毎にシンボルのスクロール表示を行っていた。し
かし、そのように楽音の音高毎にシンボルをスクロール
表示させる場合、音高が並ぶ方向に多数のシンボルを表
示できる状態とさせる必要がある。それにより、スクロ
ール表示を行うのが大型の表示装置であれば、広い範囲
に表示されるシンボルの動きやそれに対応する音高など
を把握しなければならなくなる。それが小型の表示装置
であれば、表示されるシンボル自体が小さくなって、見
難くなる。これらのことから、何れにしても、シンボル
の視認性が低く、楽音の発音を開始すべきタイミングが
把握し難いという問題点があった。これは、リズム楽器
などの他の楽器でも同様である。
【0005】本発明の課題は、複数の演奏操作子を操作
して楽音を発音させるべきタイミングをユーザが容易に
把握できるように教示する演奏教示装置を提供すること
にある。
【0006】
【課題を解決するための手段】本発明の第1、及び第2
の態様の演奏教示装置は、共に、複数の演奏操作子を対
象に、該複数の演奏操作子を構成する演奏操作子を操作
して楽音を発音させるべき発音開始タイミングを教示す
ることを前提とし、それぞれ以下の手段を具備する。
【0007】第1の態様の演奏教示装置は、楽音を発音
させるために操作すべき演奏操作子、及び該楽音を発音
させるべき発音開始タイミングを該楽音単位で少なくと
も表す曲データを取得する曲データ取得手段と、曲デー
タ取得手段が取得した曲データ中で表されている、複数
の演奏操作子を構成する演奏操作子を操作して発音させ
るべき楽音を示すシンボルを、表示装置上に同一のライ
ン上でスクロール表示させることにより、該複数の演奏
操作子を構成する演奏操作子を操作して楽音を発音させ
るべき発音開始タイミングを教示する演奏教示手段と、
を具備する。
【0008】第2の態様の演奏教示装置は、上記第1の
態様における構成に加えて、楽器に備えられた複数の演
奏操作子に対する操作を検出する操作検出手段、を更に
具備し、演奏教示手段は、操作検出手段が検出した複数
の演奏操作子に対する操作に基づいて、スクロール表示
の進行を管理する。
【0009】なお、第2の態様における演奏教示手段
は、発音開始タイミングが来ていない楽音のシンボルを
表示させている状況下で該楽音を発音させる演奏操作子
への操作を操作検出手段が検出した場合に、該楽音の発
音開始タイミングが来た状態にスクロール表示を進行さ
せる、ことが望ましい。
【0010】また、第1、或いは第2の態様において、
演奏教示手段は、発音開始タイミングが来た楽音のシン
ボルを変化させる、ことが望ましい。本発明のプログラ
ムは、複数の演奏操作子を対象に、該複数の演奏操作子
を構成する演奏操作子を操作して楽音を発音させるべき
発音開始タイミングを教示する装置に実行させることを
前提とし、楽音を発音させるために操作すべき演奏操作
子、及び該楽音を発音させるべき発音開始タイミングを
該楽音単位で少なくとも表す曲データを取得する機能
と、取得する機能により取得した曲データ中で表されて
いる、複数の演奏操作子を構成する演奏操作子を操作し
て発音させるべき楽音を示すシンボルを、表示装置上に
同一のライン上でスクロール表示させることにより、該
複数の演奏操作子を構成する演奏操作子を操作して楽音
を発音させるべき発音開始タイミングを教示する機能
と、を実現させる。
【0011】本発明では、楽音を発音させるために操作
すべき演奏操作子、及び該楽音を発音させるべき発音開
始タイミングを該楽音単位で少なくとも表す曲データを
取得し、取得した曲データ中で表されている、複数の演
奏操作子を構成する演奏操作子を操作して発音させるべ
き楽音を示すシンボルを、表示装置上に同一のライン上
でスクロール表示させる。
【0012】複数の演奏操作子を構成する1つ以上の演
奏操作子を操作して発音させるべき楽音を示すシンボル
を同一のライン上でスクロール表示させることにより、
各楽音のそれを発音させるべきタイミング(発音開始タ
イミング)の時間的な位置関係が1ライン上で示される
ことになる。その結果、それらのタイミングをユーザは
容易に把握することが可能となる。
【0013】複数の演奏操作子に対する操作を検出し、
検出した複数の演奏操作子に対する操作に基づいて、ス
クロール表示の進行を管理するようにした場合には、ユ
ーザ自身が行った操作にスクロール表示を対応させるこ
とが可能となる。それにより、ユーザがより快適に操作
を行える環境を提供することも可能となる。
【0014】
【発明の実施の形態】以下、本発明の実施の形態につい
て、図面を参照しながら詳細に説明する。図1は、本実
施の形態による演奏教示装置を搭載した電子楽器の回路
構成図である。
【0015】その電子楽器は、図1に示すように、楽器
全体の制御を行うCPU101と、各種情報の表示に用
いられる表示装置102と、ユーザが演奏を行ううえで
の操作の対象とする鍵盤103と、その鍵盤103に対
して行われた演奏上の操作を検出する演奏操作検出装置
104と、各種スイッチなどからなる操作子群105
と、その操作子群105に対して行われた操作を検出す
るインターフェース106と、CPU101の指示に従
い、楽音を発音させるための波形データを生成する音源
LSI107と、CPU101がデータの保存に用いる
RAM107と、各種データやプログラムを格納したR
OM109と、CPU101がワーク用に用いるワーク
RAM110と、を備えて構成されている。本実施の形
態による演奏教示装置は、スクロール表示を通してユー
ザが行う演奏をナビゲートするために電子楽器に搭載さ
れている。それは、CPU101、演奏装置102、演
奏操作検出装置(以降、検出装置)104、操作子群1
05、インターフェース106、ROM109、及びワ
ークRAM110により実現される。
【0016】上記表示装置102は、例えば液晶表示装
置(LCD)である。その表示装置102を搭載する代
わりに、外部の表示装置と接続するための端子やインタ
ーフェースを用意しても良い。その表示装置102は、
当然のことながら、別の種類であっても良い。音源LS
I107には、特には図示していないが、それが出力す
る波形データを楽音に変換して出力するサウンドシステ
ムが接続されている。操作子群105を構成するスイッ
チとしては、演奏のナビゲートの開始、或いは終了を指
示するためのスタート/ストップスイッチ、そのナビゲ
ートに用いる曲データ(演奏データ)の選択を指示する
ための曲選択スイッチ、その曲データの選択などに用い
られるテンキー、などがある。
【0017】図2は、上記ROM109に格納された曲
データの構成を説明する図である。その曲データは、R
OM102に複数、格納されており、それぞれ、図中、
「(1)」〜「(N)」で表す曲番号が割り当てられて
いる。各曲データは、図中、「曲データ」と表記の演奏
用のデータ(以降、曲演奏データと呼ぶ)と、画像デー
タと、から構成されている。曲演奏データは、特許請求
の範囲に記載の「曲データ」に対応し、ヘッダ部と、そ
れに続くデータ本体とからなる。ヘッダ部には、スクロ
ール表示の内容を更新する周期である表示切替周期を示
す値、データ本体のデータの読込みを行う周期である読
込み周期を示す値を含む各種データが格納されている。
データ本体は、演奏上のイベントの内容を示すイベント
データ(例えばMIDIデータ)に、その処理タイミン
グを示す時間データ(図中、「Δt」と表記)を付加す
る形で構成されている。その時間データは、直前に位置
するイベントデータを処理すべきタイミングを基準に処
理タイミングを相対的に表している。
【0018】一方の画像データは、曲演奏データ中のイ
ベントデータで表される楽音に対応する音符画像の出現
順序を表すデータである。図中の「音符画像」は例えば
表示させるべき音符の種類を示すデータであり、音符画
像を実際に表示させるためのデータは例えばROM10
9に別に格納されている。本実施の形態では、そのよう
な画像データを用意することにより、発音させるべき楽
音に対応する音符画像も表示させるようにしている。
【0019】なお、曲データの構成は、上述したような
ものに限定されるわけではない。それを構成するイベン
トデータは、楽音の発音開始、その消音をそれぞれ別の
イベントとして示すものであるが、楽音の発音開始から
その消音までを1イベントデータで示すものであっても
良い。画像データについては、曲演奏データを参照して
作成しても良い。その画像データとして、楽譜を表示さ
せるためのようなものを採用した場合には、その画像デ
ータを参照して曲演奏データを作成するようにしても良
い。
【0020】以上の構成において、動作を説明する。C
PU101は、電源がオンされると、ROM109に格
納されているプログラムを読み出して実行することによ
り、楽器全体の制御を開始し、表示部102には初期画
面を表示させる。それ以降は、ユーザの鍵盤103、或
いは操作子群105への操作に応じて制御を行う。
【0021】楽音の発音を開始させるべき発音開始タイ
ミングを教示するための曲データを参照してのスクロー
ル表示は、ユーザが操作子群105を構成するスタート
/ストップスイッチを操作して、例えばその開始を指示
した場合に行うようになっている。本実施の形態では、
そのスクロール表示用に、表示装置102には図3に示
すように計21個のセグメントSEG1〜21を配置し
ている。発音させるべき楽音は、上下方向に連続する2
個のセグメントによる表示で表現している。それによ
り、スクロール表示は、図4(a)、及び(b)に示すよ
うに、現在のタイミングからセグメントSEG1〜21
の表示で表される演奏表示期間内に発音させるべき楽音
はセグメントSEG1からそれによる表示を開始させ、
表示させた楽音を示す1個、或いは2個のセグメントを
上から下に、セグメントSEG21による表示が終了す
るまで順次、移動させていくことで行っている。
【0022】上述したようにして、本実施の形態では、
曲データ中で表された楽音のスクロール表示をセグメン
トSEG1〜21によって表示可能な1ライン上で行う
ようにしている。このため、ユーザは、セグメントSE
G1〜21を見るだけで、演奏表示期間内に幾つの楽音
をどのようなタイミングで発音を開始させていくのかと
いった演奏の全体的な流れを容易に確認することができ
る。このことから、そのような演奏の流れを確認するう
えでの視認性が向上することになる。
【0023】本実施の形態では、スクロール表示の開始
時、及びその終了時を除いて、2個のセグメントで楽音
を示すようにしている。これは、セグメント単位でスク
ロールを行う場合、1個のセグメントで楽音を示すよう
にすると、例えば1個置きにセグメントを表示に用いて
いるような状況下では、その正負の何れの方向にスクロ
ールを行っても、スクロール後の状態に変化が発生せ
ず、それによって人間が錯覚を起こしやすくなるためで
ある。そのような錯覚は、2個以上のセグメントで楽音
を示すようにすることで確実に回避させることができ
る。
【0024】セグメントSEG21は、その上方に位置
するセグメントSEG2〜20と比較して大きく、且つ
異なる形状とさせている。これは、そのセグメントSE
G21による表示を介して、スクロール表示に変化を与
え、発音開始タイミングの到来を強調するためである。
その変化を与えることにより、ユーザは発音開始タイミ
ングの到来をより容易に認識できるようになる。
【0025】次に、上述したような曲データを対象にし
たスクロール表示を実現するCPU101の動作につい
て、図5〜図16に示す各種フローチャートを参照して
詳細に説明する。図5は、全体処理のフローチャートで
ある。この全体処理は、ユーザが電源をオンさせた場合
に、CPU101が、ROM109に格納されているプ
ログラムを実行することで実現される処理の全体的な流
れを表したものである。始めに図5を参照して、その全
体処理について詳細に説明する。
【0026】先ず、ステップ501では、楽器を所定の
状態に初期化するイニシャライズを行う。次に移行する
ステップ502では、操作子群105に対して行われた
操作内容を示すデータをインターフェース106から取
り込み、その操作に対応するスイッチ処理を実行する。
その次に移行するステップ503では、曲データ中から
必要なデータを読み出すための読出処理を実行する。そ
の後はステップ504に移行する。
【0027】ステップ504では、表示装置102に表
示させた内容を必要に応じて更新するための表示更新処
理を実行する。続くステップ505では、鍵盤103へ
のユーザの操作に対応するための押鍵処理を実行する。
その次に移行するステップ506では、その他の処理を
実行する。その実行後に上記ステップ502に戻る。そ
れにより、電源がオフされるまでの間、ステップ502
〜506で形成される処理ループを繰り返し実行する。
その結果、ユーザが鍵盤103、或いは操作子群105
を操作すると、その操作に対応して電子楽器が動作する
ことになる。
【0028】以降は、上記全体処理内で実行される各種
サブルーチン処理について詳細に説明する。図6〜図8
は、上記ステップ502として実行されるスイッチ処理
のフローチャートである。全体処理内で実行されるサブ
ルーチン処理では、始めに図6〜図8を参照して、スイ
ッチ処理について詳細に説明する。
【0029】そのスイッチ処理では、インターフェース
106から操作子群105に対して行われた操作内容を
示すデータを取り込み、取り込んだデータを解析するこ
とにより、操作子群105への操作の有無、操作されて
いれば、ユーザが操作したスイッチの種類、及びその操
作内容を含めて特定する。図6〜図8は、そのような特
定後に実行される処理を抜粋してその流れを示したもの
である。
【0030】先ず、ステップ601では、操作子群10
5を構成する上記スタート/ストップスイッチがオンさ
れたか否か判定する。そのスイッチをユーザが操作して
いなかった場合、判定はNOとなり、次にステップ60
2で上記曲選択スイッチへの操作に対応するための曲選
択スイッチ処理を実行し、更にステップ603でその他
のスイッチへの操作に対応するためのその他の処理を実
行した後、一連の処理を終了する。そうでない場合に
は、判定はYESとなってステップ604に移行する。
【0031】ステップ604では、変数PSTFの値を
反転、即ちそれまでの値が1であれば0に、その値が0
であれば1に変更する。続くステップ605では、変数
PSTFの値が1で変数STFの値が0か否か判定す
る。スクロール表示を行っていない場合、変数PST
F、及びSTFには0が代入されている。このことか
ら、スクロール表示を行っていない状況下でユーザがス
タート/ストップスイッチを操作した(オンさせた)場
合、判定はYESとなってステップ609に移行する。
そうでない場合には、判定はNOとなり、次にステップ
PSTF、STFに0をそれぞれ代入し、その次にステ
ップ607でスクロール表示に係る表示を表示装置10
2に消去させ、更にステップ608でタイマインタラプ
ト処理の実行を禁止させた後、一連の処理を終了する。
【0032】なお、タイマインタラプト処理の実行の禁
止は、例えば割り込みフラグレジスタの対応するビット
の値を0にすることで行われる。その許可は、その値を
1にすることで行われる。表示装置102の表示内容の
切り換えは、例えば表示に使うセグメントを指定するこ
とで行われる。
【0033】ステップ609では、変数PADに、曲演
奏データを構成するデータ本体の先頭に位置するデータ
のアドレス値を初期値として代入する。続くステップ6
10では、変数PT、及びPTIMEにそれぞれ0を代
入する。ステップ611にはその後に移行する。それら
の変数PAD、PT、PTIMEは、それぞれ、上記演
奏表示期間内に発音させるべき楽音を特定するために用
意した、データ本体のデータを先読みするための変数で
ある。
【0034】ステップ611では、曲データの曲演奏デ
ータを構成するデータ本体のなかで変数PADの値によ
り示されるデータ(図中では「ROM(PAD)」と表
記。以降、その表記はその意味で用いる)の種類を判定
する。そのデータがノートオンイベントを示すデータで
あった場合、その旨が判定され、ステップ612で配列
変数SEGの要素SEG(0)、(−1)にそれぞれ1
を代入し、更にステップ613で変数PADの値をイン
クリメントした後、上記ステップ611に戻る。そのデ
ータがノートオンイベント以外のイベントを示すデータ
であった場合には、その旨が判定され、上記ステップ6
13に移行する。そのデータが時間データであった場合
には、その旨が判定され、ステップ614で変数PTI
MEにROM(PAD)を代入した後、図7のステップ
615に移行する。
【0035】上記配列変数SEGは、セグメントSEG
1〜21のなかで表示に用いるセグメントを管理するた
めに用意したものであり、その要素を指定する括弧内の
引数の値はセグメントの番号(「SEG」に続く数字で
表される番号)と一致する。それにより、セグメントS
EG1を表示に用いる場合、要素SEG(1)には1を
代入するようにしている。そうでない場合には、それに
は0を代入する。
【0036】曲データの曲演奏データを構成するデータ
本体は、図2に示すように、その先頭がイベントデータ
であり、その後に時間データが位置している。このた
め、ステップ614では、最初の時間データを変数PT
IMEに代入することになる。セグメントSEG1〜2
1は表示に使用しない。
【0037】図7のステップ615以降では、実際の演
奏の流れに沿ってスクロール表示を行う準備のための処
理が行われる。ステップ615では、変数ADに上記初
期値、即ち曲演奏データを構成するデータ本体の先頭に
位置するデータのアドレス値を代入する。続くステップ
616では、変数T、TIMEにそれぞれ0を代入す
る。次に移行するステップ617では、変数aに0を代
入する。ステップ618にはその後に移行する。
【0038】ステップ618では、ROM(AD+a)
のデータ、即ちデータ本体のなかで変数ADの値に変数
aの値を加算した値により示されるデータがノートオン
イベントを示すデータか否か判定する。そのデータがノ
ートオンイベントを示していた場合、判定はYESとな
ってステップ620に移行する。そうでない場合、判定
はNOとなり、ステップ619で変数aの値をインクリ
メントした後、上記ステップ618に戻る。それによ
り、ステップ618の判定がYESとなるまでステップ
618、619で形成される処理ループを繰り返し実行
して、ノートオンイベントを示すデータを格納したアド
レスを探す。
【0039】ステップ620では、ROM(AD+a)
のデータがノートオンを示す楽音の音高値(ノートナン
バー)を変数NOTEに代入し、変数Sには1を代入す
る。続くステップ621では、ROM(AD)のデータ
が時間データか否か判定する。そのデータが時間データ
であった場合、判定はYESとなり、ステップ622で
変数TIMEにROM(AD)を代入し、更にステップ
623でタイマインタラプト処理の実行を許可するとと
もに、そのインタラプト処理に引数として渡す変数nに
0を代入した後、一連の処理を終了する。そうでない場
合には、判定はNOとなって図8のステップ624に移
行する。
【0040】図8のステップ624では、ROM(A
D)のデータが示すイベントの種類を判定する。そのデ
ータがノートオフイベントを示していた場合、その旨が
判定されてステップ625に移行し、変数Sの値で示さ
れる曲データの画像データを構成する音符画像を表示装
置102から消去させ、次にステップ616で変数Sの
値をインクリメントし、更にステップ627で変数AD
の値をインクリメントした後、図7のステップ621に
戻る。そのデータがノートオンイベントを示していた場
合には、その旨が判定されてステップ628に移行し、
変数Sの値で示される音符画像を表示装置102に表示
させた後、そのステップ627に移行する。そのデータ
がノートオンイベント、ノートオフイベント以外のイベ
ントを示していた場合には、その旨が判定され、ステッ
プ629でそのイベントに対応した処理を実行した後、
そのステップ627に移行する。
【0041】ノートオフイベントは、それが消音を指示
する楽音を発音させるノートオンイベントの後に位置す
る。通常、時間データには0でない値が設定される。こ
のようなことから、図7のステップ621、図8のステ
ップ624〜629で形成される処理ループを実行する
と、最初の時間データの前に位置する1つ以上のイベン
トデータが全て処理された後、ステップ621の判定が
YESとなって図7のステップ622に移行することに
なる。それにより、場合によっては、最初に表示すべき
音符画像が表示装置102に表示され、変数TIMEに
は最初の時間データが代入される。なお、音符画像の表
示は、セグメントSEG1〜21と同様に、例えば表示
に使用するセグメントを指定することで行われる。
【0042】ここで、上記スイッチ処理内で実行される
サブルーチン処理、及びその処理内で実行が禁止、或い
は許可されるタイマインタラプト処理について詳細に説
明する。図9は、上記ステップ602として実行される
曲選択スイッチ処理のフローチャートである。始めに図
9を参照して、その曲選択スイッチ処理について詳細に
説明する。
【0043】先ず、ステップ901では、そのスイッチ
がオン(操作)されたか否か判定する。そのスイッチを
ユーザが操作していない場合、判定はNOとなり、ここ
で一連の処理を終了する。そうでない場合には、判定は
YESとなってステップ902に移行する。
【0044】ステップ902では、そのスイッチが操作
されたと判定してから所定時間が経過するまでの間にユ
ーザがテンキーを操作して入力した曲番号を特定し、特
定した曲番号を変数MELODYに代入する。続くステ
ップ903では、変数MELODYに代入した曲番号に
対応する曲データの曲演奏データを構成するヘッダ部の
なかから表示切替周期、読み込み周期を読み出し、それ
らをそれぞれ変数t1、t2に代入する。その次に移行
するステップ904では、変数mに、変数t2の値を変
数t1の値で割った値を代入し、変数TDには変数t2
の値を分解能に対応する値で割った値を代入する。一連
の処理はその後に終了する。
【0045】時間データを表す値は、上記分解能に対応
する値を単位として表現される。このことから、変数T
Dには、読み込み周期に対応する時間データの値が代入
されることになる。スクロールは、上述したように、セ
グメント単位で行うようになっている。このため、例え
ばセグメント1個で表される時間を考慮して決定した時
間間隔でスクロール表示の内容は更新させ、データの先
読みはその時間間隔の複数倍の時間間隔で行えば、その
スクロール表示は適切に行うことができる。このような
ことから、本実施の形態では、前者の時間間隔は表示切
替周期、後者の時間間隔は読み込み周期としてヘッダ部
に格納し、それらの周期に従ってスクロール表示の内容
の更新、データの先読みを行うようにしている。そのよ
うにすることにより、処理の負荷も軽減させることがで
きる。
【0046】図10は、上記スイッチ処理内で実行が禁
止、或いは許可されるタイマインタラプト処理のフロー
チャートである。次に図10を参照して、そのインタラ
プト処理について詳細に説明する。その処理は、例えば
分解能に対応する周期で実行される。
【0047】先ず、ステップ1001では、表示切替周
期が経過したか否か判定する。前回、経過したと判定し
てからその表示切替周期が経過したような場合、判定は
YESとなり、ステップ1002で変数DFにそのこと
を示す値の1を代入した後、ステップ1003に移行す
る。そうでない場合には、判定はNOとなり、ここで一
連の処理を終了する。
【0048】ステップ1003では、変数STFの値が
0か否か判定する。その変数STFに0が代入されてい
ない場合、判定はNOとなってステップ1007に移行
する。そうでない場合には、判定はYESとなり、次に
ステップ1004で変数nの値をインクリメントした
後、ステップ1005に移行する。
【0049】ステップ1005では、変数nの値が21
か否か判定する。その変数nに21が代入されていた場
合、判定はYESとなり、次にステップ1006で変数
STFに1を代入し、更にステップ1007で変数m1
の値をインクリメントした後、ステップ1008に移行
する。そうでない場合には、判定はNOとなって、次に
ステップ1007を実行する。
【0050】変数STFには、上述したようにして1が
代入される。それにより、スタート/ストップスイッチ
をユーザが操作してスクロール表示の開始を指示してか
ら演奏表示期間が経過するまでの間、変数STFには1
を代入しないようにしている。これは、最初に発音させ
るべき楽音をセグメントSEG20、及びSEG21に
より表示させるようになるまでに演奏表示期間の経過が
必要なためである。そのようにして、楽音の表示開始に
係るデータの先読みを開始するタイミングと、その消去
に係る処理を開始するタイミングと、の間に演奏表示期
間の時間差を設けている。
【0051】ステップ1008では、変数m1の値が図
9の曲選択スイッチ処理内で定義される変数mの値と等
しいか否か判定する。変数m1の値は、表示切替周期が
経過する毎にインクリメントされる。変数mは、読み込
み周期を表示切替周期で割った値である。このことか
ら、前回、YESと判定してから読み込み周期が経過し
た場合、判定はYESとなり、次にステップ1009で
変数RFに1を代入し、更にステップ1010で変数m
1に0を代入した後、一連の処理を終了する。そうでな
い場合には、判定はNOとなり、ここで一連の処理を終
了する。
【0052】上記変数DF、RFは、それぞれ、スクロ
ール表示の内容を更新するタイミング、データを読み込
むタイミングを管理するために用いられる。それらの管
理は、上記タイマインタラプト処理を実行することで行
っている。図5に示す全体処理内で実行されるサブルー
チン処理の説明に戻る。
【0053】図11、及び図12は、その全体処理内で
ステップ503として実行される読出処理のフローチャ
ートである。次に、図11、及び図12を参照して、そ
の読出処理について詳細に説明する。先ず、ステップ1
101では、変数RFの値が1か否か判定する。変数M
ELODYに曲番号が代入された曲データの曲演奏デー
タを構成するデータ本体からのデータの読み込みは、上
述したように、ヘッダ部に格納された読み込み周期で行
うようになっている。このことから、前回、YESと判
定してからその読み込み周期が経過したような場合、判
定はYESとなってステップ1102に移行する。そう
でない場合には、判定はNOとなり、ここで一連の処理
を終了する。
【0054】ステップ1102では、変数PSTFの値
が1か否か判定する。その変数PSTFには、スタート
/ストップスイッチをユーザが操作してスクロール表示
の開始を指示してから、先読みによるデータの読み込み
が全て終了するまでの間、1が代入される。このことか
ら、データの先読みを行うべき状態であった場合、判定
はYESとなってステップ1103に移行する。そうで
ない場合には、判定はNOとなって図12のステップ1
111に移行する。
【0055】ステップ1103では、変数PTに、それ
までの値に変数TDの値、即ち読み込み周期に対応する
値を加算した値を代入する。続くステップ1104で
は、変数PTの値が変数PTIMEの値以上か否か判定
する。変数PTは、変数PTIMEに時間データを代入
してから経過した時間の計時に用いている。このことか
ら、変数PTIMEに時間データを代入してからその時
間データに対応する時間が経過した場合、判定はYES
となってステップ1105に移行する。そうでない場合
には、判定はNOとなって図12のステップ1111に
移行する。
【0056】ステップ1104でのYESの判定は、デ
ータを先読みすべきタイミングが到来したことを意味す
る。このことから、ステップ1105〜1110では、
そのことに対応するための処理が行われる。先ず、ステ
ップ1105では、変数PADの値をインクリメントす
る。続くステップ1106では、変数PADの値が最終
アドレスの値以下か否か判定する。変数PADの値がデ
ータ本体内のデータを示していないような場合、判定は
NOとなり、次にステップ1107で変数PSTFに0
を代入した後、図12のステップ1111に移行する。
それにより、データの先読みを終了させる。反対に、そ
うでない場合には、判定はYESとなってステップ11
08に移行する。
【0057】ステップ1108では、ROM(PAD)
のデータの種類を判定する。そのデータがノートオンイ
ベントを示すイベントデータであった場合、その旨が判
定され、ステップ1109で要素SEG(−1)、SE
G(0)にそれぞれ1を代入した後、上記ステップ11
05に戻る。そのデータがノートオンイベント以外のイ
ベントを示すイベントデータであった場合には、その旨
が判定され、他のステップの処理を実行することなく上
記ステップ1105に戻る。そのデータが時間データで
あった場合には、その旨が判定されてステップ1110
に移行し、変数PTIMEにROM(PAD)を代入す
るとともに、変数PTに0を代入した後、図12のステ
ップ1111に移行する。
【0058】このようにして、変数PTIMEに代入し
ていた時間データが付加されたイベントデータがノート
オンイベントを示すものであれば、要素SEG(−
1)、SEG(0)に1が代入される。それにより、そ
のノートオンイベントの表示を開始するうえでの準備が
行われることになる。
【0059】図12のステップ1111以降では、イベ
ントデータを処理すべきタイミングが到来したか否か判
定し、そのタイミングが到来したイベントデータを処理
するための処理が行われる。先ず、ステップ1111で
は、変数STFの値が1か否か判定する。その変数ST
Fに1が代入されていない場合、判定はYESとなって
ステップ1112に移行する。そうでない場合には、判
定はNOとなり、ここで一連の処理を終了する。
【0060】ステップ1112では、変数Tに、それま
での値に変数TDの値を加算した値を代入する。続くス
テップ1113では、変数Tの値が変数TIMEの値以
上か否か判定する。変数Tは、変数TIMEに時間デー
タを代入してから経過した時間の計時に用いている。こ
のことから、変数TIMEに時間データを代入してから
その時間データに対応する時間が経過した場合、判定は
YESとなってステップ1114に移行する。そうでな
い場合には、判定はNOとなり、ここで一連の処理を終
了する。
【0061】ステップ1114では、変数ADの値をイ
ンクリメントする。次のステップ1115では、変数A
Dの値が最終アドレスの値以下か否か判定する。変数A
Dの値がデータ本体内のデータを示していないような場
合、判定はNOとなり、変数STFやRFにそれぞれ0
を代入し、表示装置102の表示を消去させ、更にタイ
マインタラプト処理の実行を禁止した(ステップ111
6〜1119)後、一連の処理を終了する。そうでない
場合には、判定はYESとなってステップ1120に移
行する。
【0062】ステップ1120では、ROM(AD)が
時間データか否か判定する。そのデータが時間データで
なかった場合、判定はNOとなってステップ1128に
移行する。そうでない場合には、判定はYESとなり、
変数TIMEにはROM(AD)、変数Tには0、変数
aには1をそれぞれ代入した(ステップ1121、11
22)後、ステップ1123に移行する。
【0063】ステップ1123では、ROM(AD+
a)(変数ADの値に変数aの値を加算した値のアドレ
スに格納されたデータ)がノートオンイベントを示すイ
ベントデータか否か判定する。そのROM(AD+a)
がノートオンイベントを示すイベントデータでなかった
場合、判定はNOとなってステップ1124に移行す
る。そうでない場合には、判定はYESとなってステッ
プ1126に移行する。
【0064】ステップ1124では、変数aの値をイン
クリメントする。次に移行するステップ1125では、
変数ADに変数aの値を加算したアドレス値が最終アド
レスの値よりも大きいか否か判定する。それらの加算値
が最終アドレスの値よりも大きい場合、判定はYESと
なってステップ1127に移行する。そうでない場合に
は、判定はNOとなって上記ステップ1123に戻る。
それにより、変数ADの値から最終アドレスの値までを
範囲として、その範囲内の値のアドレスに格納されてい
るノートオンイベントを示すイベントデータを探す。ス
テップ1125でのYESの判定は、該当するイベント
データが存在していないことを表している。
【0065】上記ステップ1123でのYESの判定
は、該当するイベントデータが見つかったことを表して
いる。このことから、その判定がYESとなって移行す
るステップ1126では、ROM(AD+a)がノート
オンイベントを示している楽楽音の音高値(ノートナン
バー、或いはキー番号とも呼ぶことにする)を変数NO
TEに代入する。続くステップ1127では、変数RF
に0を代入する。一連の処理はその後に終了する。
【0066】このようにして、ユーザが次に押鍵すべき
鍵を示す音高値が変数NOTEに代入される。その音高
値を変数NOTEに代入するのは、ユーザが次に押鍵す
べき鍵の押鍵に応じたスクロール表示の進行の管理を行
うためである。上記ステップ1120の判定がNOとな
って移行するステップ1128〜1133では、処理す
べきタイミングとなったイベントデータを処理するため
の処理が行われる。
【0067】先ず、ステップ1128では、ROM(A
D)がノートオンイベントを示すイベントデータか否か
判定する。それがノートオンイベントを示すイベントデ
ータであった場合、判定はYESとなり、ステップ11
29で画像データ中の変数Sの値で指定される音符画像
を表示装置102に表示させた後、上記ステップ111
4に戻る。そうでない場合には、判定はNOとなってス
テップ1130に移行する。
【0068】ステップ1130では、ROM(AD)が
ノートオフイベントを示すイベントデータか否か判定す
る。それがノートオフイベントを示すイベントデータで
あった場合、判定はYESとなり、ステップ1131で
表示装置に表示させている音符画像(画像データ中の変
数Sの値で指定される音符画像)を消去させ、更にステ
ップ1132で変数Sの値をインクリメントした後、上
記ステップ1114に移行する。そうでない場合には、
判定はNOとなってステップ1133に移行し、それが
示すイベントに応じた処理を実行した後、ステップ11
14に戻る。
【0069】次に、図5に示す全体処理内でステップ5
04として実行される表示更新処理について、図13に
示すそのフローチャートを参照して詳細に説明する。先
ず、ステップ1301では、変数DFの値が1か否か判
定する。その変数DFには、上述したように、表示切替
周期が経過する度に1が代入される。このことから、前
回、YESと判定してからその周期が経過した場合、判
定はYESとなってステップ1302に移行する。そう
でない場合には、判定はNOとなり、ここで一連の処理
を終了する。
【0070】ステップ1302〜ステップ1306で
は、要素SEG(−1)〜SEG(20)にそれぞれ代
入された値を、その括弧内の引数の値が大きい方から順
に、その引数の値が1小さい要素SEGに代入された値
をその引数の要素SEGに代入していくための処理が行
われる。
【0071】先ず、ステップ1303では、変数nの値
で指定される要素SEG(n)に、変数nの値から1を
引いた値で指定される要素SEG(n−1)の値を代入
する。次のステップ1304では、要素SEG(n−
1)に0を代入する。その次に移行するステップ130
5では、変数nの値をデクリメントする。その後に移行
するステップ1306では、変数nの値が−1か否か判
定する。その変数nに−1が代入されていない場合、判
定はNOとなって上記ステップ1303に戻る。それに
より、ステップ1303〜1306で形成される処理ル
ープをステップ1306の判定がYESとなるまで繰り
返し実行する。一方、そうでない場合には、判定はYE
Sとなり、ステップ1307で変数DFに0を代入し、
各要素SEG(1)〜(21)に代入されている値に従
って表示装置102に表示を指示した後、一連の処理を
終了する。それにより、表示切替周期を単位として、ス
クロール表示の内容の更新を行う。
【0072】図14〜図16は、図5に示す全体処理内
でステップ505として実行される押鍵処理のフローチ
ャートである。次に図14〜図16を参照して、その押
鍵処理について詳細に説明する。先ず、ステップ140
1では、演奏操作検出装置104に鍵盤103の走査を
指示して、その走査結果を受け取る。続くステップ14
02では、その走査結果の解析を行い、前回、走査を指
示してから鍵盤103を構成する鍵のなかで状態が変化
した鍵の有無、その変化の内容を判定する。状態が変化
した鍵が存在していなかった場合、その旨が判定され、
ここで一連の処理が終了する。離鍵による変化が生じた
鍵が存在していた場合には、その旨が判定され、ステッ
プ1403に移行して離鍵された鍵のキー番号を変数K
EYに代入し、更にステップ1404で変数KEYに代
入したキー番号の楽音の消音を指示するコマンド(図中
では「ノートオフイベント」と表記)を生成して音源L
SI107に送付した後、一連の処理を終了する。押鍵
による変化が生じた鍵が存在していた場合には、その旨
が判定され、ステップ1405に移行して押鍵された鍵
のキー番号を変数KEYに代入し、更にステップ140
6で変数KEYに代入したキー番号の楽音の発音を指示
するコマンド(図中では「ノートオンイベント」と表
記)を生成して音源LSI107に送付した後、ステッ
プ1407に移行する。
【0073】ステップ1407では、変数KEYの値が
変数NOTEの値と一致するか否か判定する。変数NO
TEには、上述したように、ユーザが次に押鍵すべき鍵
の音高値(キー番号)が代入されている。このため、次
に押鍵すべき鍵をユーザが押鍵した場合、判定はYES
となってステップ1408に移行する。そうでない場合
には、判定はNOとなり、ここで一連の処理を終了す
る。
【0074】ユーザが次に押鍵すべき鍵を押鍵した場
合、その鍵の押鍵を示すシンボルをスクロール表示する
ことの必要性は小さいと考えられる。鍵を押鍵したユー
ザにとっては、その押鍵が次の演奏操作を行ううえでの
基準と位置づけられるのが普通である。このことから、
本実施の形態では、次に押鍵すべきタイミングとなるま
での間に次に押鍵すべき鍵をユーザが押鍵すると、その
押鍵すべきタイミングまでスクロール表示を進行させる
ようにしている。それにより、ユーザ自身が行った演奏
操作にスクロール表示を対応させて、ユーザがより快適
に演奏操作を行える環境を提供している。その進行は、
ステップ1409以降の処理を実行することで実現され
る。
【0075】先ず、ステップ1408では、図10に示
すタイマインタラプト処理の実行を禁止する。これは、
スクロール表示を進行させるための処理を実行している
間にそのタイマインタラプト処理を実行すると、その進
行を適切に行うことができないためである。
【0076】ステップ1408に続くステップ1409
では、変数m1に0、変数nに21をそれぞれ代入す
る。次のステップ1410では、変数nの値で指定され
る要素SEG(n)に、変数nの値から1を引いた値で
指定される要素SEG(n−1)の値を代入する。その
次のステップ1411では、要素SEG(n−1)に0
を代入する。その後はステップ1412に移行する。
【0077】ステップ1412では、変数nの値をデク
リメントする。続くステップ1413では、変数nの値
が−1か否か判定する。その変数nに−1が代入されて
いない場合、判定はNOとなって上記ステップ1410
に戻る。それにより、ステップ1410〜1413で形
成される処理ループをステップ1413の判定がYES
となるまで繰り返し実行する。一方、そうでない場合に
は、判定はYESとなってステップ1414に移行す
る。
【0078】ステップ1414では、変数m1の値をイ
ンクリメントする。次に移行するステップ1415で
は、変数m1の値が変数mの値と一致するか否か判定す
る。それらの値が一致しなかった場合、判定はNOとな
って上記ステップ1410に戻る。それにより、読み込
み周期に対応する分だけスクロール表示を仮想的に進行
させる。反対に、そうでない場合には、判定はYESと
なり、次にステップ1416で変数m1に0を代入した
後、図15のステップ1417に移行する。
【0079】そのステップ1417では、変数PTに、
それまでの値に変数TDの値を加算した値を代入する。
続くステップ1418では、変数PTの値が変数PTI
MEの値以上か否か判定する。上述したように、変数P
Tは、変数PTIMEに時間データを代入してから経過
した時間の計時に用いている。このことから、変数PT
IMEに時間データを代入してからその時間データに対
応する時間が仮想的に経過した場合、判定はYESとな
ってステップ1419に移行する。そうでない場合に
は、判定はNOとなって図16のステップ1424に移
行する。
【0080】ステップ1418でのYESの判定も、デ
ータを先読みすべきタイミングが到来したことを意味す
る。このことから、ステップ1419〜1423では、
そのことに対応するための処理が行われる。先ず、ステ
ップ1419では、変数PADの値をインクリメントす
る。続くステップ1420では、変数PADの値が最終
アドレスの値以下か否か判定する。変数PADの値がデ
ータ本体内のデータを示していないような場合、判定は
NOとなって図16のステップ1424に移行する。そ
うでない場合には、判定はYESとなってステップ14
21に移行する。
【0081】ステップ1421では、ROM(PAD)
のデータの種類を判定する。そのデータがノートオンイ
ベントを示すイベントデータであった場合、その旨が判
定され、ステップ1422で要素SEG(−1)、SE
G(0)にそれぞれ1を代入した後、上記ステップ14
19に戻る。そのデータがノートオンイベント以外のイ
ベントを示すイベントデータであった場合には、その旨
が判定され、他のステップの処理を実行することなく上
記ステップ1419に戻る。そのデータが時間データで
あった場合には、その旨が判定されてステップ1423
に移行し、変数PTIMEにROM(PAD)を代入す
るとともに、変数PTに0を代入した後、図16のステ
ップ1424に移行する。
【0082】このようにして、変数PTIMEに代入し
ていた時間データが付加されたイベントデータがノート
オンイベントを示すものであれば、要素SEG(−
1)、SEG(0)に1が代入される。それにより、そ
のノートオンイベントの表示を開始するうえでの仮想的
な準備が行われることになる。
【0083】図16のステップ1424では、変数T
に、それまでの値に変数TDの値を加算した値を代入す
る。続くステップ1425では、変数Tの値が変数TI
MEの値以上か否か判定する。変数Tは、変数TIME
に時間データを代入してから経過した時間の計時に用い
ている。このことから、変数TIMEに時間データを代
入してからその時間データに対応する時間が仮想的に経
過した場合、判定はYESとなってステップ1426に
移行する。そうでない場合には、判定はNOとなって図
14のステップ1409に戻る。
【0084】ステップ1426では、変数ADの値をイ
ンクリメントする。次のステップ1427では、変数A
Dの値が最終アドレスの値以下か否か判定する。変数A
Dの値がデータ本体内のデータを示していない場合、判
定はNOとなり、変数STFやRFにそれぞれ0を代入
し、更に表示装置102の表示を消去させた(ステップ
1428、1429)後、一連の処理を終了する。そう
でない場合には、判定はYESとなってステップ143
0に移行する。
【0085】ステップ1430では、ROM(AD)が
ノートオンイベントを示すイベントデータか否か判定す
る。そのデータがノートオンイベントを示すものでなか
った場合、判定はNOとなってステップ1431に移行
する。そうでない場合には、判定はYESとなり、ステ
ップ1433に移行する。
【0086】ステップ1431では、ROM(AD)が
時間データか否か判定する。そのデータが時間データで
あった場合、判定はYESとなり、次にステップ143
2で変数TIMEにROM(AD)、変数Tに0をそれ
ぞれ代入した後、図14のステップ1409に戻る。そ
うでない場合には、判定はNOとなってステップ143
1aに移行する。
【0087】ステップ1431aでは、ROM(AD)
がノートオフイベントを示すイベントデータか否か判定
する。それがノートオフイベントを示すものであった場
合、判定はYESとなり、次にステップ1431bで変
数Sの値をインクリメントした後、上記ステップ142
6に戻る。そうでない場合には、判定はNOとなり、他
のステップの処理を実行することなく、そのステップ1
426に戻る。
【0088】他方のステップ1433では、曲データを
構成する画像データ中の変数Sの値で指定される音符画
像(図2参照)を表示装置102に表示させる。次のス
テップ1434では、変数ADの値をインクリメントす
る。その次に移行するステップ1435では、変数AD
の値が最終アドレスの値以下か否か判定する。変数AD
の値がデータ本体内のデータを示していない場合、判定
はNOとなって上記ステップ1428に移行する。そう
でない場合には、判定はYESとなってステップ143
6に移行する。
【0089】ステップ1436では、ROM(AD)が
時間データか否か判定する。そのデータが時間データで
なかった場合、判定はNOとなって上記ステップ143
4に戻る。それにより、次の時間データが格納されたア
ドレスの値を探す。そうでない場合には、判定はYES
となってステップ1437に移行する。
【0090】ステップ1437では、変数TIMEにR
OM(AD)、変数Tに0をそれぞれ代入する。続くス
テップ1438では、変数aに1を代入する。次に移行
するステップ1439では、ROM(AD+a)(変数
ADの値に変数aの値を加算した値のアドレスに格納さ
れたデータ)がノートオンイベントを示すイベントデー
タか否か判定する。そのROM(AD+a)がノートオ
ンイベントを示すイベントデータでなかった場合、判定
はNOとなってステップ1440に移行する。そうでな
い場合には、判定はYESとなってステップ1442に
移行する。
【0091】ステップ1440では、変数aの値をイン
クリメントする。続くステップ1441では、変数AD
に変数aの値を加算したアドレス値が最終アドレスの値
よりも大きいか否か判定する。それらの加算値が最終ア
ドレスの値よりも大きい場合、判定はYESとなって上
記ステップ1428に移行する。そうでない場合には、
判定はNOとなって上記ステップ1439に戻る。それ
により、変数ADの値から最終アドレスの値までを範囲
として、その範囲内の値のアドレスに格納されているノ
ートオンイベントを示すイベントデータを探す。ステッ
プ1441でのYESの判定は、該当するイベントデー
タが存在していないことを意味する。
【0092】上記ステップ1439でのYESの判定
は、該当するイベントデータが見つかったことを意味し
ている。このことから、その判定がYESとなって移行
するステップ1442では、ROM(AD+a)がノー
トオンイベントを示している楽音の音高値(キー番号)
を変数NOTEに代入する。それに続くステップ144
3では、図10に示すタイマインタラプト処理の実行の
禁止を解除するとともに、各要素SEG(1)〜SEG
(21)に代入された値に従って各セグメントSEG1
〜SEG21による表示を表示装置102に指示する。
一連の処理はその後に終了する。
【0093】図14のステップ1408以降の処理を実
行することで行われる動作を具体的に説明すると、以下
のようになる。次に押鍵すべき鍵をユーザが押鍵したこ
とにより、その押鍵を示すシンボルをセグメントSEG
20、SEG21で表示する状態、言い換えればその鍵
を押鍵すべきタイミングが到来した状態となるまでスク
ロール表示は仮想的に順次、表示切替周期と読み込み周
期(図2参照)の関係を満たす形で進行させる。その進
行は、ステップ1430の判定がYESとなることで終
了する。
【0094】スクロール表示の仮想的な進行を終了させ
た後は、ステップ1431以降の処理が実行される。そ
れ以降の処理を実行することで、表示装置102は、鍵
の押鍵を継続しているべき時間に対応する音符画像を表
示し、仮想的にスクロール表示を進行させた後の状態を
各セグメントSEG1〜SEG21により表示する。そ
の次に押鍵すべき鍵が存在しているのであれば、その鍵
の押鍵に対応するための準備を行う。ステップ1437
で変数TIMEに次の時間データ(ROM(AD))、
変数Tに0をそれぞれ代入し、ステップ1442で変数
NOTEにその鍵のキー番号を代入するのはその準備で
ある。
【0095】図14のステップ1408以降では、上述
したような動作を実現させるための処理が行われる。そ
れにより、次に押鍵すべき鍵を押鍵すべきタイミングが
到来していない状況下で押鍵しても、それ以降は、その
鍵を押鍵すべきタイミングで押鍵したような形でスクロ
ール表示が行われることになる。
【0096】なお、本実施の形態では、曲演奏データ中
で発音が示されている楽音の音高値(キー番号)の何れ
か1つが割り当てられた全ての鍵を対象に、その鍵を押
鍵すべきタイミング(発音開始タイミング)をそれぞれ
教示するようになっているが、予め設定した音高値の範
囲のみを対象にして、その範囲内の音高値が割り当てら
れた鍵を押鍵すべきタイミングを教示するようにしても
良い。そのようにした場合には、図3に示すようなセグ
メントSEG1〜SEG21を複数ライン分、用意して
も良い。当然のことながら、表示装置102として、L
CD以外の表示装置を採用しても良い。表示させるシン
ボルも任意に決定して良い。
【0097】本実施の形態では、表示切替周期、読み込
み周期で表示の更新、データの読み込みを行うために、
それらの周期が経過したか否かをそれぞれ判定するよう
にしているが、各周期で割り込みがかかる2つのタイマ
インタラプト処理を用意し、表示切替(スクロール表示
の内容の更新)、データの読み込みをそれぞれ対応のタ
イマインタラプト処理により行うようにしても良い。
【0098】ユーザが行った演奏操作に応じたスクロー
ル表示の進行管理は、押鍵すべきタイミングが到来して
いない鍵の押鍵に対応して行っているが、そのタイミン
グが到来した鍵の押鍵を待つ形でその管理を行うように
しても良い。それら以外の形で管理を行うようにしても
良い。
【0099】本実施の形態は、電子楽器に搭載されたに
よる演奏教示装置に本発明を適用したものである。しか
し、本発明を適用できる演奏教示装置は、電子楽器など
に搭載されたものに限定されるわけではない。本発明
は、他の装置に搭載されていない専用の演奏教示装置を
含めて幅広く適用できるものである。それが対象とする
楽器は、例えばリズム楽器のような他の楽器であっても
良い。
【0100】上記演奏教示装置の動作を実現させるよう
なプログラムは、CD−ROM、DVD、或いは光磁気
ディスク等の記録媒体に記録させて配布しても良い。或
いは、公衆網等で用いられる伝送媒体を介して、そのプ
ログラムの一部、若しくは全部を配信するようにしても
良い。そのようにした場合には、ユーザはプログラムを
取得して任意の演奏教示装置、或いはコンピュータ等の
データ処理装置にロードすることにより、その装置に本
発明を適用させることができる。このようなことから、
記録媒体は、プログラムを配信する装置がアクセスでき
るものであっても良い。
【0101】
【発明の効果】以上、説明したように本発明は、楽音を
発音させるために操作すべき演奏操作子、及び該楽音を
発音させるべき発音開始タイミングを該楽音単位で少な
くとも表す曲データを取得し、取得した曲データ中で表
されている、複数の演奏操作子を構成する演奏操作子を
操作して発音させるべき楽音を示すシンボルを、表示装
置上に同一のライン上でスクロール表示させる。
【0102】複数の演奏操作子を構成する1つ以上の演
奏操作子を操作して発音させるべき楽音を示すシンボル
を同一のライン上でスクロール表示させることにより、
各楽音のそれを発音させるべきタイミング(発音開始タ
イミング)の時間的な位置関係が1ライン上で示される
ことになる。このため、それらのタイミングをユーザは
容易に把握することができるようになる。
【0103】複数の演奏操作子に対する操作を検出し、
検出した複数の演奏操作子に対する操作に基づいて、ス
クロール表示の進行を管理するようにした場合には、例
えば操作すべきタイミングが到来していない演奏操作子
へのユーザの操作に応じて、その演奏操作子を操作すべ
きタイミングが到来したと見なしてスクロール表示を進
行させるように管理した場合には、ユーザ自身が行った
操作にスクロール表示を対応させることができるように
なる。このため、ユーザがより快適に操作を行える環境
を実現させることができる。
【図面の簡単な説明】
【図1】本実施の形態による演奏教示装置を搭載した電
子楽器の回路構成図である。
【図2】ROMに格納された曲データの構成を説明する
図である。
【図3】表示装置が備えたスクロール表示用のセグメン
トを示す図である。
【図4】スクロール表示例を示す図である。
【図5】全体処理のフローチャートである。
【図6】スイッチ処理のフローチャートである。
【図7】スイッチ処理のフローチャートである(続き
1)。
【図8】スイッチ処理のフローチャートである(続き
2)。
【図9】曲選択スイッチ処理のフローチャートである。
【図10】タイマインタラプト処理のフローチャートで
ある。
【図11】読出処理のフローチャートである。
【図12】読出処理のフローチャートである(続き)。
【図13】表示更新処理のフローチャートである。
【図14】押鍵処理のフローチャートである。
【図15】押鍵処理のフローチャートである(続き
1)。
【図16】押鍵処理のフローチャートである(続き
2)。
【符号の説明】
101 CPU 102 表示装置 103 鍵盤 104 演奏操作検出装置 105 操作子群 106 インターフェース 107 音源LSI 108 RAM 109 ROM 110 ワークRAM SEG1〜SEG21 セグメント

Claims (5)

    【特許請求の範囲】
  1. 【請求項1】 複数の演奏操作子を対象に、該複数の演
    奏操作子を構成する演奏操作子を操作して楽音を発音さ
    せるべき発音開始タイミングを教示する装置であって、 前記楽音を発音させるために操作すべき演奏操作子、及
    び該楽音を発音させるべき発音開始タイミングを該楽音
    単位で少なくとも表す曲データを取得する曲データ取得
    手段と、 前記曲データ取得手段が取得した曲データ中で表されて
    いる、前記複数の演奏操作子を構成する演奏操作子を操
    作して発音させるべき楽音を示すシンボルを、表示装置
    上に同一のライン上でスクロール表示させることによ
    り、該複数の演奏操作子を構成する演奏操作子を操作し
    て楽音を発音させるべき発音開始タイミングを教示する
    演奏教示手段と、 を具備することを特徴とする演奏教示装置。
  2. 【請求項2】 前記楽器に備えられた複数の演奏操作子
    に対する操作を検出する操作検出手段、を更に具備し、 前記演奏教示手段は、前記操作検出手段が検出した前記
    複数の演奏操作子に対する操作に基づいて、前記スクロ
    ール表示の進行を管理する、 ことを特徴とする請求項1記載の演奏教示装置。
  3. 【請求項3】 前記演奏教示手段は、前記発音開始タイ
    ミングが来ていない前記楽音のシンボルを表示させてい
    る状況下で該楽音を発音させる演奏操作子への操作を前
    記操作検出手段が検出した場合に、該楽音の発音開始タ
    イミングが来た状態に前記スクロール表示を進行させ
    る、 ことを特徴とする請求項2記載の演奏教示装置。
  4. 【請求項4】 前記演奏教示手段は、前記発音開始タイ
    ミングが来た前記楽音のシンボルを変化させる、 ことを特徴とする請求項1、2、または3記載の演奏教
    示装置。
  5. 【請求項5】 複数の演奏操作子を対象に、該複数の演
    奏操作子を構成する演奏操作子を操作して楽音を発音さ
    せるべき発音開始タイミングを教示する装置に実行させ
    るプログラムであって、 前記楽音を発音させるために操作すべき演奏操作子、及
    び該楽音を発音させるべき発音開始タイミングを該楽音
    単位で少なくとも表す曲データを取得する機能と、 前記取得する機能により取得した曲データ中で表されて
    いる、前記複数の演奏操作子を構成する演奏操作子を操
    作して発音させるべき楽音を示すシンボルを、表示装置
    上に同一のライン上でスクロール表示させることによ
    り、該複数の演奏操作子を構成する演奏操作子を操作し
    て楽音を発音させるべき発音開始タイミングを教示する
    機能と、 を実現させるためのプログラム。
JP2001400838A 2001-12-28 2001-12-28 演奏教示装置、及びプログラム Abandoned JP2003195865A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001400838A JP2003195865A (ja) 2001-12-28 2001-12-28 演奏教示装置、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001400838A JP2003195865A (ja) 2001-12-28 2001-12-28 演奏教示装置、及びプログラム

Publications (1)

Publication Number Publication Date
JP2003195865A true JP2003195865A (ja) 2003-07-09

Family

ID=27605198

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001400838A Abandoned JP2003195865A (ja) 2001-12-28 2001-12-28 演奏教示装置、及びプログラム

Country Status (1)

Country Link
JP (1) JP2003195865A (ja)

Similar Documents

Publication Publication Date Title
JP2705568B2 (ja) 自動演奏装置
JPH05108065A (ja) 自動演奏装置
JP2002091290A (ja) 演奏表示装置および演奏表示方法
JP2004334051A (ja) 楽譜表示装置および楽譜表示コンピュータプログラム
JPH11102187A (ja) 電子楽器及び記憶媒体
JP3286683B2 (ja) 旋律合成装置及び旋律合成方法
JP3521838B2 (ja) 演奏動作表示装置、及び記録媒体
JP3622275B2 (ja) 自動演奏の制御データ入力方法および自動演奏装置
JP2002175071A (ja) 演奏ガイド方法、演奏ガイド装置および記録媒体
JP2003195865A (ja) 演奏教示装置、及びプログラム
JP3528051B2 (ja) 演奏動作表示装置、及び記録媒体
JP2003114674A (ja) 演奏情報表示装置、及びプログラム
JP4337288B2 (ja) 演奏動作表示装置、及びプログラム
JP7298653B2 (ja) 電子機器、電子楽器、方法、およびプログラム
JP2003108119A (ja) 演奏情報表示装置、及びプログラム
JP5399831B2 (ja) 音楽ゲームシステム及びそのコンピュータプログラム並びに効果音データの生成方法
JP3052875B2 (ja) シーケンスデータ編集方法およびシーケンサ
JPH11219175A (ja) 自動演奏装置
JP4172335B2 (ja) 自動伴奏生成装置及びプログラム
JP3837994B2 (ja) 楽譜データ変換装置、及び記録媒体
JPH11231872A (ja) 楽音生成装置、画像生成装置、ゲーム装置及び情報記憶媒体
JP2007178890A (ja) 自動演奏装置
JP2017015957A (ja) 演奏記録装置およびプログラム
JP3548825B2 (ja) 演奏動作表示装置、及び記録媒体
JP5303959B2 (ja) 電子音楽装置およびその制御方法を実現するためのプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20041007

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061031

A762 Written abandonment of application

Free format text: JAPANESE INTERMEDIATE CODE: A762

Effective date: 20061116