JP2001188536A - 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体 - Google Patents

演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体

Info

Publication number
JP2001188536A
JP2001188536A JP37199099A JP37199099A JP2001188536A JP 2001188536 A JP2001188536 A JP 2001188536A JP 37199099 A JP37199099 A JP 37199099A JP 37199099 A JP37199099 A JP 37199099A JP 2001188536 A JP2001188536 A JP 2001188536A
Authority
JP
Japan
Prior art keywords
data
event data
note
idx
performance
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.)
Granted
Application number
JP37199099A
Other languages
English (en)
Other versions
JP3845761B2 (ja
Inventor
Hiroshi Iwase
広 岩瀬
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 JP37199099A priority Critical patent/JP3845761B2/ja
Publication of JP2001188536A publication Critical patent/JP2001188536A/ja
Application granted granted Critical
Publication of JP3845761B2 publication Critical patent/JP3845761B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

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

Abstract

(57)【要約】 【課題】 外部記憶媒体や外部機器から入力した任意の
曲について、ナビゲーション機能を用いて初心者でも容
易に演奏ガイドを享受できるようにする。 【解決手段】 CPU1は、ROM2の制御プログラム
にしたがって、FDDC6を介してFDD11に装着さ
れたフロッピーディスク、又はMIDIインターフェー
ス7を介して外部機器から受信した任意の曲のイベント
データについて、演奏教習に適さないイベントデータを
削除してRAM3にストアする。再生の際には、RAM
3のイベントデータを読み出して、LEDC5を介して
そのイベントデータに対応するLED10の点灯制御を
行い、操作部9の鍵盤を照光させて演奏ガイドを行う。
また、鍵盤演奏に応じて音源8を介してサウンドシステ
ム12から演奏された楽音を発音させる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、演奏をガイドする
演奏教習装置及び演奏教習処理のプログラムを記憶した
記憶媒体関する。
【0002】
【従来の技術】演奏をガイドするいわゆるナビゲーショ
ン機能をもった電子楽器等の演奏教習装置が普及してい
る。例えば、ナビゲーション機能をもつ電子鍵盤楽器に
おいては、鍵盤の各鍵に対応してLED等の発光手段を
設け、自動演奏の曲の進行にともなって音高に対応する
鍵のLEDを押鍵のタイミングに合わせて点灯させ、演
奏操作のガイドを行う構成になっている。ナビゲーショ
ンのモードの中には、演奏操作がなされるまで曲の進行
を一時停止するいわゆる「待ちモード」があるので、初
心者にとっても容易に演奏ガイドを受けることができ
る。ガイドする曲データは、ROM等のメモリにあらか
じめ記憶されているナビゲーション専用の曲データであ
る。
【0003】一方、電子鍵盤楽器の多くはMIDI規格
に対応しており、スタンダードMIDIファイル(SM
F)の曲データを処理することができる。すなわち、フ
ロッピーディスクその他の外部記憶媒体に記憶されてい
るSMFや、ケーブルや通信回線を介して他のMIDI
対応の外部機器との間で、多種多様の曲データのSMF
を送受信する機能をもっている。したがって、外部記憶
媒体や外部機器から入力した豊富な種類の曲データにつ
いても、ナビゲーション機能を用いて演奏操作のガイド
を享受したいという要求が出されている。
【0004】
【発明が解決しようとする課題】しかしながら外部から
のSMFの曲データはナビゲーション専用にはなってい
ないので、特に初心者にとっては演奏ガイドには適さな
い音が含まれている場合が多い。例えば、非常に小さい
音量の音や非常に短い音を挿入して曲のいわゆるノリを
出したり、同じ音高の音を2つ以上重ねて特殊な効果を
狙ったりする場合がある。このような音についてはガイ
ドされたとしても演奏操作を行うことは困難である。と
ころが「待ちモード」においてはそのような音について
も演奏操作をしなければ曲が進行しない。このため一般
的なSMFの曲データについては、熟練者しかナビゲー
ション機能を用いた演奏練習を行うことができず、本来
初心者のためのナビゲーション機能が生かされていなか
った。
【0005】本発明の課題は、外部記憶媒体や外部機器
から入力した任意の曲について、ナビゲーション機能を
用いて初心者でも容易に演奏ガイドを享受できるように
することである。
【0006】
【課題を解決するための手段】請求項1に記載の演奏教
習装置の発明は、複数の楽音のイベントデータで構成さ
れた曲を入力する入力手段 (実施形態においては、図1
のCPU1並びに、FDDC6及びFDD11、又はM
IDI・I/F7に対応する)と、この入力手段によっ
て入力された曲のイベントデータの中から演奏教習に適
さない条件のイベントデータを削除するデータ修正手段
(実施形態においては、CPU1及びRAM3に対応す
る)と、このデータ修正手段によって削除されなかった
イベントデータに応じて演奏操作をガイドする演奏ガイ
ド手段(実施形態においては、CPU1並びに、LED
C5及びLED10に対応する)と、を備えた構成にな
っている。
【0007】請求項7に記載の記憶媒体の発明は、複数
の楽音のイベントデータで構成された曲を入力する入力
手順と、この入力手順によって入力された曲のイベント
データの中から演奏教習に適さない条件のイベントデー
タを削除するデータ修正手順と、このデータ修正手順に
よって削除されなかったイベントデータに応じて演奏操
作をガイドする演奏ガイド手順と、を実行する演奏教習
処理のプログラムを記憶している。
【0008】請求項1又は請求項に記載の発明によれ
ば、曲のイベントデータの中から演奏教習に適さない条
件のイベントデータを削除して、残りのイベントデータ
について演奏ガイドを行う。
【0009】
【発明の実施の形態】以下、本発明による演奏教習装置
の第1〜第5実施形態について図を参照して説明する。
この装置は、電子鍵盤楽器と同様の構成であり、鍵盤、
スイッチ、スピーカ等を具備している。
【0010】図1は、各実施形態における楽音発生装置
のシステム構成を示している。図1において、CPU1
は、そのシステムバスに接続された各部との間におい
て、データ及びコマンドを授受してこの装置全体を制御
する。システムバスには、ROM2、RAM3、キース
キャンI/F(インターフェース)4、LEDC5、F
DDC6、MIDI・I/F(インターフェース)7、
音源8が接続されている。ROM2には、CPU1が実
行する制御プログラムやイニシャライズにおける初期デ
ータがあらかじめ記憶されている。RAM3は、CPU
1のワークエリアであり、CPU1によって処理される
曲データやその他のデータが一時的に記憶される。ま
た、RAM3には、制御プログラムの実行に必要な各種
のレジスタやフラグのエリアが設けられている。
【0011】キースキャンI/F4は、鍵盤及びスイッ
チ群からなる操作部9に接続されており、CPU1のス
キャンコマンドに応じて各鍵の押鍵・離鍵の状態、各ス
イッチのオン・オフの状態を検出する。LEDC5は、
各鍵に対応して設けられた複数のLEDに接続されてお
り、CPU1の点灯(オン)コマンド及び消灯(オフ)
コマンドに応じて各LEDを駆動する。このLEDの点
灯によって演奏ガイドがなされる。
【0012】FDDC6は、FDD(フロッピーディス
ク・ドライバ)11を制御するコントローラであり、C
PU1のロードコマンドに応じてフロッピーディスクに
記憶されているSMFの曲のイベントデータを読み出し
てRAM3に一旦ストアする。MIDI・I/F7は、
外部機器から送信されるSMFの曲のイベントデータを
受信してRAM3に一旦ストアする。音源8は、CPU
1の発音コマンド又は消音コマンド、並びにRAM3か
ら読み出された曲のイベントデータ及び音色等のパラメ
ータに応じて楽音信号を生成し、サウンドシステム12
によって発音・消音を制御する。
【0013】図2は、本実施形態における曲データのフ
ォーマットを示している。SMFのデータフォーマット
では、イベントデータとタイムデータとが交互に配列さ
れた構成になっているが、本実施形態においては説明を
簡便にするために、各アドレスごとのイベントデータが
タイムデータを含む構成としている。図2(1)は、フ
ロッピーディスク等の外部記憶媒体に記憶されている曲
データの構成を示している。この図において、IDXは
各イベントデータのアドレスを示している。イベントデ
ータは、デルタタイムΔT、コマンドCMD、音高デー
タNOTE、及びベロシティデータVELで構成されて
いる。
【0014】ΔTはそのイベントデータの開始時間を表
している。CMDはイベントデータのコマンドの内容を
示し、「90」はチャンネル0の発音コマンド、「8
0」はチャンネル0の消音コマンドを表している。その
他、コントロールチェンジやプログラムチェンジ等を表
すコマンドがある。図2(1)において、IDX「0」
及び「1」のイベントデータは、「C4」の音高が「5
0」の音量値で発音され、発音時間「14」経過後に消
音する楽音を表している。また、IDX「2」及び
「3」のイベントデータは、「C4」の音高が「08」
の音量値で発音され、発音時間「08」経過後に消音す
る楽音を表している。
【0015】図2(2)は、後述するデータ修正によっ
て一部のイベントデータが削除された後、RAM3にス
トアされた曲データのフォーマットを示している。この
図において、ADはRAM3のエリアのアドレスを示し
ている。ΔT、CMD、NOTE、VELのデータにつ
いては図2(1)と同じである。
【0016】次に、第1実施形態における演奏教習処理
について、図3〜図7を参照して説明する。図3はCP
U1によって実行される演奏教習処理のメインフローで
ある。所定のイニシャライズ(ステップA1)の後、ス
イッチ処理(ステップA2)、曲ロード処理(ステップ
A3)、ナビゲーション処理(ステップA4)、鍵盤処
理(ステップA5)、音源処理(ステップA6)、その
他の処理(ステップA7)を実行する。そして、パワー
オフになったか否かを判別する(ステップA8)。パワ
ーオフでない場合には、ステップA2からステップA7
までの処理ループを繰り返す。パワーオフになったとき
は、パワーオフ処理(ステップA9)を行ってこのフロ
ーを終了する。
【0017】このメインフローの実行中において、2種
類のタイマインタラプトが入るとそれぞれ対応するタイ
マインタラプト処理を実行する。タイマインタラプト1
は、5〜10msec程度ごとの割り込みであり、この
タイマインタラプト1があるとタイマレジスタT1の値
をインクリメントして(ステップA10)、メインフロ
ーに戻る。タイマインタラプト2は、曲のテンポに対応
した分解能での割り込み(クロック割り込み)であり、
このタイマインタラプト2があるとタイマレジスタT2
の値をデクリメントして(ステップA11)、メインフ
ローに戻る。なお、T1及びT2の値は、イニシャライ
ズでは0にリセットされている。
【0018】図4及び図5は、図3のメインフローにお
けるステップA2のスイッチ処理のフローである。図4
のフローにおいて、曲ロードスイッチがオンされたか否
かを判別し(ステップB1)、オンされたときはロード
フラグLFの値を反転する(ステップB2)。そして、
反転されたLFの値が1(曲ロード)であるか否かを判
別する(ステップB3)。この値が1である場合には、
IDXの値を0にセットし(ステップB4)、ADの値
を0にセットする(ステップB5)。すなわちフロッピ
ーディスクの曲データの先頭アドレスを指定するととも
に、RAM3における曲データの記憶エリアの先頭アド
レスを指定する。そしてメインフローに戻る。ステップ
B3において、LFの値が0である場合は直ちにメイン
フローに戻る。
【0019】ステップB1において、曲ロードスイッチ
がオンでない場合には、レッスン(0)スイッチがオン
されたか否かを判別する(ステップB6)。このスイッ
チがオンされたときは、レッスンモードのレジスタMO
DEの値を0にセットする(ステップB7)。このスイ
ッチがオンでない場合には、レッスン(1)スイッチが
オンされたか否かを判別する(ステップB8)。このス
イッチがオンされたときは、MODEの値を1にセット
する(ステップB9)。このスイッチがオンでない場合
には、レッスン(2)スイッチがオンされたか否かを判
別する(ステップB10)。このスイッチがオンされた
ときは、MODEの値を2にセットする(ステップB1
1)。MODEの値をセットした後はメインフローに戻
る。
【0020】MODEの値が0の場合には、発音のイベ
ントデータに応じて対応する鍵のLED10を点灯させ
て演奏ガイドを行うが、押鍵を待つことなく曲データを
進行させる。MODEの値が1である場合には、発音の
イベントデータに応じて対応する鍵のLED10を点灯
させて演奏ガイドを行うとともに、いずれかの鍵の押鍵
があるまで曲データの進行を中断する。MODEの値が
2である場合には、発音のイベントデータに応じて対応
する鍵のLED10を点灯させて演奏ガイドを行うとと
もに、そのイベントデータに対応する鍵の押鍵があるま
で曲データの進行を中断する。
【0021】レッスンスイッチ(0)、(1)、(2)
のいずれのスイッチもオンでない場合には、図5のフロ
ーにおいて、再生スイッチがオンされたか否かを判別す
る(ステップB12)。このスイッチがオンされたとき
は、スタートフラグSTFの値を反転させる(ステップ
B13)。そして、反転されたSTFの値が1(再生)
であるか否かを判別する(ステップB14)。この値が
1である場合には、ADのアドレス値を0(先頭アドレ
ス)にセットし(ステップB15)、そのアドレスのイ
ベントデータのΔTの値をT2にセットする(ステップ
B16)。そして、タイマインタラプトを許可し(ステ
ップB17)、メインフローに戻る。
【0022】ステップB14においてSTFが0(再生
停止)である場合には、タイマインタラプトを禁止する
(ステップB18)。そしてメインフローに戻る。。ス
テップB12において、再生スイッチがオンでない場合
には、その他のスイッチがオンされたか否かを判別する
(ステップB19)。他のいずれかのスイッチがオンさ
れたときは、そのスイッチに対応する処理を行い(ステ
ップB20)、メインフローに戻る。なお、いずれのス
イッチもオンされない場合には、直ちにメインフローに
戻る。
【0023】図6は、図3のメインフローにおけるステ
ップA3の曲ロード処理のフローである。まず、LFの
値が1(曲ロード)であるか否かを判別し(ステップC
1)、この値が0である場合には曲ロードでないので、
直ちにメインフローに戻る。LFの値が1である場合に
は、IDXのアドレスのイベントデータであるEVEN
T(IDX)をフロッピーディスクからロードする(ス
テップC2)。そして、そのイベントデータのコマンド
CMD(IDX)がノートオンであるか否かを判別する
(ステップC3)。
【0024】CMD(IDX)がノートオンである場合
には、そのイベントデータのベロシティデータであるV
EL(IDX)の値があらかじめ設定した最小値より小
さいか否かを判別する(ステップC4)。VEL(ID
X)の値が最小値以上である場合には、ロードしたイベ
ントデータEVENT(IDX)をADのアドレスで指
定するRAM3のエリアMEM(AD)にストアする
(ステップC5)。次に、ADのアドレスをインクリメ
ントし(ステップC6)、IDXのアドレスをインクリ
メントする(ステップC7)。そして、ロードすべき曲
データが終了したか否かを判別する(ステップC8)。
曲データが終了していない場合には、ステップC2に移
行して次のイベントデータをロードする。
【0025】ステップC4において、VEL(IDX)
の値が最小値未満である場合には、そのイベントデータ
の音高を示すNOTE(IDX)のデータをレジスタP
ASSにストアする(ステップC9)。PASSは配列
構造になっており、複数の音高データをストアすること
ができるが、この配列構造は本発明に直接関係しないの
で、詳細な説明は省略する。この実施形態及び後述する
他の実施形態では、PASSは1つの音高データをスト
アするレジスタとして機能する。
【0026】ステップC4において、VEL(IDX)
の値が最小値未満である場合には、そのイベントデータ
をRAM3にストアせずに、そのイベントデータのデル
タタイムΔT(IDX)の値を次のアドレス(IDX+
1)のイベントデータのデルタタイムΔT(IDX+
1)の値に加算する(ステップC10)。次に、IDX
のアドレスをインクリメントする(ステップC7)。そ
して、ロードすべき曲データが終了したか否かを判別す
る(ステップC8)。曲データが終了していない場合に
は、ステップC2に移行して次のイベントデータをロー
ドする。
【0027】ステップC3においてCMD(IDX)が
ノートオンでない場合には、CMD(IDX)がノート
オフであるか否かを判別する(ステップC11)。ノー
トオフでなくコントロールチェンジやプログラムチェン
ジ等のコマンドである場合には、ステップC5において
そのイベントデータEVENT(IDX)をMEM(A
D)にストアする。ステップC11においてCMD(I
DX)がノートオフである場合には、その音高データN
OTE(IDX)がステップC9においてPASSにス
トアした音高データと同一でないか否かを判別する(ス
テップC12)。同一でない場合には、ステップC5に
おいてそのイベントデータEVENT(IDX)をME
M(AD)にストアする。
【0028】音高データが同一である場合には、そのノ
ートオフのイベントデータをRAM3にストアせずに、
NOTE(IDX)の音高データをPASSから削除し
(ステップC13)、ステップC10においてそのイベ
ントデータのデルタタイムΔT(IDX)の値を次のア
ドレス(IDX+1)のイベントデータのデルタタイム
ΔT(IDX+1)の値に加算する。音高データをPA
SSから削除することにより、その後のイベントデータ
が誤って削除されないようにする。また、デルタタイム
の値を次のイベントデータに加算することにより、デー
タ削除による時間ずれの発生を防止する。次に、ステッ
プC7においてADのアドレスをインクリメントして、
次のイベントデータを指定する。そして、指定したイベ
ントデータがあるか否か、すなわちロードすべき曲デー
タが終了したか否かを判別する(ステップC8)。
【0029】そして、曲データが終了でない限り、ステ
ップC2からステップC7に至る処理ループを繰り返し
実行して、音量が設定した最小値より小さいイベントデ
ータについてはRAM3にはストアしない。ステップC
8においてロードすべき曲データが終了したときは、L
Fを0にセットして(ステップC14)、メインフロー
に戻る。
【0030】例えば、図2(1)に示す曲データにおい
て、アドレスIDX=2に対応すエリアのノートオンの
イベントデータにおけるVELの値は08である。いま
音量の最小値が10に設定されているとすると、このイ
ベントデータ及び対応するノートオフのイベントデータ
(IDX=3)はRAM3にストアせずに削除する。し
たがって、RAM3における曲データは図2(2)に示
すように修正される。
【0031】図7は、図3のメインフローにおけるステ
ップA4のナビゲーション処理のフローである。まず、
STFが1(ナビゲーション動作状態)であるか否かを
判別し(ステップD1)、STFが1である場合にはT
2の値が0に達しているか否かを判別する(ステップD
2)。ステップD1においてSTFが0(ナビゲーショ
ン停止状態)である場合、又はステップD2においてT
2の値が0に達しておらずイベントデータの開始タイミ
ングに達していない場合には、直ちにこのフローを終了
してメインフローに戻る。
【0032】ステップD2においてT2の値が0に達し
ているときは、RAM3のMEM(AD)のエリアから
EVENT(AD)を読み込み(ステップD3)、その
CMD(AD)がノートオンであるか否かを判別する
(ステップD4)。ノートオンである場合には、その音
高に対応するLED駆動用のレジスタであるLED[N
OTE(AD)]をオンすなわち点灯にセットする(ス
テップD5)。
【0033】次に、MODEの値が1又は2であるか否
かを判別する(ステップD6)。すなわち押鍵を待つモ
ードであるか否かを判別する。MODEの値が1又は2
である場合には、タイマインタラプトを禁止して(ステ
ップD7)、押鍵があるか否かを判別する(ステップD
8)。押鍵があったときはMODEの値が2であるか否
かを判別する(ステップD9)。MODEの値が2であ
る場合には、レジスタKEYのデータである押鍵された
鍵番号と、イベントデータの音高データであるNOTE
(AD)とが一致しているか否かを判別する(ステップ
D10)。すなわち、LEDの点灯に対応した鍵が押鍵
されたか否かを判別する。押鍵がされない場合、又はM
ODEが2のとき押鍵された鍵が間違っている場合に
は、ステップD8において押鍵の有無の判別を続行す
る。
【0034】MODEの値が2の場合でかつLEDの点
灯に対応した鍵が押鍵されたとき、又は、MODEの値
が1でいずれかの鍵が押鍵されたときは、タイマインタ
ラプトを許可する(ステップD11)。この後、又はス
テップD6においてMODEの値が0で押鍵を待たない
モードの場合には、ADのアドレスをインクリメントし
て(ステップD12)、次のイベントデータを指定す
る。そして、指定したイベントデータがあるか否か、す
なわち曲データが終了したか否かを判別する(ステップ
D13)。曲データの終了でなく指定したイベントデー
タがある場合には、そのイベントデータのΔT(AD)
のデルタタイムの値をT2にセットする(ステップD1
4)。そしてメインフローに戻る。
【0035】ステップD4においてCMD(AD)がノ
ートオンでない場合には、CMD(AD)がノートオフ
であるか否かを判別する(ステップD15)。ノートオ
フである場合には、その音高に対応するレジスタLED
[NOTE(AD)]をオフすなわち消灯にセットする
(ステップD16)。そして、ステップD12に移行し
てADをインクリメントして次のイベントデータを指定
する。また、ステップD11においてCMD(AD)が
ノートオフでない場合、すなわちコントロールチェンジ
やプログラムチェンジ等、押鍵・離鍵に関係ないコマン
ドである場合には、ステップD12に移行してADをイ
ンクリメントして次のイベントデータを指定する。
【0036】ステップD13において曲データが終了し
たときは、タイマインタラプトを禁止して(ステップD
17)、STFを0(ナビゲーション停止状態)にセッ
トする(ステップD18)。そしてメインフローに戻
る。
【0037】このように上記第1実施形態においては、
曲のイベントデータの中から演奏教習に適さないような
あまりに小さい音量のイベントデータは削除して、音量
がある程度大きいイベントデータについて演奏ガイドを
行う。
【0038】次に、本発明の第2実施形態について説明
する。この第2実施形態及び後述する第3〜第5実施形
態におけるCPU1のメインフロー、並びにメインフロ
ーにおけるスイッチ処理及びナビゲーション処理は、図
3並びに図4、図5及び図7に示したフローと同じであ
るので、図面及びその説明は省略する。
【0039】図8は、第2実施形態における曲ロード処
理のフローである。まず、LFの値が1(曲ロード)で
あるか否かを判別し(ステップE1)、この値が0であ
る場合には曲ロードでないので、直ちにメインフローに
戻る。LFの値が1である場合には、IDXのアドレス
のイベントデータであるEVENT(IDX)をフロッ
ピーディスクからロードする(ステップE2)。そし
て、そのイベントデータのコマンドCMD(IDX)が
ノートオンであるか否かを判別する(ステップE3)。
【0040】CMD(IDX)がノートオンである場合
には、このイベントデータの発音時間(音長)を計測す
る。まず、現在ロードしているイベントデータより後の
イベントデータを先読みするためのポインタmに、ID
X+1の値すなわち次のイベントデータのアドレスをセ
ットする(ステップE4)。次に、CMD(m)のデー
タがノートオフであるか否かを判別する(ステップE
5)。ノートオフでなくコントロールチェンジやプログ
ラムチェンジ等である場合には、ノートオンのイベント
データとノートオフのイベントデータとの間に、ノート
データ以外のデータが挿入されている場合である。この
場合には、ΔT(m+1)にΔ(m)の値を加算する
(ステップE6)。すなわちノートデータ以外のデータ
のデルタタイムを次のイベントデータに加算する。
【0041】次に、mをインクリメントして(ステップ
E7)、次のイベントデータを指定する。そしてステッ
プE5においてそのイベントデータのCMD(m)を判
別する。CMD(m)がノートオフである場合には、そ
のΔT(m)のデルタタイムはステップE2においてロ
ードしたEVENT(IDX)の発音時間を示してい
る。したがって、このΔT(m)の値があらかじめ設定
した最小値より小さいか否かを判別する(ステップE
8)。
【0042】ΔT(m)の値が最小値以上である場合に
は、ロードしたイベントデータをADのアドレスで指定
するRAM3のエリアMEM(AD)にストアする(ス
テップE9)。次に、ADのアドレスをインクリメント
し(ステップE10)、IDXのアドレスをインクリメ
ントする(ステップE11)。そして、ロードすべき曲
データが終了したか否かを判別する(ステップE1
2)。曲データが終了していない場合には、ステップE
2に移行して次のイベントデータをロードする。
【0043】ステップE8において、ΔT(m)の値が
最小値未満である場合には、そのイベントデータをRA
M3にストアせずに、そのイベントデータの音高データ
NOTE(m)の値をレジスタPASSにストアする
(ステップE13)。また、そのイベントデータのデル
タタイムΔT(IDX)の値を次のアドレス(IDX+
1)のイベントデータのデルタタイムΔT(IDX+
1)の値に加算する(ステップE14)。次に、IDX
のアドレスをインクリメントする(ステップE11)。
そして、ロードすべき曲データが終了したか否かを判別
する(ステップE12)。曲データが終了していない場
合には、ステップE2に移行して次のイベントデータを
ロードする。
【0044】ステップE3においてCMD(IDX)が
ノートオンでない場合には、CMD(IDX)がノート
オフであるか否かを判別する(ステップE15)。ノー
トオフでなくコントロールチェンジやプログラムチェン
ジ等のコマンドである場合には、ステップE9において
そのイベントデータEVENT(IDX)をMEM(A
D)にストアする。ステップE15においてCMD(I
DX)がノートオフである場合には、その音高データN
OTE(IDX)がステップE13においてPASSに
ストアした音高データと同一でないか否かを判別する
(ステップE16)。同一でない場合には、ステップE
9においてそのイベントデータEVENT(IDX)を
MEM(AD)にストアする。
【0045】音高データが同一である場合には、そのイ
ベントデータをRAM3にストアせずに、NOTE(I
DX)をPASSから削除する(ステップE17)。そ
して、ステップE14においてそのイベントデータのデ
ルタタイムΔT(IDX)の値を次のアドレス(IDX
+1)のイベントデータのデルタタイムΔT(IDX+
1)の値に加算する。次に、ステップE11においてA
Dのアドレスをインクリメントして、次のイベントデー
タを指定する。そして、指定したイベントデータがある
か否か、すなわちロードすべき曲データが終了したか否
かを判別する(ステップE12)。
【0046】そして、曲データが終了でない限り、ステ
ップE2からステップE11に至る処理ループを繰り返
し実行して、発音時間が設定した最小値より小さいイベ
ントデータについては、RAM3にはストアせずに削除
する。ステップE12において、ロードすべき曲データ
が終了したときは、LFを0にセットして(ステップE
18)、メインフローに戻る。
【0047】例えば、図2(1)に示す曲データにおい
て、アドレスIDX=3に対応すエリアのノートオフの
イベントデータにおけるΔTの値は08である。いま発
音時間の最小値が10に設定されているとすると、この
イベントデータ及び対応するノートオンのイベントデー
タ(IDX=2)はRAM3にストアせずに削除する。
したがって、RAM3における曲データは図2(2)に
示すように修正される。
【0048】このように上記第2実施形態においては、
曲のイベントデータの中から演奏教習に適さないような
あまりに短い発音時間のイベントデータは削除して、発
音時間がある程度長いイベントデータについて演奏ガイ
ドを行う。
【0049】次に、本発明の第3実施形態について、図
9に示すCPU1のフローを参照して説明する。図9の
フローは、ある音高のイベントデータの発音時間が終了
する前に、同じ音高のイベントデータの発音が開始する
場合の曲ロード処理である。このようなイベントデータ
の目的は特殊な効果を狙うためであるが、鍵盤楽器では
1つの音高に対して1つの鍵のみが対応するので、同じ
音高の2つのイベントデータについてナビゲーションを
することはできない。この第3実施形態では、先に発音
開始になるイベントデータについてのみ演奏ガイドを行
う。
【0050】図9のフローにおいて、まず、LFの値が
1(曲ロード)であるか否かを判別し(ステップF
1)、この値が0である場合には曲ロードでないので、
直ちにメインフローに戻る。LFの値が1である場合に
は、IDXのアドレスのイベントデータであるEVEN
T(IDX)をフロッピーディスクからロードする(ス
テップF2)。そして、そのイベントデータのコマンド
CMD(IDX)がノートオンであるか否かを判別する
(ステップF3)。
【0051】CMD(IDX)がノートオンである場合
には、その音高データNOTE(IDX)がレジスタP
ASSにストアされている音高データでないか否かを判
別する(ステップF4)。PASSは削除するイベント
データの音高データをストアするレジスタである。NO
TE(IDX)がPASSにストアされている音高デー
タでない場合には、ポインタmにIDX+1の値すなわ
ち次のイベントデータのアドレスをセットする(ステッ
プF5)。そして、CMD(m)のデータがノートオン
であるか否かを判別する(ステップF6)。すなわち、
ノートオンのイベントデータの発音時間が終了する前
に、別のノートオンのイベントデータがあるか否かを判
別する。
【0052】CMD(m)のデータがノートオンでない
場合には、CMD(m)のデータがノートオフであるか
否かを判別する(ステップF7)。ノートオフでなくコ
ントロールチェンジやプログラムチェンジ等である場合
には、mをインクリメントして(ステップF8)、ステ
ップF6においてさらに次のイベントデータがノートオ
ンであるか否かを判別する。CMD(m)のデータがノ
ートオンである場合には、そのイベントデータの音高デ
ータNOTE(m)がロードしたイベントデータの音高
データNOTE(IDX)と同じであるか否かを判別す
る(ステップF9)。
【0053】両者の音高データが異なる場合には、ロー
ドしたイベントデータをADのアドレスで指定するRA
M3のエリアMEM(AD)にストアする(ステップF
10)。次に、ADのアドレスをインクリメントし(ス
テップF11)、IDXのアドレスをインクリメントす
る(ステップF12)。そして、ロードすべき曲データ
が終了したか否かを判別する(ステップF13)。曲デ
ータが終了していない場合には、ステップF2に移行し
て次のイベントデータをロードする。
【0054】ステップF9において、両者の音高データ
が同じである場合には、NOTE(m)をPASSにス
トアし(ステップF14)、フラグOFFを1にセット
する(ステップF15)。そして、ステップF10にお
いてイベントデータEVENT(IDX)をMEM(A
D)にストアする。すなわち、先に発音を開始するイベ
ントデータをRAM3にストアする。この後、ステップ
F11、ステップF12を経て、ステップF13におい
て曲データの終了でないので、ステップF2に移行して
次のイベントデータをロードする。
【0055】ロードしたイベントデータがノートオンで
あり、しかもその音高データNOTE(IDX)がステ
ップF14においてPASSにストアした音高データと
同じ場合には、そのイベントデータをRAM3にストア
せずに、ステップF4からステップF16に移行して、
そのイベントデータのデルタタイムΔT(IDX)の値
を次のアドレス(IDX+1)のイベントデータのデル
タタイムΔT(IDX+1)の値に加算する。次に、I
DXのアドレスをインクリメントする(ステップF1
2)。そして、ロードすべき曲データが終了したか否か
を判別する(ステップF13)。曲データが終了してい
ない場合には、ステップF2に移行して次のイベントデ
ータをロードする。
【0056】ステップF3においてCMD(IDX)が
ノートオンでない場合には、CMD(IDX)がノート
オフであるか否かを判別する(ステップF17)。ノー
トオフでなくコントロールチェンジやプログラムチェン
ジ等のコマンドである場合には、ステップF10におい
てそのイベントデータEVENT(IDX)をMEM
(AD)にストアする。ステップF17においてCMD
(IDX)がノートオフである場合には、その音高デー
タNOTE(IDX)がステップF14においてPAS
Sにストアした音高データと同一でないか否かを判別す
る(ステップF18)。同一でない場合には、ステップ
F10においてそのイベントデータEVENT(ID
X)をMEM(AD)にストアする。
【0057】音高データがPASSにストアされている
ものと同一である場合には、OFFが1であるか否かを
判別する(ステップF19)。OFFが1である場合に
はこれを0にセットして(ステップF20)、ステップ
F10においてそのイベントデータEVENT(ID
X)をMEM(AD)にストアする。この場合のノート
オフのイベントデータは、先に発音指示されたイベント
データ(RAM3にストアされたイベントデータ)に対
する消音指示のノートオフであるのでRAM3にストア
する。
【0058】この後、ステップF11〜ステップF13
を経てステップF2に移行し、次のイベントデータをロ
ードしたとき、そのCMD(IDX)がノートオフで、
しかもPASSにストアした音高データと同じである場
合には、ステップF17、ステップF18、ステップF
19に移行する。そして、ステップF19においてOF
Fが0になっているので、このイベントデータはRAM
3にストアしない。すなわちこのイベントデータは、後
に発音指示されたイベントデータ(削除されたイベント
データ)に対する消音指示のノートオフであるので、R
AM3にはストアしない。
【0059】そして、NOTE(IDX)の音高データ
をPASSから削除して(ステップF21)、ステップ
F16においてそのイベントデータのデルタタイムΔT
(IDX)の値を次のアドレス(IDX+1)のイベン
トデータのデルタタイムΔT(IDX+1)の値に加算
する。次にステップF12においてIDXをインクリメ
ントし、ステップF13において曲データが終了か否か
を判別する。曲データが終了でない限り、ステップF2
〜ステップF12の処理ループを繰り返し実行する。ス
テップF13において、ロードすべき曲データが終了し
たときは、LFを0にセットして(ステップF22)、
メインフローに戻る。
【0060】このように上記第3実施形態においては、
曲のイベントデータの中から同じ音高で発音時間が重複
している2つの楽音のイベントデータについては演奏教
習に適さないため、後に発音開始した楽音のイベントデ
ータは削除して、先に発音を開始した楽音のイベントデ
ータのみについて演奏ガイドを行う。
【0061】なお、上記第3実施形態においては、発音
時間が重複している2つの楽音のイベントデータを例に
とって説明したが、発音時間が重複している3つ以上の
イベントデータについてもデータ削除の処理は基本的に
同じである。この場合には、PASSの配列に何番目の
イベントデータであるかを識別する情報をストアすれば
よい。
【0062】次に、本発明の第4実施形態について、図
10に示すCPU1のフローを参照して説明する。図1
0のフローは、第3実施形態と同様に、ある楽音のイベ
ントデータの発音時間が終了する前に、同じ音高で別の
楽音のイベントデータが発音開始する場合の曲ロード処
理である。ただしこの第4実施形態では、2つの楽音の
うち音量の小さい楽音のイベントデータは削除して、音
量の大きい楽音のイベントデータについてのみ演奏ガイ
ドを行う。
【0063】図10のフローにおいて、まず、LFの値
が1(曲ロード)であるか否かを判別し(ステップG
1)、この値が0である場合には曲ロードでないので、
直ちにメインフローに戻る。LFの値が1である場合に
は、IDXのアドレスのイベントデータであるEVEN
T(IDX)をフロッピーディスクからロードする(ス
テップG2)。そして、そのイベントデータのコマンド
CMD(IDX)がノートオンであるか否かを判別する
(ステップG3)。
【0064】CMD(IDX)がノートオンである場合
には、その音高データNOTE(IDX)がレジスタP
ASSにストアされている音高データでないか否かを判
別する(ステップG4)。NOTE(IDX)がPAS
Sにストアされている音高データでない場合には、フラ
グOFF1が1であるか否かを判別する(ステップG
5)。OFF1が1の場合は、同じ音高データのノート
オフのイベントデータのうち、最初にロードしたイベン
トデータは削除し、後にロードしたイベントデータはR
AM3にストアする。OFF1の値によってロードした
ノートオフのイベントデータが最初のものか後のものか
を識別する。OFF1が1である場合には、NOTE
(IDX)をPASSにストアする(ステップG6)。
【0065】次に、ポインタmにIDX+1の値すなわ
ち次のイベントデータのアドレスをセットする(ステッ
プG7)。OFF1が0である場合には、ステップG6
におけるNOTE(IDX)のPASSへのストアを行
わず、ステップG7においてmにIDX+1の値をセッ
トする。ステップG7の後、CMD(m)のデータがノ
ートオンであるか否かを判別する(ステップG8)。す
なわち、ノートオンのイベントデータの発音時間が終了
する前に、次のノートオンのイベントデータがあるか否
かを判別する。
【0066】CMD(m)のデータがノートオンでない
場合には、CMD(m)のデータがノートオフであるか
否かを判別する(ステップG9)。ノートオフでなくコ
ントロールチェンジやプログラムチェンジ等である場合
には、mをインクリメントして(ステップG10)、ス
テップG8においてさらに次のイベントデータがノート
オンであるか否かを判別する。CMD(m)がノートオ
ンである場合には、そのイベントデータの音高データN
OTE(m)がロードしたイベントデータの音高データ
NOTE(IDX)と同じであるか否かを判別する(ス
テップG11)。
【0067】両者の音高データが異なる場合には、ロー
ドしたイベントデータをADのアドレスで指定するRA
M3のエリアMEM(AD)にストアする(ステップG
12)。次に、ADのアドレスをインクリメントし(ス
テップG13)、IDXのアドレスをインクリメントす
る(ステップG14)。そして、ロードすべき曲データ
が終了したか否かを判別する(ステップG15)。曲デ
ータが終了していない場合には、ステップG2に移行し
て次のイベントデータをロードする。
【0068】ステップG11において、両者の音高デー
タが同じ場合には、VEL(m)とVEL(IDX)と
の音量の大小を比較する(ステップG16)。VEL
(IDX)の値がVEL(m)の値より大きい場合、す
なわちロードしたノートオンのイベントデータの音量が
次のノートオンのイベントデータの音量よりも大きい場
合には、音量の小さい方の楽音を削除するために、その
楽音の音高データNOTE(m)をPASSにストアす
る(ステップG17)。次に、フラグOFF2に1をセ
ットする(ステップG18)。
【0069】OFF1が2の場合は、同じ音高データの
ノートオフのイベントデータのうち、最初にロードした
イベントデータはRAM3にストアし、後にロードした
イベントデータは削除する。OFF2の値によってロー
ドしたノートオフのイベントデータが最初のものか後の
ものかを識別する。OFF2を1にセットした後、ロー
ドしたイベントデータをMEM(AD)にストアする
(ステップG12)。そして、ADのアドレスをインク
リメントし(ステップG13)、IDXのアドレスをイ
ンクリメントする(ステップG14)。
【0070】ステップG16において、VEL(ID
X)の値がVEL(m)の値より小さい場合、すなわち
ロードしたノートオンのイベントデータの音量が次のノ
ートオンのイベントデータの音量よりも小さい場合に
は、OFF1を1にセットする(ステップG19)。す
なわち、ロードしたノートオンのイベントデータに対応
するノートオフのイベントデータを削除するためのフラ
グ処理を行う。そして、ロードしたノートオンのイベン
トデータはRAM3にストアせず、そのイベントデータ
のデルタタイムΔT(IDX)の値を次のアドレス(I
DX+1)のイベントデータのデルタタイムΔT(ID
X+1)の値に加算する(ステップG20)。そして、
IDXをインクリメントして次にロードすべきイベント
データを指定する(ステップG14)。
【0071】ステップG14においてIDXをインクリ
メントした後は、ロードすべき曲データが終了したか否
かを判別する(ステップG15)。曲データが終了して
いない場合には、ステップG2に移行して次のイベント
データをロードする。ステップG3においてCMD(I
DX)がノートオンでない場合には、CMD(IDX)
がノートオフであるか否かを判別する(ステップG2
1)。ノートオフでなくコントロールチェンジやプログ
ラムチェンジ等のコマンドである場合には、ステップG
12においてそのイベントデータEVENT(IDX)
をMEM(AD)にストアする。
【0072】また、ステップG9においてCMD(m)
がノートオフである場合には、そのイベントデータは、
ロードしたノートオンのイベントデータに対するノート
オフのイベントデータであるか、あるいは以前にRAM
3にストアした他の音高のノートオフのイベントデータ
である。この場合には、ロードしたノートオンのイベン
トデータの楽音の発音時間内に同じ音高の他の楽音は重
複していない。したがって、ロードしたノートオンのイ
ベントデータEVENT(IDX)をMEM(AD)に
ストアする(ステップG12)。
【0073】ステップG2でロードしたイベントデータ
のCMD(IDX)がノートオンでなくノートオフであ
る場合(ステップG21)には、その音高データNOT
E(IDX)がステップG6においてPASSにストア
した音高データと同一でないか否かを判別する(ステッ
プG22)。同一の音高データでない場合には、そのイ
ベントデータは、以前にRAM3にストアした他の音高
のノートオフのイベントデータである。この場合には、
ロードしたノートオフのイベントデータEVENT(I
DX)をMEM(AD)にストアする(ステップG1
2)。
【0074】ステップG22において、ノートオフの音
高データがPASSにストアされているものと同一であ
る場合には、OFF2が1であるか否かを判別する(ス
テップG23)。OFF2が1である場合には、最初の
ノートオフのイベントデータはRAM3にストアするの
で、OFF2を0にセットして(ステップG24)、ス
テップG12においてそのノートオフのイベントデータ
EVENT(IDX)をMEM(AD)にストアする。
【0075】ステップG23においてOFF2が0であ
る場合には、OFF1が1であるか否かを判別する(ス
テップG25)。OFF1が1である場合には、ロード
したノートオフのイベントデータを削除する必要があ
る。この場合には、OFF1を0にセットする(ステッ
プG26)。また、後にロードするノートオフのイベン
トデータを削除しないように、NOTE(IDX)をP
ASSから削除する(ステップG27)。そして、ステ
ップG20においてそのイベントデータのデルタタイム
ΔT(IDX)の値を次のアドレス(IDX+1)のイ
ベントデータのデルタタイムΔT(IDX+1)の値に
加算する。
【0076】ステップG23においてOFF2が0の場
合で、ステップG25においてOFF1も0の場合に
は、後にロードしたノートオフのイベントデータを削除
する場合である。この場合には、NOTE(IDX)を
PASSから削除する(ステップG27)。そして、ス
テップG20においてそのイベントデータのデルタタイ
ムΔT(IDX)の値を次のアドレス(IDX+1)の
イベントデータのデルタタイムΔT(IDX+1)の値
に加算する。
【0077】次にステップG14においてIDXをイン
クリメントし、ステップG15において曲データが終了
か否かを判別する。曲データが終了でない限り、ステッ
プG2〜ステップG14の処理ループを繰り返し実行す
る。ステップG15において、ロードすべき曲データが
終了したときは、LFを0にセットして(ステップG2
8)、メインフローに戻る。
【0078】このように上記第4実施形態においては、
曲のイベントデータの中から同じ音高で発音時間が重複
している2つの楽音のイベントデータについては演奏教
習に適さないため、音量が小さい方の楽音のイベントデ
ータを削除し、音量が大きい方の楽音のイベントデータ
のみをRAM3にストアして演奏ガイドを行う。
【0079】この場合において、削除した楽音による音
量の低下を補うために、RAM3にストアする楽音のイ
ベントデータのVELの値を大きくする修正を施してス
トアする処理を行ってもよい。
【0080】次に、本発明の第5実施形態について、図
11に示すCPU1のフローを参照して説明する。図1
1のフローもまた、ある楽音のイベントデータの発音時
間が終了する前に、同じ音高で別の楽音のイベントデー
タが発音開始する場合の曲ロード処理である。ただしこ
の第5実施形態では、このような同じ音高2つの楽音を
連続した1つの楽音に修正して演奏ガイドを行う。
【0081】図11のフローにおいて、まず、LFの値
が1(曲ロード)であるか否かを判別し(ステップH
1)、この値が0である場合には曲ロードでないので、
直ちにメインフローに戻る。LFの値が1である場合に
は、IDXのアドレスのイベントデータであるEVEN
T(IDX)をフロッピーディスクからロードする(ス
テップH2)。そして、そのイベントデータのコマンド
CMD(IDX)がノートオンであるか否かを判別する
(ステップH3)。
【0082】CMD(IDX)がノートオンである場合
には、その音高データNOTE(IDX)がレジスタP
ASSにストアされている音高データでないか否かを判
別する(ステップH4)。PASSは削除するイベント
データの音高データをストアするレジスタである。NO
TE(IDX)がPASSにストアされている音高デー
タでない場合には、ポインタmにIDX+1の値すなわ
ち次のイベントデータのアドレスをセットする(ステッ
プH5)。そして、CMD(m)のデータがノートオン
であるか否かを判別する(ステップH6)。すなわち、
ノートオンのイベントデータの発音時間が終了する前
に、別のノートオンのイベントデータがあるか否かを判
別する。
【0083】CMD(m)のデータがノートオンでない
場合には、CMD(m)のデータがノートオフであるか
否かを判別する(ステップH7)。ノートオフでなくコ
ントロールチェンジやプログラムチェンジ等である場合
には、mをインクリメントして(ステップH8)、ステ
ップH6においてさらに次のイベントデータがノートオ
ンであるか否かを判別する。CMD(m)のデータがノ
ートオンである場合には、そのイベントデータの音高デ
ータNOTE(m)がロードしたイベントデータの音高
データNOTE(IDX)と同じであるか否かを判別す
る(ステップH9)。
【0084】両者の音高データが異なる場合には、ロー
ドしたイベントデータをADのアドレスで指定するRA
M3のエリアMEM(AD)にストアする(ステップH
10)。次に、ADのアドレスをインクリメントし(ス
テップH11)、IDXのアドレスをインクリメントす
る(ステップH12)。そして、ロードすべき曲データ
が終了したか否かを判別する(ステップH13)。曲デ
ータが終了していない場合には、ステップF2に移行し
て次のイベントデータをロードする。
【0085】ステップH9において、両者の音高データ
が同じである場合には、NOTE(m)をPASSにス
トアし(ステップH14)、ロードしたノートオンのイ
ベントデータEVENT(IDX)をMEM(AD)に
ストアする(ステップH10)。すなわち、先に発音を
開始するイベントデータをRAM3にストアする。この
後、ステップH11、ステップH12を経て、ステップ
H13において曲データの終了でないので、ステップH
2に移行して次のイベントデータをロードする。
【0086】ステップH3においてCMD(IDX)が
ノートオフで、ロードしたイベントデータがノートオン
であり、しかもその音高データNOTE(IDX)がス
テップH14においてPASSにストアした音高データ
である場合には、そのイベントデータをRAM3にスト
アせずに、そのイベントデータのデルタタイムΔT(I
DX)の値を次のアドレス(IDX+1)のイベントデ
ータのデルタタイムΔT(IDX+1)の値に加算する
(ステップH15)。次に、IDXのアドレスをインク
リメントする(ステップH12)。そして、ロードすべ
き曲データが終了したか否かを判別する(ステップH1
3)。曲データが終了していない場合には、ステップH
2に移行して次のイベントデータをロードする。
【0087】ステップH3においてCMD(IDX)が
ノートオンでない場合には、CMD(IDX)がノート
オフであるか否かを判別する(ステップH16)。ノー
トオフでなくコントロールチェンジやプログラムチェン
ジ等のコマンドである場合には、ステップH10におい
てそのイベントデータEVENT(IDX)をMEM
(AD)にストアする。ステップH16においてCMD
(IDX)がノートオフである場合には、その音高デー
タNOTE(IDX)がステップH14においてPAS
Sにストアした音高データと同一でないか否かを判別す
る(ステップH17)。同一でない場合には、ステップ
H10においてそのイベントデータEVENT(ID
X)をMEM(AD)にストアする。
【0088】音高データがPASSにストアされている
ものと同一である場合には、NOTE(IDX)の音高
データをPASSから削除して(ステップH18)、ス
テップH15においてそのイベントデータのデルタタイ
ムΔT(IDX)の値を次のアドレス(IDX+1)の
イベントデータのデルタタイムΔT(IDX+1)の値
に加算する。次にステップH12においてIDXをイン
クリメントし、ステップH13において曲データが終了
か否かを判別する。曲データが終了でない限り、ステッ
プH2〜ステップH12の処理ループを繰り返し実行す
る。ステップH13において、ロードすべき曲データが
終了したときは、LFを0にセットして(ステップH1
9)、メインフローに戻る。
【0089】このように上記第5実施形態においては、
曲のイベントデータの中から同じ音高で発音時間が重複
している2つの楽音のイベントデータについては演奏教
習に適さないため、同じ音高2つの楽音を連続した1つ
の楽音に修正して演奏ガイドを行う。
【0090】なお、上記各実施形態においては、フロッ
ピーディスクに記憶されている曲のイベントデータにつ
いて、演奏教習に適さない条件のイベントデータを削除
しながらRAM3にストアし、全てのイベントデータを
ストアした後に、データ修正されたイベントデータをR
AM3から読み出して再生する構成にしたが、フロッピ
ーディスクからロードしたイベントデータや、MIDI
・I/F7によって受信したイベントデータをリアルタ
イムで再生し、その再生のときにデータ修正を行うよう
にしてもよい。
【0091】また、上記各実施形態においては、フロッ
ピーディスクに記憶されている曲のイベントデータにつ
いて、演奏教習に適さない条件のイベントデータを自動
的に修正してRAM3にストアする構成にしたが、デー
タを修正するか否かを演奏者が任意に設定する構成にし
てもよい。
【0092】また、上記各実施形態においては、演奏教
習に適さない条件のイベントデータであるか否かを個々
の楽音によって判別する構成にしたが、曲データ全体を
統計的な手法を用いて演奏教習に適しているか否かを判
別する構成にしてもよい。例えば、イベントデータの音
量や音長を標本値として、複数のイベントデータのそれ
ぞれの偏差値を算出する。そして、各イベントデータの
偏差値によってデータ削除をするか否かを判別する構成
にしてもよい。
【0093】また、上記各実施形態においてさらに、楽
音の音色(楽器の種類)によってデータの修正を行うか
否かを設定する構成にしてもよい。また、第1又は第2
実施形態においては、音色ごとに削除するための音量や
音長の最小値を設定してもよい。例えば、ヴァイオリン
の最小音量の設定値は小さく、トロンボーンの最小音量
の設定値は大きく設定する。また、ドラム系の最小音長
の設定値は短く、管楽器系の最小音長の設定値は長くす
る。
【0094】また、上記各実施形態においては、CPU
1はROM2にあらかじめ記憶した制御プログラムによ
り演奏教習処理を行う構成にしたが、フロッピーディス
クや光磁気ディスクその他の記憶媒体にこの演奏教習処
理の制御プログラムを記憶して、その制御プログラムを
CPU1が読み出して実行する構成にしてもよい。この
場合には、記憶媒体の発明を構成する。あるいは、通信
回線を介して演奏教習処理の制御プログラムをダウンロ
ードして実行させる構成にしてもよい。
【0095】
【発明の効果】本発明によれば、曲のイベントデータの
中から演奏教習に適さない条件のイベントデータを削除
して、残りのイベントデータについて演奏ガイドを行
う。したがって、外部記憶媒体や外部機器から入力した
任意の曲について、ナビゲーション機能を用いて初心者
でも容易に演奏ガイドを享受できる。
【図面の簡単な説明】
【図1】本発明の各実施形態における演奏教習装置のシ
ステム構成を示すブロック図。
【図2】曲のイベントデータのフォーマットを示し、
(1)はデータ修正前(2)はデータ修正後を示す図。
【図3】各実施形態におけるCPUのメインフローチャ
ート及びタイマインタラプト処理のフローチャート。
【図4】図3のメインフローチャートにおけるスイッチ
処理のフローチャート。
【図5】図4に続くスイッチ処理のフローチャート。
【図6】第1実施形態における曲ロード処理のフローチ
ャート。
【図7】図3のメインフローチャートにおけるナビゲー
ション処理のフローチャート。
【図8】第2実施形態における曲ロード処理のフローチ
ャート。
【図9】第3実施形態における曲ロード処理のフローチ
ャート。
【図10】第4実施形態における曲ロード処理のフロー
チャート。
【図11】第5実施形態における曲ロード処理のフロー
チャート。
【符号の説明】 1 CPU 2 ROM 3 RAM 4 キースキャンインターフェース 5 LEDC 6 FDDC 7 MIDIインターフェース 8 音源 9 操作部 10 LED 11 FDD 12 サウンドシステム

Claims (7)

    【特許請求の範囲】
  1. 【請求項1】 複数の楽音のイベントデータで構成され
    た曲を入力する入力手段と、 この入力手段によって入力された曲のイベントデータの
    中から演奏教習に適さない条件のイベントデータを削除
    するデータ修正手段と、 このデータ修正手段によって削除されなかったイベント
    データに応じて演奏操作をガイドする演奏ガイド手段
    と、 を備えたことを特徴とする演奏教習装置。
  2. 【請求項2】 前記データ修正手段は、楽音の音量があ
    らかじめ設定した音量より小さい場合に当該楽音のイベ
    ントデータを削除することを特徴とする請求項1に記載
    の演奏教習装置。
  3. 【請求項3】 前記データ修正手段は、楽音の発音時間
    があらかじめ設定した時間より短い場合に当該楽音のイ
    ベントデータを削除することを特徴とする請求項1に記
    載の演奏教習装置。
  4. 【請求項4】 前記データ修正手段は、同じ音高からな
    る複数の楽音の発音時間が重複している場合に少なくと
    も1つの楽音のイベントデータを残して他の楽音のイベ
    ントデータを削除することを特徴とする請求項1に記載
    の演奏教習装置。
  5. 【請求項5】 前記データ修正手段は、同じ音高からな
    る複数の楽音の発音時間が重複している場合に、当該発
    音時間における最先の発音開始タイミングから最後の消
    音タイミングまでの期間を連続した発音時間とする1つ
    の楽音のイベントデータに修正することを特徴とする請
    求項1に記載の演奏教習装置。
  6. 【請求項6】 前記データ修正手段は、曲の再生の際に
    前記入力手段から入力される演奏教習に適さない条件の
    イベントデータを削除することを特徴とする請求項1〜
    5のいずれか1つに記載の演奏教習装置。
  7. 【請求項7】 複数の楽音のイベントデータで構成され
    た曲を入力する入力手順と、 この入力手順によって入力された曲のイベントデータの
    中から演奏教習に適さない条件のイベントデータを削除
    するデータ修正手順と、 このデータ修正手順によって削除されなかったイベント
    データに応じて演奏操作をガイドする演奏ガイド手順
    と、 を実行する演奏教習処理のプログラムを記憶しているこ
    とを特徴とする記憶媒体。
JP37199099A 1999-12-28 1999-12-28 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体 Expired - Fee Related JP3845761B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP37199099A JP3845761B2 (ja) 1999-12-28 1999-12-28 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP37199099A JP3845761B2 (ja) 1999-12-28 1999-12-28 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体

Publications (2)

Publication Number Publication Date
JP2001188536A true JP2001188536A (ja) 2001-07-10
JP3845761B2 JP3845761B2 (ja) 2006-11-15

Family

ID=18499656

Family Applications (1)

Application Number Title Priority Date Filing Date
JP37199099A Expired - Fee Related JP3845761B2 (ja) 1999-12-28 1999-12-28 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体

Country Status (1)

Country Link
JP (1) JP3845761B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007078956A (ja) * 2005-09-13 2007-03-29 Casio Comput Co Ltd 演奏教習装置および演奏教習処理のプログラム
JP2015007735A (ja) * 2013-06-26 2015-01-15 ヤマハ株式会社 演奏情報解析方法を実現するためのプログラム、当該演奏情報解析方法および演奏情報解析装置
JP2017072868A (ja) * 2017-01-31 2017-04-13 ヤマハ株式会社 演奏情報検索方法を実現するためのプログラム、当該演奏情報検索方法および演奏情報検索装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58132283A (ja) * 1982-01-30 1983-08-06 ヤマハ株式会社 押鍵指示装置
JPS61176987A (ja) * 1985-01-31 1986-08-08 ヤマハ株式会社 電子楽器の押鍵表示装置
JPH0822281A (ja) * 1994-07-05 1996-01-23 Victor Co Of Japan Ltd 楽音情報圧縮通信装置及びその端末装置
JPH08297487A (ja) * 1995-04-26 1996-11-12 Yamaha Corp 演奏指示装置
JPH1069273A (ja) * 1996-05-16 1998-03-10 Yamaha Corp 演奏指示装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58132283A (ja) * 1982-01-30 1983-08-06 ヤマハ株式会社 押鍵指示装置
JPS61176987A (ja) * 1985-01-31 1986-08-08 ヤマハ株式会社 電子楽器の押鍵表示装置
JPH0822281A (ja) * 1994-07-05 1996-01-23 Victor Co Of Japan Ltd 楽音情報圧縮通信装置及びその端末装置
JPH08297487A (ja) * 1995-04-26 1996-11-12 Yamaha Corp 演奏指示装置
JPH1069273A (ja) * 1996-05-16 1998-03-10 Yamaha Corp 演奏指示装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007078956A (ja) * 2005-09-13 2007-03-29 Casio Comput Co Ltd 演奏教習装置および演奏教習処理のプログラム
JP4670557B2 (ja) * 2005-09-13 2011-04-13 カシオ計算機株式会社 演奏教習装置および演奏教習処理のプログラム
JP2015007735A (ja) * 2013-06-26 2015-01-15 ヤマハ株式会社 演奏情報解析方法を実現するためのプログラム、当該演奏情報解析方法および演奏情報解析装置
JP2017072868A (ja) * 2017-01-31 2017-04-13 ヤマハ株式会社 演奏情報検索方法を実現するためのプログラム、当該演奏情報検索方法および演奏情報検索装置

Also Published As

Publication number Publication date
JP3845761B2 (ja) 2006-11-15

Similar Documents

Publication Publication Date Title
US8502057B2 (en) Electronic musical instrument
US7112738B2 (en) Electronic musical instrument
JP3358292B2 (ja) 電子楽器
JP4048630B2 (ja) 演奏支援装置、演奏支援方法、および演奏支援プログラムを記録した記録媒体
US6180865B1 (en) Melody performance training apparatus and recording mediums which contain a melody performance training program
JPH10214083A (ja) 楽音生成方法および記憶媒体
JP2001188536A (ja) 演奏教習装置及び演奏教習処理のプログラムを記憶した記憶媒体
JP4228494B2 (ja) 制御装置および制御方法
JP3620366B2 (ja) 電子鍵盤楽器
JP3609045B2 (ja) 自動演奏装置
JP4106798B2 (ja) 音源装置
JP2003280641A (ja) 楽器の運指ガイド装置
JPH0533798B2 (ja)
JP3156284B2 (ja) 電子楽器
JP3680732B2 (ja) 演奏装置および記憶媒体
JP3075750B2 (ja) 自動演奏装置
JP3006136B2 (ja) 電子楽器
JP3034398B2 (ja) 電子楽器の制御装置
JP2001195061A (ja) 同期制御方法および同期制御装置
JP3622558B2 (ja) 楽音編集装置及び楽音編集処理プログラムを記録した記録媒体
JP2001005454A (ja) 演奏教習装置及び演奏教習処理プログラムを記録した記録媒体
JP2002328676A (ja) 電子楽器、発音処理方法及びプログラム
JP3948246B2 (ja) 演奏教習装置及び演奏教習処理のプログラム
JP4054913B2 (ja) 演奏誘導装置および演奏誘導処理のプログラム
JP2001005456A (ja) 演奏ガイド付き電子鍵盤楽器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050617

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20060203

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20060414

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060531

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060620

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060630

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060725

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060807

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130901

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees