(57)【要約】【課題】波形に関わるデータを編集する場合、この編集対象とするメモリのデータ配列上に記憶されている何れかのデータを挿入・削除すると、この記憶エリアに後続するデータの配置も前後方向に移動させる必要があるので、これらのデータを再入力してメモリの内容を書き換えなければならないという問題があった。【解決手段】編集すべきレベルデータと時間データが記憶されている位置を指定して、この記憶位置にストアされているデータを削除したり、或いは新たにデータを挿入すると、この記憶位置に後続する既存のデータを、夫々前方向、或いは後方の記憶位置にシフトする。このような構成にすることによって、編集対象以外のデータをメモリに書き換え作業することなく容易に変更することが可能となる。【選択図】      図１８
2005043478.tif 000002
【特許請求の範囲】
【請求項１】
複数個のレベルデータ及び当該各レベルデータに対応する複数個の時間データとを記憶した記憶手段と、
この記憶手段に記憶された複数個のレベルデータと複数個の時間データとを夫々対応させて、前記記憶手段に記憶された順番に表示部に表示させるデータ表示制御手段と、
この記憶手段に記憶されたデータを順次読み出し、この読み出されたレベルデータを波形のレベルとし、時間データを先に読み出されたレベルデータと今回読み出されたレベルデータとの時間間隔とする波形を生成し、当該波形を前記表示部に表示させる波形生成手段と、
前記表示手段に表示されている複数個の時間データ及びレベルデータの少なくとも一方のデータに対して、新たなデータの挿入及び表示されているデータの削除の何れかを指定するデータ挿入・削除指定手段と、
このデータ挿入・削除指定手段により新たなデータの挿入が指定された場合は、前記少なくとも一方の複数個のデータのうち、所定のデータに後続する少なくとも１つのデータの記憶位置を順次後方にシフトすると共に、空いた記憶位置に前記新たなデータを記憶させ、記憶されたデータの削除が指定された場合は、前記所定のデータの記憶位置を削除するとともに、削除されたデータに後続する少なくとも１つのデータの記憶位置を前方に順次シフトさせるデータ挿入・削除手段と、
を具備することを特徴とする波形データ編集装置。
【請求項２】
前記データ挿入・削除手段は、新たなデータの挿入が指定された場合は、前記指定された複数個のデータのうち、終端の記憶位置に記憶されたデータ及び当該データの直前の記憶位置に記憶されたデータを除く前記所定のデータに後続する全てのデータの記憶位置を順次後方にシフトすると共に、前記終端の記憶位置の直前に記憶されたデータを削除することを特徴とする請求項１記載の波形データ編集装置。
【請求項３】
前記データ挿入・削除手段は、記憶されたデータの削除が指定された場合は、前記所定のデータの記憶位置を削除するとともに、終端の記憶位置に記憶されたデータを除き前記削除されたデータに後続するデータの記憶位置を前方に順次シフトさせ、前記終端の直前の記憶位置に所定のデータを記憶させることを特徴とする請求項１記載の波形データ編集装置。
【請求項４】
記憶手段に記憶されている複数個のレベルデータ及び当該レベルデータに対応する複数個の時間データを、前記記憶手段に記憶されている順番で表示部に表示させる表示制御ステップと、
前記記憶手段から、レベルデータ及びこれに対応する時間データを順次読出し、この読み出されたレベルデータを波形のレベルとし、時間データを先に読み出されたレベルデータと今回読み出されたレベルデータとの時間間隔とする波形を生成し、当該波形を前記表示部に表示させる波形生成ステップと、
前記表示部に表示される複数個の時間データ及びレベルデータの少なくとも一方を指定すると共に、指定された複数個のデータに対して新たなデータの挿入及び記憶されたデータの削除のいずれか一方を指定するデータ挿入・削除指定ステップと、
このデータ挿入・削除指定手段により新たなデータの挿入が指定された場合は、前記指定された複数個のデータのうち、所定のデータに後続するデータの少なくとも１つの記憶位置を順次後方にシフトすると共に、空いた記憶位置に前記新たなデータを記憶させ、記憶されたデータの削除が指定された場合は、前記所定のデータの記憶位置を削除すると共に、削除されたデータに後続するデータの少なくとも１つの記憶位置を前方に順次シフトさせるデータ挿入・削除ステップと、
からなる波形データ編集プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、波形データ編集装置及び波形データ編集プログラムに関する。
【０００２】
【従来の技術】
従来、エンベロープデータの波形を表示装置に表示させて、このエンベロープデータに対するＡＤＳＲ（Ａ；アタック、Ｄ；ディケイ、Ｓ；サスティン、Ｒ；リリース）などの変化点の時間とレベルの値を修正する波形データ編集装置がある。（例えば、特許文献１参照）
【０００３】
【特許文献１】
特開２００２−１９６７６２号公報（第１頁−第１５頁、図５、図６、図７）
【０００４】
【発明が解決しようとする課題】
しかしながら、従来の波形データ編集装置及び波形編集方法において、既存のエンベロープデータを修正する場合には、データ編集時にレベルデータ及び時間データを挿入・削除しようとすると、これに後続するデータを人為的に再入力してメモリの内容を書き換えなければならないという問題があった。
【０００５】
本発明は、上述の如き従来の課題を解決するためになされたものであり、その目的は、編集すべきレベルデータと時間データが夫々記憶されている記憶位置にあるデータを容易に削除、或いは挿入することである。
【０００６】
【課題を解決するための手段】
この発明の解決の手段は以下のとおりである。
上記目的を達成するために、請求項１に係る発明においては、複数個のレベルデータ及び当該各レベルデータに対応する複数個の時間データとを記憶した記憶手段と、この記憶手段に記憶された複数個のレベルデータと複数個の時間データとを夫々対応させて、前記記憶手段に記憶された順番に表示部に表示させるデータ表示制御手段と、この記憶手段に記憶されたデータを順次読み出し、この読み出されたレベルデータを波形のレベルとし、時間データを先に読み出されたレベルデータと今回読み出されたレベルデータとの時間間隔とする波形を生成し、当該波形を前記表示部に表示させる波形生成手段と、前記表示手段に表示されている複数個の時間データ及びレベルデータの少なくとも一方のデータに対して、新たなデータの挿入及び表示されているデータの削除の何れかを指定するデータ挿入・削除指定手段と、このデータ挿入・削除指定手段により新たなデータの挿入が指定された場合は、前記少なくとも一方の複数個のデータのうち、所定のデータに後続する少なくとも１つのデータの記憶位置を順次後方にシフトすると共に、空いた記憶位置に新たなデータを挿入して記憶し、記憶されているデータが削除指定された場合は、このデータの記憶を削除してこれに後続する少なくとも１つのデータの記憶位置を前方に順次シフトさせるデータ挿入・削除手段と、を有している。
【０００７】
そして、前記データ挿入・削除手段は、新たなデータの挿入が指定された場合は、前記指定された複数個のデータのうち、終端の記憶位置に記憶されたデータ及び当該データの直前の記憶位置に記憶されたデータを除く前記所定のデータに後続する全てのデータの記憶位置を順次後方にシフトすると共に、前記終端の記憶位置の直前に記憶されたデータを削除するようにしてもよい。
【０００８】
また、前記データ挿入・削除手段は、記憶されたデータの削除が指定された場合は、前記所定のデータの記憶位置を削除するとともに、終端の記憶位置に記憶されたデータを除き前記削除されたデータに後続するデータの記憶位置を前方に順次シフトさせ、前記終端の直前の記憶位置に所定のデータを記憶させるようにしてもよい。
【０００９】
本発明は、請求項４に記載のように、上記各手段の動作手順をプログラム化し、コンピュータに実行させることにより実施できる。その際、コンピュータプログラムはハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【００１０】
本発明は、上記構成を具備することにより、波形を構成する時間データ・レベルデータの少なくとも何れかの記憶位置にデータの挿入・削除を指定して編集するだけで、これに後続するデータの記憶位置が自動的に前・後方向にシフトする構成にしたので、当該編集対象外のデータを再入力することなくこれらのデータの記憶内容を更新することができる。
【００１１】
【発明の実施の形態】
図１は、本発明の実施形態における波形データ編集装置の構成例を示したブロック図である。
本実施形態において、波形データ編集装置は電子楽器に適用した場合を例にあげている。
ＣＰＵ１０１は、バスライン１０８を介してこの波形データ編集装置を構成する後述の各回路、装置に接続され、各種データを授受して全体の機能を統制する。
【００１２】
ＲＯＭ１０２は、ＣＰＵ１０１において、定められた手順に従い各種機能の処理を実行するためのプログラムを記憶している。
【００１３】
ＲＡＭ１０３は、ＣＰＵ１０１がプログラムの処理を実行する際に、波形データの編集時に一時的に各種データをストアするワークエリア、エンベロープタイムのデータエリアＥＮＶ  ＴＩＭＥ、エンベロープレベルのデータエリアＥＮＶＬＥＶＥＬ、エンベロープデータのエリアＥＮＶ  ＤＡＴＡ、などからなる。
【００１４】
表示装置１０４は、例えば、ドットマトリックス表示画面を有する液晶表示装置からなり、文字・数字・記号、データ一覧表、波形描画、各種アイコンなどを表示する。
【００１５】
スイッチ群１０５は、複数のスイッチから成り、電源をオンオフする電源スイッチ、文字・数字・記号などを入力する各種キーボタン、複数の演奏操作子などが設けられている。
【００１６】
マウス１０６は、表示装置１０４の表示画面上で各種データの入力操作に用いる。
楽音発生装置１０７は、音源回路、増幅器、スピーカーから構成されており、ＣＰＵ１０１からの楽音生成指示に基づいて、楽音信号を生成してこの楽音信号を増幅してスピーカーより発音する。
【００１７】
本発明の実施形態において、ＲＡＭ１０３内のデータ構成の詳細について第２図を参照して説明する。
ＲＡＭ１０３は、エンベロープを設定するためのエンベロープタイムのデータエリアＥＮＶ  ＴＩＭＥ、エンベロープレベルのデータエリアＥＮＶ  ＬＥＶＥＬ、そして、エンベロープデータのエリアＥＮＶ  ＤＡＴＡを有している。
ＥＮＶ  ＬＥＶＥＬのデータエリアには、エンベロープの絶対値のレベルデータを示すＬＥＶＥＬ（１）〜ＬＥＶＥＬ（８）がストアされている。
【００１８】
ＥＮＶ  ＴＩＭＥのデータエリアには、ＲＡＭ１０３内の記憶位置で隣り合うレベルデータ相互間の相対時間値を示す時間データＴＩＭＥ（１）〜ＴＩＭＥ（８）がストアされている。
そして、エンベロープデータのエリアＥＮＶ  ＤＡＴＡは、表示画面１７０１上で波形表示する際に、データ相互間の表示ポイントを直線補間の演算手法を用いて、これを細分化した時間単位で表示位置を示すＥＮＶ（０）〜ＥＮＶ（Ｍ）がストアされている。
【００１９】
図３及び図４は、本願実施形態における基本フローチャートを示す。
この基本フローチャートは、表示画面１７０１上の各表示位置でマウス１０６がクリック操作されたとき、このクリック操作に応じて処理される動作を説明するものである。
先ず、スイッチ群１０５内に設けられている電源スイッチがオンされると、ＣＰＵ１０１は本波形データ編集装置内の各装置及び各回路を初期設定する（Ｓ３０１）。
【００２０】
次に、データ表示欄１７０５上に表示されているデータエリア番号１７０３の「１」〜「８」の内で、先頭番号の「１」はワークエリアＦＷのエリアにストアされ、終端番号の「８」はワークエリアＴＷにストアされる。
そして、この何れかのデータエリア番号の表示枠内をマウスで左・右クリック操作がなされると、このデータエリア番号をワークエリアＷにストアして、この同列の表示枠にあるデータに対してシフト（挿入・削除）を指定する。
このデータエリア番号のシフト指定について詳細は後述するが、ここでは先ずワークエリアＷにデフォルト値として「２」がセットされる（Ｓ３０２）。
【００２１】
次に、表示装置１０４に対して初期画面枠を表示させる（Ｓ３０３）。
ここで、表示装置１０４の画面１７０１上に表示される初期画面について、図１７を参照して説明する。
表示画面１７０１の中央下方側にデータ表示欄１７０５が表示され、この表中にデータエリア番号１７０３、時間データＴ、及びレベルデータＬ、の各表示枠が配列表示される。
このデータ表示欄１７０５下方には、この表示された時間データ、レベルデータを左・右方向にシフト指示する「シフト」アイコン１７０７が表示される。
【００２２】
また、データ表示欄１７０５の表示領域内には、データエリア番号１７０３「１」〜「８」が表示される。
そして、データ表示欄１７０５に隣接して、データの終端をＯＮ・ＯＦＦの何れかを選択して指示する「終端」アイコン１７０８、レベルデータのみをシフトするか否かを選択して指示する「レベル」アイコン１７０９、表示画面１７０１の表示をクリアする「クリア」アイコン１７１０が表示される。
【００２３】
上述の通り枠画面が表示されると、次に、図３Ｓ３０４の表示処理に進む。
この表示処理の詳細な動作については、図５、図６、及び図１８（Ａ）を参照して説明する。
【００２４】
先ず、表示画面１７０１上に初期枠画面が表示されると、この枠内の表示をクリアする（Ｓ５０１）。
そして、この「ＥＮＤＦ」が「０」を示しているか否かを判定する（Ｓ５０２）。
この「ＥＮＤＦ」が「０」を示していれば、次に「終端」アイコン内に「ＯＦＦ」の文字を表示し（Ｓ５０３）、「ＥＮＤＦ」が「０」を示していなければ、「終端」アイコン内に「ＯＮ」の文字を表示する（Ｓ５０４）。
【００２５】
そして、このＬＥＶＥＬＦが「０」を示すものであるか否かを判定する（Ｓ５０５）。
このＬＥＶＥＬＦが「０」を示していれば、「レベル」アイコン１７０９内に「ＯＦＦ」を表示し（Ｓ５０６）、ＬＥＶＥＬＦが「０」を示していなければ、「レベル」アイコン１７０９内に「ＯＮ」を表示する（Ｓ５０７）。
ここで、ＲＡＭ１０３内のアドレスポインタＮにアドレスの先頭位置を示す「１」をセットする（Ｓ５０８）。
このアドレスの先頭位置を示す番号「１」は、データエリア番号１７０３の「１」と対応しており、以下「８」番まで双方の番号は対応付けされている。
【００２６】
そして、データ表示欄１７０５の画面上、Ｎ番目の時間データ枠内にＲＡＭ１０４にストアされている時間データＴＩＭＥ（Ｎ）を読み出して表示するとともに（Ｓ５０９）、Ｎ番目のレベルデータ枠内にＲＡＭ１０４内のレベルデータＬＥＶＥＬ（Ｎ）を読み出して表示する（Ｓ５１０）。
ＲＡＭ１０４から読み出されたこれらの時間データとレベルデータは、図１８（Ａ）、図１９（Ａ）、或いは図２０（Ａ）に示すようにデータ表示欄１７０５上の時間データ枠（１）〜（８）、レベルデータ枠（１）〜（８）に夫々表示される。
【００２７】
ここで、図１８（Ａ）を参照して本表示処理の表示形態を説明する。
例えば、データ表示欄１７０５上には、ＲＡＭ１０３内のデータエリア２番〜４番にストアされている時間データ「２０」が対応する時間データ表示枠内に夫々表示される。
この時間データは今回のレベルデータと前回のレベルデータまでの相対時間で表わされている。
そして、データエリア２番〜３番にストアされているレベルデータ「９０」は、対応するレベルデータ表示枠内に夫々表示される。
これらのデータエリア番号以外の各データ表示枠内には「０」が表示される。
【００２８】
時間データとレベルデータが表示画面上に表示されると、再び、図５の表示処理に戻る。
先ず、アドレスポインタＮをインクリメントする（Ｓ５１１）。
そして、このＮの示す値がデータエリア番号の最大数を示す「８」に達したか否かを判定する（Ｓ５１２）。
ここで、アドレスポインタＮの示す値が「８」に達しなければ、Ｓ５０９の処理に戻るが、「８」に達すると描画処理に移行して本処理を終了する（Ｓ５１３）。
【００２９】
上述の通り、本表示処理では表示画面１７０１上の「終端」アイコン、及び「レベル」アイコンの表示枠内に「ＯＮ」・「ＯＦＦ」を表示するとともに、データ表示欄１７０５上の時間データ枠（１）〜（８）、レベルデータ枠（１）〜（８）に対応してＲＡＭ１０３にストアされている時間データＴＩＭＥ（１）〜ＴＩＭＥ（８）、レベルデータＬＥＶＥＬ（１）〜ＬＥＶＥＬ（８）を読み出して表示している。
【００３０】
次に、図５中Ｓ５１３の描画処理の詳細な動作について、図６を参照して説明する。
先ず、アドレスポインタＮにアドレスの先頭を示す「１」をセットする（Ｓ６０１）。
そして、ワークエリアＦＴに時間データエリアＴＩＭＥ（Ｎ）内のデータを書き込み（Ｓ６０２）、ワークエリアＦＬにレベルデータエリアＬＥＶＥＬ（Ｎ）内のデータを書き込む（Ｓ６０３）。
【００３１】
次に、時間データの累算値をストアするワークエリアΣＴにＮ＋１をアドレスとする時間データＴＩＭＥ（Ｎ＋１）を加算して、これを新たな時間データの累算値ΣＴとする（Ｓ６０４）。
そして、レベルデータの累算値のワークエリアΣＬには、レベルデータＬＥＶＥＬ（Ｎ＋１）の値がストアされる（Ｓ６０５）。
次に、時間経過を累算するカウンターＭに「０」をセットする（Ｓ６０６）。
【００３２】
次に、表示画面１７０１上に各データに相当するポイント間を線で結んで波形を表示するため、下記直線補間の演算手法を用いる（Ｓ６０７）。
この直線補間の演算手法によって得られた波形のレベルはワークエリアＥＮＶ（ＦＴ＋Ｍ）にストアされる。
【００３３】
そして、図１８（Ａ）、図１９（Ａ）、或いは図２０（Ａ）に示されるように、レベルデータＥＮＶに基づいて波形１７０２が描画される（Ｓ６０８）。
この描画処理の表示形態について、例えば、図１８（Ａ）に示されているように、表示画面１７０１上には、データ表示欄１７０５に表示されたデータエリア番号に対応した時間データとレベルデータに対応して、ａ点・ｂ点・ｃ点・ｄ点からなる表示ポイントが定められ、これらのポイントが夫々直線補間の演算手法を用いて線で結ばれ、波形１７０２が描画される。
【００３４】
次に、時間データ累算値の直前の値ＦＴと時間累算カウンタＭの値の和が、時間データ累算のワークエリアΣＴの示す値に達していないか否かを判定する（Ｓ６０９）。
ここで、ＦＴ＋Ｍの値がワークエリアΣＴにストアされている時間データ累算値に達していなければ、時間の累積カウンタＭをインクリメントして（Ｓ６１０）、再びＳ６０７の処理に戻る。
【００３５】
一方、ＦＴ＋Ｍの値がワークエリアΣＴの示す値に達すると、レベルデータ累算のワークエリアΣＬの値をワークエリアＦＬに書き込むと共に、時間データ累算のワークエリアΣＴの値をワークエリアＦＴに書き込む（Ｓ６１１）。
そして、アドレスポインタＮをインクリメントして（Ｓ６１２）、このアドレスポインタＮの示す値がデータエリア番号の最大値を示す「８」を超えたか否かを判定する。
この判定で、アドレスポインタＮが「８」未満であれば、再びＳ６０４の処理に戻り直線補間した波形データの描画を繰り返す（Ｓ６１３）。
このアドレスポインタＮが「８」に達するとこの描画処理は終了する。
【００３６】
このように、この描画処理では、各時間データ及び各レベルデータに基づいて直線補間の演算手法を用いて得られた波形を表示画面１７０１上にグラフィックとして描画する。
再び、図３に戻りＳ３０４の表示処理以降、表示画面１７０１上の何れかの位置でクリック操作した場合の処理について順次説明していく。
【００３７】
１）左クリック操作の処理について
マウス１０６で左クリック操作される位置が、データエリア番号の表示枠「１」〜「８」の何れかで行われたものか（Ｓ３０６）、「時間データＴ」表示枠内で行われたものか（Ｓ３０８）、「レベルデータＬ」表示枠内で行われたものか（Ｓ３１０）、「シフト」アイコン上で行われたものか（Ｓ３１２）、「終端」アイコン上で行われたものか（Ｓ３１４）、「レベル」アイコン上で行われたものか（Ｓ３１６）、を順次判定して行く。
【００３８】
これらの各判定で、データエリア番号の表示枠「１」〜「８」の何れかで左クリック操作されると、ワークエリアＷにこのデータエリアの番号がストアされる（Ｓ３０７）。
また、「時間データＴ」表示枠内で左クリック操作されると、「時間加算処理」に移行（Ｓ３０９）し、「レベルデータＬ」表示枠内で左クリック操作されると、「レベル加算処理」に移行する（Ｓ３１１）。
【００３９】
そして、この左クリック操作が、「シフト」アイコン上で行われると、「左シフト処理」に移行（Ｓ３１３）し、「終端」アイコン上で行われると、図１５の終端アイコン処理に移行して（Ｓ３１５）、「終端」アイコンの操作状態を表わすエンドフラグＥＮＤＦを反転する（Ｓ１５０１）。
また、この左クリック操作が、「レベル」アイコン上で行われると、図１６の「レベル」アイコン処理で示されているように「レベル」アイコンに対する操作状態を表わすレベルフラグＬＥＶＥＬＦが反転される（Ｓ１６０１）。
これらの各処理が終了する都度、図３中Ｓ３０４の表示処理に移行する。
一方、左クリックの操作が「レベル」アイコン上で行われたものでなければ、再びＳ３０５の処理に戻る。
【００４０】
２）右クリック操作の処理について
このＳ３０５の処理で、左クリックの操作が検出されなければ、右クリックの操作が成されたか否かを検出する（図４Ｓ４０１）。
ここで、右クリックの操作が検出されると、このクリック操作された位置がデータエリア番号「０」〜「８」の表示枠内の何れかで行われたか（Ｓ４０２）、「時間データＴ」の表示枠内（Ｓ４０４）、「レベルデータＬ」表示枠内（Ｓ４０６）、「シフト」アイコン（Ｓ４０８）上の何れであるかを順次判定していく。
このクリック操作の位置がデータエリア番号の表示枠「０」〜「８」の何れかで行われれば、ワークエリアＷにこのデータエリア番号をストアする（Ｓ４０３）。
【００４１】
また「時間データＴ」の表示枠内で右クリック操作されると、「時間減算処理」に移行（Ｓ４０５）し、「レベルデータＬ」表示枠内で右クリック操作されると、「レベル減算処理」に移行（Ｓ４０７）し、「シフト」アイコン上で右クリック操作されると、「右シフト処理」に移行する（Ｓ４０９）。
これらの各処理が終了する都度、図３中Ｓ３０４の表示処理に移行する。
一方、Ｓ４０１の処理で全く右クリックの操作が行われていないとき、及びＳ４０８の処理で「シフト」アイコン上で右クリックの操作が行われていないときは、再び、図３Ｓ３０５の処理に戻る。
【００４２】
このように本基本処理では、表示画面１７０１上に表示されたデータエリア番号、時間データ、レベルデータ、及び各アイコン、の各表示枠の位置でマウス１０６がクリック操作されたときに応じて各種処理が実行される。
【００４３】
次に、時間データの修正処理動作について説明する。
この時間データの修正処理とは、データ表示欄１７０５内の時間データ枠１７０６内に示されている時間データの値を修正することである。
例えば、データ表示欄１７０５内の時間データ枠内で、マウス１０６を左クリック、或いは右クリック操作がなされると、このクリック操作量に応じて時間データの値が増減するようになっている。
先ず、図３中Ｓ３０９時間加算処理の詳細について、図７を参照して説明する。
データ表示欄１７０５内の時間データ枠内で左クリック操作がなされると、この時間データ枠番号を検出して、これをアドレスポインタＮにセットする（Ｓ７０１）。
【００４４】
次に、時間データのワークエリアＴＩＭＥ（Ｎ）中の値にクリック操作１回に対応して「１」を加算する。
この加算された時間データを新たなＴＩＭＥ（Ｎ）の値として更新する（Ｓ７０２）。
この新たな時間データＴＩＭＥ（Ｎ）の示す値が予め定められた最大値に達したか否かを判定する（Ｓ７０３）。
【００４５】
このＴＩＭＥ（Ｎ）の示す値が、最大値を超えるとこのＴＩＭＥ（Ｎ）に最大値を上書きする（Ｓ７０４）。
次に、ＴＩＭＥ（Ｎ）の示す値が最大値未満である場合、或いはＴＩＭＥ（Ｎ）に最大値がストアされた場合は、ＴＩＭＥ（Ｎ）にストアされているデータを読み出して、データ表示欄１７０５上のＮ番目の時間データ枠内にこの数値を表示してから本処理を終了する（Ｓ７０５）。
【００４６】
このように、データ表示欄１７０５上の時間データ枠内で左クリック操作がなされる都度、この表示枠の番号に対応するアドレスにストアされている時間データの値を時間データ表示枠内に表示する。
【００４７】
次に、図４のＳ４０５時間減算処理の詳細について、図８を参照して説明する。
先ず、データ表示欄１７０５内の時間データ枠１７０６内で、マウス１０６を右クリックで操作すると、このクリック操作された時間データ枠番号を検出して、これをアドレスポインタＮにセットする（Ｓ８０１）。
【００４８】
次に、時間データのワークエリアＴＩＭＥ（Ｎ）中の値に「１」を減算して、これを新たなＴＩＭＥ（Ｎ）の値として更新する（Ｓ８０２）。
このＴＩＭＥ（Ｎ）の示す値が「０」を下回ったか否かを判定する（Ｓ８０３）。
このＴＩＭＥ（Ｎ）の示す値が、「０」を下回るとＴＩＭＥ（Ｎ）に「０」をストアする（Ｓ８０４）。
【００４９】
次に、ＴＩＭＥ（Ｎ）の示す値が「０」未満でない場合、或いはＴＩＭＥ（Ｎ）に「０」がストアされた場合は、ＴＩＭＥ（Ｎ）にストアされているデータを読み出して、データ表示欄１７０５上のＮ番目の時間データ枠内にこの数値を表示してから（Ｓ８０５）本処理を終了する。
【００５０】
このように、データ表示欄１７０５上の時間データ枠内で右クリック操作がなされる都度、この表示枠の番号に対応するアドレスの時間データを減少させて行き、この時間データ表示枠内に減少された時間データ値を表示する。
【００５１】
次に、レベルデータの修正処理動作について説明する。
このレベルデータの修正処理とは、データ表示欄１７０５内のレベルデータ枠１７０４内に示されているレベルデータを修正する処理のことである。
例えば、データ表示欄１７０５内のレベルデータ枠内で、マウス１０６を左クリック、或いは右クリック操作がなされると、このクリック操作量に応じてレベルデータの値が増減するようになっている。
先ず、図３のＳ３１１レベル加算処理の詳細について、図９を参照して説明する。
データ表示欄１７０５内のレベルデータ枠内で、左クリック操作がなされると、このクリック操作されたレベルデータ枠番号を検出して、これをアドレスポインタＮにセットする（Ｓ９０１）。
【００５２】
次に、レベルデータのワークエリアＬＥＶＥＬ（Ｎ）中の値に「１」を加算して、これを新たなＬＥＶＥＬ（Ｎ）の値として更新する（Ｓ９０２）。
そして、このＬＥＶＥＬ（Ｎ）の示す値が予め定められた最大値に達したか否かを判定する（Ｓ９０３）。
このＬＥＶＥＬ（Ｎ）の示す値が、最大値を超えるとこのＬＥＶＥＬ（Ｎ）に定められた最大値を上書きする（Ｓ９０４）。
【００５３】
次に、ＬＥＶＥＬ（Ｎ）の示す値が最大値未満である場合、或いはＬＥＶＥＬ（Ｎ）に最大値がストアされた場合は、ＬＥＶＥＬ（Ｎ）にストアされているデータを読み出して、データ表示欄１７０５上のＮ番目のレベルデータ枠内にこの数値を表示してから（Ｓ９０５）本処理を終了する。
このように、データ表示欄１７０５上のレベルデータ枠内で左クリック操作がなされる都度、この表示枠の記憶位置に相当するレベルデータの値を増加させ、このレベルデータ表示枠内にレベルデータが表示される。
【００５４】
次に、図４のＳ４０７レベル減算処理の詳細について、図１０を参照して説明する。
先ず、データ表示欄１７０５内のレベルデータ枠内で右クリック操作がなされると、このクリック操作されたレベルデータ枠番号を検出して、これをアドレスポインタＮにセットする（Ｓ１００１）。
次に、レベルデータのワークエリアＬＥＶＥＬ（Ｎ）中の値に「１」を減算して、これを新たなＬＥＶＥＬ（Ｎ）の値として更新する（Ｓ１００２）。
このＬＥＶＥＬ（Ｎ）の示す値が予め定められた所定の「最小値」を下回ったか否かを判定する（Ｓ１００３）。
このＬＥＶＥＬ（Ｎ）の示す値が、「最小値」を下回るとＬＥＶＥＬ（Ｎ）に「最小値」をストアする（Ｓ１００４）。
【００５５】
次に、ＬＥＶＥＬ（Ｎ）の示す値が「最小値」未満でない場合、或いはＬＥＶＥＬ（Ｎ）に「最小値」がストアされた場合は、ＬＥＶＥＬ（Ｎ）にストアされているデータを読み出して、データ表示欄１７０５上のＮ番目のレベルデータ枠内にこの数値を表示してから本処理を終了する（Ｓ１００５）。
【００５６】
このように、データ表示欄１７０５上のレベルデータ枠内で右クリック操作がなされる都度、この表示枠の記憶位置に相当するレベルデータを減少させ、このレベルデータ表示枠内にこの減少されたレベルデータ値を表示する。
【００５７】
次に、データのシフト処理動作について説明する。
本発明のシフト処理は、データ表示欄１７０５内に表示されている時間データ、或いはレベルデータの表示欄に新たなデータを挿入したり、或いは既存のデータを削除したときにこれに後続するデータの配置を前後方向に移動することである。
本データ表示欄１７０５内に表示されている時間データ、或いはレベルデータは、「シフト」アイコン枠内で左クリック、或いは右クリック操作がなされると、所定の表示位置に新たなデータ枠が挿入されたり、所定の表示位置のデータ枠が削除されてこれに後続するデータの配置が前後方向に移動して表示される。
【００５８】
次に、図３中Ｓ３１３に示す左シフト処理の動作について、図１１、図１２、及び図１８（Ｂ）を参照して詳細に説明する。
ここで説明する左シフト処理は、「終端」アイコンと「レベル」アイコンの双方の表示枠内がオフ表示状態におけるものである。
先ず、既にデータエリア番号「１」〜「８」の何れかの表示枠内で左クリック操作され、前述のＳ３０７の処理でワークエリアＷにデータエリア番号が上書きされたか否かを判定する（Ｓ１１０１）。
【００５９】
ここで、データエリア番号の表示枠内の何れかが左クリックされていれば、データエリア番号が上書きされたワークエリアＷ内の番号が、記憶位置の先頭番号「１」をストアするワークエリアＦＷの値を上回り、記憶位置の終端番号「８」をストアするワークエリアＴＷの値以下かを比較する（Ｓ１１０２）。
【００６０】
このワークエリアＷにストアされている番号が「１」より大きく「８」より小さいか等しければ、ワークエリアＷにストアされている番号を、データシフトを対象とする記憶位置をストアするワークエリアＮＷに書き込む（Ｓ１１０３）。
【００６１】
一方、データエリア番号の表示枠上でクリック操作されていなければ、予めワークエリアＷにストアされているデフォルト値「２」がワークエリアＮＷに書き込まれる（Ｓ１１１１）。
また、ワークエリアＷに示される番号がデータエリア番号「０」〜「８」以外である場合は操作ミスであるので本処理を終了する。
【００６２】
次に、ワークエリアＮＷにストアされているデータエリア番号をアドレスポインタＮに書き込む（Ｓ１１０４）。
それから、「終端」アイコンの表示状態を示すエンドフラグＥＮＤＦが「０」を示しているか否かを判定し（Ｓ１１０５）、ＥＮＤＦが「０」を示していなければ、図１２のＳ１２０１の処理に移行するが、ＥＮＤＦが「０」を示していれば、次に「レベル」アイコンの表示状態を示すレベルフラグＬＥＶＥＬＦが「０」を示しているか否かを判定する（Ｓ１１０６）。
【００６３】
先ず、「終端」アイコン１７０８と「レベル」アイコン１７０９の双方の表示枠内がオフ表示状態にあるときの左シフト処理動作について説明する。
表示画面上の「シフト」アイコンが左クリック操作される時点において、図１１中Ｓ１１０５の処理で「終端」アイコンの表示枠の状態を表わすフラグＥＮＤＦがオフを示す「０」であり、且つＳ１１０６の処理で「レベル」アイコンの表示枠の状態を表わすフラグＬＥＶＥＬＦがオフを示す「０」であれば、ＴＩＭＥ（Ｎ＋１）のエリアにストアされている時間データの値を、ＴＩＭＥ（Ｎ）のエリアに上書きしてから（Ｓ１１０７）、アドレスポインタＮをインクリメントする（Ｓ１１０８）。
次に、このアドレスポインタＮがデータエリア番号の終端番号をストアするワークエリアＴＷの一つ前の値である「７」に達したか否かを判定し（Ｓ１１０９）、ここで「７」に達しなければＳ１１０７の処理に戻って時間データの記憶エリアを一つ前方にシフトする処理を再実行する。
【００６４】
このアドレスポインタＮがデータエリア番号の終端「８」の一つ前に達すると、時間データの記憶エリアの終端であるＴＩＭＥ（Ｎ＋１）即ち「８」番目のデータエリアに「０」を書き込み（Ｓ１１１０）、これで時間データの記憶位置を順次一つ前方にシフトする処理が終了して、次にレベルデータを記憶するエリアを左シフトする処理に移行する。
レベルデータの左シフト処理に進むと、先ず、ワークエリアＮＷにストアされているデータエリア番号をアドレスポインタＮに書き込む（Ｓ１１１２）。
次に、レベルデータのエリアＬＥＶＥＬ（Ｎ＋１）にストアされている値をＬＥＶＥＬ（Ｎ）に上書きしてから（Ｓ１１１３）、アドレスポインタＮをインクリメントする（Ｓ１１１４）。
【００６５】
次に、このアドレスポインタＮがデータエリア番号の終端番号をストアするワークエリアＴＷの一つ前の値である「７」に達したか否かを判定し（Ｓ１１１５）、「７」に達しなければＳ１１１３の処理に戻ってレベルデータの記憶エリアを一つ前方にシフトする処理を再実行する。
このアドレスポインタＮがデータエリア番号の終端「８」の一つ前に達すると、レベルデータの記憶エリアの終端であるＬＥＶＥＬ（Ｎ＋１）即ち「８」番目のデータエリアに「０」を書き込み（Ｓ１１１６）、これで時間データ及びレベルデータの記憶位置を順次一つ前方にシフトする処理を終了する。
【００６６】
ここで、本左シフト処理の表示形態について図１８（Ｂ）を参照して説明する。
例えば、図１８（Ａ）の初期表示状態において、「終端」アイコンと「レベル」アイコンの双方の表示枠内がオフ表示中に「シフト」アイコンが左クリック操作されると、データエリア番号「２」の時間データ「２０」とレベルデータ「９０」が削除され、これらに後続するデータは夫々一つ前方向にシフトする。
そして、このデータエリア番号「２」のデータ削除に伴い、データ表示欄１７０５内の数値と波形１７０２の描画は更新される。
【００６７】
次に、図４中Ｓ４０９に示す右シフト処理について、図１３、図１４、及び図１８（Ｃ）を参照して説明する。
ここで説明する右シフト処理は、「終端」アイコンと「レベル」アイコンの双方の表示枠内がオフ表示状態におけるものである。
【００６８】
先ず、既にデータエリア番号「１」〜「８」の何れかの表示枠に右クリックで操作され、前述のＳ４０３の処理でワークエリアＷにデータエリア番号が上書きされたか否かを判定する（Ｓ１３０１）。
【００６９】
ここで、データエリア番号の表示枠の何れかが右クリックされていれば、データエリア番号をストアするワークエリアＷ内の番号が、記憶位置の先頭番号「１」をストアするワークエリアＦＷの値を上回り、記憶位置の終端番号「８」をストアするワークエリアＴＷの値以下かを比較する（Ｓ１３０２）。
このワークエリアＷにストアされている番号が「１」より大きく「８」以下であれば、ワークエリアＷにストアされている番号、データシフトを対象とする記憶位置をストアするワークエリアＮＷに書き込む（Ｓ１３０３）。
【００７０】
一方、データエリア番号の表示枠上でクリック操作されていなければ、予めワークエリアＷにストアされているデフォルト値「２」がワークエリアＮＷに書き込まれる（Ｓ１３１１）。
また、ワークエリアＷに示される番号がデータエリア番号「０」〜「８」以外である場合は本処理を終了する。
【００７１】
次に、データエリア番号の終端番号をストアするワークエリアＴＷの２つ前の値である「６」をアドレスポインタＮに書き込む。（Ｓ１３０４）。
それから、「終端」アイコンの表示状態を示すエンドフラグＥＮＤＦがオンを表わす「１」であるか否かを判定し（Ｓ１３０５）、ＥＮＤＦが「１」を示す値でなければ、図１４のＳ１４０２の処理に移行するが、ＥＮＤＦ「１」を示す値であれば、「レベル」アイコンの表示状態を示すレベルフラグＬＥＶＥＬＦがオフを表わす「０」であるか否かを判定する（Ｓ１３０６）。
【００７２】
また、Ｓ１３０５の処理において、「終端」アイコンの表示状態を示すフラグＥＮＤＦがオンを表わす「１」でない場合、アドレスポインタＮにワークエリアＴＷにストアされているデータエリア番号の終端番号「８」の一つ前の番号、即ち「７」の番号をセットする（Ｓ１４０１）。
次に、時間データの終端のエリアＴＩＭＥ（ＭＥ）とレベルデータの終端のエリアＬＥＶＥＬ（ＭＥ）に、夫々「０」がストアされているか否かを判定する（Ｓ１４０２）。
ここで、ＴＩＭＥ（ＭＥ）とＬＥＶＥＬ（ＭＥ）に、夫々「０」がストアされていれば、ワークエリアＴＷにストアされているデータエリア番号の値を一つ減らして（Ｓ１４０３）、このＴＷにストアされているデータエリア番号の値がデータエリア番号の先頭を示す「１」に達したか否かを判定する（Ｓ１４０４）。
【００７３】
このワークエリアＴＷの示す値が「１」に達しなければ、再びＳ１４０２の処理に戻って時間データのエリアとレベルデータのエリア全てに亘って、データがストアされているか否かを検証する。
このＳ１４０２の処理で、時間データのエリアとレベルデータのエリアの何れかにデータがストアされている場合、或いはＳ１４０４の処理でワークエリアＴＷにストアされている値が「１」を示す場合は、次に「レベル」アイコン内の表示状態を示すフラグＬＥＶＥＬＦがオフを示す「０」であるか否かを判定する（Ｓ１４０５）。
【００７４】
このＬＥＶＥＬＦが「０」を示す値であれば、アドレスポインタＮに示される値と右シフト指定されたデータエリア番号をストアするワークエリアＮＷの示す値とを比較して不一致であるか否かを判定する（Ｓ１４０６）。
このアドレスポインタＮに示される値とワークエリアＴＷにストアされているデータエリアの終端番号を示す値が不一致であれば、時間データのエリアＴＩＭＥ（Ｎ）にストアされている値をＴＩＭＥ（Ｎ＋１）に上書きする（Ｓ１４０７）。
【００７５】
そして、アドレスポインタＮをデクリメントして、再びＳ１４０６の処理に戻り（Ｓ１４０８）、時間データが記憶されているアドレスポインタＮの位置がワークエリアＮＷに達するまで夫々一つ後方にシフトして行く。
このＳ１４０６の処理で、アドレスポインタＮに示される値とワークエリアＮＷにストアされているデータエリアの番号を示す値が不一致でなくなると、右シフトが指定されたデータエリア番号ＮＷに対応するＴＩＭＥ（Ｎ）のデータエリアに「０」を上書きして（Ｓ１４０９）、次に、レベルデータの右シフト処理に進む。
【００７６】
ここで、レベルデータの右シフト処理動作について説明する。
先ず、ワークエリアＴＷにデータエリアの終端番号「８」をストアして、この値の一つ前のデータエリア番号「７」をアドレスポインタＮにストアする（Ｓ１４１０）。
【００７７】
次に、アドレスポインタＮに示される値とワークエリアＮＷにストアされている値を比較して不一致であるか否かを判定する（Ｓ１４１１）。
このアドレスポインタＮに示される右シフトが指定されたデータエリアの番号値とワークエリアＴＷにストアされているデータエリアの終端番号を示す値が不一致であれば、レベルデータのエリアＬＥＶＥＬ（Ｎ）にストアされている値をＬＥＶＥＬ（Ｎ＋１）に上書きする（Ｓ１４１２）。
【００７８】
そして、アドレスポインタＮをデクリメントしてＳ１４１１の処理に戻り（Ｓ１４１３）、アドレスポインタＮがワークエリアのアドレス位置ＮＷに達するまで、レベルデータを記憶する位置を順次１つづつ後方にシフトする処理を実行して行く。
このＳ１４１１の処理で、アドレスポインタＮに示される値とワークエリアＮＷにストアされている値が不一致でなくなると、右シフトが指定されたデータエリアの番号Ｎに相当するレベルデータＬＥＶＥＬ（Ｎ）のエリアに「０」を上書きして本処理を終える（Ｓ１４１４）。
【００７９】
ここで、図１８（Ｃ）を参照して本右シフト処理における表示形態について説明する。
例えば、図１８（Ｂ）の表示状態において「終端」アイコンと「レベル」アイコンの双方の表示枠内がオフ表示中に「シフト」アイコンが右クリック操作されると、データエリア番号「２」に時間データ「０」とレベルデータ「０」が挿入され、これらに後続するデータは夫々一つ後方にシフトする。
次に、このデータエリア番号「２」の新たな時間データ「０」とレベルデータ「０」の挿入に伴い、データ表示欄１７０５内の数値と波形１７０２の描画は更新され、このデータエリア番号「２」枠内に新たなデータを挿入することが可能となる。
【００８０】
次に、「終端」アイコンの表示枠内がオン表示状態で、「レベル」アイコンの表示枠内がオフ表示状態にあるときの左シフト処理動作について説明する。
先ず「シフト」アイコンが左クリック操作される時点において、図１１中Ｓ１１０５の処理で「終端」アイコンの表示枠の状態を表わすフラグＥＮＤＦがオフを示す「０」であれば、図１２中Ｓ１２０１の処理に進み時間データの終端のエリアＴＩＭＥ（ＭＥ）とレベルデータの終端のエリアＬＥＶＥＬ（ＭＥ）に、夫々「０」がストアされているか否かを判定する。
【００８１】
ここで、ＴＩＭＥ（ＭＥ）とＬＥＶＥＬ（ＭＥ）に、夫々「０」がストアされていれば、ワークエリアＴＷにストアされているデータエリア番号の値を一つ減らして（Ｓ１２０２）、このＴＷがデータエリア番号の先頭を示す「１」に達したか否かを判定する（Ｓ１２０３）。
【００８２】
このＴＷが「１」に達しなければ、再びＳ１２０１の処理に戻って時間データのエリアとレベルデータのエリア全てに亘って、データがストアされているか否かを検証する。
ここで、Ｓ１２０１の処理で、時間データのエリアとレベルデータのエリアの何れかにデータがストアされている場合、或いはＳ１２０３の処理でワークエリアＴＷにストアされている値が「１」を示す場合は、次に「レベル」アイコン内の表示状態を示すフラグＬＥＶＥＬＦがオフを示す「０」であるか否かを判定する（Ｓ１２０４）。
【００８３】
このＬＥＶＥＬＦが「０」を示す値であれば、アドレスポインタＮに示される値とワークエリアＴＷにストアされている値を比較して不一致であるか否かを判定する（Ｓ１２０５）。
このアドレスポインタＮに示される値とワークエリアＴＷにストアされているデータエリアの終端番号を示す値が不一致であれば、時間データのエリアＴＩＭＥ（Ｎ＋１）にストアされている値をＴＩＭＥ（Ｎ）に上書きする（Ｓ１２０６）。
【００８４】
そして、アドレスポインタＮをインクリメントして、時間データの記憶位置を夫々一つ前方にシフトするためＳ１２０５の処理に戻る（Ｓ１２０７）。
このＳ１２０５の処理で、アドレスポインタＮに示される値とワークエリアＴＷにストアされているデータエリアの終端番号を示す値が不一致でなくなると、時間データの終端番号のひとつ前であるＴＩＭＥ（ＴＷ−１）のエリアに「０」を上書きして、「終端」のデータを固定する場合における時間データの記憶位置を夫々一つ前方にシフトする処理を終える（Ｓ１２０８）。
【００８５】
次に、「終端」アイコンの表示枠内がオン表示状態で、「レベル」アイコンの表示枠内がオフ表示状態にあるときの右シフト処理動作について説明する。
【００８６】
先ず、「シフト」アイコンが右クリック操作される時点において、図１３中Ｓ１３０５の処理で、「終端」アイコンの表示枠の状態を示すフラグのＥＮＤＦが「１」を示すものであって、且つＳ１３０６の処理で「レベル」アイコンの表示枠の状態を示すフラグＬＥＶＥＬＦが「０」を示すものであれば、時間データのＴＩＭＥ（Ｎ）のエリアにストアされているデータ値を、ＴＩＭＥ（Ｎ＋１）のエリアに上書きしてから（Ｓ１３０７）、アドレスポインタＮをデクリメントする（Ｓ１３０８）。
【００８７】
次に、このアドレスポインタＮがデータシフトを対象とする記憶位置をストアするワークエリアＮＷの示す番号に達したか否かを判定し（Ｓ１３０９）、ＮＷの示す番号に達しなければＳ１３０７の処理に戻って時間データの記憶エリアを一つ後方にシフトする処理を再実行する。
【００８８】
このアドレスポインタＮがデータシフトを対象とする記憶位置に対応するデータエリア番号に達すると、この時間データの内で右シフトが指定された記憶エリアに「０」を書き込み（Ｓ１３１０）、これで時間データの記憶位置を順次一つ後方にシフトする処理を終了する。
この後、Ｓ１３１２の処理に進み以下、レベルデータの右シフト処理を実行していく。
【００８９】
ここで、レベルデータの右シフト処理について説明する。
先ず、レベルデータの右シフト処理データエリアの終端番号「８」をストアするワークエリアＴＷの２つ前の値である「６」をアドレスポインタＮに書き込む（Ｓ１３１２）。
次に、レベルデータのエリアＬＥＶＥＬ（Ｎ）にストアされている値をＬＥＶＥＬ（Ｎ＋１）に上書きしてから（Ｓ１３１３）、アドレスポインタＮをデクリメントする（Ｓ１３１４）。
【００９０】
次に、このアドレスポインタＮの示す値が右シフト指定されたデータエリア番号をストアするワークエリアＮＷの示す値に達したか否かを判定し（Ｓ１３１５）、ワークエリアＮＷの示す値に達しなければＳ１３１３の処理に戻ってレベルデータの記憶エリアを一つ後方にシフトする処理を再実行する。
このアドレスポインタＮの示す値がワークエリアＮＷの示す値に達すると、右シフト指定されたデータエリア番号をストアするレベルデータのエリアＮに「０」を書き込み（Ｓ１３１６）、これで時間データ及びレベルデータの記憶位置を順次一つ後方にシフトする本処理を終了する。
【００９１】
ここで、本右シフト処理の表示形態について図１９（Ｂ）を参照して説明する。
例えば、図１９（Ａ）の初期表示状態において、「終端」アイコンの表示枠内がオン表示中で、且つ「レベル」アイコンの表示枠がオフのときに「シフト」アイコンで右クリック操作がなされると、データエリア番号「２」に時間データ「０」とレベルデータ「０」が挿入され、これらに後続するデータは夫々一つ後方にシフトする。
しかしながら、データエリア番号の「終端」に相当する「７」番目の時間データの表示枠内に「２０」が入っているので、この「終端」の時間データ「２０」とレベルデータ「０」はシフトされず、データ表示位置が固定状態となる。
これより前に配列されているデータエリア番号「２」番〜「５」番までの時間データとレベルデータは後方にシフトされ、「６」番の時間データとレベルデータは削除される。
そして、表示画面にこの更新されたデータ表示欄１７０５内の数値に基づいて波形１７０２が描画される。
【００９２】
次に、「レベル」アイコンの表示枠内がオン表示状態にあり、且つ「終端」アイコンの表示枠内がオフ表示状態にあるときの、左シフト処理動作について説明する。
先ず、「シフト」アイコンが左クリック操作される時点において、図１１中Ｓ１１０５の処理で、「終端」アイコンの表示枠内の状態を示すフラグＥＮＤＦが「０」を示すもので、且つＳ１１０６の処理で「レベル」アイコンの表示枠内の状態がオフを示すフラグＬＥＶＥＬＦが「０」を示していなければ、ワークエリアＮＷにストアされているデータエリア番号をアドレスポインタＮに書き込み（Ｓ１１１２）、以下、レベルデータの左シフト処理を順次実行していく。
このレベルデータの左シフト処理Ｓ１１１２〜Ｓ１１１６については前述したので説明は省略する。
【００９３】
この左シフト処理の表示形態について、図２０（Ｃ）を参照して説明する。
例えば、図２０（Ａ）の初期表示状態にあるとき、つまり「レベル」アイコンの表示枠内がオン表示中で、且つ「終端」アイコンの表示枠内がオフ表示中に「シフト」アイコン１７０７に左クリック操作がなされると、一連の時間データは全くシフトしないが、データエリア「２」番〜「５」番までの表示枠に表示されているレベルデータは、夫々一つ左側の表示枠にシフトされ、データエリア番号２番のレベルデータは削除され、これに後続するレベルデータがデータエリア番号２番〜４番の表示枠に表示される。
そして、データエリア番号５番のレベルデータの表示枠にはデータエリア番号６番の「０」がシフトされる。
これに続いて、表示画面にこの更新されたデータ表示欄１７０５内の数値に基づいて波形１７０２が描画される。
【００９４】
次に、「レベル」アイコンの表示枠内がオン表示状態にあり、且つ「終端」アイコンの表示枠内がオフ表示ときの、右シフト処理動作について説明する。
先ず、「シフト」アイコンが右クリック操作される時点において、図１３中Ｓ１３０５の処理で「終端」アイコンの表示枠の状態を表わすフラグＥＮＤＦがオンを示す「１」になっておらず、且つ図１４中Ｓ１４０５の処理で「レベル」アイコンの表示枠の状態を表わすフラグＬＥＶＥＬＦがオフを示す「０」でなければ、以下、レベルデータの右シフト処理に進み、Ｓ１４１０〜Ｓ１４１４を順次実行する。
このレベルデータの右シフト処理Ｓ１４１１〜Ｓ１４１４については前述したので説明は省略する。
【００９５】
ここで、本右シフト処理の表示形態について図２０（Ｂ）を参照して説明する。
例えば、図２０（Ａ）の初期表示状態において「レベル」アイコンの表示枠内がオン表示中で、且つ「終端」アイコンの表示枠内がオフ状態にあるときに、「シフト」アイコン１７０７に右クリック操作がなされると、データエリア番号２番〜６番までの表示枠に表示されている時間データは全くシフトしないが、データエリア番号２番〜５番までの表示枠に表示されているレベルデータは、夫々一つ右側の表示枠にシフトされる。
そして、データエリア番号２番のレベルデータの表示枠には「０」が表示される。
これに続いて、表示画面にこの更新されたデータ表示欄１７０５内の数値に基づいて波形１７０２が描画される。
【００９６】
次に、「レベル」アイコンと「終端」アイコンの双方のアイコン表示枠内がオン表示状態にあるときの左シフト処理動作について説明する。
「シフト」アイコンが左クリック操作される時点において、図１１中Ｓ１１０５の処理で「終端」アイコンの表示状態を示すフラグＥＮＤＦがオフを表わす「０」を示しておらず、且つ図１２中Ｓ１２０４の処理で「レベル」アイコンの表示状態を示すフラグＬＥＶＥＬＦがオフを表わす「０」を示していないときは、データエリアの番号をストアするワークエリアＮＷ内の値をアドレスポインタＮにストアする（Ｓ１２０９）。
【００９７】
そして、アドレスポインタＮに示される値とワークエリアＴＷにストアされている値を比較して不一致であるか否かを判定する（Ｓ１２１０）。
このアドレスポインタＮに示される値とワークエリアＴＷにストアされているデータエリアの終端番号を示す値が不一致であれば、レベルデータのエリアＬＥＶＥＬ（Ｎ＋１）にストアされている値をＬＥＶＥＬ（Ｎ）に上書きする（Ｓ１２１１）。
そして、アドレスポインタＮをインクリメントして、レベルデータの記憶位置を夫々一つ前方にシフトするためＳ１２１０の処理に戻る（Ｓ１２１２）。
【００９８】
このＳ１２１０の処理で、アドレスポインタＮに示される値とワークエリアＴＷにストアされているデータエリアの終端番号を示す値が不一致でなくなると、レベルデータの終端番号のひとつ前であるＬＥＶＥＬ（ＴＷ−１）のエリアに「０」を上書きして、「終端」の記憶位置にストアされている時間データとレベルデータをシフトしないように固定した場合において、「終端」より前の記憶位置に記憶されている時間データとレベルデータに対して、夫々の記憶位置を一つ前方にシフトする処理を終える（Ｓ１２１３）。
【００９９】
次に、「終端」アイコンと「レベル」アイコンの双方がオン表示状態にあるときの右シフト処理の動作について説明する。
「シフト」アイコンが右クリック操作される時点において、図１３中Ｓ１３０５の処理で「終端」アイコンの表示状態を示すフラグＥＮＤＦがオンを表わす「１」を示し、且つＳ１３０６の処理で「レベル」アイコンの表示状態を示すフラグＬＥＶＥＬＦがオフを表わす「０」を示していないときは、レベルデータの右シフト処理に移行する。
このレベルデータの右シフト処理（Ｓ１３１２〜Ｓ１３１６）については、先述したので説明は省略する。
【０１００】
上述の如く、本発明の左シフト処理では、予めデータエリア番号枠上の何れかをクリックした後に「シフト」アイコンを左クリックすると、このデータエリア番号枠に対応するデータエリアに新たなデータを挿入するため「０」が書き込まれ、これに後続するデータは記憶位置が夫々一つ前方にシフトする。
【０１０１】
また、「終端」アイコンの表示枠がオン表示していないときに、「シフト」アイコンに左クリック操作がなされると、当該シフト指定されていたデータエリア番号に対応する時間データとレベルデータの双方のデータは削除され、これに後続する夫々のデータの記憶位置が一つ前方にシフトされるが、終端の記憶位置にストアされている時間データとレベルデータの夫々には「０」が書き込まれて波形の終了を示すことになる。
【０１０２】
また、「終端」アイコンの表示枠がオン表示しているときに、「シフト」アイコンに左クリック操作がなされると、当該シフト指定されていたデータエリア番号に対応する時間データとレベルデータの双方のデータは削除され、これに後続する夫々のデータの記憶位置が一つ前方にシフトされるが、終端の記憶位置にストアされている一つ前の時間データとレベルデータの夫々に「０」のデータが書き込まれて、終端位置にストアされている時間データとレベルデータはシフトされない。
更に、「シフト」アイコンを左クリックするときに、「レベル」アイコンの表示枠がオン状態であると時間データの記憶位置はシフトすることなく、シフト指定されたデータエリア番号に対応するレベルデータのみ削除して、これに後続するレベルデータの記憶位置が前方にシフトされる。
【０１０３】
また、本発明の右シフト処理では、「終端」アイコンの表示枠と「レベル」アイコンの表示枠がオフ表示のときに、「シフト」アイコンに右クリック操作がなされると、時間データとレベルデータは右シフトが指定されたデータエリア番号に対応するデータエリアに「０」が夫々挿入されて、これに後続する各データの記憶位置が夫々一つ後方にシフトする。
この各データの記憶位置のシフト処理に伴い、データ表示欄に表示される時間データ、及びレベルデータの表示位置も後方に夫々一つ移動してグラフィック表示に反映される。
【０１０４】
また、「終端」アイコンの表示枠のみがオン状態にあるときに、「シフト」アイコンに右クリック操作がなされると、時間データとレベルデータの何れかの終端のデータエリア番号に対応する双方のデータ表示は共にシフト動作は禁止され、表示位置は変化しないで保持される。
【０１０５】
また、「終端」アイコンの表示枠内の表示がオンからオフに代わっているときに、右シフトクリック操作がなされるとデータエリアの終端番号「８」に対応してストアされている時間データとレベルデータは、この「終端」のデータをシフト禁止する状態が解除されているので、終端番号「８」に対応する記憶位置にはデータエリア番号「７」に対応して記憶されているデータが夫々上書きされ、このシフトされたデータ値がデータエリア番号「８」の表示枠内に表示される。
【０１０６】
ここで、図１８（Ａ）〜図２０（Ｃ）に示す表示形態を参照して、本発明の波形データ編集装置が楽音に与える影響について捕捉説明する。
本発明の実施形態では、波形データを編集する際に時間データとレベルデータの各記憶位置の先頭「１」番目にストアされているデータを基準点として、この「１」番目のデータはシフトさせないようにしている。
また、データエリア番号の表示枠「１」〜「８」に対して、マウス１０６でクリック操作しない場合におけるデータシフト処理、及び波形描画処理を示したものである。
また、予めデフォルトとして設定されているデータエリア番号「２」番に対応する記憶位置「２」番がシフト指定となって、「シフト」アイコンにクリック操作がなされると、この記憶位置にストアされているデータを削除したり、或いは新たに空白のデータエリアが挿入されて、これに後続する既存のデータをシフトするようにしている。
【０１０７】
図１８（Ａ）〜図２０（Ｃ）の表示形態に示すように楽音を構成する波形データは、レベルデータと時間データとから成り、このレベルデータは楽音の音色に影響を与え、時間データはタイミング、及び演奏時間に直接影響する。
また、楽音発生装置１０７で生成される楽音は複数種類の音色からなり、これらの楽音のデータを夫々編集する場合、定められた演奏時間内に納まるようこれらの複数種類の楽音を同期させる必要がある。
この楽音の音色や特性を変更する場合は、レベルデータに対して挿入・削除など編集作業を加えることがあるが、時間データを変更すると他の楽音と同期が取れなくなるのでこれを回避する必要がある。
また、一般的に楽音のエンベロープ波形は、ＡＤＳＲ（Ａ；アタック、Ｄ；ディケイ、Ｓ；サスティン、Ｒ；リリース）からなり、特に発音開始直後のアタック部分におけるレベルの大小による影響が音色に大きな影響を与えることが知られている。
【０１０８】
本発明は、このような電子楽器の楽音の編集に鑑みて、発音開始直後のアタック部分において重点的に波形編集される頻度が多いことに着目したものである。
本発明の実施形態によれば、図１８（Ａ）〜図１８（Ｃ）に示されているように、アタック部分のデータエリア「２」番目に対してデータの挿入・削除したとしても、これに後続するデータを左・右シフトするとともにデータエリア番号「１」番〜「８」番までのトータル時間は一定となるように構成されている。
このような構成にすることによって、編集すべきデータに対してのみ挿入・削除するだけで、これに後続して記憶されているデータの記憶位置をシフトするので編集作業を効率よく行え、他の楽音と同期することができる。
【０１０９】
また、図１９（Ａ）〜図１９（Ｃ）の表示形態は、「終端」のデータエリアにストアされているデータを保持して、楽音の一定の長さ範囲内で波形を編集することを表わしたものである。
この構成によれば楽音波形の先端のデータから終端のデータまでのトータル時間を一定に保持して波形編集することができるので、発音される楽音は他の楽音とズレることなく同期した演奏が可能となる。
【０１１０】
次に、図２０（Ａ）〜図２０（Ｃ）に示す表示形態は、発音時間のデータの記憶位置は全くシフトすることなく保持して、レベルデータに対してのみ挿入・削除などの編集するとともに、これに後続するレベルデータの記憶位置をシフトすることを示したものである。
このような構成にすることによって、当該音色のみを変化させて発音される楽音は他の楽音と同期することができる。
【０１１１】
尚、本発明の構成として、表示画面上でマウスを用いて時間データの入力、レベルデータの入力、及び各種アイコン表示枠に対してクリック操作するようにしたが、これに代わってスイッチ群に設けた操作子を用いてもよい。
【０１１２】
また、本発明の構成として、表示画面上に表示されるデータエリア番号に対応するデータの表示枠数を「１」番〜「８」番までとしたが、これに限らず表示画面に表示しきれないデータ表示欄、及び波形データに対してはスクロール表示できるようにしてもよい。
【０１１３】
また、本発明の構成として、表示画面上に表示されるデータエリア番号に対応するデータは、時間データとレベルデータを一組として表示するようにしたが、１画面中に複数組のデータを表示するようにしてもよい。
更に、本発明の構成は、波形データの編集として楽音波形に限定されることなく、波形の種類、波形の特性、及び波形の用途に関わらず多様な波形編集に利用可能である。
【０１１４】
また、上記実施の形態で説明した動作手順をプログラム化し、コンピュータに実行させることにより実施できる。その際、コンピュータプログラムはハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【０１１５】
【発明の効果】
以上詳述したように、本発明は、時間データ・レベルデータからなる各複数のデータの中から編集を必要とする記憶位置のデータに対してのみ挿入・削除など、最小限の編集操作をするだけで、これに後続して記憶されている一連のデータの書き換え作業を要することなく容易に更新することができる。
また、データ編集の際に一連の時間データにおいて、記憶位置の先頭のデータから終端のデータまでのトータル時間を変化しないようにすることもできる。
更に、各時間データの記憶位置をシフトすることなく現状の記憶位置を保持させておいて、何れかのレベルデータを削除したり、或いは新たなデータを挿入できるようにして、これに後続するデータの記憶位置のみをシフトすることもできる。
【図面の簡単な説明】
【図１】本発明の全体構成を示すブロック図である。
【図２】図１に示したＲＡＭの記憶領域におけるデータ構成を示す。
【図３】本発明の波形データ編集装置におけるメインフローチャートを示す。（その１）
【図４】本発明の波形データ編集装置におけるメインフローチャートを示す。（その２）
【図５】図３に示した表示処理の詳細なフローチャートを示す。
【図６】図５に示した描画処理の詳細なフローチャートを示す。
【図７】図３に示した時間加算処理の詳細なフローチャートを示す。
【図８】図４に示した時間減算処理の詳細なフローチャートを示す。
【図９】図３に示したレベル加算処理の詳細なフローチャートを示す。
【図１０】図４に示したレベル減算処理の詳細なフローチャートを示す。
【図１１】図３に示した左シフト処理の詳細なフローチャートを示す。（その１）
【図１２】図３に示した左シフト処理の詳細なフローチャートを示す。（その２）
【図１３】図４に示した右シフト処理の詳細なフローチャートを示す。（その１）
【図１４】図４に示した右シフト処理の詳細なフローチャートを示す。（その２）
【図１５】図３に示した終端アイコン処理の詳細なフローチャートを示す。
【図１６】図３に示した「レベル」アイコン処理の詳細なフローチャートを示す。
【図１７】本発明の初期画面における表示枠を示す。
【図１８】（Ａ）、（Ｂ）及び（Ｃ）は本発明の第１の表示形態を示す。
【図１９】（Ａ）及び（Ｂ）は本発明の第２の表示形態を示す。
【図２０】（Ａ）、（Ｂ）及び（Ｃ）は本発明の第３の表示形態を示す。
【符号の説明】
１０１  ＣＰＵ
１０２  ＲＯＭ
１０３  ＲＡＭ
１０４  表示装置
１０５  スイッチ群
１０６  マウス
１０７  楽音発生装置
【図１】
2005043478.tif 000003
【図２】
2005043478.tif 000004
【図３】
2005043478.tif 000005
【図４】
2005043478.tif 000006
【図５】
2005043478.tif 000007
【図６】
2005043478.tif 000008
【図７】
2005043478.tif 000009
【図８】
2005043478.tif 000010
【図９】
2005043478.tif 000011
【図１０】
2005043478.tif 000012
【図１１】
2005043478.tif 000013
【図１２】
2005043478.tif 000014
【図１３】
2005043478.tif 000015
【図１４】
2005043478.tif 000016
【図１５】
2005043478.tif 000017
【図１６】
2005043478.tif 000018
【図１７】
2005043478.tif 000019
【図１８】
2005043478.tif 000020
【図１９】
2005043478.tif 000021
【図２０】
2005043478.tif 000022