(57)【要約】【課題】  従来の波形データ編集装置は、波形上の任意の区間内で直接ユーザー自身によってこの波形を所望の形態に変形させることは出来なかった。  そのため所望の波形に編集する場合は再度波形の先頭から順に波形データを再入力していくことになるので、この波形が完成するまでに労力と時間がかかるという問題があった。【解決手段】  本発明は、全体波形上の何れかに前点と後点からなる波形編集区間を指定する構成と、この区間内でユーザーの所望とする波形に変更する構成とを設けたもので、この構成によって波形上の任意に指定した区間内で波形を編集できるようにすることが可能である。【選択図】  図１８
2005128295.tif 000002
【特許請求の範囲】
【請求項１】
編集すべき波形データを記憶する波形記憶手段と、
前記波形記憶手段に記憶された波形データを画面上に表示させる表示制御手段と、
前記画面に表示された波形データ上に編集すべき波形区間を設定するための編集開始点及び編集終了点を指定する設定手段と、
前記設定手段にて設定された波形区間に対応する編集用波形データを生成する編集用波形データ生成手段と、
前記設定手段にて設定された波形区間に含まれる波形データに代えて、前記編集用用波形データ生成手段にて生成された編集用波形データを前記波形記憶手段に記憶させる波形変更手段と、
を有することを特徴とする波形データ編集装置。
【請求項２】
前記編集用波形データ生成手段は、前記設定手段にて設定された波形区間に含まれる波形データを変更して編集用波形データを生成することを特徴とする請求項１記載の波形データ編集装置。
【請求項３】
前記設定手段は、前記編集用波形データ生成手段により編集用波形データを生成した後に、前記編集開始点及び編集終了点の少なくともいずれか一方を再指定できることを特徴とする請求項１記載の波形データ編集装置。
【請求項４】
前記編集用波形データ生成手段は、前記波形記憶手段に記憶されている波形データのうち、前記設定手段にて設定された波形区間に含まれない波形データの少なくとも一部を編集用波形データとして用いることを特徴とする請求項１記載の波形データ編集装置。
【請求項５】
波形記憶手段に記憶された波形データを画面上に表示させるステップと、
前記画面に表示された波形データ上に編集すべき波形区間を設定するための編集開始点及び編集終了点を指定するステップと、
前記設定された編集区間に対応する編集用波形データを生成するステップと、前記設定された波形区間に含まれる波形データに代えて、前記生成された編集用波形データを前記波形記憶手段に記憶させるステップと、
からなる波形データ編集プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、波形データ編集装置及び波形データ編集プログラムに関するものである。
【背景技術】
【０００２】
従来から予め記憶された波形の形状を変更する等の編集を行う方法は種々提案されている。例えば、記憶された波形の形状を画面上に表示させ、この表示された波形上の所定区間を指定し、この区間内にある波形を時間軸上の所定方向にシフトするとともにこのシフトによって波形データの存在しない部分は補間し、或いは別の波形の一部分をコピーする等が行える波形データ編集装置が提案されている。（例えば、特許文献１、特許文献２参照）
【０００３】
【特許文献１】特開平６−１３１８５２号公報（第１頁〜第８頁、図１〜図４）
【特許文献２】特開平８−１６２７３号公報（第１頁〜第７頁、図１〜図６）
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来の波形データ編集装置は、波形上の任意の区間内で直接ユーザー自身によって直接この波形を所望の形態に変形させることは出来なかった。
このような従来の波形データ編集装置では、所望の波形に編集する場合は再度この波形の先頭から順に波形データを再入力していくことになるので、この波形が完成するまでに労力と時間がかかるという問題があった。
【課題を解決するための手段】
【０００５】
請求項１に係る発明においては、編集すべき波形データを記憶する波形記憶手段と、前記波形記憶手段に記憶された波形データを画面上に表示させる表示制御手段と、前記画面に表示された波形データ上に編集すべき波形区間を設定するための編集開始点及び編集終了点を指定する設定手段と、前記設定手段にて設定された波形区間に対応する編集用波形データを生成する編集用波形データ生成手段と、前記設定手段にて設定された波形区間に含まれる波形データに代えて、前記編集用用波形データ生成手段にて生成された編集用波形データを前記波形記憶手段に記憶させる波形変更手段と、を具備することを特徴とする。
このような構成にすることによって、波形上に指定された波形編集区間内で、ユーザーの所望とする波形に変更することができる。
【０００６】
請求項２記載の編集用波形データ生成手段は、前記設定手段にて設定された波形区間に含まれる波形データを変更して編集用波形データを生成するようにしてもよい。
【０００７】
請求項３記載の設定手段は、前記編集用波形データ生成手段により編集用波形データを生成した後に、前記編集開始点及び編集終了点の少なくともいずれか一方を再指定できるようにしてもよい。
【０００８】
請求項４記載の編集用波形データ生成手段は、前記波形記憶手段に記憶されている波形データのうち、前記設定手段にて設定された波形区間に含まれない波形データの少なくとも一部を編集用波形データとして用いるようにしてもよい。
【０００９】
本発明は、請求項５に記載のように、上記各手段の動作手順をプログラム化し、コンピュータに実行させることにより実施できる。その際、コンピュータプログラムはハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【発明の効果】
【００１０】
本発明の波形データ編集装置は、編集すべき波形上の何れかに指定した２点間の波形編集区間内で、ユーザーの所望とする波形に変更することができるという効果を奏する。
【発明を実施するための最良の形態】
【００１１】
波形上の何れかに指定した波形編集区間内でこの波形を編集できるようにすることである。
【００１２】
（実施例１）
図１は、本発明の実施形態における波形データ編集装置の全体構成例を示すブロック図である。
本実施形態の波形データ編集装置は、電子楽器に適用した場合を例にあげている。
そして、 本実施形態の編集すべき波形としてエンベロープを一例として説明するものである。
ＣＰＵ１０１は、バスライン１０７を介してこの波形データ編集装置を構成する後述の各回路、装置に接続され、各種データを授受して全体の機能を統制する。
【００１３】
ＲＯＭ１０３は、ＣＰＵ１０１において、定められた手順に従い各種機能の処理を実行するためのプログラムを記憶している。
【００１４】
ＲＡＭ１０４は、一時的に各種データをストアする複数のデータエリアと、後述する処理に用いられる各種変数を記憶するワークエリアを有する。
次に、表示装置１０５は、例えば、ドットマトリックス表示画面を有する液晶表示装置からなり、コピー、クリア、キャンセル、前点、後点、完了など、各種アイコンなどを表示するとともに、エンベロープ波形を表示する。
操作子群１０２は、複数のスイッチから成り、電源をオンオフする電源スイッチ、データなどを入力する各種キーボタン、表示装置１０５の表示画面上で各種アイコン操作に用いるマウス、及び複数の演奏操作子などが設けられている。
【００１５】
楽音発生装置１０６は、音源回路、増幅器、スピーカーから構成されており、ＣＰＵ１０１からの楽音生成指示に基づいて、楽音信号を生成してこの楽音信号を増幅してスピーカーより発音する。
【００１６】
次に、ＲＡＭ１０４内のデータ構成の詳細について第２図を参照して説明する。
エンベロープ波形データのエリアとして、全体エンベロープ波形のデータをストアするエリアＥＮＶＤＡＴＡと、この全体エンベロープ波形の一部分を編集するための別波形のデータエリアＥＮＶＢＤＡＴＡが設けられている。
【００１７】
そして、全体エンベロープ波形上に波形編集区間として指定される前点と後点の２点の位置データをストアするエリアＡＰｏｉｎｔとエリアＢＰｏｉｎｔが設けられている。
また、全体エンベロープ波形上に設けられた波形編集区間内に別波形をコピーするために、このコピー開始位置を示すデータをストアするエリアＦｃｏｐｙが設けられている。
【００１８】
そして、エリアＥＮＶＤＡＴＡには全体エンベロープ波形の各レベル値を示すデータＥＮＶ（０）〜ＥＮＶ（Ｎ）が時系列にストアされる。
次に、データエリアＥＮＶＢＤＡＴＡには、編集用として生成される別波形の各レベル値を示すデータＥＮＶＢ（０）〜ＥＮＶＢ（Ｍ）が時系列にストアされる。
【００１９】
次に、本発明の基本処理について図３、図４及び図１７を参照して説明する。
先ず、操作子群１０２内に設けられている電源スイッチがオンされると、ＣＰＵ１０１は本波形データ編集装置全体の各回路を初期設定する（Ｓ３０１）。
そして、表示装置１０５内の表示画面上に枠画面を表示する（Ｓ３０２）。
【００２０】
この枠画面は、図１７に示すようにエンベロープ波形を表示する波形表示エリア１７０１と各種アイコンを表示するアイコン表示エリア１７０２からなる。
波形表示エリア１７０１は、エンベロープ波形を表示するための横軸と縦軸からなる座標を有しており、横軸は表示されるエンベロープ波形の時間進行の位置を指し示す最小時間単位のスケールである。
そして、縦軸はエンベロープ波形のレベル値を所定単位で指し示すスケールである。
次に、アイコン表示エリア１７０２には、下記の６つのアイコンが表示される。
クリアアイコン１７０４は、ＲＡＭ１０４内にストアされているエンベロープ波形データをクリアするとともに波形表示エリア１７０１に表示中のエンベロープ波形を消去するときに操作されるアイコンである。
【００２１】
キャンセルアイコン１７０５は、全体エンベロープ波形の一部分の区間を編集しているときに、この編集中の別波形のエンベロープ波形データをキャンセル（消去）するときに操作されるアイコンである。
次に、前点アイコン１７０６は、全体エンベロープ波形の一部分の区間に対して波形編集する場合に、この波形編集区間の前方側端部の位置を指定するアイコンである。
これに対して、後点アイコン１７０７は、前点指定後、波形編集区間の後方側端部の位置を指定するアイコンである。
次に、コピーアイコン１７０３は、ユーザーの所望とする別のエンベロープ波形のデータをコピー元として、これを波形編集区間内に上書きコピーするアイコンである。
【００２２】
次に、完了アイコン１７０８は、全体エンベロープ波形上に指定された波形編集区間内での波形編集が完了して、これを新たな全体エンベロープ波形としてデータを更新するアイコンである。
【００２３】
ここで図３の基本処理に戻る。
枠画面が表示されると、次に、波形表示エリア１７０１内において今回クリック操作される直前の横軸上の座標値をストアするエリアＦＸと、これに対応した縦軸上の座標値をストアするエリアＦＹと、今回クリック操作された座標値をストアするエリアＸに夫々「０」をセットする（Ｓ３０３）。
それから、波形表示エリア１７０１内の何れかでクリック操作されたか否か（Ｓ３０４）、或いはアイコン表示エリア１７０２内の何れかのアイコンがオンクリックされたか否かを順次チェックしていく（Ｓ３０６、Ｓ３０８、Ｓ３１０、Ｓ４０１、Ｓ４０３、Ｓ４０５）。
【００２４】
ここで、波形表示エリア１７０１内の何れかでクリック操作されたことが検出されると、これに対応したクリック処理が実行される（Ｓ３０５）。
一方、クリアアイコン１７０４のオンが検出されるとクリア処理が実行され（Ｓ３０７）、キャンセルアイコン１７０５のオンが検出されるとキャンセル処理が実行され（Ｓ３０９）、コピーアイコン１７０３のオンが検出されるとコピー処理が実行される（Ｓ３１１）。
また、前点アイコン１７０６のオンが検出されると前点決定処理が実行され（図４のＳ４０２）、後点アイコン１７０７のオンが検出されると後点決定処理が実行され（図４のＳ４０４）、完了アイコン１７０８のオンが検出されると完了処理が実行される（図４のＳ４０６）。
【００２５】
この表示画面上の何れかでクリック操作されたことが検出されて、これに対応する処理の実行が終了した場合、及び表示画面上の何れでも全くクリック操作されていないことが検出された場合は、図３中Ｓ３０４の処理に戻って、再び次のクリック操作の検出処理を行う。
このように、基本処理では表示画面上の何れかでクリック操作されたことが検出されると、このクリック操作に応じた各種処理を実行している。
【００２６】
＜クリック処理＞
次に、図３中のクリック処理Ｓ３０５の動作について、図５〜図９及び図１８〜図２１を参照して説明する。
＜全体波形生成のためのクリック処理について＞
先ず、波形表示エリア１７０１内で全体波形を生成するためにクリック操作された場合の処理動作について説明する。
この波形表示エリア１７０１内の何れかでクリック操作されると、このクリック座標に対応する横軸上の時間値と縦軸上のレベル値を検出する。そして、ＲＡＭ１０４内のエリアＸに検出された時間値をストアし、エリアＹにレベル値をストアする（Ｓ５０１）。
【００２７】
次に、フラグＳＦがエンベロープ波形の波形編集区間である前点・後点の指定終了を示す「０」を示すものであるか否かを判定する（Ｓ５０２）。
このフラグＳＦが「０」を示していると、今回のクリック操作によってエリアＸにストアされた横軸上の座標値がこれより前にクリックされた座標値をストアするエリアＦＸの値より大きいか否かを判定する（Ｓ５０３）。
【００２８】
ここで、エリアＸにストアされている横軸上の座標値がエリアＦＸにストアされている座標値より大きければ表示画面中において、横軸方向の位置指定に対応して所定時間単位でカウントするポインタｎに「０」をセットしてから（Ｓ５０４）、Ｓ５０５の処理に移行する。
一方、Ｓ５０２の処理でフラグＳＦが「０」を示していなければ、図７のＳ７０１に移行する。
また、Ｓ５０３の処理でエリアＸにストアされている今回クリックされた横軸上の座標値がエリアＦＸにストアされている前回クリックされた座標値より大きい値を示していなければ図６のＳ６０１の処理に移行する。
【００２９】
次に、ポインタｎに「０」がセットされると、波形表示エリア１７０１上で今回クリック操作された座標値と前回クリック操作された座標値に基づきポインタｎに対応して、下記直線補間の演算手法を用いて得られた縦軸方向の座標値をエリアｙにストアする（Ｓ５０５）。
ｙ＝ＦＹ＋ｎ×（Ｙ−ＦＹ）／（Ｘ−ＦＸ）
そして、波形表示エリア１７０１上の座標位置（ｙ，ＦＸ＋ｎ）をドット表示することによって、今回と前回にクリック操作された双方のポイント間が一本の線で結ばれて表示されていく（Ｓ５０６）。
【００３０】
次に、横軸方向の時間進行をカウントするポインタｎをインクリメントし（Ｓ５０７）、これまで横軸上で点灯表示の進行位置（ＦＸ＋ｎ）が当該表示画面上で今回クリック操作された横軸上の座標を示すエリアＸの位置まで達したか否かを判定する（Ｓ５０８）。
【００３１】
ここで、波形表示画面上の座標で波形表示の進行位置に相当するＦＸ＋ｎがエリアＸに示される座標値に達していなければ、再びＳ５０５の処理に戻って直線補間の演算手法を用いて波形表示を継続していく。
この波形表示画面上で波形表示の進行位置に相当するＦＸ＋ｎが今回クリックされたエリアＸに示される座標値に到達すると、エリアＸにストアされている座標値をエリアＦＸに上書きするとともに、エリアＹにストアされている座標値をエリアＦＹに上書きして（Ｓ５０９）、本クリック処理を終了する。
【００３２】
このように、本処理では波形表示エリア１７０１内でクリック操作すると、ＲＡＭ１０４内の全体エンベロープ波形データのエリアにストアされ、クリック操作される度にこれらの座標位置間を直線補間の演算手法を用いて順次一本の線で結んで波形表示していく。
【００３３】
＜前点決定処理について＞
ここで、図４中の前点決定処理（Ｓ４０２）の動作について、図１４を参照して説明する。
前点アイコン１７０６がオンされたにも関わらず、フラグＳＦがまだエンベロープ波形の編集が可能な状態になっていないことを示す「０」であるか否かを判定する（Ｓ１４０１）。
ここで、フラグＳＦが「０」を示すものであれば前点アイコンがオンされたことを示す「１」にセットしてから本処理を終了する（Ｓ１４０２）。
一方、フラグＳＦが「１」を示していれば本処理を終了する。
【００３４】
＜後点決定処理について＞
次に、図４中の後点決定処理（Ｓ４０４）の動作について、図１５を参照して説明する。
後点アイコン１７０７がオンされてから、フラグＦＦが前点アイコンオン状態を示す「１」であるか、或いはフラグＳＦがエンベロープ波形の編集が可能な状態を示す「１」であるか否かを判定する（Ｓ１５０１）。
ここでフラグＦＦ、ＳＦの何れかのフラグが「１」を示すものであれば、フラグＲＦに後点アイコンがオン状態を示す「１」にセットしてから本処理を終了する（Ｓ１５０２）。
一方、フラグＦＦとフラグＳＦの何れかが「１」を示すものでなければ本処理を終了する。
【００３５】
＜波形編集区間を決定するクリック処理について＞
次に、生成された全体波形に対して一部分を編集するため、当該波形の任意の前点と後点を決定するクリック処理及び、このクリック処理された前点と後点の各ポイントの表示処理、そしてこの波形編集区間の強調表示の処理について図６を参照して説明する。
先ず図５中のＳ５０３の処理において、波形表示エリア１７０１内でクリック操作後、今回のクリック操作された横軸上の座標を示すエリアＸの値が前回クリックされた座標の値より大きくない場合は、図６のＳ６０１の処理に進んでフラグＦＦが前点が決定していることを示す「１」であるか否か、且つフラグＲＦがまだ後点が決定していないことを示す「０」であるか否かを判定する。
【００３６】
そして、フラグＦＦが「１」を示すとともにフラグＲＦが「０」を示すものであれば今回クリック操作されたエリアＸの座標値を前点のポイント表示用としてエリアＡＰｏｉｎｔ（以下ＡＰと称す）に書き込むとともに、前点の座標値をエリアＡＸに書き込む（Ｓ６０２）。
そして、このエンベロープ波形の前点に対応する座標位置｛ＥＮＶ（ＡＰ），ＡＰ｝を点灯表示してから本処理を終了する（Ｓ６０３）。
【００３７】
一方、Ｓ６０１の処理でフラグＦＦが「１」であり且つフラグＲＦが「０」を示すものでなければ、次にフラグＦＦとフラグＲＦの双方が共に「１」を示すものであるか否か判定する（Ｓ６０４）。
このフラグＦＦとフラグＲＦの双方が共に「１」を示すものでなければ本処理を終了するが、フラグＦＦとフラグＲＦの双方が共に「１」を示すものであれば、今回クリックされた座標値をストアするエリアＸの値を後点の表示ポイントとしてエリアＢＰｏｉｎｔ（以下ＢＰと称す）に書き込むと共に、後点の座標としてエリアＢＸに書き込む（Ｓ６０５）。
そして、このエンベロープ波形の後点に対応する座標位置｛ＥＮＶ（ＢＰ），ＢＰ｝を点灯表示する（Ｓ６０６）。
【００３８】
次に、前点に対応する座標位置｛ＥＮＶ（ＡＰ），ＡＰ｝から後点に対応する座標位置｛ＥＮＶ（ＢＰ），ＢＰ｝の波形編集区間のエンベロープ波形を強調表示するため線色を替える（Ｓ６０７）。
その後、前点決定の有無状態を示すフラグＦＦと後点決定の有無状態を示すフラグＲＦに夫々「０」をセットする（Ｓ６０８）とともに、ＳＦフラグに前点・後点の指定終了を示す「１」をセットする（Ｓ６０９）。
【００３９】
次に、この前点の座標をストアするエリアＡＸの示す値を編集用エンベロープ波形の前点の座標としてエリアＦＳＸに書き込むとともに、この前点の縦軸上の座標値にあたるＥＮＶ（ＡＸ）を編集用エンベロープ波形の後点の座標としてエリアＦＳＹに書き込みして（Ｓ６１０）、本処理を終了する。
【００４０】
＜波形編集をするためのクリック処理について＞
次に、図５中のＳ５０２の処理でエンベロープ波形の波形編集区間である前点・後点の指定終了を示すフラグＳＦが「０」を示すものでない場合の波形編集処理動作について説明する。
このような場合は図７中のＳ７０１の処理に進んでエンベロープ波形データのコピー指示の有無を示すフラグＣＦがコピー指示されていない事を示す「０」であるか否かを判定する。
【００４１】
ここで、コピーフラグＣＦが「０」を示すものでなければ、図９中のＳ９０１の処理に移行するが「０」を示すものであればフラグＲＦが後点決定されていないことを示す「０」であるか否かを判定する（Ｓ７０２）。
このフラグＲＦが「０」を示すものでなければ、図８中のＳ８０１の処理に移行するが「０」を示すものであれば、クリックされた座標を示すエリアＸの値が前点の座標を示すエリアＦＳＸと後点の座標を示すエリアＢＸとの間に位置しているか否かを判定する（Ｓ７０３）。
【００４２】
ここで、今回クリックされた座標を示すエリアＸの値が前点の座標を示すエリアＦＳＸと後点の座標を示すエリアＢＸとからなる波形編集区間内に位置していれば、全体エンベロープ波形データのアドレスポインタｎに初期値を示す「０」をセットしてから（Ｓ７０４）、Ｓ７０５の処理に移行する。
一方、今回クリックされた座標を示すエリアＸの値がこの波形編集区間内に位置していなければ本処理を終了する。
【００４３】
Ｓ７０５の処理に移行すると、ＲＡＭ１０４にストアされているエンベロープ波形データを先頭から読み出して、下記直線補間の演算手法を用いて得られたエンベロープのレベル値をエリアｙにストアする。
ｙ  ←  ＦＳＹ＋ｎ×（Ｙ−ＦＳＹ）／（Ｘ−ＦＳＸ）
ここで得られたエリアｙのレベル値は時間進行の位置に対応して、編集用のエンベロープ波形のデータエリアＥＮＶＢ（ＦＳＸ＋ｎ）にストアされる（Ｓ７０６）。
【００４４】
次に、この時間進行位置を示すＦＳＸ＋ｎとエリアｙの示すレベル値のポイントを点灯表示する（Ｓ７０７）。
そして、エンベロープ波形上の時間進行位置を計るカウンタｎをインクリメントして（Ｓ７０８）、このＦＳＸ＋ｎの示す時間進行位置が今回クリックされた横軸上の位置に到達したか否かを比較する（Ｓ７０９）。
ここで、エンベロープ波形の表示を進行している位置がエリアＸに示される座標値の位置に達していなければ、再びＳ７０５の処理に戻り編集用エンベロープ波形データを読み出しながら波形編集区間内に表示していく。
そして、エンベロープ波形の表示進行位置がエリアＸに示される座標値に到達すると、波形編集区間内で次回クリックされる前点の座標を示すエリアＸの値をエリアＦＳＸにストアするとともに、エリアＹの値をエリアＦＳＹにストアして本処理を終了する（Ｓ７１０）。
このように、図７に示す処理では前点と後点に挟まれた波形編集区間において、新たにクリックされていくとこれらのポイントを変化点として夫々直線で結んで波形が表示されていく。
【００４５】
ここで、本処理に関わるエンベロープ波形上の表示例について図１８、図１９を参照して説明する。
図１８（Ａ）〜図１８（Ｃ）はＲＡＭ１０４内のデータエリアＥＮＶＤＡＴＡから全体エンベロープ波形データＥＮＶ（０）〜ＥＮＶ（Ｎ）が読み出されて、波形表示エリア１７０１上に全体エンベロープ波形１８０１が表示され、更に、ユーザーのアイコン操作によってこの全体エンベロープ波形上の一部分に波形編集区間が指定され、この波形編集区間内で波形が編集されて更新される状態を示すものである。
【００４６】
先ず図１８（Ａ）は、全体エンベロープ波形１８０１上に波形編集の開始位置を決定する前点１８０２がプロットされた状態を示す。
図１８（Ｂ）は、全体エンベロープ波形１８０１上に前点１８０２がプロットされた後、波形編集の終端位置とする後点１８０３がプロットされ、この前点１８０２と後点１８０３の区間が波形編集区間として強調表示された状態を示す。
【００４７】
図１８（Ｃ）は、前点１８０２と後点１８０３に挟まれた波形編集区間内に、更に３つのポイント（１８０４、１８０５、１８０６）を変化点として指定され、これらの変化点を夫々線で結んでこれを全体波形に反映して新たな全体エンベロープ波形１８７として表示させた状態を示すものである。
図１９は、波形表示エリア１７０１内において図１８（Ｃ）で示されたエンベロープ波形の編集作業の完了によって波形編集区間の強調表示を消去し、更新された全体エンベロープ波形１８０７の表示状態を示す。
【００４８】
＜波形を再編集するためのクリック処理について＞
ここで再び、図７中のＳ７０２の処理に戻って、後点アイコンの操作状態を示すフラグＲＦが「０」でない状態、即ち、前回の波形編集に続いて再び後点アイコンがオンされて再編集される場合の処理動作について説明する。
【００４９】
図８中のＳ８０１の処理に移行すると今回クリックされた座標を示すエリアＸの値が、前点の座標を示すエリアＦＳＸの値より大きく、前回クリックされた座標を示すエリアＦＸの値未満に位置するか否かを判定する。
ここで、今回クリックされた座標を示すエリアＸの位置がエリアＦＸの値とエリアＦＳＸの範囲内に位置していなければ本処理を終了するが、今回クリックされた座標を示すエリアＸの位置が、前点座標を示すエリアＦＳＸの値より大きく、前回クリックされた座標を示すエリアＦＸの値までの範囲内に位置していれば、先ず後点に相当する座標｛ＥＮＶ（ＢＸ），ＢＸ｝の点灯状態を消灯してから（Ｓ８０２）、今回プロットした座標を示すエリアＸの値が後点の座標を示すエリアＢＸの値より下回っているか否かを判定する（Ｓ８０３）。
【００５０】
この判定でエリアＸの値がエリアＢＸの値より小さければ、エンベロープ波形データ上の今回プロットされた座標位置｛ＥＮＶ（Ｘ），Ｘ｝から後点を示す座標位置｛ＥＮＶ（ＢＸ），ＢＸ｝を元の編集状態の表示に戻す（Ｓ８０４）。
しかし、今回プロットした座標を示すエリアＸの値が後点の座標を示すエリアＢＸの値より下回っていない状態、即ち今回のクリック座標が後点より後方側に指示された場合は、エンベロープ波形データ上の後点を示す座標位置｛ＥＮＶ（ＢＸ），ＢＸ｝からエンベロープ波形データ上の今回プロットされた座標位置｛ＥＮＶ（Ｘ），Ｘ｝までの波形編集区間が拡大変更され、再編集を可能とすることを強調表示するため特定の表示色に替える（Ｓ８０５）。
【００５１】
そして、今回プロットされた座標値を示すエリアＸの値を新たな後点の座標値としてエリアＢＸを更新する（Ｓ８０６）。
そして、この更新された後点の座標｛ＥＮＶ（ＢＸ），ＢＸ｝を点灯表示してから（Ｓ８０７）、後点アイコンの操作状態を示すフラグＲＦを「０」にセットして本処理を終了する（Ｓ８０８）。
【００５２】
ここで、本再編集処理の表示例として図２０を参照して説明する。
図２０（Ａ）〜（Ｃ）は、図１９に示す前回編集された全体エンベロープ波形１８０７を、更に、波形編集区間を広げて再編集される状態を示すものである。
先ず図２０（Ａ）は、全体エンベロープ波形１８０７上に新たな後点２００１が指定され、前点１８０２から後点２００１までの波形編集区間が設定された状態を示す。
図２０（Ｂ）は、前点１８０２から後点２００１までの新たな波形編集区間内に変化点２００２が指定され、エンベロープ波形上の変化点同士が線で結ばれて新たな全体エンベロープ波形２００３が形成された状態を示す
【００５３】
図２０（Ｃ）は、波形表示エリア１７０１内において図２０（Ｂ）で示す全体エンベロープ波形の編集後、波形編集区間を示す強調表示が消去され、新たな全体エンベロープ波形２００３が表示された状態を示す。
【００５４】
＜コピー処理について＞
次に、図３中のコピー処理（Ｓ３１１）の動作について、図７と図１３を参照して説明する。
先ずコピーアイコン１７０３がオンされると、フラグＳＦが編集可能状態を示す「１」であるか否かを判定する（Ｓ１３０１）。
ここでフラグＳＦが「１」を示すものであれば、コピーフラグＣＦに「１」をセットして本処理を終了する（Ｓ１３０２）。
一方、フラグＳＦが「１」を示すものでなければ本コピー処理は実行しないで終了する。
次に、図７中のＳ７０１の処理でこのフラグＣＦのコピー指示状態を判定する。
ここで、フラグＣＦが「０」を示していない場合、即ちコピー処理の指示状態にあるときは図９中のＳ９０１の処理に進む。
そして、全体エンベロープ波形データの一部であるコピー元となる別波形上の座標位置{ＥＮＶ(Ｘ),Ｘ}でコピー開始位置がクリック操作されると、このコピー座標データはエリアＦＣｏｐｙにストアされ、この全体エンベロープ波形データ{ＥＮＶ(Ｘ),Ｘ}の波形上にコピー開始点を示す矢印を表示する。
それから、エンベロープ波形データがストアされているアドレスを指定するポインタｉに「０」をセットする（Ｓ９０２）。
【００５５】
次に、全体エンベロープ波形データＥＮＶ（Ｘ＋ｉ）をコピー元の始点とし、これを前点に一致させて別波形のデータＥＮＶＢ（ＡＸ＋ｉ）にコピーしていく（Ｓ９０３）。
そして、全体エンベロープ波形データに代わってこの編集用の別波形データＥＮＶＢの座標値｛（ＡＸ＋ｉ）,ＡＸ＋ｉ｝を点灯表示してから（Ｓ９０４）、この別波形データＥＮＶＢのアドレスポインタｉをインクリメントする（Ｓ９０５）。
【００５６】
次に、このインクリメントされた座標値を示すＡＸ＋ｉが、エリアＢＸに示す後点の座標値に達したか否か判定する（Ｓ９０６）。
ここで、別波形のＡＸ＋ｉの示す表示進行位置がエリアＢＸに示す後点の座標値に達していなければ、再びＳ９０３の処理に戻って、別波形の表示進行を継続していくが、別波形の表示進行位置を示すＡＸ＋ｉの値が後点の座標値を示すＢＸに達すると、全体エンベロープ波形の一部に別波形がコピー終了したことを示すため、エンベロープ波形データの座標位置｛ＥＮＢ（Ｘ）,Ｘ｝上に表示されていた矢印を消灯する（Ｓ９０７）。
そして、フラグＣＦにコピー処理の終了を示す「０」をセットしてから本処理を終了する（Ｓ９０８）。
【００５７】
ここで、本コピー処理の表示例を図２１図に示す。
図２１（Ａ）〜（Ｃ）は、波形表示エリア１７０１内において全体エンベロープ波形１８０１上に指定された前点１８０２と後点１８０３からなる波形編集区間内に、当該編集用として指定された別区間のエンベロープ波形の矢印２１０１で示す位置から当該波形編集区間分のエンベロープ波形をコピーして上書きする状態を示す。
先ず図２１（Ａ）は、全体エンベロープ波形１８０１上に波形編集区間（前点１８０２と後点１８０３に挟まれた範囲）と、コピー開始点（矢印２１０１）が指定された状態を示す。
図２１（Ｂ）は、この波形編集区間内に、矢印２１０１に示すコピー開始点から波形編集区間分に相当するエンベロープ波形がコピーされ、新たに全体エンベロープ波形２１０２が表示された状態を示す。
【００５８】
図２１（Ｃ）は、図２１（Ａ）と図２１（Ｂ）に示す波形編集区間内に、矢印２１０１に示すコピー開始点からエンベロープ波形を挿入後、この波形編集区間の強調表示と矢印表示を消去し、新たな全体エンベロープ波形２１０２が表示された状態を示す。
【００５９】
＜クリア処理について＞
次に、図３中に示すクリア処理（Ｓ３０７）の動作について、図１０を参照して説明する。
先ずクリアアイコン１７０４がオンされると、ＲＡＭ１０４内にストアされている全体エンベロープ波形データＥＮＶＤＡＴＡをクリアする（Ｓ１００１）。
更に、ＲＡＭ１０４内にストアされている編集用のエンベロープ波形のデータＥＮＶＢＤＡＴＡをクリアする（Ｓ１００２）。
【００６０】
次に、前点アイコン１７０６の操作状態を示すフラグＦＦと、後点アイコン１７０７の操作状態を示すフラグＲＦと、波形編集可能な状態か否かを示すフラグＳＦと、を夫々「０」にセットする（Ｓ１００３）。
そして、コピーアイコン１７０３の操作状態を示すフラグＣＦを「０」にセットしてから本処理を終了する（Ｓ１００４）。
【００６１】
＜キャンセル処理について＞
次に、図３中に示すキャンセル処理（Ｓ３０９）の動作について、図１１を参照して説明する。
先ずキャンセルアイコン１７０５がオンされると、前点アイコン１７０６のオンによってフラグＦＦが「１」になっているか、或いは後点アイコン１７０７のオンによってフラグＲＦが「１」になっているか、或いはフラグＳＦが波形編集可能な状態であることを示す「１」になっているか否かを判定する（Ｓ１１０１）。
この判定で、これらのフラグが何れも「１」を示していなければ本処理を終了する。
【００６２】
一方、これら何れかのフラグが「１」になっていれば、ＲＡＭ１０４内にストアされている編集用のエンベロープ波形のデータエリアＥＮＶＢＤＡＴＡをクリアする（Ｓ１１０２）。
次に、前点アイコン１７０６の操作状態を示すフラグＦＦと、後点アイコン１７０７の操作状態を示すフラグＲＦに夫々オフ状態とする「０」をセットする（Ｓ１１０３）。
【００６３】
そして、コピーアイコン１７０３の操作状態を示すフラグＣＦをオフ状態とする「０」にセットしてから（Ｓ１１０４）、描画処理を実行して本処理を終了する（Ｓ１１０５）。
【００６４】
＜描画処理について＞
次に、図１１に示す描画処理（Ｓ１１０５）の動作について図１２を参照して説明する。
先ず、表示画面上の波形表示エリア１７０１をクリアする（Ｓ１２０１）。
次に、エンベロープ波形データのアドレスを指定するポインタｉに先頭位置を示す「０」をセットする（Ｓ１２０２）。
【００６５】
そして、このアドレスポインタｉに対応する全体エンベロープ波形データ｛ＥＮＶ（ｉ）,ｉ｝を画面上に点灯表示する（Ｓ１２０３）。
これに続いて、アドレスポインタｉをインクリメントする（Ｓ１２０４）。
このアドレスポインタｉの示す値が前回のクリック座標値をストアするエリアＦＸの示す値に達したか否かを判定する（Ｓ１２０５）。
ここで、アドレスポインタｉの示す値がエリアＦＸの示す値に達しなければ、再びＳ１２０３の処理に戻って全体エンベロープ波形データ｛ＥＮＶ（ｉ）,ｉ｝を画面上に点灯することで当該全体エンベロープ波形を表示していく。
このアドレスポインタｉの示す値がエリアＦＸの示す値に達すると本処理を終了する。
【００６６】
このように本描画処理では、キャンセルのアイコン１７０５がオンされると、先ず波形表示領域１７０１上に表示されているエンベロープ波形を全部消去してから、データエリアにストアされている全体エンベロープ波形データを順次読み出してこのエンベロープ波形を再表示する。
【００６７】
＜完了処理について＞
図４中のＳ４０６完了処理動作について、図１６を参照して説明する。
完了アイコン１７０８がオンされた後、フラグＳＦが編集終了を示す「１」になったか否かを判定する（Ｓ１６０１）。
このとき、フラグＳＦが「１」を示すものでなければ本処理を終了するが、フラグＳＦが「１」を示すものであれば、編集用エンベロープ波形データＥＮＶＢのエリアＡＸにストアされている前点の座標データを全体エンベロープ波形データＥＮＶのＡＸのエリアにコピーする（Ｓ１６０２）。
【００６８】
次に、前点の座標値を示すエリアＡＸに所定の最小単位時間である「１」を加算して（Ｓ１６０３）、このエリアＡＸに示す座標値がエリアＢＸにストアされている後点の座標値に達したか否かを比較する（Ｓ１６０４）。
ここで、エリアＡＸに示す座標値がエリアＢＸにストアされている後点の座標値に達しなければ、再びＳ１６０２の処理に戻って編集用エンベロープ波形データＥＮＶＢの前点の座標値を示すエリアＡＸから後点の座標値を示すエリアＢＸまでを全体エンベロープ波形データＥＮＶに上書きコピーする。
【００６９】
そして、エリアＡＸに示す座標値がエリアＢＸにストアされている後点の座標値に達すると、エリアＡＸとエリアＢＸに夫々「０」をセットして前点と後点の座標データをクリアする（Ｓ１６０５）。
次に、フラグＦＦとフラグＲＦに夫々「０」をセットして前点と後点の指定状態を解除する（Ｓ１６０６）。
【００７０】
これに続いて、フラグＳＦとフラグＣＦを夫々「０」にセットして波形編集状態を解除すると共に、エンベロープ波形のコピー状態を解除する（Ｓ１６０７）。
次に、編集用のエンベロープ波形データのエリアＥＮＶＢＤＡＴＡをクリアしてから（Ｓ１６０８）、波形編集された全体エンベロープ波形データＥＮＶＤＡＴＡに基づいてこのエンベロープ波形を表示画面１７０１上に表示するため、前述の図１２に示す描画処理を実行してから本処理を終了する（Ｓ１６０９）。
【００７１】
このように、本処理ではエンベロープ波形データの編集が完了すると前点から後点に至る波形編集区間のエンベロープ波形データを更新して前点と後点の各座標値をストアするエリア、及びこのエンベロープ波形の編集に関わるデータエリアと各種フラグをクリアしてから編集後の全体エンベロープ波形を表示している。
【００７２】
上述の通り、本発明の波形データ編集装置は、エンベロープの全体波形上で任意に指定した２点間の波形編集区間内で、ユーザーの所望とする波形に変更することができる。
また、本発明の波形データ編集装置は、この全体エンベロープ波形上に指定された２点間の波形編集区間を更に変更・拡大してエンベロープ波形を再編集することもできる。
【００７３】
更に、本発明の波形データ編集装置は、全体エンベロープ波形上に指定された２点間の波形編集区間に対して、他のエンベロープ波形の何れか１箇所を指定するだけで、この所望とする部分のエンベロープ波形を指定された波形編集区間にコピーすることもできる。
【００７４】
尚、本発明の実施形態では後点を更に後方の位置に変更することで波形編集区間の拡大を図り再編集できるようにしたが、この再編集する区間を狭めることができるようにしてもよく、前点の位置を前後方向に変更できるようにしてもよい。
また、全体エンベロープ波形上に指定された２点間の波形編集区間に対して、コピー元となるエンベロープ波形の何れかの座標値を指定できるようにしてもよい。
また、上記実施例ではコピー元となるエンベロープ波形のデータは当該全体エンベロープ波形の一部を抽出するようにしたが、これに限定することなくコピー元となるエンベロープ波形のデータは他のエンベロープ波形の何れかのデータをコピーするようにしてもよい。
【００７５】
また、上記実施の形態で説明した動作手順をプログラム化し、コンピュータに実行させることにより実施できる。その際、コンピュータプログラムはハードディスク等のディスク型記録媒体、半導体メモリやカード型メモリ等の各種メモリ、或いは通信ネットワーク等の各種プログラム記録媒体を通じてコンピュータに供給することができる。
【図面の簡単な説明】
【００７６】
【図１】本発明の全体構成のブロック図を示す。
【図２】図１に示されるＲＡＭの記憶領域におけるデータ構成を示す。
【図３】本発明の波形データ編集装置におけるメインフローチャートを示す。（その１）
【図４】本発明の波形データ編集装置におけるメインフローチャートを示す。（その２）
【図５】図３に示されるクリック処理の詳細なフローチャートを示す。（その１）
【図６】図３に示されるクリック処理の詳細なフローチャートを示す。（その２）
【図７】図３に示されるクリック処理の詳細なフローチャートを示す。（その３）
【図８】図３に示されるクリック処理の詳細なフローチャートを示す。（その４）
【図９】図３に示されるクリック処理の詳細なフローチャートを示す。（その５）
【図１０】図３に示されるクリア処理の詳細なフローチャートを示す。
【図１１】図３に示されるキャンセル処理の詳細なフローチャートを示す。
【図１２】図１１に示される描画処理の詳細なフローチャートを示す。
【図１３】図３に示されるコピー処理の詳細なフローチャートを示す。
【図１４】図４に示される前点決定処理の詳細なフローチャートを示す。
【図１５】図４に示される後点決定処理の詳細なフローチャートを示す。
【図１６】図４に示される完了処理の詳細なフローチャートを示す。
【図１７】表示枠画面を示す。
【図１８】（Ａ）全体エンベロープ波形上に前点が指定された状態を示す。（Ｂ）全体エンベロープ波形上に前点と後点が指定された状態を示す。（Ｃ）波形編集区間内における変化点の指定状態を示す。
【図１９】図１８に示す編集完了後の全体エンベロープ波形の表示状態を示す。
【図２０】（Ａ）前回指定された波形編集区間の外側に新たな後点が再指定された状態を示す。（Ｂ）再編集区間内における変化点の指定状態を示す。（Ｃ）再編集完了後の全体エンベロープ波形の表示状態を示す。
【図２１】（Ａ）全体エンベロープ波形上に波形編集区間が指定され、この区間内に別波形をコピーするためのコピー開始点が指定された状態を示す。（Ｂ）波形編集区間内に別波形がコピーされた状態を示す。（Ｃ）エンベロープ波形のコピー完了状態を示す。
【符号の説明】
【００７７】
１０１  ＣＰＵ
１０２  操作子群
１０３  ＲＯＭ
１０４  ＲＡＭ
１０５  表示装置
１０６  楽音発生装置
【図１】
2005128295.tif 000003
【図２】
2005128295.tif 000004
【図３】
2005128295.tif 000005
【図４】
2005128295.tif 000006
【図５】
2005128295.tif 000007
【図６】
2005128295.tif 000008
【図７】
2005128295.tif 000009
【図８】
2005128295.tif 000010
【図９】
2005128295.tif 000011
【図１０】
2005128295.tif 000012
【図１１】
2005128295.tif 000013
【図１２】
2005128295.tif 000014
【図１３】
2005128295.tif 000015
【図１４】
2005128295.tif 000016
【図１５】
2005128295.tif 000017
【図１６】
2005128295.tif 000018
【図１７】
2005128295.tif 000019
【図１８】
2005128295.tif 000020
【図１９】
2005128295.tif 000021
【図２０】
2005128295.tif 000022
【図２１】
2005128295.tif 000023