(57)【特許請求の範囲】
【請求項１】
それぞれが異なる状態量を示す数値の組み合わせを複数、指定することにより、該指定された複数の数値の組み合わせで一部、或いは全体の形状が表されるパターンの編集が行える装置であって、
前記状態量を示す数値の組み合わせとして、時間を示す数値、及び該時間に依存して変化する状態量のレベルを示す数値を指定するための数値指定手段と、
前記数値指定手段によりすでに入力されている前記数値の組み合わせを、再度繰り返して入力するための機能が割り当てられた繰り返し指示用シンボルが指定された場合に、該数値指定手段によりすでに入力されている数値の組み合わせで形状が表されるパターンを繰り返し設定する形状設定手段と、
を具備することを特徴とするパターン編集装置。
【請求項２】
前記繰り返し指示用シンボルとして、前記他に指定された数値の組み合わせを繰り返す回数を指定して用いる第１の繰り返し指示用シンボル、該第１の繰り返し指示用シンボルを含む範囲を繰り返す回数を指定可能な第２の繰り返し指示用シンボル、及び予め定めた条件を満たすまで該数値の組み合わせを繰り返すことを指示するための第３の繰り返し指示用シンボルのうちの一つ以上が指定可能である、
ことを特徴とする請求項１記載のパターン編集装置。
【請求項３】
前記形状設定手段が形状を決定した前記パターンを表示装置上に表示させるための描画手段、
を更に具備することを特徴とする請求項１、または２記載のパターン編集装置。
【請求項４】
それぞれが異なる状態量を示す数値の組み合わせを複数、指定することにより、該指定された複数の数値の組み合わせで一部、或いは全体の形状が表されるパターンの編集が行えるパターン編集装置として用いることが可能なコンピュータに、
前記状態量を示す数値の組み合わせとして、時間を示す数値、及び該時間に依存して変化する状態量のレベルを示す数値を指定するための機能と、
前記指定するための機能によりすでに入力されている前記数値の組み合わせを、再度繰り返して入力するための機能が割り当てられた繰り返し指示用シンボルが指定された場合に、該指定するための機能によりすでに入力されている数値の組み合わせで形状が表されるパターンを繰り返し設定する機能と、
を実現させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、それぞれが異なる状態量を表す数値の組み合わせを複数、指定することにより、一部、或いは全体の形状が表されるパターンの編集を行うための技術に関する。
【０００２】
【従来の技術】
音量の時間変化のパターンである音量エンベロープは、楽音に対する印象に大きな影響を及ぼすことが知られている。このことから、音源装置やシンセサイザなどの楽音発生装置には、音量エンベロープを変更できるように、エンベロープエディタと呼ばれるパターン編集装置が搭載されているものがある。なお、音量エンベロープは、通常、アタック時間、ディケイ時間、サスティン時間、及びリリース時間の４つの部分に区分けされる。
【０００３】
楽音発生装置に搭載されたパターン編集装置では、音量エンベロープの形状の編集、即ちその形状の変更やそれの生成は、ポインティングデバイスなどを用いてその形状を描画するか、或いはその形状の設定に反映される数値を指定することで行うようになっている。その数値とは、予め用意されたパラメータの値として設定されるものか、或いはテーブル形式で形状を指定するためのものである。そのテーブル形式では、例えば発音開始から経過した時間を示す値、その値で示される時間での音量レベルを示す値を少なくとも含む数値の組み合わせを時間別に指定するようになっている。パラメータとしては、アタック時間などの時間やサスティンレベルなどを設定するためのものが複数、用意されているのが普通である。
【０００４】
【発明が解決しようとする課題】
数値をテーブル形式で指定できる従来のパターン編集装置では、楽音の発音開始から消音するまでの間、時間と音量レベルの関係を時間別に数値で指定しなければならなかった。このため、音量エンベロープの編集の際に多くの数値を指定しなければならず、その編集が容易に行えないという問題点があった。なお、その問題点は、パターンの種類に係わらず、その編集をテーブル形式での数値の指定で行う場合に共通したものである。
【０００５】
本発明の課題は、テーブル形式での数値の指定によるパターンの編集をより容易に行えるようにしたパターン編集装置を提供することにある。
【０００６】
【課題を解決するための手段】
本発明の第１の態様のパターン編集装置は、前記状態量を示す数値の組み合わせとして、時間を示す数値、及び該時間に依存して変化する状態量のレベルを示す数値を指定するための数値指定手段と、前記数値指定手段によりすでに入力されている前記数値の組み合わせを、再度繰り返して入力するための機能が割り当てられた繰り返し指示用シンボルが指定された場合に、該数値指定手段によりすでに入力されている数値の組み合わせで形状が表されるパターンを繰り返し設定する形状設定手段と、を具備する。
【０００８】
本発明の第２の態様のパターン編集装置は、上記第１の態様に加えて、形状設定手段が形状を決定したパターンを表示装置上に表示させるための描画手段、を更に具備する。
本発明のプログラムは、それぞれが異なる状態量を示す数値の組み合わせを複数、指定することにより、該指定された複数の数値の組み合わせで一部、或いは全体の形状が表されるパターンの編集が行えるパターン編集装置として用いることが可能なコンピュータに、前記状態量を示す数値の組み合わせとして、時間を示す数値、及び該時間に依存して変化する状態量のレベルを示す数値を指定するための機能と、前記指定するための機能によりすでに入力されている前記数値の組み合わせを、再度繰り返して入力するための機能が割り当てられた繰り返し指示用シンボルが指定された場合に、該指定するための機能によりすでに入力されている数値の組み合わせで形状が表されるパターンを繰り返し設定する機能と、を実現させる。
【０００９】
本発明では、それぞれが異なる状態量を示す数値の組み合わせを複数、指定することにより、該指定された複数の数値の組み合わせで一部、或いは全体の形状が表されるパターンの編集を行う場合に、予め機能が割り当てられたシンボルを入力可能とし、そのシンボルが入力されると、そのシンボルに割り当てられている機能に従い、他に指定された数値の組み合わせを用いてパターンの一部、或いは全体の形状を設定する。それにより、数値の組み合わせを指定する回数が抑えられるようになって、ユーザはパターンの編集をより容易、且つ迅速に行えるようになる。そのパターンを表示装置上に表示させるようにした場合には、その確認を容易に行えるようになる。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図１は、本実施の形態によるパターン編集装置を搭載した音源装置の回路構成図である。
【００１１】
その音源装置は、図１に示すように、装置全体の制御を行うＣＰＵ１０１と、プログラムや各種データを格納したＲＯＭ１０２と、ＣＰＵ１０１がワーク用に用いるＲＡＭ１０３と、そのＣＰＵ１０１から送られたデータを表示する表示器１０４と、外部装置とＭＩＤＩデータをやりとりするＭＩＤＩインターフェース１０５と、ユーザが操作の対象とする入力装置１０６と、楽音を発音させるためのオーディオ信号を生成する音源ＬＳＩ１０７と、それら各部１０１〜１０７を相互に接続するバス１０８と、音源ＬＳＩ１０７から出力されたオーディオ信号の増幅を行うアンプ１０９と、そのアンプ１０９から出力されたオーディオ信号を入力して楽音を放音するスピーカー１１０と、を備えて構成されている。
【００１２】
上記表示器１０４は例えば液晶表示器である。その表示器１０４の代わりに、外部の表示装置に信号、或いはデータを出力するインターフェースを備えても良い。入力装置１０６は、例えば各種キーやポインティングデバイスなどの操作子を備えたものである。各種キーとしては、数値入力用のテンキーや、シンボル入力用の複数のキーなど多数のキーが備えられている。音源ＬＳＩ１０７は、例えばＣＰＵ１０１の指示に従い、発音させる楽音の波形データを生成し、生成した波形データに対して、必要に応じて音響効果を付加させる処理を施した後、それをＤ／Ａ変換することでオーディオ信号を生成し出力するものである。
【００１３】
上述したような構成の音源装置は、ＭＩＤＩインターフェース１０５を介して受信したＭＩＤＩデータを処理することにより、そのＭＩＤＩデータで指定された楽音を放音する。本実施の形態によるパターン編集装置は、放音される楽音の波形を加工するうえで用いられる各種パターンの編集をユーザが行えるようにするために搭載されている。各種パターンとしては、音量エンベロープやピッチ・エンベロープ、パン・エンベロープなどがある。ユーザが編集を行ったエンベロープのデータを保存しておけるように、ＲＡＭ１０３は特には図示しないバッテリによって不揮発性化されている。
【００１４】
以上の構成において動作を説明する。
ユーザが電源をオンさせると、ＣＰＵ１０１はＲＯＭ１０２からプログラムを読み出して実行することにより、装置全体の制御を開始する。その制御は、ＭＩＤＩインターフェース１０５のＭＩＤＩデータの受信、入力装置１０６へのユーザの操作に対応する形で行う。それにより、ＭＩＤＩインターフェース１０５がＭＩＤＩデータを受信すると、そのＭＩＤＩデータ、或いはそれに対応するコマンドを音源ＬＳＩ１０７に送出することにより、楽音をスピーカー１１０から放音させる。入力装置１０６をユーザが操作した場合には、ユーザが操作した操作子の種類に応じた処理を行う。パターンの編集は、その処理を行うことで実現される。
【００１５】
そのパターンの編集を実現させるために、ＣＰＵ１０１は以下のようなデータをＲＡＭ１０３に格納する。図２を参照して、そのデータについて詳細に説明する。
図２は、ＲＡＭ１０３のマップを示す図である。編集可能な１種類のエンベロープに着目して、そのデータや、編集用に用意した各種変数をＲＡＭ１０３に保存するうえでの割り当てを示したものである。そのエンベロープは、ここではピッチ・エンベロープとしている。そのピッチ・エンベロープとは、楽音のピッチ（音高）の時間変化を示すパターンである。以降、混乱を避けて理解を容易とするために、特に断らない限り、編集の対象はピッチ・エンベロープであるとの前提で説明を行うこととする。
【００１６】
図２中の「エンベロープ描画領域」は、ピッチ・エンベロープのイメージデータを保存しておくために確保した領域である。そのイメージデータは、横（Ｘ）軸は時間、縦（Ｙ）軸は楽音のピッチ（音高）の基準となる音高（ピッチ）からの変位量を示すレベルとした表示エリア（図３〜図１１参照）上で描画することで入力できるようになっている。
【００１７】
上記ピッチ・エンベロープの形状は、それを描画することで指定する他に、数値により指定することができるようになっている。図２中の「エンベロープ数値データ」は、その指定のために入力された全ての数値などからなるデータである。「エンベロープ描画領域」に保存されるイメージデータは、数値を指定した場合、指定の数値から生成される。エンベロープ数値データが格納される領域については、以降、数値データ領域と呼ぶことにする。
【００１８】
数値の指定は、時間別に、時間、その時間でのレベル（ピッチの変位量）、ピッチ・エンベロープを形作る線の種類（図中では「波形」と表記。以降、特に断らない限り、波形とはその意味で用いることにする。楽音を放音させるための波形については、以降、楽音波形と表記する）を指定（入力）することで行うことを基本としている。指定されたレベルと直前に指定された時間でのレベルとは、波形として指定された線で結ぶようになっている。図２中の「ステップ（１）〜（１２）」は、それぞれ、そのような数値の組み合わせからなるデータを表したものであり、括弧内の数字は、「１」を初期値として先頭からの順番を昇順で表している。以降、括弧内の数字はステップ番号と呼び、そのステップ番号で指定（入力）されたデータをまとめてステップデータと呼ぶことにする。エンベロープ数値データを構成するステップ番号「ｎ」のステップデータについては、ステップ（ｎ）データと表記することにする。本実施の形態では、ステップ番号「１」では時間、レベルを示す各値はそれぞれ予め定めた値に固定とし、他のステップ番号「２」〜「１２」で時間やレベル、波形を任意に指定できるようにさせている。
【００１９】
図２中の「Ｎ」「Ｘ」「Ｙ」「ＦＸ」「ＦＹ」「Ｍ」「ＥＮＤＦ」「Ｌ」「Ｄ」「ｌ」「ｄ」「ｎ」は、それぞれ、その名称の変数に代入された値を示している。各変数についての説明は後述する。
入力装置１０６として備えられた所定のスイッチを操作してユーザがエンベロープの編集を要求すると、ＣＰＵ１０１は、図３に示すようなエンベロープ設定画面を表示器１０４に表示させる。その設定画面には、現在、設定されているピッチ・エンベロープのイメージが描画される表示エリアの他に、「数値」「描画」及び「戻る」の各アイコンが配置されている。「数値」アイコンは、エンベロープの形状の指定を数値で行うことを選択できるように、「描画」アイコンは、その指定を描画によって行うことを選択できるようにそれぞれ用意している。それにより、本実施の形態では、ユーザが形状を指定（設定）し易い方を選択できるようにして、その指定をより容易に行えるようにしている。なお、図３に示すようなエンベロープ設定画面の表示は、例えばＣＰＵ１０１が、そのオリジナルの画面をＲＯＭ１０２から読み出し、その表示エリア内に、ＲＡＭ１０３内の図２に示すエンベロープ描画領域に格納されたイメージデータを挿入した後、表示器１０４に送出することで行われる。
【００２０】
エンベロープ設定画面上の「数値」アイコンをユーザがクリックすると、ＣＰＵ１０１は、図４に示すような数値設定画面を表示器１０４に表示させる。その設定画面には、エンベロープのイメージが描画される表示エリアや数値入力用の表示エリアの他に、「クリア」「戻る」の各アイコンが配置されている。その表示エリアを配置することで、数値入力で編集するエンベロープの形状をユーザが容易に確認できるようにさせている。「クリア」アイコンは、入力された全ての数値のクリアを指示するためのものであり、「戻る」アイコンは一つ前の状態、即ち図３に示すエンベロープ設定画面が表示された状態に戻るのを指示するためのものである。そのような設定画面の表示は、例えばＣＰＵ１０１が、オリジナルの画面をＲＯＭ１０２から読み出し、それの各表示エリア内に、ＲＡＭ１０３内の図２に示すエンベロープ描画領域、数値データ領域にそれぞれ格納されたデータを展開して挿入した後、表示器１０４に送出することで行われる。
【００２１】
上記数値入力用の表示エリアは、ステップ番号毎、入力する数値（データ）の内容毎に分けられている。ここでは、便宜的に、時間、レベル、及び波形を示す各値をそれぞれ入力するためのエリアを時間入力用エリア、レベル入力用エリア、波形入力用エリアと呼ぶことにする。各入力エリアに入力されたデータが、ステップデータを構成する時間データ、レベルデータ、波形データとして扱われる（図２参照）。
【００２２】
上記時間入力用エリアにデータとして入力するのは、直前のステップ番号で指定の時間との時間差（時間間隔）を示す値（以降、時間差分値と呼ぶ）としている。レベルを示す値の値域は１００〜−１００としている。ステップ番号「２」「３」の各波形入力用エリアに表示（入力）された「直」は直前のステップ番号で指定のレベルと直線で結ぶことを表すシンボルであり、例えばそれに割り当てた数値を入力することで表示される。それにより、エンベロープイメージの表示エリアには、図４に示すような形状のパターンが描画されている。時間入力用エリア、レベル入力用エリア、及び波形入力用エリアへの入力は、例えば入力装置１０６が備えたスイッチを操作することで行われる。
【００２３】
図４に示すような数値設定画面上では、数値入力はステップ番号の昇順に順次、行うようになっている。本実施の形態では、その数値入力をより容易に行えるように、以下のようなシンボルに数値入力上の機能を割り当てている。そのシンボル、及びそれに割り当てられた数値入力上の機能を含め、エンベロープの編集を数値入力で行う方法について、図５〜図７を参照して詳細に説明する。
【００２４】
図５では、図４に示す状態から、ステップ番号「４」の時間入力用エリアに「２Ｌ」が入力されている。「２Ｌ」中の「Ｌ」は、それよりも前のステップ番号でのデータ入力（時間、レベル、及び波形の各データからなる組み合わせ）を繰り返すことを指示するためのシンボルであり、「２Ｌ」中の「２」は、その繰り返しを行う回数が２回であることを示している。そのようなことを指示する「２Ｌ」をステップ番号「４」の時間入力用エリアにデータとして入力させることで、エンベロープイメージの表示エリアには、図５に示すように、ステップ番号「０」〜「２」で入力されたデータにより描画された形状がそれに続く形で更に描画されている。
【００２５】
図６では、図４に示す状態から、ステップ番号「４」の時間入力用エリアに「Ｅ」が入力されている。「Ｅ」は、それよりも前のステップ番号でのデータ入力を、予め定めた条件を満たすまで繰り返すことを指示するためのシンボルである。そのようなことを指示する「Ｅ」がステップ番号「４」の時間入力用エリアに入力させることで、エンベロープイメージの表示エリアには、図６に示すように、ステップ番号「０」〜「２」で入力されたデータにより描画された形状が全体にわたって繰り返し描画されている。なお、本実施の形態では、エンベロープの形状を設定した時間が予め定めた時間より長くなった場合に、上記条件を満たしたとしている。
【００２６】
図７では、図４に示す状態から、ステップ番号「４」「９」及び「１０」の各時間入力用エリアに「３Ｌ」「１Ｌ」「２Ｄ」がそれぞれ入力されている。ステップ番号「５」〜「８」の各波形入力用エリアには「正３」「正４」「正１」「正２」がそれぞれ入力されている。「正３」「正４」「正１」「正２」は、それぞれ１８０度から２７０度、２７０度から３６０度、０度から９０度、９０度から１８０度の部分に対応する正弦波で線を結ぶことを表すシンボルである。
【００２７】
上記「Ｌ」では、その前に他に入力されているものが存在していれば、直前に位置しているものより後のデータ入力（通常は時間、レベル、及び波形の各データからなる組み合わせ）を繰り返し入力の対象としている。例えばステップ番号「４」でデータとして入力された「３Ｌ」では、ステップ番号「１」〜「３」でのデータ入力を繰り返し入力の対象とし、ステップ番号「９」で入力された「１Ｌ」では、ステップ番号「５」〜「８」での入力を繰り返し入力の対象としている。そのように、「Ｌ」は同じ種類のシンボル、或いはそれよりも上位の機能が割り当てられているシンボルでデータ入力を繰り返す範囲を限定できるようになっている。
【００２８】
ステップ番号「１０」で入力された「２Ｄ」中の「Ｄ」は、「Ｌ」と同様に、それよりも前のステップ番号でのデータ入力を繰り返すことを指示するためのシンボルであるが、割り当てられた機能は「Ｌ」よりも上位となっている。このため、それよりも前のステップ番号で「Ｌ」が入力されていれば、その「Ｌ」によるデータ入力の繰り返しを行いつつ、全体的なデータ入力を繰り返すようになっている。それにより、エンベロープイメージの表示エリアには、図７に示すような形状のパターンが描画されている。
【００２９】
このように、本実施の形態では、上述したような機能を割り当てたシンボルを数値入力での編集用に用意している。このため、図５〜図７にそれぞれ示すように、データの内容、及びその順序が同一の連続する複数のステップ番号でのデータ入力は、それに続く１ステップ番号でのデータ入力で済ますことができるようになっている。それにより、エンベロープ（パターン）の編集をより容易、且つ迅速に行えるようにさせている。
【００３０】
なお、本実施の形態では、数値入力上の機能を割り当てたシンボルとして「Ｌ」「Ｅ」「Ｄ」の３種類を用意しているが、そのシンボルは３種類でなくても良い。それ以上であってもそれ以下であっても良い。シンボルに割り当てる機能についても、上述したようなものに限定されるわけではない。これらのことから明らかなように、本発明は様々な変形を行うことができるものである。
【００３１】
図３に示すエンベロープ設定画面上の「描画」アイコンをユーザがクリックすると、ＣＰＵ１０１は、図８に示すような描画画面を表示器１０４に表示させる。その描画画面には、エンベロープのイメージが描画される表示エリアの他に、「クリア」「戻る」「正弦波」「直線」の各アイコンが配置されている。「クリア」アイコンは、表示エリア上に描画されている線の消去を指示するためのものであり、「戻る」アイコンは一つ前の状態、即ち図３に示すエンベロープ設定画面が表示された状態に戻るのを指示するためのものである。「直線」アイコンは、表示エリア内で指定された点の間を結ぶ線として直線を選択するためのものである。「正弦波」アイコンは、その線として正弦波を選択するためのものである。その下に設けられた入力エリアに入力（表示）された「１」は、図７中の「正１」に対応、即ち正弦波として０度〜９０度に対応する部分を描画することを表している。同様に、「２」「３」「４」は、それぞれ「正２」「正３」「正４」に対応する。そのエリア内の表示内容は、そのエリア内をクリックする度に、サイクリックに変更するようになっている。以降、「正弦波」アイコンの下に設けられた数値（番号）表示用のエリアについては、１種のアイコンとして機能させていることから、「正弦波番号」アイコンと呼ぶことにする。
【００３２】
エンベロープ（カーブ）の描画は、ステップ番号「１」で固定的に入力されたデータで指定される点を起点として、それから順次、それと線で結ぶ点、及びその線の種類を指定していくことで行うようになっている。指定された点の位置から時間差分値、レベル値を算出することで、エンベロープを描画する場合であっても、ステップデータを生成して保存するようにしている。それの波形データは、指定された線の種類に対応するものである。そのようにして、エンベロープのデータを共有化することにより、同一のエンベロープを異なる編集方法で編集できるようにさせている。ここで図９〜図１１に示す説明図も合わせて参照しつつ、描画画面上でエンベロープの編集を行う方法について具体的に説明する。
【００３３】
図８で表示エリア内に示す点Ａをクリックした後、「クリア」アイコンをクリックすると、図９に示すように、その点Ａ以降で描画用に指定された点は全て無効とする形で線が消去される。それにより、既に描画されている線の消去は、線の描画のために指定した点のなかで消去を望む線の先頭（ここではその近傍を含む）に位置する点をクリックした後、「クリア」アイコンをクリックすることで行うようになっている。
【００３４】
上述したようにして線を消去させた後は、残っている線の終端から描画を行うことになる。その消去を行った後、図１０に示す点Ｂをクリックしてから「直線」アイコンをクリックすると、図１１に示すように、残っている線の終端（時間（横）軸上で最後方に位置している端）から点Ｂを結ぶ直線が描画されることになる。
【００３５】
ＣＰＵ１０１は、上述したようにして、数値設定画面上、或いは描画画面上でのピッチ・エンベロープの編集をユーザに行わせる。ＲＡＭ１０３に保存したエンベロープのイメージデータや数値データは、ユーザが行った編集内容に合わせて、必要に応じて随時、更新する。音源ＬＳＩ１０７には、エンベロープの形状を示すデータとして、例えばイメージデータを必要に応じて送出する。それにより、ユーザが編集したエンベロープでの楽音の放音を行わせる。
【００３６】
その音源ＬＳＩ１０７は、例えば楽音波形データを格納したメモリを備え、そのメモリから楽音波形データを読み出す速さを変更することにより、放音する楽音の音高に対応する楽音波形データを生成する。そのようにして楽音波形データを生成する場合、音源ＬＳＩ１０７は、ＣＰＵ１０１から送られたピッチ・エンベロープのデータに従って、楽音波形データを読み出す速さを変更する。それにより、楽音波形データの生成にピッチ・エンベロープを反映させる。
【００３７】
次に、上述したようなエンベロープの編集をユーザに行わせるＣＰＵ１０１の動作について、図１２〜図２９に示す各種フローチャートを参照して詳細に説明する。なお、図１２〜図２９に示す各種フローチャートで表される処理は、例えばＣＰＵ１０１が、ＲＯＭ１０２に格納されたプログラムを実行することで実現される。
【００３８】
図１２は、全体処理のフローチャートである。電源がオンされている間、ＣＰＵ１０１が実行する処理の全体的な流れを表したものである。始めに、図１２を参照して、全体処理について詳細に説明する。
先ず、ステップ１２０１では、電源がオンされたことに合わせて、楽音発生装置を予め定められた状態に設定するイニシャライズを行う。続くステップ１２０２では、ユーザがエンベロープの設定を指示したか否か判定する。入力装置１０６からユーザが各種操作子に対して行った操作の内容を示すデータを受け取ってそれを解析することにより、その設定を指示するためのスイッチをユーザが操作したことが判明した場合、判定はＹＥＳとなり、ステップ１２０３において、図４〜図１１を参照して説明したようなエンベロープの設定（編集）を実現させるためのエンベロープ設定処理を実行する。その後は上記ステップ１２０２に戻り、それ以降の処理を同様に実行する。
【００３９】
一方、エンベロープの設定を指示するためのスイッチをユーザが操作していないことが判明した場合には、上記ステップ１２０２の判定はＮＯとなってステップ１２０４に移行する。そのステップ１２０４では、ＭＩＤＩインターフェース１０５によるＭＩＤＩデータの受信や、入力装置１０６が備えた他の操作子に対するユーザの操作などに対応するためのその他の処理を実行する。その後は上記ステップ１２０２に戻り、それ以降の処理を同様に実行する。
【００４０】
図１３は、上記ステップ１２０３として実行されるエンベロープ設定処理のフローチャートである。次に、図１３を参照して、その設定処理について詳細に説明する。
先ず、ステップ１３０１では、図３に示すようなエンベロープ設定画面のオリジナル（図中では「エンベロープ設定画面枠」と表記）をＲＯＭ１０２から読み出し、表示器１０４に送出することで表示させる。続くステップ１３０２では、ＲＡＭ１０３の数値データ領域に保存されたエンベロープ数値データから、それが表すエンベロープのイメージデータを生成してＲＡＭ１０３のエンベロープ描画領域に格納する。次に移行するステップ１３０３では、その描画領域に格納したイメージデータをエンベロープ設定画面の表示エリア内に描画させるための既設定エンベロープ描画処理を実行する。それにより、図３に示すようなエンベロープ設定画面を表示器１０４に表示させた後はステップ１３０４に移行する。
【００４１】
ステップ１３０４では、エンベロープ設定画面上の「数値」アイコンがオン（クリック）されたか否か判定する。カーソルが「数値」アイコン上に位置している状態でユーザがクリック操作を行った場合、判定はＹＥＳとなり、次にステップ１３０５において、数値入力によるエンベロープの編集をユーザに行わせるための数値設定処理を実行した後、上記ステップ１３０１に戻る。そうでない場合には、判定はＮＯとなってステップ１３０６に移行する。
【００４２】
ステップ１３０６では、エンベロープ設定画面上の「描画」アイコンがオン（クリック）されたか否か判定する。カーソルが「描画」アイコン上に位置している状態でユーザがクリック操作を行った場合、判定はＹＥＳとなり、次にステップ１３０７において、描画によるエンベロープの編集をユーザに行わせるための描画処理を実行した後、上記ステップ１３０１に戻る。そうでない場合には、判定はＮＯとなってステップ１３０８に移行する。
【００４３】
ステップ１３０８では、エンベロープ設定画面上の「戻る」アイコンがオン（クリック）されたか否か判定する。カーソルが「戻る」アイコン上に位置している状態でユーザがクリック操作を行った場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなって上記ステップ１３０４に戻る。それにより、エンベロープ設定画面を表示器１０４に表示させている場合、それに配置したアイコンのうちの何れかをユーザがクリックするのを待つ。
【００４４】
上記エンベロープ設定処理を実行することにより、エンベロープの編集方法の選択やその編集をユーザは行うことができる。以降は、その設定処理内で実行されるサブルーチン処理について詳細に説明する。
図１４は、上記ステップ１３０３として実行される既設定エンベロープ描画処理のフローチャートである。エンベロープ設定処理内で実行されるサブルーチン処理は、始めに図１４を参照して、その描画処理について詳細に説明する。
【００４５】
先ず、ステップ１４０１では、表示器１０４に表示させている画面の種類を判定する。その画面として、図４〜図７に示すような数値設定画面を表示器１０４に表示させていた場合、その旨が判定されてステップ１４０２に移行する。同様に、図３に示すようなエンベロープ設定画面を表示させていた場合には、その旨が判定されてステップ１４０３に移行し、図８〜図１１に示すような描画画面を表示させていた場合には、その旨が判定されてステップ１４０４に移行する。
【００４６】
ステップ１４０２では、ＲＡＭ１０３のエンベロープ描画領域（図２参照）に格納されたエンベロープのイメージデータを、数値設定画面上のその表示エリアに描画されるように表示器１０４に送出する。それにより、例えば図４に示すようなエンベロープ（カーブ）を表示エリア内に表示させた後、一連の処理を終了する。
【００４７】
ステップ１４０３、１４０４では、対象とする画面を代えて、上記ステップ１４０２と同様の処理を実行する。それにより、エンベロープ設定画面や描画画面を表示させた場合も、例えば図３、或いは図８に示すように、エンベロープ（カーブ）が表示エリア内に表示される。
【００４８】
図１５〜図１８は、図１３に示すエンベロープ設定処理内でステップ１３０５として実行される数値設定処理のフローチャートである。次に図１５〜図１８を参照して、数値設定処理について詳細に説明する。エンベロープ数値データを構成する最小単位のデータ（時間差分値、レベル値など）については、以降、ステップ（ａ，ｂ）のデータというように表記することにする。括弧内の添字ａはステップ番号、添字ｂはそのステップ番号で入力されるデータの種類を表すために用いる。添字ｂの具体的なシンボルとしては、時間差分値を表す際には「時間」、レベル値を表す際には「レベル」、波形を示す値（表示はその値に対応する「直」や「正１」などのシンボルである）を表す際には「波形」を用いることにする。
【００４９】
先ず、ステップ１５０１では、図４〜図７に示すような数値設定画面のオリジナル（図中では「数値設定画面枠」と表記）をＲＯＭ１０２から読み出し、表示器１０４に送出することで表示させる。続くステップ１５０２では、ＲＡＭ１０３の数値データ領域に保存されているエンベロープ数値データを数値入力用の対応するエリアに表示させる数値表示処理を実行する。その次に移行するステップ１５０３では、図１４を参照して説明した既設定エンベロープ描画処理を実行する。それにより、例えば図４に示すような状態で数値設定画面を表示器１０４に表示させた後はステップ１５０４に移行する。
【００５０】
ステップ１５０４では、変数ＥＮＤＦの値が０か否か判定する。その変数ＥＮＤＦは、編集の対象となるエンベロープの編集が完了したと見なせる状態か否か把握するために用意した変数である。それに代入される「０」は完了と見なせる状態でないことを表し、「１」はその状態であることを表している。このことから、エンベロープの編集が完了したと見なせる状態でない場合、判定はＹＥＳとなり、次にステップ１５０５において、データ入力を次に行うべきエリアをユーザに知らせるために、ステップ番号が変数Ｎの値の時間入力用エリア（図中では「ステップ数値表示エリア（Ｎ，時間）」と表記）の表示色を他のエリアとは異なる表示色に変更させた後、ステップ１５０６に移行する。そうでない場合には、判定はＮＯとなってそのステップ１５０６に移行する。
【００５１】
本実施の形態では、後述するように、ステップ番号「１２」までデータ入力を行うか、或いはエンベロープをかける時間が予め定めた時間より長い場合に、エンベロープの編集が完了したと見なせる状態であると判定するようにしている。上記変数Ｎは、データ入力の対象とするステップ番号を管理するために用意した変数である。ステップ１５０２の数値表示処理の実行時に、次にデータ入力の対象とするステップ番号が変数Ｎに代入される。
【００５２】
ステップ１５０６では、カーソルを表示器１０４に表示させる。次に実行するステップ１５０７では、データ入力が行われたか否か判定する。ユーザが入力装置１０６に対してデータ入力のための操作を行った場合、判定はＹＥＳとなってステップ１５０８に移行する。そうでない場合には、判定はＮＯとなって図１８のステップ１５３３に移行する。なお、表示色の変更やカーソルの表示、或いはその表示位置の変更は、例えばＣＰＵ１０１が、そのような変更や表示に伴って表示内容を変更すべき部分を特定し、その特定した部分のイメージデータを表示器１０４に送出して、表示器１０４が持つ１画面分のイメージデータを部分的に更新することで行われる。これは、入力されたデータや、データの入力に伴ってエンベロープ（カーブ）を構成する線などを表示器１０４に表示させる場合も同様である。
【００５３】
ステップ１５０８では、表示色を他と変えているエリア、即ち次にデータ入力の対象とするエリアの種類を判定する。レベル入力用エリアの表示色を他と変えていた場合、そのエリアはレベル入力用エリアであると判定して、ステップ１５０９に移行する。
【００５４】
ステップ１５０９では、ユーザが入力したデータを、ステップ（Ｎ，レベル）のデータ、即ちステップ番号「Ｎ」のレベル値であるとしてＲＡＭ１０３に格納する。続くステップ１５１０では、そのデータを、表示色を他と変えているレベル入力用エリア内に表示させる。次に移行するステップ１５１１では、そのレベル入力用エリアに代えて、それの下に位置する波形入力用エリアの表示色を変更させる。その後に、上記ステップ１５０７に戻る。
【００５５】
時間入力用エリアの表示色を他と変えていた場合には、上記ステップ１５０８では、表示色を他と変えているエリアは時間入力用エリアであると判定する。そのように判定することで移行するステップ１５１２では、ユーザが入力したデータを、ステップ（Ｎ，時間）のデータ、即ちステップ番号「Ｎ」の時間差分値であるとしてＲＡＭ１０３に格納する。次に移行するステップ１５１３では、そのデータを、表示色を他と変えている時間入力用エリア内に表示させる。その後は、図１６のステップ１５１５に移行する。
【００５６】
時間入力用エリアには、図５〜図７に示すように、数値以外のシンボルを入力できるようになっている。各シンボルには、それぞれ上述したような数値入力上の機能を割り当てている。図１６のステップ１５１５〜１５２２では、そのようなシンボルを含めて、数値入力エリアに入力されたデータに対応するための処理が行われる。
【００５７】
先ず、ステップ１５１５では、入力されたデータが数値のみか否か判定する。ユーザが入力装置１０６を操作して、時間入力用エリアに数値を入力した場合、判定はＹＥＳとなって次にステップ１５１６を実行し、その時間入力用エリアに代えて、それの下に位置するレベル入力用エリアの表示色を変更させた後、図１５のステップ１５０７に戻る。そうでない場合には、判定はＮＯとなってステップ１５１７に移行する。
【００５８】
ステップ１５１７では、入力されたデータがシンボルとして「Ｌ」を含むか否か判定する。ユーザが入力装置１０６を操作して、時間入力用エリアに「Ｌ」を含むデータを入力した場合、判定はＹＥＳとなってステップ１５１６に移行する。そうでない場合には、判定はＮＯとなってステップ１５１９に移行する。
【００５９】
ステップ１５１８では、「Ｌ」の入力に対応するためのループ処理を実行する。続く図１７のステップ１５２９では、変数Ｎの値をインターフェースする。その次に移行するステップ１５３０では、変数Ｎの値が１２未満か否か判定する。ユーザが全てのステップ番号でデータ入力を行っていない場合、判定はＹＥＳとなり、ステップ１５３１に移行して、ステップ番号が変数Ｎの値の時間入力用エリアの表示色を変更させる。その後は図１５のステップ１５０７に戻る。一方、そうでない場合には、即ち、ユーザが全てのステップ番号でデータ入力を行った場合には、判定はＮＯとなり、次にステップ１５３２で変数ＥＮＤＦに１を代入した後、図１５のステップ１５０７に戻る。
【００６０】
図１６のステップ１５１７でＮＯと判定した場合に移行するステップ１５１９では、入力されたデータがシンボルとして「Ｄ」を含むか否か判定する。ユーザが入力装置１０６を操作して、時間入力用エリアに「Ｄ」を含むデータを入力した場合、判定はＹＥＳとなってステップ１５２０に移行し、「Ｄ」の入力に対応するための多重ループ処理を実行する。その後は前述の図１７のステップ１５２９に移行する。そうでない場合には、判定はＮＯとなってステップ１５２１に移行する。
【００６１】
ステップ１５２１では、入力されたデータがシンボルの「Ｅ」か否か判定する。ユーザが入力装置１０６を操作して、時間入力用エリアに「Ｅ」を入力した場合、判定はＹＥＳとなってステップ１５２２に移行し、「Ｅ」の入力に対応するための永久ループ処理を実行する。その後は図１５のステップ１５０７に戻る。そうでない場合には、判定はＮＯとなり、そのステップ１５０７に戻る。
【００６２】
上記ループ処理、多重ループ処理、及び永久ループ処理では、それを実行すると、ユーザが入力したシンボルの種類に応じて、エンベロープのイメージ用の表示エリア内に線を描画させる。それにより、ユーザに、シンボルを時間入力用エリアに入力したことで生成されるエンベロープの形状を確認させるようになっている。
【００６３】
レベル入力用エリア、及び時間入力用エリア以外のエリアの表示色を他と変えていた場合には、図１５のステップ１５０８では、表示色を他と変えているエリアはレベル入力用エリア、及び時間入力用エリアの何れでもないと判定する。即ち、表示色を他と変えているエリアは波形入力用エリアか、或いはそのようなエリアは存在していないと判定する。このことから、そのように判定することで移行するステップ１５１４では、波形入力用エリアの表示色を他と変えているか否か判定する。その波形入力用エリアの表示色を他と変えていた場合、判定はＹＥＳとなって図１７のステップ１５２３に移行する。そうでない場合には、判定はＮＯとなり、上記ステップ１５０７に戻る。
【００６４】
図１７のステップ１５２３では、ユーザが入力したデータを、ステップ（Ｎ，波形）のデータ、即ちステップ番号「Ｎ」の波形を示す値であるとしてＲＡＭ１０３に格納する。続くステップ１５２４では、その値に対応するシンボルを、表示色を他と変えている波形入力用エリア内に表示させる。次にステップ１５１１に移行して、変数Ｘの値は変数ＦＸに、変数Ｙの値は変数ＦＹにそれぞれ代入する。変数ＦＸ、Ｙは、線を描画するうえでの始点を管理するために用意した変数であり、変数Ｘ、ＦＹは、その始点に対する終点を管理するために用意した変数である。値の代入を終了した後はステップ１５２６に移行する。
【００６５】
ステップ１５２６では、変数Ｘに、変数ＦＸの値にステップ（Ｎ，時間）のデータとして保存されている時間差分値を加算した値を代入し、変数Ｙには、ステップ（Ｎ，レベル）のデータとして保存されているレベル値を代入する。次に、ステップ１５２７に移行して、変数Ｍに変数Ｎの値を代入する。その後は、ステップ１５２８に移行して、変数ＦＸ、ＦＹの値で指定される始点から変数Ｘ、Ｙの値で指定される終点の間の線を描画するための線描画処理を実行する。その線描画処理を実行すると、前述のステップ１５２９に移行する。
【００６６】
１ステップ番号で波形を示す値までユーザが入力することにより、そのステップ番号でのデータ入力が終了し、それまでの終端と線で結ぶ点の位置、及びその線の種類が確定する。このことから、本実施の形態では、波形を示す値をユーザが入力すると、その時点でエンベロープのイメージ表示用の表示エリアに線を新たに描画（表示）させている。
【００６７】
図１５のステップ１５０７でのＮＯの判定は、ユーザがデータ入力以外の操作を行ったか、或いは何ら操作を行っていないことを意味する。このことから、ステップ１５０７でＮＯと判定した場合に移行する図１８のステップ１５３３〜１５４１では、そのようなことに対応するための処理が行われる。
【００６８】
先ず、ステップ１５３３では、カーソルを移動させる操作をユーザが行ったか否か判定する。ユーザが入力装置１０４の一部として搭載されたポインティングデバイスを操作したような場合、その操作に合わせてカーソルを移動させる必要が生じることから、判定はＹＥＳとなり、次にステップ１５３４において、ユーザが行った操作に応じてカーソルの表示位置を決定し、その決定した表示位置にカーソルを表示させる処理を行った後、ステップ１５３５に移行する。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなく、そのステップ１５３５に移行する。
【００６９】
ステップ１５３５では、ユーザがクリック操作を行ったか否か判定する。ポインティングデバイスと合わせて設けられたスイッチ、或いはそれに代わるスイッチをユーザが操作したような場合、判定はＹＥＳとなってステップ１５３６に移行する。そうでない場合には、判定はＮＯとなり、ユーザは入力装置１０６への操作を行っていないとして、図１５のステップ１５０７に戻る。
【００７０】
ステップ１５３６では、カーソルの表示位置が「クリア」アイコン上か否か判定する。「クリア」アイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はＹＥＳとなり、次にステップ１５３７でそれに対応するためのクリア処理を実行し、更にステップ１５３８において、変数Ｎの値をステップ番号とする時間入力用エリアの表示色を変更させた後、図１５のステップ１５０７に戻る。そうでない場合には、判定はＮＯとなってステップ１５３９に移行する。
【００７１】
本実施の形態では、ユーザが「クリア」アイコンをクリックすると、それまで入力されたデータを全てクリアするようにしている。言い換えればステップ番号「２」からデータ入力を行わせるようにしている。そのために、上記クリア処理では、変数Ｎに２を代入することが行われる。それにより、ステップ１５３８では、ステップ番号「２」の時間入力用エリアの表示色を変更させている。
【００７２】
ステップ１５３９では、カーソルの表示位置が「戻る」アイコン上か否か判定する。「戻る」アイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はＹＥＳとなってステップ１５４０に移行する。そうでない場合には、即ちクリックの対象となるアイコン上にカーソルが表示されていない状態でユーザがクリック操作を行った場合には、判定はＮＯとなり、図１５のステップ１５０７に戻る。
【００７３】
ステップ１５４０では、変数Ｎの値をステップ番号とする時間入力用エリア以外の入力用エリアの表示色を変更させているか否か判定する。時間入力用エリア以外の入力用エリアの表示色を変更させているということは、そのステップ番号でのデータ入力が途中であることを意味する。このことから、ステップ番号「Ｎ」のデータ入力が途中となっている状態でユーザが「戻る」アイコンをクリックした場合、判定はＹＥＳとなり、次にステップ１５４１でステップ（Ｎ，時間）、及びステップ（Ｎ，レベル）の各データをＲＡＭ１０３からクリアした後、一連の処理を終了する。そうでない場合には、判定はＮＯとなり、ここで一連の処理を終了する。
【００７４】
このような数値設定処理を実行することにより、ユーザの入力装置１０６への操作に応じて、ステップ番号毎のデータ入力やそのデータ入力に対応するための線の描画（表示）、或いは入力されたデータのクリアなどが行われる。その結果、数値入力によるエンベロープの編集作業をユーザは行えることとなる。
【００７５】
次に、図１９〜図２５を参照して、上記数値設定処理内で実行されるサブルーチン処理について詳細に説明する。
図１９は、上記ステップ１５０２として実行される数値表示処理のフローチャートである。数値設定処理内で実行されるサブルーチン処理では、始めに図１９を参照して、数値表示処理について詳細に説明する。その数値表示処理は、上述したように、ＲＡＭ１０３の数値データ領域（図２参照）に保存されているエンベロープ数値データを読み出し、それを構成するデータを対応する入力用エリア内に表示させる処理である。
【００７６】
先ず、ステップ１９０１では、変数Ｎに１を代入する。続くステップ１９０２では、ステップ番号が変数Ｎの値のデータがないか否か判定する。ステップ番号「Ｎ」のデータが存在していない場合、判定はＹＥＳとなり、ここで一連の処理が終了する。そうでない場合には、判定はＮＯとなってステップ１９０３に移行する。
【００７７】
ステップ１９０３では、ステップ番号「Ｎ」の各入力用エリアに、それぞれ対応するデータを表示させる。次に移行するステップ１９０４では、変数Ｎの値をインクリメントする。その後に移行するステップ１９０５では、変数Ｎの値が１２より大きいか否か判定する。変数Ｎの値が１２より大きい、即ちステップ番号「１２」までデータが存在している場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなって上記ステップ１９０２に戻る。それにより、変数Ｎの値をインクリメントしながら、その値をステップ番号とするデータの表示を行う。
【００７８】
図２０は、上記数値設定処理内でステップ１５１８として実行されるループ処理のフローチャートである。次に図２０を参照して、そのループ処理について詳細に説明する。そのループ処理は、時間入力用エリア内にシンボルとして入力された「Ｌ」に割り当てた機能に従ってエンベロープ（カーブ）の形状を設定する処理である。
【００７９】
先ず、ステップ２００１では、変数Ｌに、ユーザが入力したデータ中でシンボル「Ｌ」の前に位置する数値を代入する。例えば図５に示すように、時間入力用エリアに「２Ｌ」をユーザが入力したのであれば、変数Ｌに２を代入する。続くステップ２００２では、変数Ｌの値が２以上か否か判定する。変数Ｌに１、或いは０（シンボル「Ｌ」の前に数値が無いときに代入される）が代入されていた場合、即ち図７に示すように、それよりも前のステップ番号で入力されたデータからエンベロープの形状設定を行う必要がない場合、判定はＮＯとなり、ここで一連の処理を終了する。そうでない場合には、判定はＹＥＳとなってステップ２００３に移行する。
【００８０】
ステップ２００３では、変数ｌに１を代入する。その後は、変数Ｍに変数Ｎの値を代入し、更に変数Ｍの値をデクリメントする（ステップ２００４、２００５）。変数Ｍの値のデクリメントを行った後は、ステップ２００６に移行して、変数Ｍの値が１より大きいか否か判定する。変数Ｍの値が１より大きい場合、判定はＹＥＳとなってステップ２００７に移行する。そうでない場合には、判定はＮＯとなってステップ２００９に移行する。
【００８１】
ステップ２００７では、ステップ（Ｍ，時間）のデータ、即ちステップ番号が変数Ｍの値の時間データにシンボルとして「Ｌ」又は「Ｄ」が含まれているか否か判定する。そのデータ中に「Ｌ」又は「Ｄ」がシンボルとして含まれている場合、判定はＹＥＳとなってステップ２００９に移行する。そうでない場合には、判定はＮＯとなり、上記ステップ２００５に戻る。
【００８２】
上記ステップ２００５〜２００７で形成される処理ループは、ステップ２００６でＮＯ、或いはステップ２００７でＹＥＳと判定されるまで繰り返し実行される。それにより、時間データとしてシンボル「Ｌ」を含むステップ番号から順次、参照するステップ番号を前に戻しつつ、ステップ番号「１」となるまでにシンボルとして「Ｌ」又は「Ｄ」が入力されたステップ番号を特定するようになっている。
【００８３】
ステップ２００９では、変数Ｍの値をインクリメントする。それにより、シンボルとして「Ｌ」又は「Ｄ」を含むデータを持つステップ番号の次のステップ番号を変数Ｍに代入した後は、ステップ２０１０に移行して、変数Ｘに、変数ＦＸの値にステップ（Ｍ，時間）のデータとして保存された時間差分値を加算した値を代入し、更に変数Ｙに、ステップ（Ｍ，レベル）のデータとして保存されたレベル値を代入する。そのようにして、線を描画させるうえでの終点の位置を決定すると、ステップ２０１１でそれらの間に線を描画するために線描画処理を実行する。その後はステップ２０１２に移行する。
【００８４】
その線描画処理の実行時に、変数Ｘ、Ｙの各値は変数ＦＸ、ＦＹにそれぞれ代入される。それにより、今回、終点とした位置は、次回、線の描画を行う際には始点の位置として扱われる。
ステップ２０１２では、変数Ｍの値をインクリメントする。続くステップ２０１３では、変数Ｍの値が変数Ｎの値と等しいか否か判定する。その変数Ｎには、シンボルとして「Ｌ」が入力された、図１５〜図１８に示す数値設定処理で現在、処理対象としているステップ番号が代入されている。このことから、上記ステップ２００９で変数Ｍに代入した値に対応するステップ番号からステップ番号「Ｎ」の直前のステップ番号まで、各ステップ番号で入力されたデータに従ってエンベロープ（カーブ）の形状を示す線を描画した場合、判定はＹＥＳとなってステップ２０１５に移行する。そうでない場合には、判定はＮＯとなってステップ２０１４に移行する。
【００８５】
ステップ２０１４では、変数ＥＮＤＦの値が１か否か判定する。直前にステップ２０１１として実行した線描画処理で変数ＥＮＤＦに１が代入された場合、判定はＹＥＳとなり、それ以上、線の描画は不必要であるとして、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなり、上記ステップ２０１０に戻る。それにより、線の描画を続行する。
【００８６】
ステップ２０１５では、変数ｌの値をインクリメントする。続くステップ２０１６では、変数ｌの値が変数Ｌの値と等しいか否か判定する。それらの値が等しい場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなって上記ステップ２００４に戻り、それ以降の処理を同様に実行する。それにより、上記ステップ２００１で変数Ｌに代入した値から１を引いて得られる回数、上記ステップ２００９で変数Ｍに代入した値に対応するステップ番号からステップ番号「Ｎ」の直前のステップ番号まで、各ステップ番号で入力されたデータに従ってエンベロープ（カーブ）の形状を示す線を描画する。その結果、図５では、ステップ番号「１」〜「３」で入力されたデータで指定される内容で線が繰り返し描画されることになる。
【００８７】
次に、上記ステップ２０１１として実行される線描画処理について、図２１に示すそのフローチャートを参照して詳細に説明する。その線描画処理は、図１５〜図１８に示す数値設定処理ではステップ１５２８として実行される。更には、図１６に示すステップ１５２０、１５２２、及び図１３に示すステップ１３０７としてそれぞれ実行される多重ループ処理、永久ループ処理、及び描画処理の各サブルーチン処理内でも実行される。
【００８８】
先ず、ステップ２１０１では、ステップ（Ｍ，波形）のデータ、即ちステップ番号が変数Ｍの値の波形を示す値で表示されるシンボルが「正１」「正２」「正３」及び「正４」の何れかであった場合に、正弦波の描画用に用意した波形テーブルのなかから、そのデータに対応する波形テーブルを選択する。それら波形テーブルは、例えば一定の時間間隔毎に、時間とレベル値の対応関係を定義したものである。変数Ｍの値は線描画処理を呼び出すサブルーチン処理から引数として渡される。
【００８９】
ステップ２１０１に続くステップ２１０２では、そのステップ２１０１で波形テーブルを選択した場合に、選択した波形テーブルの内容を、変数ＦＸ、ＦＹの各値で指定される始点から変数Ｘ、Ｙの各値で指定される終点間の時間間隔、レベル値の差に合わせて変換する。例えば波形テーブル上の時間は、それの総時間が始点−終点間の時間間隔と一致するように変換し、そのテーブル上のレベル値は、それの最初の値（最大値、或いは最小値）と最後の値（最小値、或いは最大値）の差が、始点−終点間のレベル値の差と一致するように変換する。ステップ２１０３には、そのような変換を行った後に移行する。
【００９０】
ステップ２１０３では、始点から終点に向けて線を例えばドット（画素）単位で順次、描画していくために用意した変数ｎに１を代入する。続くステップ２１０４では、描画する点の横（Ｘ）軸上の位置を管理するための変数ｘに、変数ＦＸの値に変数ｎの値を加算した値を代入し、その点の縦（Ｙ）上の位置を管理するための変数ｙには、変数ｘに代入した値で指定される横軸上の位置でのレベル値を算出してそれを代入した後、それら変数ｘ、ｙの各値で指定される点を線として表示させる。その後はステップ２１０５に移行する。ここで、変数ｙに代入する値は、上記ステップ２１０２で波形テーブルの変換を行っていた場合には、その変換後の波形テーブル中で変数ｎの値を時間として求められるレベル値（図中では「テーブル（ｎ）」と表記）を変数ＦＸの値に加算して得られる値である。そのステップ２１０２で波形テーブルの変換を行っていなかった、即ちステップ（Ｍ，波形）のデータで表示されるシンボルが「直」であった場合には、変数Ｙの値と変数ＦＹの値の間を変数ｎの値に応じて直線補間により求められる値（＝（Ｙ−ＦＹ）・ｎ／（Ｘ−ＦＸ））を変数ＦＹの値に加算して得られる値である。
【００９１】
ステップ２１０５では、変数ｎの値をインクリメントする。次に移行するステップ２１０６では、変数ｘの値が、エンベロープの編集が終了したか否か判定するために定めた値（図中では「最大値」と表記）以下か否か判定する。変数ｘの値がその値より大きい場合、判定はＮＯとなり、エンベロープの編集が終了したと見なす条件を満たしたとして、次にステップ２１０８で変数ＥＮＤＦに１を代入し、更にステップ２１０９で変数ＦＸ、ＦＹに変数Ｘ、Ｙの値をそれぞれ代入した後、一連の処理を終了する。そうでない場合には、判定はＹＥＳとなってステップ２１０７に移行する。
【００９２】
ステップ２１０７では、変数ｘの値が変数Ｘの値と等しいか否か、即ち始点から終点を結ぶ線の描画が終了したか否か判定する。その描画が終了した場合、判定はＹＥＳとなり、次に上記ステップ２１０９の処理を実行した後、一連の処理を終了する。そうでない場合には、判定はＮＯとなって上記ステップ２１０４に戻る。
【００９３】
このように、上記ステップ２１０４〜２１０７で形成される処理ループは、上記ステップ２１０６の判定がＮＯとなるまで繰り返し実行される。それにより、始点から終点に向かって、それらの間を結ぶ線が順次、描画されていくことになる。
【００９４】
図２２は、図１５〜図１８に示す数値設定処理内でステップ１５２０として実行される多重ループ処理のフローチャートである。次に図２２を参照して、その多重ループ処理について詳細に説明する。
上述したように、この多重ループ処理は、ステップ番号が変数Ｎの値の時間入力用エリアにシンボルとして入力された「Ｄ」に対応するために実行される処理である。本実施の形態では、その「Ｄ」が入力されると、ステップ番号「０」に戻ってエンベロープの形状を設定するようにしている。
【００９５】
先ず、ステップ２２０１では、変数Ｄに、ユーザが入力したデータ中でシンボル「Ｄ」の前に位置する数値を代入する。例えば図７に示すように、時間入力用エリアに「２Ｄ」をユーザが入力したのであれば、変数Ｄに２を代入する。続くステップ２２０２では、変数Ｄの値が２以上か否か判定する。変数Ｄに１、或いは０（シンボル「Ｄ」の前に数値が無いときに代入される）が代入されていた場合、即ちステップ番号「１」のデータからエンベロープの形状設定を行う必要がない場合、判定はＮＯとなり、ここで一連の処理を終了する。そうでない場合には、判定はＹＥＳとなってステップ２２０３に移行する。
【００９６】
ステップ２２０３では、変数ｄに１を代入する。その次に実行するステップ２２０４では、変数Ｍに１を代入する。その後に移行するステップ２２０５では、変数Ｍの値をインクリメントする。そのインクリメントを行った後は、ステップ２２０６に移行して、変数Ｎの値が変数Ｍの値より大きいか否か判定する。エンベロープの形状設定は、変数Ｍの値を随時、インクリメントしながら、その変数Ｍの値で指定されるステップ番号「Ｍ」のデータを処理していくことで行われる。このことから、ステップ番号「Ｎ−１」のデータまでエンベロープの形状設定が終了した場合、判定はＮＯとなってステップ２２１４に移行する。そうでない場合には、判定はＹＥＳとなってステップ２２０７に移行する。
【００９７】
ステップ２２０７では、変数Ｘに、変数ＦＸの値にステップ（Ｍ，時間）のデータとして保存された時間差分値を加算した値を代入し、更に変数Ｙに、ステップ（Ｍ，レベル）のデータとして保存されたレベル値を代入する。そのようにして、線を描画させるうえでの終点の位置を決定すると、ステップ２０１１に移行して、上述の線描画処理を実行する。その後はステップ２２０９に移行する。
【００９８】
ステップ２２０９では、変数Ｍの値をインクリメントする。続くステップ２２１０では、ステップ（Ｍ，時間）のデータ、即ちステップ番号が変数Ｍの値の時間データにシンボルとして「Ｌ」が含まれているか否か判定する。そのデータ中に「Ｌ」がシンボルとして含まれている場合、判定はＹＥＳとなってステップ２２１２に移行する。そうでない場合には、判定はＮＯとなってステップ２２１１に移行する。
【００９９】
ステップ２２１１では、変数ＥＮＤＦの値が１か否か判定する。その変数ＥＮＤＦに１が代入されていた場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなって上記ステップ２２０６に戻る。それにより、ステップ２２０９でインクリメントした後の変数Ｍの値で指定されるステップ番号のデータを対象にして、それ以降の処理を同様に実行する。
【０１００】
一方、ステップ２２１２では、ステップ（Ｍ，時間）のデータ中に「Ｌ」がシンボルとして含まれていたことから、図２０を参照して説明したループ処理を実行する。その後に移行するステップ２２１３では、変数ＥＮＤＦの値が１か否か判定する。その変数ＥＮＤＦに１が代入されていた場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなって上記ステップ２２０５に戻る。それにより、変数Ｍの値を更にインクリメントして、処理の対象とするステップ番号を次に移す。
【０１０１】
上記ステップ２２０６でＮＯと判定することで移行するステップ２２１４では、変数ＥＮＤＦの値が１か否か判定する。その変数ＥＮＤＦに１が代入されていた場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなり、次にステップ２２１５で変数ｄの値をインクリメントした後、ステップ２２１６に移行する。
【０１０２】
ステップ２２１６では、変数ｄの値が変数Ｄの値と等しいか否か判定する。それらの値が一致していた場合、判定はＹＥＳとなり、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなって上記ステップ２２０４に戻る。それにより、処理対象をステップ番号「１」に戻してエンベロープの形状設定を行う。
【０１０３】
このようにして、シンボル「Ｄ」の前に入力された数値から１を引いた回数、ステップ番号「１」からのエンベロープの形状設定を繰り返し行う。それにより、図７に示すようなエンベロープの線による描画を実現させる。なお、シンボル「Ｄ」の前に入力された数値から１を引いた回数だけエンベロープの形状設定を繰り返し行うのは、例えば図７では、ステップ番号「１０」のデータを処理する時点でステップ「９」までのデータは一通り処理されているためである。
【０１０４】
図２３は、図１５〜図１８に示す数値設定処理内でステップ１５２２として実行される永久ループ処理のフローチャートである。次に図２３を参照して、その永久ループ処理について詳細に説明する。
上述したように、この永久ループ処理は、ステップ番号が変数Ｎの値の時間入力用エリアにシンボルとして入力された「Ｅ」に対応するために実行される処理である。本実施の形態では、その「Ｅ」が入力されると、それよりも前のステップ番号でシンボル「Ｌ」又は「Ｄ」が入力されていればそれ以降、そのようなシンボルが入力されていなければステップ番号「０」から、エンベロープの形状設定を変数ＥＮＤＦに１が代入されるまで繰り返し行うようにしている。
【０１０５】
先ず、ステップ２３０１では、変数Ｍに変数Ｎの値を代入する。続くステップ２３０２では、変数Ｍの値をデクリメントする。その後に移行するステップ２３０３では、変数Ｍの値が１より大きいか否か判定する。変数Ｍの値が１より大きい場合、判定はＹＥＳとなってステップ２３０４に移行する。そうでない場合には、判定はＮＯとなってステップ２３０５に移行する。
【０１０６】
ステップ２３０４では、ステップ（Ｍ，時間）のデータ、即ちステップ番号「Ｍ」の時間入力用エリア内にシンボルとして「Ｌ」又は「Ｄ」が含まれているか否か判定する。その時間入力用エリア内に「Ｌ」又は「Ｄ」がシンボルとして表示されている場合、判定はＹＥＳとなってステップ２３０５に移行する。そうでない場合には、判定はＮＯとなり、上記ステップ２３０２に戻る。
【０１０７】
ステップ２３０５では、変数Ｍの値をインクリメントする。続くステップ２３０６では、変数Ｘに、変数ＦＸの値にステップ（Ｍ，時間）のデータとして保存された時間差分値を加算した値を代入し、更に変数Ｙに、ステップ（Ｍ，レベル）のデータとして保存されたレベル値を代入する。そのようにして、線を描画させるうえでの終点の位置を決定すると、ステップ２３０７に移行して、図２１に示す線描画処理を実行する。その後はステップ２３０８に移行する。
【０１０８】
ステップ２３０８では、変数Ｍの値をインクリメントする。次に移行するステップ２３０９では、変数Ｍの値が変数Ｎの値と等しいか否か判定する。その変数Ｎには、シンボルとして「Ｅ」が入力された、図１５〜図１８に示す数値設定処理で現在、処理対象としているステップ番号が代入されている。このことから、上記ステップ２３０５で変数Ｍに代入した値で指定されるステップ番号からステップ番号「Ｎ」の直前のステップ番号まで、各ステップ番号で入力されたデータに従ってエンベロープ（カーブ）の形状を示す線を描画した場合、判定はＹＥＳとなって上記ステップ２３０２に戻る。それにより、エンベロープの形状設定を再度、繰り返す。そうでない場合には、判定はＮＯとなってステップ２３１０に移行する。
【０１０９】
ステップ２３１０では、変数ＥＮＤＦの値が１か否か判定する。直前にステップ２０１１として実行した線描画処理で変数ＥＮＤＦに１が代入された場合、判定はＹＥＳとなり、それ以上、線の描画は不必要であるとして、ここで一連の処理を終了する。そうでない場合には、判定はＮＯとなり、上記ステップ２３０６に戻る。それにより、線の描画を続行する。
【０１１０】
次に、図１５〜図１８に示す数値設定処理内でステップ１５３７として実行されるクリア処理について、図２４に示すそのフローチャートを参照して詳細に説明する。
そのクリア処理は、図４〜図７に示す数値設定画面上に配置された「クリア」アイコンへのクリックに対応するための処理である。本実施の形態では、「クリア」アイコンがクリックされると、それまで入力されたデータは全て消去（クリア）するようにしている。
【０１１１】
先ず、ステップ２４０１では、ＲＡＭ１０３のエンベロープ描画領域（図２参照）に格納されたイメージデータをクリアし、表示エリアや数値入力用の各エリアでの表示をクリアさせる。次に移行するステップ２４０２では、数値データ領域に保存されたステップデータを全てクリアする。その後はステップ２４０３に移行する。
【０１１２】
ステップ２４０３では、変数Ｘ、Ｙ、及びＥＮＤＦにそれぞれ０を代入し、変数Ｎには２を代入する。続くステップ２４０４では、ステップ番号「１」の時間データ、レベルデータとしてそれぞれ０を数値データ領域に保存し、その保存と合わせて、ステップ番号「１」の時間入力用エリア、レベル入力用エリアにそれぞれ０を表示させる。一連の処理はその後に終了する。
【０１１３】
図１３に示すエンベロープ設定処理内でステップ１３０５として実行される数値設定処理では、上述したようなサブルーチン処理が実行される。次に、そのエンベロープ設定処理内でステップ１３０７として実行される描画処理について、図２５〜図２９に示すそのフローチャートを参照して詳細に説明する。
【０１１４】
先ず、ステップ２５０１では、図８〜図１１に示すような描画画面のオリジナル（図中では「描画画面画面枠」と表記）をＲＯＭ１０２から読み出し、表示器１０４に送出することで表示させる。続くステップ２５０２では、図１４を参照して説明した既設定エンベロープ描画処理を実行する。それにより、例えば図８に示すような状態で描画画面を表示器１０４に表示させた後はステップ２５０３に移行する。
【０１１５】
ステップ２５０３では、カーソルを表示器１０４に表示させる。次に実行するステップ２５０４では、カーソルを移動させる操作をユーザが行ったか否か判定する。ユーザが入力装置１０４の一部として搭載されたポインティングデバイスを操作したような場合、その操作に合わせてカーソルを移動させる必要が生じることから、判定はＹＥＳとなり、次にステップ２５０５において、ユーザが行った操作に応じてカーソルの表示位置を決定し、その決定した表示位置にカーソルを表示させる処理を行った後、ステップ２５０６に移行する。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなく、そのステップ２５０６に移行する。
【０１１６】
ステップ２５０６では、ユーザがクリック操作を行ったか否か判定する。ポインティングデバイスと合わせて設けられたスイッチ、或いはそれに代わるスイッチをユーザが操作したような場合、判定はＹＥＳとなってステップ２５０７に移行する。そうでない場合には、判定はＮＯとなり、ユーザは入力装置１０６への操作を行っていないとして、上記ステップ２５０４に戻る。
【０１１７】
ステップ２５０７では、カーソルの表示位置がエンベロープイメージの表示エリア内か否か判定する。その表示エリア内にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はＹＥＳとなってステップ２５０８に移行する。そうでない場合には、判定はＮＯとなって図２７のステップ２５１８に移行する。
【０１１８】
上記したように、表示エリア内の線の描画や描画された線の消去は、そのエリア内にクリックして行うようになっている。このことから、ステップ２５０８〜図２６のステップ２５１７では、そのようなことに対応するための処理が行われる。
【０１１９】
先ず、ステップ２５０８では、変数ＰＦに、表示エリア内への有効なクリックが行われたことを示す値の１を代入する。続くステップ２５０９では、クリックされた点の横軸上、縦軸上の位置を示す値をそれぞれ変数ＣＸ、ＣＹに代入する。その後は図２６のステップ２５１０に移行する。
【０１２０】
ステップ２５１０では、変数ＣＸの値が変数Ｘの値以下か否か判定する。その変数Ｘには、表示エリア内に描画された線の横軸上における終端の位置を示す値が代入されている。このことから、横軸上の終端の位置より後方に位置する点をユーザがクリックした場合、判定はＮＯとなってステップ２５１７に移行する。そうでない場合には、判定はＹＥＳとなり、次にステップ２５１１で変数ｎに１を代入した後、ステップ２５１２に移行する。
【０１２１】
ステップ２５１２では、変数ｎの値で指定されるステップ番号「ｎ」の時間データ、及びレベルデータとして保存された各値が、それぞれ変数ＣＸ、ＣＹの各値と予め定めた範囲内で一致するか否か判定する。対応する値がそれぞれその範囲内で一致していた場合、判定はＹＥＳとなってステップ２５１６に移行する。そうでない場合には、判定はＮＯとなり、次にステップ２５１３で変数ｎの値をインクリメントした後、ステップ２５１４に移行する。
【０１２２】
ステップ２５１４では、変数ｎの値が変数Ｎの値より大きいか否か判定する。変数Ｎの値より大きい値が変数ｎに代入された場合、判定はＹＥＳとなってステップ２５１５に移行し、ユーザが表示エリア内でクリックした点が線の描画のために過去に指定した点の何れとも一致しなかったとして、変数ＰＦに有効なクリックが行われていないことを示す値の０を代入する。その後は図２５のステップ２５０４に戻る。一方、そうでない場合には、判定はＮＯとなって上記ステップ２５１２に戻る。それにより、ステップ２５１２〜２５１４で形成される処理ループを、ステップ２５１２、或いは２５１４の判定がＹＥＳとなるまで繰り返し実行する。
【０１２３】
そのステップ２５１２の判定がＹＥＳとなって移行するステップ２５１６では、線の描画のために過去に指定した点のうちの一つをユーザがクリックしたことに合わせて、消去の対象となる線が存在することを示す値の１を変数ＣＬＦに代入する。続くステップ２５１７では、変数ＣＸ、ＣＹの各値で指定される位置に点（図１０参照）を表示させる。その後に図２５のステップ２５０４に戻る。
【０１２４】
このようにして、ユーザが表示エリア内をクリックしたことに対応するための処理が行われる。そのエリア外をクリックしたことに対応するための処理は、図２７のステップ２５１８〜図２９のステップ２５４７で行われる。そのステップ２５１８には、上述したように、上記ステップ２５０７の判定がＮＯとなることで移行する。
【０１２５】
図２７のステップ２５１８では、カーソルが「クリア」アイコン上か否か判定する。「クリア」アイコン上にカーソルを移動させた状態でユーザがクリック操作を行っていない場合、判定はＮＯとなって図２８のステップ２５２５に移行する。そうでない場合には、即ちユーザが「クリア」アイコンをクリックした場合には、判定はＹＥＳとなってステップ２５１９に移行する。
【０１２６】
ステップ２５１９では、変数ＣＬＦの値が１か否か、即ち消去の対象となる線が存在しているか否か判定する。そのような線が存在している場合、判定はＹＥＳとなってステップ２５２０に移行する。そうでない場合には、判定はＮＯとなって図２５のステップ２５０４に戻る。
【０１２７】
ステップ２５２０では、ＲＡＭ１０３のエンベロープ描画領域（図２参照）上から、変数ＣＸの値で指定される横軸上の位置より後の部分のイメージデータを消去し、表示エリア上では、その横軸上の位置より後に描画されている線を消去させる。次に移行するステップ２５２１では、その消去に合わせて、数値データ領域から、ステップ番号「ｎ＋１」〜「Ｎ」のデータをクリアする。ステップ２５２２にはその後に移行する。
【０１２８】
ステップ２５２２では、変数ＰＦ、ＣＬＦにそれぞれ０を代入する。それ以外には、例えば変数ＣＸの値が、エンベロープの編集が終了したか否か判定するために定めた値以下であれば、変数ＥＮＤＦに０を代入する。そのようなことを行った後はステップ２５２３に移行して、表示エリアに表示させた点（ポイント）（図１０参照）を消去させる。その後は、ステップ２５２４で変数Ｎに変数ｎの値を代入した後、図２５のステップ２５０４に戻る。
【０１２９】
上記ステップ２５１８の判定がＮＯとなって移行するステップ２５２５では、カーソルが「正弦波番号」アイコン上か否か判定する。そのアイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はＹＥＳとなり、次にステップ２５２６で変数ＳＷの値をインクリメントした後、ステップ２５２７に移行する。そうでない場合には、判定はＮＯとなってステップ２５２９に移行する。
【０１３０】
上記変数ＳＷは、「正弦波番号」アイコンとして表示する番号を管理するために用意した変数であり、その番号は１〜４の間の数値である。このことから、ステップ２５２６では、変数ＳＷの値が５か否か判定する。変数ＳＷに５が代入されていた場合、判定はＹＥＳとなり、次にステップ２５２８で変数ＳＷに１を代入した後、図２５のステップ２５０４に戻る。そうでない場合には、判定はＮＯとなり、他のステップの処理を実行することなく、その図２５のステップ２５０４に戻る。
【０１３１】
一方、ステップ２５２９では、カーソルが「戻る」アイコン上か否か判定する。そのアイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はＹＥＳとなり、次にステップ２５３０で変数ＰＦ、ＣＬＦにそれぞれ０を代入した後、一連の処理を終了する。そうでない場合には、判定はＮＯとなって図２９のステップ２５３１に移行する。
【０１３２】
図２９のステップ２５３１では、カーソルが「直線」アイコン上か否か判定する。そのアイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はＹＥＳとなってステップ２５３２に移行する。そうでない場合には、判定はＮＯとなってステップ２５４５に移行する。
【０１３３】
ステップ２５３２では、描画する線の種類を管理するために用意した変数Ｗに、直線を示す値の０を代入する。続くステップ２５３３では、変数ＰＦの値が１か否か判定する。上述したように、表示エリアに有効なクリックをユーザが行っていた場合、判定はＹＥＳとなってステップ２５３４に移行する。そうでない場合には、判定はＮＯとなって図２５のステップ２５０４に戻る。
【０１３４】
ステップ２５３４では、変数ＣＬＦの値が０か否か判定する。消去の対象が存在するように、ユーザが表示エリア内に描画された線上をクリックした場合、変数ＣＬＦには１が代入されることから、判定はＮＯとなって図２５のステップ２５０４に戻る。そうでない場合には、即ち既に描画された線の終端よりも後方に位置する点をユーザがクリックした場合には、判定はＹＥＳとなり、ステップ２５３５で変数Ｎの値をインクリメントした後、ステップ２５３６に移行する。
【０１３５】
ステップ２５３６では、変数Ｎの値が１２より大きいか否か判定する。予め固定されている先頭を除き、ユーザが１１箇所の点を指定していた場合、変数Ｎの値は１２より大きくなることから、判定はＹＥＳとなってステップ２５３８に移行する。そうでない場合には、判定はＮＯとなり、ステップ２５３７で変数Ｎに１２、変数ＥＮＤＦに１をそれぞれ代入した後、図２５のステップ２５０４に戻る。
【０１３６】
ステップ２５３８では、変数ＦＸ、ＦＹに、それぞれ変数Ｘ、Ｙの各値を代入する。次に移行するステップ２５３９では、変数Ｘ、Ｙに、それぞれ変数ＣＸ、ＣＹの各値を代入する。そのようにして、線を描画するうえでの始点、終点を決定した後はステップ２５４０に移行して、変数ＣＸの値から変数ＦＸの値を引いた値をステップ番号「Ｎ」の時間データとしてＲＡＭ１０３の数値データ領域内に保存する。同様に、変数ＣＹの値をステップ番号「Ｎ」のレベルデータとして保存し、変数Ｗの値をそれの波形データとして保存する。その後はステップ２５４１に移行する。
【０１３７】
ステップ２５４１では、変数Ｍに変数Ｎの値を代入する。続くステップ２５４２では、図２１に示す線描画処理を実行する。その線描画処理を実行した後は、変数ＰＦに０を代入し、更に表示エリア内に表示させた点（ポイント）を消去させる（ステップ２５４３、２５４４）。図２５のステップ２５０４にはその後に戻る。
【０１３８】
一方、上記ステップ２５３１でＮＯと判定した場合に移行するステップ２５４５では、カーソルが「正弦波」アイコン上か否か判定する。そのアイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はＹＥＳとなり、次にステップ２５４６で変数Ｗに変数ＳＷの値を代入した後、上記ステップ２５３３に移行する。そうでない場合には、即ち表示エリア内、及び各種アイコン以外の場所をユーザがクリックした場合には、判定はＮＯとなり、次にステップ２５４７で変数ＣＬＦに０を代入した後、上記ステップ２５４３に移行する。それにより、表示エリア内で有効なクリックを行っていても、それを無効とさせる。
【０１３９】
このように、本実施の形態では、ユーザが線を描画させる度に、そのために表示エリア内で指定した点、線の種類から、ステップ番号のデータを生成し保存している。それにより、異なる編集方法間でデータを共有化させている。
なお、本実施の形態では、ステップ番号毎に３種類のデータを入力するようになっているが、その数は２つ以上であれば幾つであっても良い。その入力は、必ずしも数値で行う必要はなく、例えば予め用意した選択肢のなかから選択して行うようにしても良い。
【０１４０】
データ入力上の機能を割り当てたシンボルとして「Ｌ」「Ｄ」「Ｅ」の３種類を用意しているが、その種類の数や割り当てる機能などは適宜、変更して良いものである。そのようなシンボルは時間入力用エリアに入力するようにしているが、他に２つの入力用エリアが存在していることから、それらのうちの何れかに、そのようなシンボルに割り当てた機能と組み合わせて用いられる機能を割り当てたシンボルを入力できるようにしても良い。そのようにした場合には、より所望の編集をより容易に行えるようになる。
【０１４１】
本実施の形態は、楽音発生装置（音源装置）に搭載されたパターン編集装置に本発明を適用したものであるが、本発明が適用できるのは楽音発生装置に搭載されたパターン編集装置に限定されるわけではない。編集の対象とするパターンの種類に係わらず、その編集をテーブル形式での数値の指定で行うパターン編集装置に幅広く本発明は適用させることができる。
【０１４２】
上述したようなパターン編集装置、或いはその変形例の動作を実現させるようなプログラムは、ＣＤ−ＲＯＭ、ＤＶＤ、フロッピーディスク、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置に本発明を適用させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【０１４３】
【発明の効果】
以上、説明したように本発明は、それぞれが異なる状態量を示す数値の組み合わせを複数、指定することにより、該指定された複数の数値の組み合わせで一部、或いは全体の形状が表されるパターンの編集を行う場合に、予め機能が割り当てられたシンボルを入力可能とし、そのシンボルが入力されると、そのシンボルに割り当てられている機能に従い、他に指定された数値の組み合わせを用いてパターンの一部、或いは全体の形状を設定する。このため、数値の組み合わせを指定する回数を最小限に抑えられるようになって、ユーザはパターンの編集をより容易、且つ迅速に行うことができることとなる。そのパターンを表示装置上に表示させるようにした場合には、その確認を容易に行えるようになる。
【図面の簡単な説明】
【図１】本実施の形態によるパターン編集装置を搭載した音源装置の回路構成図である。
【図２】ＲＡＭのマップを示す図である。
【図３】エンベロープ設定画面を示す図である。
【図４】数値設定画面上でエンベロープの編集を行う方法を説明する図である（その１）。
【図５】数値設定画面上でエンベロープの編集を行う方法を説明する図である（その２）。
【図６】数値設定画面上でエンベロープの編集を行う方法を説明する図である（その３）。
【図７】数値設定画面上でエンベロープの編集を行う方法を説明する図である（その４）。
【図８】描画画面上でエンベロープの編集を行う方法を説明する図である（その１）。
【図９】描画画面上でエンベロープの編集を行う方法を説明する図である（その２）。
【図１０】描画画面上でエンベロープの編集を行う方法を説明する図である（その３）。
【図１１】描画画面上でエンベロープの編集を行う方法を説明する図である（その４）。
【図１２】全体処理のフローチャートである。
【図１３】エンベロープ設定処理のフローチャートである。
【図１４】既設定エンベロープ描画処理のフローチャートである。
【図１５】数値設定処理のフローチャートである。
【図１６】数値設定処理のフローチャートである（続き１）。
【図１７】数値設定処理のフローチャートである（続き２）。
【図１８】数値設定処理のフローチャートである（続き３）。
【図１９】数値表示処理のフローチャートである。
【図２０】ループ処理のフローチャートである。
【図２１】線描画処理のフローチャートである。
【図２２】多重ループ処理のフローチャートである。
【図２３】永久ループ処理のフローチャートである。
【図２４】クリア処理のフローチャートである。
【図２５】描画処理のフローチャートである。
【図２６】描画処理のフローチャートである（続き１）。
【図２７】描画処理のフローチャートである（続き２）。
【図２８】描画処理のフローチャートである（続き３）。
【図２９】描画処理のフローチャートである（続き４）。
【符号の説明】
１０１    ＣＰＵ
１０２    ＲＯＭ
１０３    ＲＡＭ
１０４    表示器
１０５    ＭＩＤＩインターフェース
１０６    入力装置
１０７    音源ＬＳＩ
１０８    バス
【図１】
0004042352.tif 000002
【図２】
0004042352.tif 000003
【図３】
0004042352.tif 000004
【図４】
0004042352.tif 000005
【図５】
0004042352.tif 000006
【図６】
0004042352.tif 000007
【図７】
0004042352.tif 000008
【図８】
0004042352.tif 000009
【図９】
0004042352.tif 000010
【図１０】
0004042352.tif 000011
【図１１】
0004042352.tif 000012
【図１２】
0004042352.tif 000013
【図１３】
0004042352.tif 000014
【図１４】
0004042352.tif 000015
【図１５】
0004042352.tif 000016
【図１６】
0004042352.tif 000017
【図１７】
0004042352.tif 000018
【図１８】
0004042352.tif 000019
【図１９】
0004042352.tif 000020
【図２０】
0004042352.tif 000021
【図２１】
0004042352.tif 000022
【図２２】
0004042352.tif 000023
【図２３】
0004042352.tif 000024
【図２４】
0004042352.tif 000025
【図２５】
0004042352.tif 000026
【図２６】
0004042352.tif 000027
【図２７】
0004042352.tif 000028
【図２８】
0004042352.tif 000029
【図２９】
0004042352.tif 000030