(57)【特許請求の範囲】
【請求項１】
演奏に応じて記憶手段に記憶された曲のイベントデータを読み出して、当該イベントデータにおける任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差をグラフィックデータに変換して表示手段にグラフを表示するデータ読出手段と、
前記表示手段に表示されたグラフの時間差に対する修正の操作がされたときは、当該修正に応じてグラフィックデータを変更するデータ変更手段と、
前記データ変更手段によって変更されたグラフィックデータに応じて、前記イベントデータを修正して前記記憶手段に書き込むデータ書込手段と、
を備えた楽音編集装置。
【請求項２】
前記データ読出手段は、前記記憶手段から読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから後のノートオンデータの発音開始タイミングとの時間差が所定時間以内である場合には、当該後のノートオンデータを当該任意のノートオンデータに併合して１つのノートオンデータにして、当該１つのイベントデータをグラフィックデータに変換することを特徴とする請求項１に記載の楽音編集装置。
【請求項３】
前記データ読出手段は、前記記憶手段から読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差を棒グラフの棒の高さで表すように、当該イベントデータをグラフィックデータに変換することを特徴とする請求項１に記載の楽音編集装置。
【請求項４】
演奏に応じて記憶手段に記憶された曲のイベントデータを読み出して、当該イベントデータにおける任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差をグラフィックデータに変換して表示手段にグラフを表示するステップＡと、
前記表示手段に表示されたグラフの時間差に対する修正の操作がされたときは、当該修正に応じてグラフィックデータを変更するステップＢと、
前記ステップＢによって変更されたグラフィックデータに応じて、前記イベントデータを修正して前記記憶手段に書き込むステップＣと、
をコンピュータに実行させる演奏処理のプログラム。
【請求項５】
前記ステップＡは、前記記憶手段から読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから後のノートオンデータの発音開始タイミングとの時間差が所定時間以内である場合には、当該後のノートオンデータを当該任意のノートオンデータに併合して１つのノートオンデータとして、当該１つのイベントデータをグラフィックデータに変換することを特徴とする請求項４に記載の楽音編集処理のプログラム。
【請求項６】
前記ステップＡは、前記記憶手段から読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差を棒グラフの棒の高さで表すように、当該イベントデータをグラフィックデータに変換することを特徴とする請求項４に記載の演奏処理のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、楽音編集装置および楽音編集処理のプログラムに関し、特に、曲のイベントデータを表示装置に表示する楽音編集装置および楽音編集処理のプログラムに関するものである。
【背景技術】
【０００２】
曲のイベントデータの音符情報をＬＣＤなどの表示装置に表示する電子鍵盤楽器が広く知られている。例えば、ある提案の演奏情報分析装置によれば、メロディ等の演奏情報を分析して楽譜情報を作成し、音符長情報に基づいて所定の条件に適合した拍子および小節線位置を自動的に選択するようになっている。このために、１音毎に音高情報と発音タイミングとを供給する供給手段と、この供給手段から供給される順次の発音タイミング情報に基づいて１音毎に次音までの時間間隔に対応した音符長情報を作成する作成手段と、この作成手段からの音符長情報に基づいて異なる拍子および異なる小節線位置のうち所定の条件に適合した拍子および小節線位置を選択する選択手段とを備えた構成になっている。（特許文献１参照）
【０００３】
一般に、曲の演奏においては、演奏するフレーズの各音の発音開始タイミングの相関関係は非常に重要である。例えば、１６分音符の連打が続いている箇所の演奏において、各音符に対してほぼ一定の時間間隔で演奏されない場合には、いわゆる「もたった」演奏になり、テンポが変動して聴く人に不快感を与えることになる。一方、楽譜通りの極めて正確な時間間隔で演奏された場合には、無味乾燥で機械的な演奏になってしまい、メロディの魅力をさらに昂揚させるテンポの細かい揺らぎやリズミカルな乗りの良さを表現することができない。豊かな演奏技術の向上を図る方法として、ある程度の法則のようなものはある。例えば、付点８分音符の後に１６分音符が続くような付点リズムの演奏では、しばしば１６分音符が短めに演奏される。このような演奏はリズムが躍動的になり、生き生きとした音楽を実現することができる。一方、同じリズムでも非常に急速な曲の場合には、逆に１６分音符を長めに、付点４分音符を短めに演奏することがある。これは１６分音符を楽譜通りの音長で演奏すると短すぎて聴き取り難いので、意図的に長めに演奏するからである。ところが、演奏技術が未熟なために、同じように１６分音符が長めになり、付点４分音符が短めになる場合もある。したがって、演奏者の技量が高い場合には、テンポの細かい揺らぎやリズミカルな乗りの良さを表現ために、演奏する各音の発音開始タイミングを客観的に認識することが望まれている。また、演奏者の技量が低い場合や演奏者のひとりよがりでテンポが変動するのを改善するためにも、演奏する各音の発音開始タイミングを客観的に認識して、テンポの細かい揺らぎやリズミカルな乗りの良さを表現できるような豊かな演奏技術の向上を図る方法が望まれている。従来の技術においては、発音開始タイミングを客観的に認識する方法として、演奏データを記録して再生し、耳で聴いて認識する方法、および、シーケンサなどの表示機能によって演奏データをグラフィック表示する方法が採られている。
【０００４】
【特許文献１】特開平７−１２９１５８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、記録した演奏データを再生して耳で聴いて認識する方法の場合には、相当に高い音楽的なレベルを必要とする上、発音開始タイミングを定量的に認識して、演奏技術の向上を図ることは困難である。一方、演奏データをグラフィック表示する方法の場合には、例えば、グラフの横軸を時間とし縦軸を音高として表示するか、あるいは、グラフの横軸に発音開始時間および音長を表示し、縦軸に音高を表示するようになっているので、任意の演奏データの発音開始タイミングと次の演奏データの発音開始タイミングとの時間差を表示するものではない。このため、発音開始タイミングを定量的に認識して、演奏技術の向上を図ることは困難である。また、上記提案の演奏情報分析装置の場合も、演奏データを分析して音符情報に変換して表示するものであり、発音開始タイミングを定量的に認識することは困難である。
本発明は、このような従来の課題を解決するためのものであり、演奏データの発音開始タイミングを定量的かつ視覚的に認識して、その認識された発音開始タイミングに基づいて演奏技術の向上を図るようにすることを目的とする。
【課題を解決するための手段】
【０００６】
請求項１に記載の楽音編集装置は、演奏（実施形態においては、図１の鍵盤１１０の演奏に相当する）に応じて記憶手段（実施形態においては、図２のＲＡＭ４のソングメモリに相当する）に記憶された曲のイベントデータを読み出して、当該イベントデータにおける任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差をグラフィックデータに変換して表示手段（実施形態においては、図１の表示部１０１に相当する）にグラフを表示するデータ読出手段と、表示手段に表示されたグラフの時間差に対する修正の操作がされたときは、当該修正に応じてグラフィックデータを変更するデータ変更手段（実施形態においては、図２のＣＰＵ１に相当する）と、データ変更手段によって変更されたグラフィックデータに応じて、前記イベントデータを修正して記憶手段に書き込むデータ書込手段（実施形態においては、図２のＣＰＵ１に相当する）と、を備えた構成になっている。
【０００７】
請求項１の楽音編集装置において、請求項２に記載したように、データ読出手段は、記憶手段から読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから後のノートオンデータの発音開始タイミングとの時間差が所定時間以内である場合には、当該後のノートオンデータを当該任意のノートオンデータに併合して１つのノートオンデータとして、当該１つのイベントデータをグラフィックデータに変換するような構成にしてもよい。
【０００９】
請求項１の楽音編集装置において、請求項３に記載したように、データ読出手段は、記憶手段から読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差を棒グラフの棒の高さで表すように、当該イベントデータをグラフィックデータに変換するような構成にしてもよい。
【００１１】
請求項４に記載の楽音編集処理のプログラムは、演奏（実施形態においては、図１の鍵盤１１０の演奏に相当する）に応じて記憶手段（実施形態においては、図２のＲＡＭ４のソングメモリに相当する）に記憶された曲のイベントデータを読み出して、当該イベントデータにおける任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差をグラフィックデータに変換して表示手段（実施形態においては、図１の表示部１０１に相当する）にグラフを表示するステップＡと、表示手段に表示されたグラフの時間差に対する修正の操作がされたときは、当該修正に応じてグラフィックデータを変更するステップＢと、ステップＢによって変更されたグラフィックデータに応じて、前記イベントデータを修正して記憶手段に書き込むステップＣと、をコンピュータ（実施形態においては、図２のＣＰＵ１に相当する）に実行させる構成になっている。
【００１２】
請求項４に記載の楽音編集処理のプログラムにおいて、請求項５に記載したように、ステップＡは、記憶手段から読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから後のノートオンデータの発音開始タイミングとの時間差が所定時間以内である場合には、当該後のノートオンデータを当該任意のノートオンデータに併合して１つのノートオンデータとして、当該１つのイベントデータをグラフィックデータに変換するような構成にしてもよい。
【００１４】
請求項４に記載の楽音編集処理のプログラムにおいて、請求項６に記載したように、ステップＡは、記憶手段から読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差を棒グラフの棒の高さで表すように、当該イベントデータをグラフィックデータに変換するような構成にしてもよい。
【発明の効果】
【００１６】
本発明の楽音編集装置および楽音編集処理のプログラムによれば、演奏データの発音開始タイミングを定量的かつ視覚的に認識して、その認識された発音開始タイミングに基づいて演奏技術の向上を図ることができるという効果が得られる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の楽音編集装置の実施形態について電子鍵盤楽器を例に採って、図面を参照しながら詳細に説明する。
図１は、実施形態における電子鍵盤楽器の外観を示す平面図である。図１において、表示部１は、演奏前の初期画面としてメインメニューを表示し、演奏者のモード設定操作に応じて、通常演奏モード、登録演奏モード、表示モード、又は再生モードを選択することができる。演奏が開始した後は、設定されたモードに応じた内容を表示する。表示部１０１の下側には複数のキースイッチからなるスイッチ部が設けられている。すなわち、図に示すように、左移動（「Ｌ」）キー１０２、右移動（「Ｒ」）キー１０３、アップ（「＋」）キー１０４、ダウン（「−」）キー１０５、シフトキー１０６、決定キー１０７、モードキー１０８、およびスタート／ストップキー１０９、および図示しない音色キー、音量キーなどが設けられている。スタートキーとストップキーは共通のキースイッチであり、オン操作ごとに状態が反転するトグルスイッチである。その他の各キーの機能については後述する。鍵盤１１０は、演奏に応じて鍵番号に対応する音高、押鍵時間に対応する音長、押鍵の強さに対応するベロシティを入力する。２つのスピーカ１１１は内部で生成された楽音信号を発音する。
【００１８】
図２は、図１の電子鍵盤楽器のシステム構成を示すブロック図である。図２において、ＣＰＵ１は、システムバス２を介して、ＲＯＭ３、ＲＡＭ４、表示制御部５、鍵盤検出部６、スイッチ検出部７、音源部８に接続され、これら各部との間でコマンドおよびデータの授受を行って全体を制御する。ＲＯＭ３は、ＣＰＵ１によって実行される楽音編集処理のプログラムなどの制御プログラム、および、初期データなどを予め記憶している。ＲＡＭ４は、ＣＰＵ１によって処理されるデータを一時的に記憶するワークエリアであり、演奏データを記憶するためのソングメモリ、各種のレジスタ、フラグ、ポインタのエリアが設けられている。表示制御部５は、ＶＲＡＭ、映像増幅回路、駆動回路などを備え、ＣＰＵ１から供給される画像データをＶＲＡＭにおいてフレーム画像データに展開して、表示部１０１の画面に表示する。鍵盤検出部６は、鍵盤１１０の押鍵の演奏に応じてノートオンデータ、音高、音長、ベロシティ、又は、離鍵の演奏に応じてノートオフイベント、音高をＣＰＵ１に入力する。スイッチ検出部７は、各スイッチのオン又はオフを検出してＣＰＵ１に入力する。音源部８は、各楽器の音色に対応する波形データを記憶している波形ＲＯＭを備え、ＣＰＵ１の発音指令（ノートオンデータ）、音高、音長、ベロシティに応じて、波形ＲＯＭから読み出した波形データを元に楽音信号を生成してサウンドシステム９に出力し、ＣＰＵ１の消音指令（ノートオフイベント）、音高に応じて、サウンドシステム９の出力を停止する。サウンドシステム９は、Ｄ／Ａ変換回路、フィルタ回路、増幅回路などを備え、音源部８から入力される楽音信号に対してデジタルからアナログに変換する処理、不要な高域成分を除去するフィルタ処理、増幅処理などを施して、図１の２つのスピーカ１１１から発音させる。
【００１９】
次に、この実施形態における電子鍵盤楽器の動作について、図３ないし図１３に示すＣＰＵ１のフローチャート、図１４ないし図１８に示す表示部１０１の画面、ＲＡＭ４のデータ構成などを参照しながら説明する。
図３は、ＣＰＵ１のメインルーチンのフローチャートである。所定のイニシャライズ（ステップＳＡ１）の後、現在のモードを示すレジスタＭＯＤＥの値に応じた処理を実行する。ＭＯＤＥの値は、図１のモードキー１０８のオン操作に応じて、「０」→「１」→「２」→「３」→「０」…とサイクリックに変更される。まず、ＭＯＤＥが０であるか否かを判別し（ステップＳＡ２）、ＭＯＤＥが０の場合には通常演奏処理を行う（ステップＳＡ３）。通常演奏処理では、鍵盤１０１の演奏に応じて鍵盤検出部６から入力されたノートオン又はノートオフのイベントデータ、音高、音長、ベロシティを音源部８に出力してスピーカ１１１から発音させる。
【００２０】
ＭＯＤＥが０でない場合には、ＭＯＤＥが１であるか否かを判別し（ステップＳＡ４）、ＭＯＤＥが１の場合には、登録処理を実行する（ステップＳＡ５）。ＭＯＤＥが１でない場合には、ＭＯＤＥが２であるか否かを判別し（ステップＳＡ６）、ＭＯＤＥが２である場合には、表示処理を実行する（ステップＳＡ７）。ＭＯＤＥが２でない場合には、ＭＯＤＥが３であるか否かを判別し（ステップＳＡ８）、ＭＯＤＥが３である場合には、再生処理を実行する（ステップＳＡ９）。
【００２１】
ステップＳＡ３の通常演奏処理の後、ステップＳＡ５の登録処理の後、ステップＳＡ７の表示処理の後、又は、ステップＳＡ９の再生処理の後は、ＭＯＤＥ変更がされたか否かを判別する（ステップＳＡ１０）。ＭＯＤＥ変更がされない場合には現在のモードの処理を継続するが、ＭＯＤＥ変更がされたときは、変更値をＭＯＤＥにストアする（ステップＳＡ１１）。そして、変更されたＭＯＤＥに対応する処理を実行する。
【００２２】
図４は、メインルーチンにおけるステップＳＡ５の登録処理のフローチャートである。スタートキースイッチ１０９がオンされたか否かを判別し（ステップＳＢ１）、このキーがオンされたときは、フラグＳＴＦを１（登録）にセットし、演奏データを登録するＲＡＭ４のソングメモリのアドレスを示すポインタＮを１（先頭アドレス）にセットする（ステップＳＢ２）。また、タイムレジスタＴを０にクリアする（ステップＳＢ３）。この後、タイマインタラプトの禁止を解除する（ステップＳＢ４）。タイマインタラプトの禁止解除により、一定時間が経過するたびにタイムレジスタＴの値がインクリメントされる。すなわち、経過時間がＴにストアされる。
【００２３】
この後は、ＳＴＦが１であるか否かを判別する（ステップＳＢ５）。ＳＴＦが１の場合には、鍵盤検出部６によって鍵盤１０１の鍵変化を判別する（ステップＳＢ６）。演奏が行われず鍵変化がない場合にはメインルーチンに戻るが、オンの鍵変化があったとき、すなわち押鍵の演奏がされたときは、そのノートオンデータ、ノート（音高）、音長、およびベロシティを音源部８に送出する発音処理を行う（ステップＳＢ７）。また、ポインタＮをアドレスにして、タイムレジスタＴの時間すなわち発音開始タイミング、ノートオン、ノート、ベロシティをＲＡＭ４のソングメモリにストアする（ステップＳＢ８）。次に、Ｎの値をインクリメントして、ソングメモリのアドレスを更新する（ステップＳＢ９）。そして、図３のメインルーチンに戻る。
【００２４】
図４のステップＳＢ６において、オフの鍵変化があったとき、すなわち離鍵の演奏がされたときは、音源部８に対して消音を指示する消音処理を行い（ステップＳＢ１０）、ポインタＮをアドレスにして、タイムレジスタＴの時間、ノートオフ、ノートをＲＡＭ４のアドレスＮにストアする（ステップＳＢ１１）。次に、Ｎの値をインクリメントして、ＲＡＭ４のソングメモリのアドレスを更新する（ステップＳＢ９）。そして、図３のメインルーチンに戻る。
【００２５】
図４のステップＳＢ１において、スタートキースイッチがオンでない場合には、ストップキースイッチがオンされたか否かを判別する（ステップＳＢ１２）。ストップキーがオンされたときは、ＳＴＦを０にリセットし（ステップＳＢ１３）、タイマインタラプトを禁止する（ステップＳＢ１４）。そして、図３のメインルーチンに戻る。
【００２６】
図１４は、ＲＡＭ４にストアされているノートオンデータをグラフィックデータに変換する推移を示す図である。図１４（１）は、ＲＡＭ４のソングメモリにストアされたイベントのうち、ノートオンデータすなわち押鍵の演奏データを示す図である。図１４（１）におけるアドレスは、押鍵開始のときのタイムレジスタＴの値、すなわちノートオンデータの発音開始タイミングを表している。アドレスの単位である「０００１」は、この場合は４０分音符の音長に対応する単位時間長を表し、音長の単位は秒である。したがって、曲のテンポが１分間に４分音符が１２０の場合には、アドレスの単位である「０００１」は２５ｍｓの時間長となる。したがって、図１４（１）における最初のアドレス「０００３」にストアされている音高Ｃ４、音長０．５０、ベロシティ１０４は、演奏開始から「０００３（７５ｍｓ）」の発音開始タイミングでＣ４の鍵が５００ｍｓの時間だけベロシティ１０４で押鍵されたことを表している。このように、アドレスの値と経過時間とはリンクしているので、以下の説明においては、経過時間をアドレスの値として表す。
【００２７】
図５ないし図９は、図３のメインルーチンにおけるステップＳＡ７の表示処理のフローチャートである。この表示処理においては、図１４（１）のソングメモリにおけるノートオンデータを図１４（２）の表示用レジスタ（１）にストアするためのデータ変換を行い、さらに、表示用レジスタ（１）のデータを図１４（３）の表示用レジスタ（２）にストアする。まず、フラグＤＩＳＰが「０」であるか否かを判別し（ステップＳＣ１）、ＤＩＳＰが「０」である場合には、ポインタＮ、ポインタＭを「１」にセットする（ステップＳＣ２）。Ｎは図１４（１）のソングメモリのアドレスの単位を累積するポインタである。また、Ｍは図１４（２）に示す表示用レジスタ（１）のアドレス（１、２、３…）を示すポインタである。次に、和音の時間を管理するためのレジスタＨＭを「０」にクリアする（ステップＳＣ３）。
【００２８】
次に、ポインタＮのアドレスにノートオンデータがあるか否かを判別し（ステップＳＣ４）、ノートオンデータがない場合には、Ｎの値をインクリメントする（ステップＳＣ５）。そして、ステップＳＣ４に移行してポインタＮのアドレスにノートオンデータがあるか否かを判別する。アドレスＮにノートオンデータがある場合には、レジスタｎにＮのアドレスをストアする（ステップＳＣ６）。そして、Ｎの値をインクリメントする（ステップＳＣ７）。このとき、Ｎのアドレスがソングメモリの最終番地を超えたか否かを判別する（ステップＳＣ８）。Ｎのアドレスが最終番地を超えない場合には、ポインタＮのアドレスにノートオンデータがあるか否かを判別する（ステップＳＣ９）。Ｎのアドレスにノートオンデータがない場合には、Ｎのアドレスがソングメモリの最終番地を超えない限り、ステップＳＣ７、ステップＳＣ８、ステップＳＣ９のループ処理を繰り返しながら、ソングメモリのノートオンデータを捜す。ステップＳＣ９において、Ｎのアドレスにノートオンデータがあったときは、Ｎのアドレスをレジスタｍにストアする（ステップＳＣ１０）。すなわち、連続する２つのノートオンデータにおいて、前のノートオンデータのアドレスをｎにストアし、後のノートオンデータをｍにストアする。
【００２９】
次に、図６のフローチャートにおいて、アドレスｍのＴの値からアドレスｎのＴの値を減算してレジスタＨにストアする（ステップＳＣ１２）。すなわち、アドレスｍのノートオンデータの発音開始タイミングとアドレスｎのノートオンデータの発音開始タイミングとの時間差をレジスタＨにストアする。次に、Ｈにストアした時間差が所定時間αより大きいか又はα以下であるかを判別する（ステップＳＣ１３）。αの値は、アドレスｎおよびアドレスｍの２つのノートオンデータが和音であるか否かを判別するための閾値であり、例えば、「０００１」のアドレス差に相当する。Ｈの値がαより大きくてアドレスｎおよびアドレスｍの２つのノートオンデータが和音でない場合には、図１４（２）に示す表示用レジスタ（１）のＭエリアの「時間差」にＨとレジスタＨＭとの加算した時間をストアし、「グループ化」に「１」をストアする（ステップＳＣ１４）。ＨＭは、和音の時間差を累積するレジスタである。ステップＳＣ１４において、Ｍエリアの「時間差」および「グループ化」の値をストアした後は、ＨＭを「０」にクリアし（ステップＳＣ１５）、レジスタｍのアドレスをレジスタｎにセットする（ステップＳＣ１６）。ステップＳＣ１３において、Ｈにストアした時間差がα以下である場合、すなわち、アドレスｎおよびアドレスｍの２つのノートオンデータが和音の場合には、レジスタＨＭにＨの時間差を加算する（ステップＳＣ１７）。このように、複数の連続するノートオンデータが和音を構成する場合には、最初のノートオンデータを表示用レジスタ（１）のＭエリアにストアし、残りの１つ以上のノートオンデータについては、前のノートオンデータとの発音開始タイミングの時間差をＨＭに累算する。この結果、和音を構成する複数のノートオンデータは、最初のノートオンデータに後のノートオンデータが併合される。
【００３０】
ステップＳＣ１６においてレジスタｍのアドレスをレジスタｎにセットした後、又は、ステップＳＣ１７においてＨＭにＨの時間差を加算した後は、図５のフローチャートのステップＳＣ７に移行して、ポインタＮをインクリメントしながら、ソングメモリにおける次の新たなノートオンデータを捜す。そして、新たなノートオンデータを取得するたびに、その新たなノートオンデータのアドレスをレジスタｍにストアして（ステップＳＣ１０）、図６のフローチャートにおいて、レジスタｍのＴの値とレジスタｎのＴの値との時間差に応じて、２つのノートオンデータが和音でない場合には表示用レジスタ（１）にストアし（ステップＳＣ１４）、和音である場合にはＨＭに時間差を加算する（ステップＳＣ１７）。ソングメモリの中の全てのノートオンデータに対する処理が終了して、図５のステップＳＣ８においてアドレスＮがソングメモリの最終番地を超えたときは、フラグＤＩＳＰを「１」にセットして（ステップＳＣ１１）、ステップＳＣ１に移行する。
【００３１】
ＤＩＳＰを「１」にセットしたときは、図１４（１）に示したソングメモリのノートオンデータのアドレス差分が図１４（２）の表示用レジスタ（１）の時間差として各ノート番号のエリアにストアされ、各エリアのグループ化ポイントに「１」がストアされる。この場合においては、図１４（１）に示すように、アドレスの差分は「０００７」ないし「００１６」でαの値「０００１」より大きく、和音が含まれていないので、図１４（２）の表示用レジスタ（１）のグループ化ポイントには全て「１」がストアされる。
【００３２】
一方、ソングメモリに和音が含まれている場合には、その和音を構成する複数のノートオンデータを１つのノートオンデータと見なして表示用レジスタ（１）にストアする。図１５は、ＲＡＭ４のソングメモリの和音のノートオンデータを表示用レジスタ（１）にストアする例を示す図である。図１５（１）の楽譜の小節１の６番目の音符には、Ｄ４およびＥ４の和音が含まれている。いま、Ｄ４のノートオンデータの発音開始タイミングから「０００１」だけ遅れてＥ４のノートオンデータの発音開始タイミングになったときは、図１５（２）のソングメモリには、「００３０」のアドレスにＤ４の音高がストアされ、「００３１」のアドレスにＥ４の音高がストアされる。Ｅ４のアドレスとＤ４のアドレスの差、すなわち、Ｅ４の発音開始タイミングとＤ４の発音開始タイミングとの時間差は「０００１」であるので、図６のステップＳＣ１３において和音と判別され、Ｄ４およびＥ４が併合されて１つのノートオンデータとして表示用レジスタ（１）にストアされる。
【００３３】
図５のステップＳＣ１においてＤＩＳＰが「１」の場合には、図７のフローチャートにおいて、図１４（２）の表示用レジスタ（１）のエリアを指定するポインタＭを「１」にセットし、図１４（３）の表示用レジスタ（２）のエリアを指定するポインタＮを０にセットする（ステップＳＣ１８）。なお、表示用レジスタ（２）は、表示部１０１に棒グラフを表示するためのグラフィックデータをストアレジスタである。次に、表示用レジスタ（１）のＭの「グループ化」が「１」であるか又は「０」であるかを判別する（ステップＳＣ１９）。Ｍの「グループ化」が「１」である場合には、Ｎの値をインクリメントし（ステップＳＣ２０）、表示用レジスタ（２）のアドレスＮに表示用レジスタ（１）の時間差をストアする（ステップＳＣ２１）。一方、ステップＳＣ１９において、表示用レジスタ（１）のＭの「グループ化」が「０」である場合には、表示用レジスタ（２）のアドレスＮの時間差に表示用レジスタ（１）の時間差を加算する（ステップＳＣ２２）。ステップＳＣ２１において時間差をストアした後、又は、ステップＳＣ２２において時間差を加算した後は、Ｍの値をインクリメントする（ステップＳＣ２３）。そして、インクリメントしたＭの値が表示用レジスタ（１）の最終アドレスを超えたか否かを判別し（ステップＳＣ２４）、Ｍの値が最終アドレスを超えていない場合には、ステップＳＣ１９に移行して、ステップＳＣ２４までのループ処理を繰り返す。ステップＳＣ２４において、Ｍの値が最終アドレスを超えたとき、すなわち、表示用レジスタ（１）の全てのデータを表示用レジスタ（２）にストアした後は、表示用レジスタ（２）の内容に基づいて、表示制御部５によって表示部１０１に棒グラフを表示するとともに、カーソルを表示する（ステップＳＣ２５）。
【００３４】
図１６は、表示用レジスタ（２）にストアされたデータに基づいて、表示部１０１の鍵盤画像５０１の上に表示された棒グラフ５０２を示す図である。棒グラフ５０２の下にはカーソル５０３が表示されている。図７のステップＳＣ２５において表示部１０１に棒グラフを表示した後は、図８のフローチャートにおいて、図１のスイッチ部のシフトキー１０６がオン状態であるか否かを判別する（ステップＳＣ２６）。シフトキー１０６がオン状態でない場合には、左移動キー１０２又は右移動キー１０３がオンされたか否かを判別する（ステップＳＣ２７）。左移動キー１０２又は右移動キー１０３がオンされたときは、カーソル５０３の位置を移動する（ステップＳＣ２８）。次に、カーソル５０３の位置がグラフ上であるか否かを判別し（ステップＳＣ２９）、カーソル５０３の位置がグラフ上である場合には、カーソル位置の棒を強調表示する（ステップＳＣ３０ａ）。図１６の棒グラフは、下の楽譜のノートオンデータをグラフィックデータに変換して表示したものであり、カーソル５０３によって３番目の棒ｇ３が指定されて強調表示された状態を示している。この図で、３本の点線は、下から順に８分音符の比較ライン、４分音符の比較ライン、および２分音符の比較ラインを表している。棒ｇ３の高さは、画面の下に記載した楽譜において、３番目のＥ４の音符ｎ３の発音開始タイミングから４番目のＦ４の音符ｎ４の発音開始タイミングまでの時間差を表している。
【００３５】
ステップＳＣ３０ａにおいて棒を強調表示した後は、カーソル５０３のある棒に対応するノートアドレスをレジスタｎにストアする（ステップＳＣ３０ｂ）。したがって、図１６に示した例においては、強調表示されているグラフの棒に対応するノートオンデータである表示用レジスタ（２）の棒番号３をｎにストアする。次に、図１のスイッチ部においてアップキー１０４がオンされたか否かを判別し（ステップＳＣ３１）、このキーがオンされたときは、棒の高さの修正値を示すレジスタΔＴの値をインクリメントする（ステップＳＣ３２）。アップキー１０４がオンでない場合には、ダウンキー１０５がオンされたか否かを判別し（ステップＳＣ３３）、このキーがオンされたときは、ΔＴの値をデクリメントする（ステップＳＣ３４）。ΔＴの値をインクリメント又はデクリメントした後は、変更処理（１）を実行する（ステップＳＣ３５）。ΔＴの初期値は「０」であるので、その値は正負の符号を含むことになる。
【００３６】
図１０は、変更処理（１）のフローチャートである。まず、表示用レジスタ（１）のノート番号を指定するポインタＭ、Ｎを「１」にセットする（ステップＳＤ１）。次に、表示用レジスタ（１）のノート番号Ｍのグループ化が「１」であるか否かを判別する（ステップＳＤ２）。ノート番号Ｍのグループ化が「０」である場合、すなわち、ノート番号Ｍに対応するソングメモリのノートオンデータが、少なくとも１つ前のノートオンデータを含む和音である場合には、Ｍの値をインクリメントして（ステップＳＤ３）、ステップＳＤ２においてノート番号Ｍのグループ化が「１」であるか否かを判別する。ノート番号Ｍのグループ化が「１」である場合には、ポインタＮの値がカーソル位置のグラフに対応するノートアドレスであるｎの値と同じであるか否かを判別する（ステップＳＤ４）。Ｎの値とｎの値とが異なる場合には、Ｎの値をインクリメントし（ステップＳＤ５）、Ｍの値をインクリメントして（ステップＳＤ３）、再びステップＳＤ２においてノート番号Ｍのグループ化が「１」であるか否かを判別する。ノート番号Ｍのグループ化が「１」で、かつ、Ｎの値とｎの値とが同じである場合には、ソングメモリのアドレスを指定するポインタｋを１にセットし、表示用レジスタ（１）のノート番号を指定するポインタｍを１にセットする（ステップＳＤ６）。そして、ステップＳＤ７からステップＳＤ１５までのループ処理を実行して、アップキー又はダウンキーのオン操作によって表示部１０１のグラフの修正内容をソングメモリに反映させる。
【００３７】
このループ処理において、ソングメモリのアドレスｋ内のイベントノートがノートオンであるか否かを判別し（ステップＳＤ７）、アドレスｋ内のイベントノートがノートオフである場合には、ｋの値をインクリメントして（ステップＳＤ８）、次のアドレスのイベントノートがノートオンであるか否かを判別する。アドレスｋ内のイベントノートがノートオンである場合には、ｍの値が「Ｍ＋１」の値と同じか否かを判別する（ステップＳＤ９）。ｍの値が「Ｍ＋１」の値と異なる場合には、ｍの値をインクリメントし（ステップＳＤ１０）、ｋのアドレスをインクリメントする（ステップＳＤ１１）。そして、ステップＳＤ７に移行して、ステップＳＤ９においてｍの値が「Ｍ＋１」の値になるまで、ステップＳＤ７、ステップＳＤ１０、ステップＳＤ１１のループ処理を繰り返す。ｍの値が「Ｍ＋１」の値になったときは、ソングメモリのアドレスｋの発音開始タイミングであるＴの値に、図８のステップＳＣ３２又はステップＳＣ３４において増減した正又は負のΔＴを加算する（ステップＳＤ１２）。さらに、対応するノートオフのＴにもΔＴを加算する（ステップＳＤ１３）。
【００３８】
例えば、表示部１０１の棒グラフｍの棒ｇ３の高さが高くなるようにアップキー１０４のオン操作で修正された場合を想定する。棒ｇ３の高さは表示用レジスタ（２）の棒番号３の高さ「７」である。この値は、次のノートオンデータｎ４の発音開始タイミングから前のノートオンデータｎ３の発音開始タイミングを減算した時間差を表している。この高さが「７」から「１０」に修正されたときは、ノートオンデータｎ４の発音開始タイミングを「３」だけ遅くする修正がされたことになる。したがって、次のノートオンをソングメモリの中から検索して、その発音開始タイミングＴに「０００３」を加算する。
【００３９】
図１０のステップＳＤ１３の後は、Ｍの値をインクリメントし（ステップＳＤ１４）、表示用レジスタ（１）のノート番号Ｍのグループ化が「０」であるか否かを判別する（ステップＳＤ１５）。ノート番号Ｍのグループ化が「１」である場合には、ステップＳＤ７に移行して、ソングメモリ内のノートオンデータの発音開始タイミングＴにΔＴを加算するループ処理を繰り返す。ステップＳＤ１５において、ノート番号Ｍのグループ化が「０」である場合には、表示をクリアして（ステップＳＤ１６）、図８のフローチャートに戻る。図８のステップＳＣ３５の後は、ＤＩＳＰを「０」にリセットして（ステップＳＣ３６）、図５のフローチャートのステップＳＣ１に移行する。
【００４０】
この後は、図１４（１）のソングメモリの修正された発音開始タイミングに基づいて、表示部１０１に表示するグラフを変更することになる。すなわち、再び、図５および図６のフローチャートを実行して、図１４（１）のソングメモリのノートオンデータを図１４（２）の表示用レジスタ（１）にストアし、図７のフローチャートを実行して、図１４（２）の表示用レジスタ（１）のノートオンデータを図１４（３）の表示用レジスタ（２）にストアし、ステップＳＣ１の後、再び、図７のフローチャートに移行して、表示部１０１に変更されたグラフを表示する。
【００４１】
図８のステップＳＣ２６において、シフトキーがオン状態である場合には、図９のフローチャートにおいて、左右移動キー１０２、１０３がオンされたか否かを判別する（ステップＳＣ３７）。シフトキーがオン状態で左右移動キー１０２、１０３のいずれか一方がオンされたときは、カーソル位置を移動する（ステップＳＣ３８）。次に、カーソル位置がグラフ上か否かを判別し（ステップＳＣ３９）、カーソル位置がグラフ上である場合には、カーソル位置のグラフの棒を強調表示する（ステップＳＣ４０）。そして、決定キースイッチ１０７がオンされたか否かを判別し（ステップＳＣ４１）、このスイッチがオンでない場合には、シフトキーのオン状態が継続している限り、左右移動キー１０２、１０３のオン操作に応じて、複数の棒を強調表示する。ステップＳＣ４１において、決定スイッチがオンされたときは、変更処理（２）を実行する（ステップＳＣ４２）。
【００４２】
図１１は、変更処理（２）のフローチャートである。この処理では、和音を構成していない複数のノートオンデータを１つのノートオンデータに統合して、図１６に示したグラフ５０２の表示領域を縮小することによって、多数のノートオンデータに対応する全体的な分析を可能にする。図１１において、まず、強調表示になっているグラフの棒に対応するノート番号をストアする（ステップＳＥ１）。次に、表示用レジスタ（１）のノート番号を指定するポインタＭを「１」にセットして（ステップＳＥ２）、Ｍの値をインクリメントしながら、ステップＳＥ３からステップＳＥ６までのループ処理を実行する。すなわち、表示用レジスタ（１）のアドレスＭは強調表示されてストアされたノート番号であるか否かを判別して（ステップＳＥ３）、アドレスＭがストアされたノート番号である場合には、表示用レジスタ（１）のアドレスＭの「グループ化」を「０」にする（ステップＳＥ４）。アドレスＭの「グループ化」を「０」にした後、又は、ステップＳＥ３においてアドレスＭがストアされたノート番号でない場合には、Ｍの値をインクリメントする（ステップＳＥ５）。そして、インクリメントしたＭの値が表示用レジスタ（１）の最終アドレスを超えたか否かを判別する（ステップＳＥ６）。Ｍの値が最終アドレスを超えない場合には、ステップＳＥ３に移行してループ処理を繰り返す。Ｍの値が最終アドレスを超えたときは、表示をクリアして（ステップＳＥ７）、図７のフローチャートのステップＳＣ１８に移行する。なお、図１０の変更処理（１）の場合には、表示されたグラフの修正に基づいてソングメモリの内容を変更したが、この変更処理（２）の場合には、グラフ表示の便宜上、本来和音を構成しない複数のノートオンデータを修正して、１つのノートオンデータに統合したのであるから、ソングメモリの内容は変更しない。
【００４３】
図１７は、和音を構成していない複数のノートオンデータを１つのノートオンデータに統合する変更処理（２）を示す図である。図１７（１）に示す楽譜における音符は和音を構成していないので、通常は図１６のグラフ５０２に示すように、７ｇまでの７個の棒グラフで表される。図１７（１）の楽譜において、第１小節の前半の４個のノートオンデータを「グループ１」とし、後半の３個のノートオンデータを「グループ２」とすると、それぞれ１つのノートオンデータに統合した場合には、図１７（２）の表示用レジスタ１のように、ノート番号２から４までの時間差がノート番号１の時間差に累積されて「グループ化」が「０」となり、ノート番号６および７の時間差がノート番号５の時間差に累積されて「グループ化」が「０」となる。したがって、図１７（２）の表示用レジスタ（１）のデータを図１７（３）の表示用レジスタ（２）にストアすると、各グループの時間差が累算された高さ「４０」および「３８」の２つの棒番号１、２となる。この結果、図１７（４）に示すように、表示部１０１に表示される２個の棒のグラフとなる。
【００４４】
図１２は、図３のメインルーチンにおけるステップＳＡ９の再生処理のフローチャートである。まず、ＤＩＳＰが「１」であるか否かを判別し（ステップＳＦ）、ＤＩＳＰが「０」の場合はメインルーチンに戻るが、ＤＩＳＰが「１」である場合には、図１のスタートキースイッチ１０９がオンされたか否かを判別する（ステップＳＦ２）。スタートスイッチがオンされたときは、フラグＳＴＦを「１」にセットして（ステップＳＦ３）、ソングメモリのイベントを指定するポインタＮを「１」にセットし、タイマレジスタＴを「０」にクリアする（ステップＳＦ４）。そして、タイマインタラプトの禁止を解除する（ステップＳＦ５）。図１３は、タイマインタラプトのフローチャートである。タイマインタラプトの禁止を解除した後は、一定時間ごとのタイマインタラプトに応じて、Ｔの値がインクリメントされる（ステップＳＧ１）。
【００４５】
ステップＳＦ５においてタイマインタラプトの禁止を解除した後、又は、ステップＳＦ１３においてストップスイッチがオンでない場合には、ＳＴＦが「１」であるか否かを判別する（ステップＳＦ６）。ＳＴＦが「１」の場合には、Ｎをアドレスとする時間ｔにＴの値が達したか否かを判別する（ステップＳＦ７）。時間ｔにＴの値が達したときは、Ｎをアドレスとするイベントの処理を実行する（ステップＳＦ８）。すなわち、イベントがノートオンデータである場合には、そのノートオンデータの音高、音長、およびベロシティを発音指示のコマンドとともに音源部８に送出して発音させる。イベントがノートオフイベントである場合には、そのノートオンデータの音高を消音指示のコマンドとともに音源部８に送出して消音させる。イベントがノートイベントでなくコントロールチェンジなどの制御データである場合には、そのイベントに対応する処理を行う。次に、Ｎの値をインクリメントして次のアドレスを指定する（ステップＳＦ９）。そして、インクリメントしたＮの値がソングメモリの最終アドレスを超えたか否かを判別し（ステップＳＦ１０）、最終アドレスを超えない場合には、ステップＳＦ１、ステップＳＦ１３、ステップＳＦ６、およびステップＳＦ７のループを繰り返し、Ｎをアドレスとする時間ｔにＴの値が達するたびに、Ｎをアドレスとするイベントの処理を実行する。そして、ステップＳＦ１０において、Ｎの値がソングメモリの最終アドレスを超えたとき、すなわち、変更されたソングメモリの全てのイベントの処理が終了したときは、ＳＴＦを「０」にリセットして（ステップＳＦ１１）、タイマインタラプトを禁止する（ステップＳＦ１２）。そして、ステップＳＦ２に移行してスタートスイッチのオンを判別する。このように、表示部１０１に表示されたグラフに対して修正操作がされるたびに、ソングメモリの内容を変更し、変更されたイベントを再生する。
【００４６】
ステップＳＦ２において、スタートスイッチがオンされない場合には、ストップスイッチがオンされたか否かを判別する（ステップＳＦ１３）。ストップスイッチがオンされたときは、ＳＴＦを「０」にリセットして（ステップＳＦ１４）、タイマインタラプトを禁止する（ステップＳＦ１５）。そして、図３のメインルーチンに戻る。
【００４７】
以上のように、この実施形態によれば、ＣＰＵ１は、鍵盤の演奏に応じてＲＡＭ４のソングメモリに記憶された曲のイベントデータを読み出して、そのイベントデータをグラフィックデータに変換して表示部１０１に棒グラフを表示し、その表示された棒グラフの高さに対してアップキースイッチ１０４又はダウンキースイッチ１０５による修正の操作がされたときは、その修正に応じてグラフィックデータを変更し、変更したグラフィックデータをイベントデータに変換してソングメモリに書き込む。この場合において、ＣＰＵ１は、ソングメモリから読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差を表すように、イベントデータをグラフィックデータに変換する。
したがって、演奏データの発音開始タイミングを定量的かつ視覚的に認識して、その認識された発音開始タイミングに基づいて演奏技術の向上を図ることができる。具体的には、演奏者は、表示部１０１に表示されたグラフを見て、自分の悪い演奏のタイミングの弱点や傾向（癖）、あるいは、良い演奏のタイミングや傾向を明確に把握して、自身の演奏技術の向上を図ることができる。
【００４８】
例えば、図１６のグラフ５０２において、左から３番目の棒ｇ３が他の棒に比べて短く、その直後の棒ｇ４は逆に長くなっている。これは曲の最初から４番目のＦ４の音符ｎ４が前のめりに演奏されたことを示している。同様の傾向が１０番目の棒ｇ１０と１１番目の棒ｇ１１にも見られる。このような傾向は、一般的には「ころび」と表現されており、演奏技術が未熟な演奏にしばしば見られる傾向である。初心者は指の動きである運指や音楽的感覚が十分には発達していないために、同じ時間間隔で演奏すべき音符の並びの中で、一部の音が前のめりになる場合や、逆に後ろへもたれる場合がある。本発明によれば、演奏者は、グラフ表示された発音開始タイミングの時間差を定量的かつ視覚的に認識して、表示されたグラフを修正してソングメモリを変更し、模範的な演奏に編集して再生することにより、演奏技術の向上を図ることができる。
【００４９】
さらに、図１６のグラフ５０２において、第１小節の最後のＣ４の４分音符に対応する棒ｇ７、および、第２小節の最後のＥ４の４分音符に対応する棒ｇ１４の高さが下から２番目の点線である４分音符の比較ラインに達してしない。それぞれの前の２つの棒の高さは１番下の８分音符の比較ラインとほぼ同じであるが、棒ｇ７および棒ｇ１４の高さは、その上の４分音符の比較ラインより低い。これは第１小節の最後の４分音符Ｃ４および第２小節の最後の４分音符Ｅ４の発音開始タイミングが早めであることを示している。これも初心者の演奏にしばしば見られる傾向であり、短い音長の８分音符が続いた後に長い音符がくると、直前の短い音価に慣れているために、次の長い音符の音価を保つことができず、先走って次の演奏をすることにより発生する現象である。このような場合にも、本発明によって、グラフ表示された発音開始タイミングの時間差を定量的かつ視覚的に認識して、表示されたグラフを修正してソングメモリを変更し、模範的な演奏に編集して再生することにより、演奏技術の向上を図ることができる。
【００５０】
図１８は、等間隔にならんだ同じ音高の連打の演奏データをグループ化してグラフ表示した例を示す図である。図１８（１）の楽譜において、１小節内に１６分音符が１６個ならんだフレーズを、４つの音符を１つのグループにまとめて、その演奏結果を図１８（２）に示すグラフで表している。すなわち、各グループにおける発音開始タイミングの時間差を４つの棒で表している。このグラフから明らかなように、後のグループになるほど少しずつ棒の高さが低くなっている。これも実際の演奏にありがちな「走る」という現象で、演奏が進むに従って少しずつテンポが速くなるが、演奏者自身は自覚していないことが多い。このような傾向の場合は、各音符の単位で見るよりも、このように複数の音符をグループ化して見たほうが演奏の傾向を把握できる。したがって、このような場合にも、本発明により、グラフ表示された発音開始タイミングの時間差を定量的かつ視覚的に認識して、表示されたグラフを修正してソングメモリを変更し、模範的な演奏に編集して再生することにより、演奏技術の向上を図ることができる。
【００５１】
このように初心者におけるタイミングのずれやバラつきのように演奏の欠点を認識して演奏技術の向上を図るだけでなく、熟練の演奏者に対しても本発明は有効である。上記したように、楽譜通りの機械的な演奏の場合には、表示されたグラフの各棒の高さは比較ラインの上に整然と揃うことになり、人間味の薄い無味乾燥な演奏になってしまう。そこで、表示されたグラフを修正してソングメモリのノートオンデータを変更することにより、テンポの細かい揺らぎやリズミカルな乗りの良さを表現できる。
【００５２】
また、上記実施形態において、図１５に示したように、ＣＰＵ１は、ソングメモリから読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから後のノートオンデータの発音開始タイミングとの時間差が和音の閾値である所定時間α以内である場合には、後のノートオンデータと任意のノートオンデータとをグループ化して１つのノートオンデータと見なして、そのイベントデータをグラフィックデータに変換する。
したがって、和音を構成する複数のノートオンデータに対しては、１つにまとめてグラフ表示することにより、限られた表示画面を有効に利用できる。
【００５３】
また、上記実施形態において、図１７に示したように、ＣＰＵ１は、表示部１０１に表示されているグラフにおいて、任意のノートオンデータの発音開始タイミングから後のノートオンデータの発音開始タイミングとの時間差が和音の閾値である所定時間αを超えている複数のノートオンデータに対応するグラフ領域に対して併合化の操作がされたときは、そのグラフ領域を１つのノートオンデータに対応するグラフ領域に統合するようにグラフィックデータを変更するが、統合されたグラフ領域に対応するグラフィックデータについては、その棒グラフの高さの修正操作された場合でも、イベントデータに変換せずソングメモリには書き込まない。
したがって、和音を構成しない複数のノートオンデータであっても、操作に応じて１つのノートオンデータと見なして統合してグラフ表示することにより、限られた表示画面を有効に利用できる。
【００５４】
また、上記実施形態において、図１２の再生処理のフローチャートに示したように、表示されたグラフを修正してソングメモリのイベントを変更するたびに、スタートスイッチのオン操作によって、変更したソングメモリのイベントを再生するので、変更した内容を実際に耳で聴いて確認することができる。この場合において、上記実施形態においては、変更したノートオンデータの演奏データを元の演奏データに上書きする構成にしたが、元の演奏データとは別のエリアに書き込んで、変更前の演奏データと変更後の演奏データとを聞き比べる構成にしてもよい。
【００５５】
また、上記実施形態においては、ノートオンデータの発音開始タイミングの時間差を定量的かつ視覚的に表示するために棒グラフを用いたが、ノートオンデータの発音開始タイミングの時間差を定量的かつ視覚的に表示するものであれば、折れ線グラフ又は他の形態のグラフを用いてもよい。
【００５６】
なお、上記実施形態においては、ＲＯＭ３にあらかじめ記憶されている楽音編集処理のプログラムをＣＰＵ１が実行する装置の発明について説明したが、フレキシブルディスク（ＦＤ）、ＣＤ、メモリカードなどの外部記憶媒体に記憶された演奏処理のプログラム、又は、インターネットなどのネットワークからダウンロードした演奏処理のプログラムをＲＡＭ４あるいは別途設けたフラッシュＲＯＭやハードディスクなどの不揮発性メモリにインストールして、ＣＰＵ１がそのプログラムを実行する構成も可能である。この場合には、プログラムの発明および記憶媒体の発明を実現できる。
【００５７】
すなわち、本発明の楽音編集処理のプログラムは、
演奏に応じて記憶手段に記憶された曲のイベントデータを読み出して、当該イベントデータにおける任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差をグラフィックデータに変換して表示手段にグラフを表示するステップＡと、前記表示手段に表示されたグラフの時間差に対する修正の操作がされたときは、当該修正に応じてグラフィックデータを変更するステップＢと、前記ステップＢによって変更されたグラフィックデータをイベントデータに変換して前記記憶手段に書き込むステップＣと、をコンピュータに実行させる。
【００５８】
前記ステップＡは、前記記憶手段から読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから後のノートオンデータの発音開始タイミングとの時間差が所定時間以内である場合には、当該後のノートオンデータを当該任意のノートオンデータに併合して１つのノートオンデータとして、当該１つのイベントデータをグラフィックデータに変換する。
【００５９】
前記ステップＢは、前記表示手段に表示されているグラフにおいて、任意のノートオンデータの発音開始タイミングから後のノートオンデータの発音開始タイミングとの時間差が所定時間を超えている複数のノートオンデータに対応するグラフ領域に対して併合化の操作がされたときは、当該グラフ領域を１つのノートオンデータに対応するグラフ領域に統合するようにグラフィックデータを変更し、前記ステップＣは、当該統合されたグラフ領域に対応するグラフィックデータについては、当該グラフの形状の修正操作の有無にかかわらず、イベントデータに変換せず前記記憶手段には書き込まない。
【００６０】
前記ステップＡは、前記記憶手段から読み出したイベントデータにおいて、任意のノートオンデータの発音開始タイミングから次のノートオンデータの発音開始タイミングとの時間差を棒グラフの棒の高さで表すように、当該イベントデータをグラフィックデータに変換する。
【００６１】
前記表示手段に表示されたグラフの形状に対する修正の操作がされたときは、修正されたグラフに対応して変更した曲のイベントデータを音源手段に出力して発音させるステップＤをさらに有する。
【図面の簡単な説明】
【００６２】
【図１】本発明の実施形態における電子鍵盤楽器の外観を示す平面図。
【図２】図１の電子鍵盤楽器のシステム構成を示すブロック図。
【図３】図２のＣＰＵのメインルーチンのフローチャート。
【図４】図３における登録処理のフローチャート。
【図５】図３における表示処理のフローチャート。
【図６】図５に続く表示処理のフローチャート。
【図７】図５に続く表示処理のフローチャート。
【図８】図７に続く表示処理のフローチャート。
【図９】図８に続く表示処理のフローチャート。
【図１０】図８における変更処理（１）のフローチャート。
【図１１】図９における変更処理（２）のフローチャート。
【図１２】図３における再生処理のフローチャート。
【図１３】図２のＣＰＵのタイマインタラプト処理のフローチャート。
【図１４】図２のＲＡＭにストアされているノートオンデータをグラフィックデータに変換する推移を示す図。
【図１５】図２のＲＡＭのソングメモリの和音のノートオンデータを表示用レジスタ（１）にストアする例を示す図。
【図１６】図２のＲＡＭの表示用レジスタ（２）にストアされたデータに基づいて、表示部の鍵盤画像の上に表示された棒グラフを示す図。
【図１７】和音を構成していない複数のノートオンデータを１つのノートオンデータに統合する変更処理（２）を示す図。
【図１８】等間隔にならんだ同じ音高の連打の演奏データをグループ化してグラフ表示した例を示す図。
【符号の説明】
【００６３】
１    ＣＰＵ
３    ＲＯＭ
４    ＲＡＭ
５    表示制御部
６    鍵盤検出部
７    スイッチ検出部
８    音源部
９    サウンドシステム
１０１    表示部
１１０    鍵盤
【図１】
0004774997.tif 000002
【図２】
0004774997.tif 000003
【図３】
0004774997.tif 000004
【図４】
0004774997.tif 000005
【図５】
0004774997.tif 000006
【図６】
0004774997.tif 000007
【図７】
0004774997.tif 000008
【図８】
0004774997.tif 000009
【図９】
0004774997.tif 000010
【図１０】
0004774997.tif 000011
【図１１】
0004774997.tif 000012
【図１２】
0004774997.tif 000013
【図１３】
0004774997.tif 000014
【図１４】
0004774997.tif 000015
【図１５】
0004774997.tif 000016
【図１６】
0004774997.tif 000017
【図１７】
0004774997.tif 000018
【図１８】
0004774997.tif 000019