JP4042352B2 - Pattern editing apparatus and program - Google Patents

Pattern editing apparatus and program Download PDF

Info

Publication number
JP4042352B2
JP4042352B2 JP2001175018A JP2001175018A JP4042352B2 JP 4042352 B2 JP4042352 B2 JP 4042352B2 JP 2001175018 A JP2001175018 A JP 2001175018A JP 2001175018 A JP2001175018 A JP 2001175018A JP 4042352 B2 JP4042352 B2 JP 4042352B2
Authority
JP
Japan
Prior art keywords
value
variable
data
input
envelope
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2001175018A
Other languages
Japanese (ja)
Other versions
JP2002366151A (en
Inventor
俊雄 樫尾
一昭 絹村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2001175018A priority Critical patent/JP4042352B2/en
Publication of JP2002366151A publication Critical patent/JP2002366151A/en
Application granted granted Critical
Publication of JP4042352B2 publication Critical patent/JP4042352B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【0001】
【発明の属する技術分野】
本発明は、それぞれが異なる状態量を表す数値の組み合わせを複数、指定することにより、一部、或いは全体の形状が表されるパターンの編集を行うための技術に関する。
【0002】
【従来の技術】
音量の時間変化のパターンである音量エンベロープは、楽音に対する印象に大きな影響を及ぼすことが知られている。このことから、音源装置やシンセサイザなどの楽音発生装置には、音量エンベロープを変更できるように、エンベロープエディタと呼ばれるパターン編集装置が搭載されているものがある。なお、音量エンベロープは、通常、アタック時間、ディケイ時間、サスティン時間、及びリリース時間の4つの部分に区分けされる。
【0003】
楽音発生装置に搭載されたパターン編集装置では、音量エンベロープの形状の編集、即ちその形状の変更やそれの生成は、ポインティングデバイスなどを用いてその形状を描画するか、或いはその形状の設定に反映される数値を指定することで行うようになっている。その数値とは、予め用意されたパラメータの値として設定されるものか、或いはテーブル形式で形状を指定するためのものである。そのテーブル形式では、例えば発音開始から経過した時間を示す値、その値で示される時間での音量レベルを示す値を少なくとも含む数値の組み合わせを時間別に指定するようになっている。パラメータとしては、アタック時間などの時間やサスティンレベルなどを設定するためのものが複数、用意されているのが普通である。
【0004】
【発明が解決しようとする課題】
数値をテーブル形式で指定できる従来のパターン編集装置では、楽音の発音開始から消音するまでの間、時間と音量レベルの関係を時間別に数値で指定しなければならなかった。このため、音量エンベロープの編集の際に多くの数値を指定しなければならず、その編集が容易に行えないという問題点があった。なお、その問題点は、パターンの種類に係わらず、その編集をテーブル形式での数値の指定で行う場合に共通したものである。
【0005】
本発明の課題は、テーブル形式での数値の指定によるパターンの編集をより容易に行えるようにしたパターン編集装置を提供することにある。
【0006】
【課題を解決するための手段】
本発明の第1の態様のパターン編集装置は、前記状態量を示す数値の組み合わせとして、時間を示す数値、及び該時間に依存して変化する状態量のレベルを示す数値を指定するための数値指定手段と、前記数値指定手段によりすでに入力されている前記数値の組み合わせを、再度繰り返して入力するための機能が割り当てられた繰り返し指示用シンボルが指定された場合に、該数値指定手段によりすでに入力されている数値の組み合わせで形状が表されるパターンを繰り返し設定する形状設定手段と、を具備する。
【0008】
本発明の第2の態様のパターン編集装置は、上記第1の態様に加えて、形状設定手段が形状を決定したパターンを表示装置上に表示させるための描画手段、を更に具備する。
本発明のプログラムは、それぞれが異なる状態量を示す数値の組み合わせを複数、指定することにより、該指定された複数の数値の組み合わせで一部、或いは全体の形状が表されるパターンの編集が行えるパターン編集装置として用いることが可能なコンピュータに、前記状態量を示す数値の組み合わせとして、時間を示す数値、及び該時間に依存して変化する状態量のレベルを示す数値を指定するための機能と、前記指定するための機能によりすでに入力されている前記数値の組み合わせを、再度繰り返して入力するための機能が割り当てられた繰り返し指示用シンボルが指定された場合に、該指定するための機能によりすでに入力されている数値の組み合わせで形状が表されるパターンを繰り返し設定する機能と、を実現させる。
【0009】
本発明では、それぞれが異なる状態量を示す数値の組み合わせを複数、指定することにより、該指定された複数の数値の組み合わせで一部、或いは全体の形状が表されるパターンの編集を行う場合に、予め機能が割り当てられたシンボルを入力可能とし、そのシンボルが入力されると、そのシンボルに割り当てられている機能に従い、他に指定された数値の組み合わせを用いてパターンの一部、或いは全体の形状を設定する。それにより、数値の組み合わせを指定する回数が抑えられるようになって、ユーザはパターンの編集をより容易、且つ迅速に行えるようになる。そのパターンを表示装置上に表示させるようにした場合には、その確認を容易に行えるようになる。
【0010】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照しながら詳細に説明する。
図1は、本実施の形態によるパターン編集装置を搭載した音源装置の回路構成図である。
【0011】
その音源装置は、図1に示すように、装置全体の制御を行うCPU101と、プログラムや各種データを格納したROM102と、CPU101がワーク用に用いるRAM103と、そのCPU101から送られたデータを表示する表示器104と、外部装置とMIDIデータをやりとりするMIDIインターフェース105と、ユーザが操作の対象とする入力装置106と、楽音を発音させるためのオーディオ信号を生成する音源LSI107と、それら各部101〜107を相互に接続するバス108と、音源LSI107から出力されたオーディオ信号の増幅を行うアンプ109と、そのアンプ109から出力されたオーディオ信号を入力して楽音を放音するスピーカー110と、を備えて構成されている。
【0012】
上記表示器104は例えば液晶表示器である。その表示器104の代わりに、外部の表示装置に信号、或いはデータを出力するインターフェースを備えても良い。入力装置106は、例えば各種キーやポインティングデバイスなどの操作子を備えたものである。各種キーとしては、数値入力用のテンキーや、シンボル入力用の複数のキーなど多数のキーが備えられている。音源LSI107は、例えばCPU101の指示に従い、発音させる楽音の波形データを生成し、生成した波形データに対して、必要に応じて音響効果を付加させる処理を施した後、それをD/A変換することでオーディオ信号を生成し出力するものである。
【0013】
上述したような構成の音源装置は、MIDIインターフェース105を介して受信したMIDIデータを処理することにより、そのMIDIデータで指定された楽音を放音する。本実施の形態によるパターン編集装置は、放音される楽音の波形を加工するうえで用いられる各種パターンの編集をユーザが行えるようにするために搭載されている。各種パターンとしては、音量エンベロープやピッチ・エンベロープ、パン・エンベロープなどがある。ユーザが編集を行ったエンベロープのデータを保存しておけるように、RAM103は特には図示しないバッテリによって不揮発性化されている。
【0014】
以上の構成において動作を説明する。
ユーザが電源をオンさせると、CPU101はROM102からプログラムを読み出して実行することにより、装置全体の制御を開始する。その制御は、MIDIインターフェース105のMIDIデータの受信、入力装置106へのユーザの操作に対応する形で行う。それにより、MIDIインターフェース105がMIDIデータを受信すると、そのMIDIデータ、或いはそれに対応するコマンドを音源LSI107に送出することにより、楽音をスピーカー110から放音させる。入力装置106をユーザが操作した場合には、ユーザが操作した操作子の種類に応じた処理を行う。パターンの編集は、その処理を行うことで実現される。
【0015】
そのパターンの編集を実現させるために、CPU101は以下のようなデータをRAM103に格納する。図2を参照して、そのデータについて詳細に説明する。
図2は、RAM103のマップを示す図である。編集可能な1種類のエンベロープに着目して、そのデータや、編集用に用意した各種変数をRAM103に保存するうえでの割り当てを示したものである。そのエンベロープは、ここではピッチ・エンベロープとしている。そのピッチ・エンベロープとは、楽音のピッチ(音高)の時間変化を示すパターンである。以降、混乱を避けて理解を容易とするために、特に断らない限り、編集の対象はピッチ・エンベロープであるとの前提で説明を行うこととする。
【0016】
図2中の「エンベロープ描画領域」は、ピッチ・エンベロープのイメージデータを保存しておくために確保した領域である。そのイメージデータは、横(X)軸は時間、縦(Y)軸は楽音のピッチ(音高)の基準となる音高(ピッチ)からの変位量を示すレベルとした表示エリア(図3〜図11参照)上で描画することで入力できるようになっている。
【0017】
上記ピッチ・エンベロープの形状は、それを描画することで指定する他に、数値により指定することができるようになっている。図2中の「エンベロープ数値データ」は、その指定のために入力された全ての数値などからなるデータである。「エンベロープ描画領域」に保存されるイメージデータは、数値を指定した場合、指定の数値から生成される。エンベロープ数値データが格納される領域については、以降、数値データ領域と呼ぶことにする。
【0018】
数値の指定は、時間別に、時間、その時間でのレベル(ピッチの変位量)、ピッチ・エンベロープを形作る線の種類(図中では「波形」と表記。以降、特に断らない限り、波形とはその意味で用いることにする。楽音を放音させるための波形については、以降、楽音波形と表記する)を指定(入力)することで行うことを基本としている。指定されたレベルと直前に指定された時間でのレベルとは、波形として指定された線で結ぶようになっている。図2中の「ステップ(1)〜(12)」は、それぞれ、そのような数値の組み合わせからなるデータを表したものであり、括弧内の数字は、「1」を初期値として先頭からの順番を昇順で表している。以降、括弧内の数字はステップ番号と呼び、そのステップ番号で指定(入力)されたデータをまとめてステップデータと呼ぶことにする。エンベロープ数値データを構成するステップ番号「n」のステップデータについては、ステップ(n)データと表記することにする。本実施の形態では、ステップ番号「1」では時間、レベルを示す各値はそれぞれ予め定めた値に固定とし、他のステップ番号「2」〜「12」で時間やレベル、波形を任意に指定できるようにさせている。
【0019】
図2中の「N」「X」「Y」「FX」「FY」「M」「ENDF」「L」「D」「l」「d」「n」は、それぞれ、その名称の変数に代入された値を示している。各変数についての説明は後述する。
入力装置106として備えられた所定のスイッチを操作してユーザがエンベロープの編集を要求すると、CPU101は、図3に示すようなエンベロープ設定画面を表示器104に表示させる。その設定画面には、現在、設定されているピッチ・エンベロープのイメージが描画される表示エリアの他に、「数値」「描画」及び「戻る」の各アイコンが配置されている。「数値」アイコンは、エンベロープの形状の指定を数値で行うことを選択できるように、「描画」アイコンは、その指定を描画によって行うことを選択できるようにそれぞれ用意している。それにより、本実施の形態では、ユーザが形状を指定(設定)し易い方を選択できるようにして、その指定をより容易に行えるようにしている。なお、図3に示すようなエンベロープ設定画面の表示は、例えばCPU101が、そのオリジナルの画面をROM102から読み出し、その表示エリア内に、RAM103内の図2に示すエンベロープ描画領域に格納されたイメージデータを挿入した後、表示器104に送出することで行われる。
【0020】
エンベロープ設定画面上の「数値」アイコンをユーザがクリックすると、CPU101は、図4に示すような数値設定画面を表示器104に表示させる。その設定画面には、エンベロープのイメージが描画される表示エリアや数値入力用の表示エリアの他に、「クリア」「戻る」の各アイコンが配置されている。その表示エリアを配置することで、数値入力で編集するエンベロープの形状をユーザが容易に確認できるようにさせている。「クリア」アイコンは、入力された全ての数値のクリアを指示するためのものであり、「戻る」アイコンは一つ前の状態、即ち図3に示すエンベロープ設定画面が表示された状態に戻るのを指示するためのものである。そのような設定画面の表示は、例えばCPU101が、オリジナルの画面をROM102から読み出し、それの各表示エリア内に、RAM103内の図2に示すエンベロープ描画領域、数値データ領域にそれぞれ格納されたデータを展開して挿入した後、表示器104に送出することで行われる。
【0021】
上記数値入力用の表示エリアは、ステップ番号毎、入力する数値(データ)の内容毎に分けられている。ここでは、便宜的に、時間、レベル、及び波形を示す各値をそれぞれ入力するためのエリアを時間入力用エリア、レベル入力用エリア、波形入力用エリアと呼ぶことにする。各入力エリアに入力されたデータが、ステップデータを構成する時間データ、レベルデータ、波形データとして扱われる(図2参照)。
【0022】
上記時間入力用エリアにデータとして入力するのは、直前のステップ番号で指定の時間との時間差(時間間隔)を示す値(以降、時間差分値と呼ぶ)としている。レベルを示す値の値域は100〜−100としている。ステップ番号「2」「3」の各波形入力用エリアに表示(入力)された「直」は直前のステップ番号で指定のレベルと直線で結ぶことを表すシンボルであり、例えばそれに割り当てた数値を入力することで表示される。それにより、エンベロープイメージの表示エリアには、図4に示すような形状のパターンが描画されている。時間入力用エリア、レベル入力用エリア、及び波形入力用エリアへの入力は、例えば入力装置106が備えたスイッチを操作することで行われる。
【0023】
図4に示すような数値設定画面上では、数値入力はステップ番号の昇順に順次、行うようになっている。本実施の形態では、その数値入力をより容易に行えるように、以下のようなシンボルに数値入力上の機能を割り当てている。そのシンボル、及びそれに割り当てられた数値入力上の機能を含め、エンベロープの編集を数値入力で行う方法について、図5〜図7を参照して詳細に説明する。
【0024】
図5では、図4に示す状態から、ステップ番号「4」の時間入力用エリアに「2L」が入力されている。「2L」中の「L」は、それよりも前のステップ番号でのデータ入力(時間、レベル、及び波形の各データからなる組み合わせ)を繰り返すことを指示するためのシンボルであり、「2L」中の「2」は、その繰り返しを行う回数が2回であることを示している。そのようなことを指示する「2L」をステップ番号「4」の時間入力用エリアにデータとして入力させることで、エンベロープイメージの表示エリアには、図5に示すように、ステップ番号「0」〜「2」で入力されたデータにより描画された形状がそれに続く形で更に描画されている。
【0025】
図6では、図4に示す状態から、ステップ番号「4」の時間入力用エリアに「E」が入力されている。「E」は、それよりも前のステップ番号でのデータ入力を、予め定めた条件を満たすまで繰り返すことを指示するためのシンボルである。そのようなことを指示する「E」がステップ番号「4」の時間入力用エリアに入力させることで、エンベロープイメージの表示エリアには、図6に示すように、ステップ番号「0」〜「2」で入力されたデータにより描画された形状が全体にわたって繰り返し描画されている。なお、本実施の形態では、エンベロープの形状を設定した時間が予め定めた時間より長くなった場合に、上記条件を満たしたとしている。
【0026】
図7では、図4に示す状態から、ステップ番号「4」「9」及び「10」の各時間入力用エリアに「3L」「1L」「2D」がそれぞれ入力されている。ステップ番号「5」〜「8」の各波形入力用エリアには「正3」「正4」「正1」「正2」がそれぞれ入力されている。「正3」「正4」「正1」「正2」は、それぞれ180度から270度、270度から360度、0度から90度、90度から180度の部分に対応する正弦波で線を結ぶことを表すシンボルである。
【0027】
上記「L」では、その前に他に入力されているものが存在していれば、直前に位置しているものより後のデータ入力(通常は時間、レベル、及び波形の各データからなる組み合わせ)を繰り返し入力の対象としている。例えばステップ番号「4」でデータとして入力された「3L」では、ステップ番号「1」〜「3」でのデータ入力を繰り返し入力の対象とし、ステップ番号「9」で入力された「1L」では、ステップ番号「5」〜「8」での入力を繰り返し入力の対象としている。そのように、「L」は同じ種類のシンボル、或いはそれよりも上位の機能が割り当てられているシンボルでデータ入力を繰り返す範囲を限定できるようになっている。
【0028】
ステップ番号「10」で入力された「2D」中の「D」は、「L」と同様に、それよりも前のステップ番号でのデータ入力を繰り返すことを指示するためのシンボルであるが、割り当てられた機能は「L」よりも上位となっている。このため、それよりも前のステップ番号で「L」が入力されていれば、その「L」によるデータ入力の繰り返しを行いつつ、全体的なデータ入力を繰り返すようになっている。それにより、エンベロープイメージの表示エリアには、図7に示すような形状のパターンが描画されている。
【0029】
このように、本実施の形態では、上述したような機能を割り当てたシンボルを数値入力での編集用に用意している。このため、図5〜図7にそれぞれ示すように、データの内容、及びその順序が同一の連続する複数のステップ番号でのデータ入力は、それに続く1ステップ番号でのデータ入力で済ますことができるようになっている。それにより、エンベロープ(パターン)の編集をより容易、且つ迅速に行えるようにさせている。
【0030】
なお、本実施の形態では、数値入力上の機能を割り当てたシンボルとして「L」「E」「D」の3種類を用意しているが、そのシンボルは3種類でなくても良い。それ以上であってもそれ以下であっても良い。シンボルに割り当てる機能についても、上述したようなものに限定されるわけではない。これらのことから明らかなように、本発明は様々な変形を行うことができるものである。
【0031】
図3に示すエンベロープ設定画面上の「描画」アイコンをユーザがクリックすると、CPU101は、図8に示すような描画画面を表示器104に表示させる。その描画画面には、エンベロープのイメージが描画される表示エリアの他に、「クリア」「戻る」「正弦波」「直線」の各アイコンが配置されている。「クリア」アイコンは、表示エリア上に描画されている線の消去を指示するためのものであり、「戻る」アイコンは一つ前の状態、即ち図3に示すエンベロープ設定画面が表示された状態に戻るのを指示するためのものである。「直線」アイコンは、表示エリア内で指定された点の間を結ぶ線として直線を選択するためのものである。「正弦波」アイコンは、その線として正弦波を選択するためのものである。その下に設けられた入力エリアに入力(表示)された「1」は、図7中の「正1」に対応、即ち正弦波として0度〜90度に対応する部分を描画することを表している。同様に、「2」「3」「4」は、それぞれ「正2」「正3」「正4」に対応する。そのエリア内の表示内容は、そのエリア内をクリックする度に、サイクリックに変更するようになっている。以降、「正弦波」アイコンの下に設けられた数値(番号)表示用のエリアについては、1種のアイコンとして機能させていることから、「正弦波番号」アイコンと呼ぶことにする。
【0032】
エンベロープ(カーブ)の描画は、ステップ番号「1」で固定的に入力されたデータで指定される点を起点として、それから順次、それと線で結ぶ点、及びその線の種類を指定していくことで行うようになっている。指定された点の位置から時間差分値、レベル値を算出することで、エンベロープを描画する場合であっても、ステップデータを生成して保存するようにしている。それの波形データは、指定された線の種類に対応するものである。そのようにして、エンベロープのデータを共有化することにより、同一のエンベロープを異なる編集方法で編集できるようにさせている。ここで図9〜図11に示す説明図も合わせて参照しつつ、描画画面上でエンベロープの編集を行う方法について具体的に説明する。
【0033】
図8で表示エリア内に示す点Aをクリックした後、「クリア」アイコンをクリックすると、図9に示すように、その点A以降で描画用に指定された点は全て無効とする形で線が消去される。それにより、既に描画されている線の消去は、線の描画のために指定した点のなかで消去を望む線の先頭(ここではその近傍を含む)に位置する点をクリックした後、「クリア」アイコンをクリックすることで行うようになっている。
【0034】
上述したようにして線を消去させた後は、残っている線の終端から描画を行うことになる。その消去を行った後、図10に示す点Bをクリックしてから「直線」アイコンをクリックすると、図11に示すように、残っている線の終端(時間(横)軸上で最後方に位置している端)から点Bを結ぶ直線が描画されることになる。
【0035】
CPU101は、上述したようにして、数値設定画面上、或いは描画画面上でのピッチ・エンベロープの編集をユーザに行わせる。RAM103に保存したエンベロープのイメージデータや数値データは、ユーザが行った編集内容に合わせて、必要に応じて随時、更新する。音源LSI107には、エンベロープの形状を示すデータとして、例えばイメージデータを必要に応じて送出する。それにより、ユーザが編集したエンベロープでの楽音の放音を行わせる。
【0036】
その音源LSI107は、例えば楽音波形データを格納したメモリを備え、そのメモリから楽音波形データを読み出す速さを変更することにより、放音する楽音の音高に対応する楽音波形データを生成する。そのようにして楽音波形データを生成する場合、音源LSI107は、CPU101から送られたピッチ・エンベロープのデータに従って、楽音波形データを読み出す速さを変更する。それにより、楽音波形データの生成にピッチ・エンベロープを反映させる。
【0037】
次に、上述したようなエンベロープの編集をユーザに行わせるCPU101の動作について、図12〜図29に示す各種フローチャートを参照して詳細に説明する。なお、図12〜図29に示す各種フローチャートで表される処理は、例えばCPU101が、ROM102に格納されたプログラムを実行することで実現される。
【0038】
図12は、全体処理のフローチャートである。電源がオンされている間、CPU101が実行する処理の全体的な流れを表したものである。始めに、図12を参照して、全体処理について詳細に説明する。
先ず、ステップ1201では、電源がオンされたことに合わせて、楽音発生装置を予め定められた状態に設定するイニシャライズを行う。続くステップ1202では、ユーザがエンベロープの設定を指示したか否か判定する。入力装置106からユーザが各種操作子に対して行った操作の内容を示すデータを受け取ってそれを解析することにより、その設定を指示するためのスイッチをユーザが操作したことが判明した場合、判定はYESとなり、ステップ1203において、図4〜図11を参照して説明したようなエンベロープの設定(編集)を実現させるためのエンベロープ設定処理を実行する。その後は上記ステップ1202に戻り、それ以降の処理を同様に実行する。
【0039】
一方、エンベロープの設定を指示するためのスイッチをユーザが操作していないことが判明した場合には、上記ステップ1202の判定はNOとなってステップ1204に移行する。そのステップ1204では、MIDIインターフェース105によるMIDIデータの受信や、入力装置106が備えた他の操作子に対するユーザの操作などに対応するためのその他の処理を実行する。その後は上記ステップ1202に戻り、それ以降の処理を同様に実行する。
【0040】
図13は、上記ステップ1203として実行されるエンベロープ設定処理のフローチャートである。次に、図13を参照して、その設定処理について詳細に説明する。
先ず、ステップ1301では、図3に示すようなエンベロープ設定画面のオリジナル(図中では「エンベロープ設定画面枠」と表記)をROM102から読み出し、表示器104に送出することで表示させる。続くステップ1302では、RAM103の数値データ領域に保存されたエンベロープ数値データから、それが表すエンベロープのイメージデータを生成してRAM103のエンベロープ描画領域に格納する。次に移行するステップ1303では、その描画領域に格納したイメージデータをエンベロープ設定画面の表示エリア内に描画させるための既設定エンベロープ描画処理を実行する。それにより、図3に示すようなエンベロープ設定画面を表示器104に表示させた後はステップ1304に移行する。
【0041】
ステップ1304では、エンベロープ設定画面上の「数値」アイコンがオン(クリック)されたか否か判定する。カーソルが「数値」アイコン上に位置している状態でユーザがクリック操作を行った場合、判定はYESとなり、次にステップ1305において、数値入力によるエンベロープの編集をユーザに行わせるための数値設定処理を実行した後、上記ステップ1301に戻る。そうでない場合には、判定はNOとなってステップ1306に移行する。
【0042】
ステップ1306では、エンベロープ設定画面上の「描画」アイコンがオン(クリック)されたか否か判定する。カーソルが「描画」アイコン上に位置している状態でユーザがクリック操作を行った場合、判定はYESとなり、次にステップ1307において、描画によるエンベロープの編集をユーザに行わせるための描画処理を実行した後、上記ステップ1301に戻る。そうでない場合には、判定はNOとなってステップ1308に移行する。
【0043】
ステップ1308では、エンベロープ設定画面上の「戻る」アイコンがオン(クリック)されたか否か判定する。カーソルが「戻る」アイコン上に位置している状態でユーザがクリック操作を行った場合、判定はYESとなり、ここで一連の処理を終了する。そうでない場合には、判定はNOとなって上記ステップ1304に戻る。それにより、エンベロープ設定画面を表示器104に表示させている場合、それに配置したアイコンのうちの何れかをユーザがクリックするのを待つ。
【0044】
上記エンベロープ設定処理を実行することにより、エンベロープの編集方法の選択やその編集をユーザは行うことができる。以降は、その設定処理内で実行されるサブルーチン処理について詳細に説明する。
図14は、上記ステップ1303として実行される既設定エンベロープ描画処理のフローチャートである。エンベロープ設定処理内で実行されるサブルーチン処理は、始めに図14を参照して、その描画処理について詳細に説明する。
【0045】
先ず、ステップ1401では、表示器104に表示させている画面の種類を判定する。その画面として、図4〜図7に示すような数値設定画面を表示器104に表示させていた場合、その旨が判定されてステップ1402に移行する。同様に、図3に示すようなエンベロープ設定画面を表示させていた場合には、その旨が判定されてステップ1403に移行し、図8〜図11に示すような描画画面を表示させていた場合には、その旨が判定されてステップ1404に移行する。
【0046】
ステップ1402では、RAM103のエンベロープ描画領域(図2参照)に格納されたエンベロープのイメージデータを、数値設定画面上のその表示エリアに描画されるように表示器104に送出する。それにより、例えば図4に示すようなエンベロープ(カーブ)を表示エリア内に表示させた後、一連の処理を終了する。
【0047】
ステップ1403、1404では、対象とする画面を代えて、上記ステップ1402と同様の処理を実行する。それにより、エンベロープ設定画面や描画画面を表示させた場合も、例えば図3、或いは図8に示すように、エンベロープ(カーブ)が表示エリア内に表示される。
【0048】
図15〜図18は、図13に示すエンベロープ設定処理内でステップ1305として実行される数値設定処理のフローチャートである。次に図15〜図18を参照して、数値設定処理について詳細に説明する。エンベロープ数値データを構成する最小単位のデータ(時間差分値、レベル値など)については、以降、ステップ(a,b)のデータというように表記することにする。括弧内の添字aはステップ番号、添字bはそのステップ番号で入力されるデータの種類を表すために用いる。添字bの具体的なシンボルとしては、時間差分値を表す際には「時間」、レベル値を表す際には「レベル」、波形を示す値(表示はその値に対応する「直」や「正1」などのシンボルである)を表す際には「波形」を用いることにする。
【0049】
先ず、ステップ1501では、図4〜図7に示すような数値設定画面のオリジナル(図中では「数値設定画面枠」と表記)をROM102から読み出し、表示器104に送出することで表示させる。続くステップ1502では、RAM103の数値データ領域に保存されているエンベロープ数値データを数値入力用の対応するエリアに表示させる数値表示処理を実行する。その次に移行するステップ1503では、図14を参照して説明した既設定エンベロープ描画処理を実行する。それにより、例えば図4に示すような状態で数値設定画面を表示器104に表示させた後はステップ1504に移行する。
【0050】
ステップ1504では、変数ENDFの値が0か否か判定する。その変数ENDFは、編集の対象となるエンベロープの編集が完了したと見なせる状態か否か把握するために用意した変数である。それに代入される「0」は完了と見なせる状態でないことを表し、「1」はその状態であることを表している。このことから、エンベロープの編集が完了したと見なせる状態でない場合、判定はYESとなり、次にステップ1505において、データ入力を次に行うべきエリアをユーザに知らせるために、ステップ番号が変数Nの値の時間入力用エリア(図中では「ステップ数値表示エリア(N,時間)」と表記)の表示色を他のエリアとは異なる表示色に変更させた後、ステップ1506に移行する。そうでない場合には、判定はNOとなってそのステップ1506に移行する。
【0051】
本実施の形態では、後述するように、ステップ番号「12」までデータ入力を行うか、或いはエンベロープをかける時間が予め定めた時間より長い場合に、エンベロープの編集が完了したと見なせる状態であると判定するようにしている。上記変数Nは、データ入力の対象とするステップ番号を管理するために用意した変数である。ステップ1502の数値表示処理の実行時に、次にデータ入力の対象とするステップ番号が変数Nに代入される。
【0052】
ステップ1506では、カーソルを表示器104に表示させる。次に実行するステップ1507では、データ入力が行われたか否か判定する。ユーザが入力装置106に対してデータ入力のための操作を行った場合、判定はYESとなってステップ1508に移行する。そうでない場合には、判定はNOとなって図18のステップ1533に移行する。なお、表示色の変更やカーソルの表示、或いはその表示位置の変更は、例えばCPU101が、そのような変更や表示に伴って表示内容を変更すべき部分を特定し、その特定した部分のイメージデータを表示器104に送出して、表示器104が持つ1画面分のイメージデータを部分的に更新することで行われる。これは、入力されたデータや、データの入力に伴ってエンベロープ(カーブ)を構成する線などを表示器104に表示させる場合も同様である。
【0053】
ステップ1508では、表示色を他と変えているエリア、即ち次にデータ入力の対象とするエリアの種類を判定する。レベル入力用エリアの表示色を他と変えていた場合、そのエリアはレベル入力用エリアであると判定して、ステップ1509に移行する。
【0054】
ステップ1509では、ユーザが入力したデータを、ステップ(N,レベル)のデータ、即ちステップ番号「N」のレベル値であるとしてRAM103に格納する。続くステップ1510では、そのデータを、表示色を他と変えているレベル入力用エリア内に表示させる。次に移行するステップ1511では、そのレベル入力用エリアに代えて、それの下に位置する波形入力用エリアの表示色を変更させる。その後に、上記ステップ1507に戻る。
【0055】
時間入力用エリアの表示色を他と変えていた場合には、上記ステップ1508では、表示色を他と変えているエリアは時間入力用エリアであると判定する。そのように判定することで移行するステップ1512では、ユーザが入力したデータを、ステップ(N,時間)のデータ、即ちステップ番号「N」の時間差分値であるとしてRAM103に格納する。次に移行するステップ1513では、そのデータを、表示色を他と変えている時間入力用エリア内に表示させる。その後は、図16のステップ1515に移行する。
【0056】
時間入力用エリアには、図5〜図7に示すように、数値以外のシンボルを入力できるようになっている。各シンボルには、それぞれ上述したような数値入力上の機能を割り当てている。図16のステップ1515〜1522では、そのようなシンボルを含めて、数値入力エリアに入力されたデータに対応するための処理が行われる。
【0057】
先ず、ステップ1515では、入力されたデータが数値のみか否か判定する。ユーザが入力装置106を操作して、時間入力用エリアに数値を入力した場合、判定はYESとなって次にステップ1516を実行し、その時間入力用エリアに代えて、それの下に位置するレベル入力用エリアの表示色を変更させた後、図15のステップ1507に戻る。そうでない場合には、判定はNOとなってステップ1517に移行する。
【0058】
ステップ1517では、入力されたデータがシンボルとして「L」を含むか否か判定する。ユーザが入力装置106を操作して、時間入力用エリアに「L」を含むデータを入力した場合、判定はYESとなってステップ1516に移行する。そうでない場合には、判定はNOとなってステップ1519に移行する。
【0059】
ステップ1518では、「L」の入力に対応するためのループ処理を実行する。続く図17のステップ1529では、変数Nの値をインターフェースする。その次に移行するステップ1530では、変数Nの値が12未満か否か判定する。ユーザが全てのステップ番号でデータ入力を行っていない場合、判定はYESとなり、ステップ1531に移行して、ステップ番号が変数Nの値の時間入力用エリアの表示色を変更させる。その後は図15のステップ1507に戻る。一方、そうでない場合には、即ち、ユーザが全てのステップ番号でデータ入力を行った場合には、判定はNOとなり、次にステップ1532で変数ENDFに1を代入した後、図15のステップ1507に戻る。
【0060】
図16のステップ1517でNOと判定した場合に移行するステップ1519では、入力されたデータがシンボルとして「D」を含むか否か判定する。ユーザが入力装置106を操作して、時間入力用エリアに「D」を含むデータを入力した場合、判定はYESとなってステップ1520に移行し、「D」の入力に対応するための多重ループ処理を実行する。その後は前述の図17のステップ1529に移行する。そうでない場合には、判定はNOとなってステップ1521に移行する。
【0061】
ステップ1521では、入力されたデータがシンボルの「E」か否か判定する。ユーザが入力装置106を操作して、時間入力用エリアに「E」を入力した場合、判定はYESとなってステップ1522に移行し、「E」の入力に対応するための永久ループ処理を実行する。その後は図15のステップ1507に戻る。そうでない場合には、判定はNOとなり、そのステップ1507に戻る。
【0062】
上記ループ処理、多重ループ処理、及び永久ループ処理では、それを実行すると、ユーザが入力したシンボルの種類に応じて、エンベロープのイメージ用の表示エリア内に線を描画させる。それにより、ユーザに、シンボルを時間入力用エリアに入力したことで生成されるエンベロープの形状を確認させるようになっている。
【0063】
レベル入力用エリア、及び時間入力用エリア以外のエリアの表示色を他と変えていた場合には、図15のステップ1508では、表示色を他と変えているエリアはレベル入力用エリア、及び時間入力用エリアの何れでもないと判定する。即ち、表示色を他と変えているエリアは波形入力用エリアか、或いはそのようなエリアは存在していないと判定する。このことから、そのように判定することで移行するステップ1514では、波形入力用エリアの表示色を他と変えているか否か判定する。その波形入力用エリアの表示色を他と変えていた場合、判定はYESとなって図17のステップ1523に移行する。そうでない場合には、判定はNOとなり、上記ステップ1507に戻る。
【0064】
図17のステップ1523では、ユーザが入力したデータを、ステップ(N,波形)のデータ、即ちステップ番号「N」の波形を示す値であるとしてRAM103に格納する。続くステップ1524では、その値に対応するシンボルを、表示色を他と変えている波形入力用エリア内に表示させる。次にステップ1511に移行して、変数Xの値は変数FXに、変数Yの値は変数FYにそれぞれ代入する。変数FX、Yは、線を描画するうえでの始点を管理するために用意した変数であり、変数X、FYは、その始点に対する終点を管理するために用意した変数である。値の代入を終了した後はステップ1526に移行する。
【0065】
ステップ1526では、変数Xに、変数FXの値にステップ(N,時間)のデータとして保存されている時間差分値を加算した値を代入し、変数Yには、ステップ(N,レベル)のデータとして保存されているレベル値を代入する。次に、ステップ1527に移行して、変数Mに変数Nの値を代入する。その後は、ステップ1528に移行して、変数FX、FYの値で指定される始点から変数X、Yの値で指定される終点の間の線を描画するための線描画処理を実行する。その線描画処理を実行すると、前述のステップ1529に移行する。
【0066】
1ステップ番号で波形を示す値までユーザが入力することにより、そのステップ番号でのデータ入力が終了し、それまでの終端と線で結ぶ点の位置、及びその線の種類が確定する。このことから、本実施の形態では、波形を示す値をユーザが入力すると、その時点でエンベロープのイメージ表示用の表示エリアに線を新たに描画(表示)させている。
【0067】
図15のステップ1507でのNOの判定は、ユーザがデータ入力以外の操作を行ったか、或いは何ら操作を行っていないことを意味する。このことから、ステップ1507でNOと判定した場合に移行する図18のステップ1533〜1541では、そのようなことに対応するための処理が行われる。
【0068】
先ず、ステップ1533では、カーソルを移動させる操作をユーザが行ったか否か判定する。ユーザが入力装置104の一部として搭載されたポインティングデバイスを操作したような場合、その操作に合わせてカーソルを移動させる必要が生じることから、判定はYESとなり、次にステップ1534において、ユーザが行った操作に応じてカーソルの表示位置を決定し、その決定した表示位置にカーソルを表示させる処理を行った後、ステップ1535に移行する。そうでない場合には、判定はNOとなり、他のステップの処理を実行することなく、そのステップ1535に移行する。
【0069】
ステップ1535では、ユーザがクリック操作を行ったか否か判定する。ポインティングデバイスと合わせて設けられたスイッチ、或いはそれに代わるスイッチをユーザが操作したような場合、判定はYESとなってステップ1536に移行する。そうでない場合には、判定はNOとなり、ユーザは入力装置106への操作を行っていないとして、図15のステップ1507に戻る。
【0070】
ステップ1536では、カーソルの表示位置が「クリア」アイコン上か否か判定する。「クリア」アイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はYESとなり、次にステップ1537でそれに対応するためのクリア処理を実行し、更にステップ1538において、変数Nの値をステップ番号とする時間入力用エリアの表示色を変更させた後、図15のステップ1507に戻る。そうでない場合には、判定はNOとなってステップ1539に移行する。
【0071】
本実施の形態では、ユーザが「クリア」アイコンをクリックすると、それまで入力されたデータを全てクリアするようにしている。言い換えればステップ番号「2」からデータ入力を行わせるようにしている。そのために、上記クリア処理では、変数Nに2を代入することが行われる。それにより、ステップ1538では、ステップ番号「2」の時間入力用エリアの表示色を変更させている。
【0072】
ステップ1539では、カーソルの表示位置が「戻る」アイコン上か否か判定する。「戻る」アイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はYESとなってステップ1540に移行する。そうでない場合には、即ちクリックの対象となるアイコン上にカーソルが表示されていない状態でユーザがクリック操作を行った場合には、判定はNOとなり、図15のステップ1507に戻る。
【0073】
ステップ1540では、変数Nの値をステップ番号とする時間入力用エリア以外の入力用エリアの表示色を変更させているか否か判定する。時間入力用エリア以外の入力用エリアの表示色を変更させているということは、そのステップ番号でのデータ入力が途中であることを意味する。このことから、ステップ番号「N」のデータ入力が途中となっている状態でユーザが「戻る」アイコンをクリックした場合、判定はYESとなり、次にステップ1541でステップ(N,時間)、及びステップ(N,レベル)の各データをRAM103からクリアした後、一連の処理を終了する。そうでない場合には、判定はNOとなり、ここで一連の処理を終了する。
【0074】
このような数値設定処理を実行することにより、ユーザの入力装置106への操作に応じて、ステップ番号毎のデータ入力やそのデータ入力に対応するための線の描画(表示)、或いは入力されたデータのクリアなどが行われる。その結果、数値入力によるエンベロープの編集作業をユーザは行えることとなる。
【0075】
次に、図19〜図25を参照して、上記数値設定処理内で実行されるサブルーチン処理について詳細に説明する。
図19は、上記ステップ1502として実行される数値表示処理のフローチャートである。数値設定処理内で実行されるサブルーチン処理では、始めに図19を参照して、数値表示処理について詳細に説明する。その数値表示処理は、上述したように、RAM103の数値データ領域(図2参照)に保存されているエンベロープ数値データを読み出し、それを構成するデータを対応する入力用エリア内に表示させる処理である。
【0076】
先ず、ステップ1901では、変数Nに1を代入する。続くステップ1902では、ステップ番号が変数Nの値のデータがないか否か判定する。ステップ番号「N」のデータが存在していない場合、判定はYESとなり、ここで一連の処理が終了する。そうでない場合には、判定はNOとなってステップ1903に移行する。
【0077】
ステップ1903では、ステップ番号「N」の各入力用エリアに、それぞれ対応するデータを表示させる。次に移行するステップ1904では、変数Nの値をインクリメントする。その後に移行するステップ1905では、変数Nの値が12より大きいか否か判定する。変数Nの値が12より大きい、即ちステップ番号「12」までデータが存在している場合、判定はYESとなり、ここで一連の処理を終了する。そうでない場合には、判定はNOとなって上記ステップ1902に戻る。それにより、変数Nの値をインクリメントしながら、その値をステップ番号とするデータの表示を行う。
【0078】
図20は、上記数値設定処理内でステップ1518として実行されるループ処理のフローチャートである。次に図20を参照して、そのループ処理について詳細に説明する。そのループ処理は、時間入力用エリア内にシンボルとして入力された「L」に割り当てた機能に従ってエンベロープ(カーブ)の形状を設定する処理である。
【0079】
先ず、ステップ2001では、変数Lに、ユーザが入力したデータ中でシンボル「L」の前に位置する数値を代入する。例えば図5に示すように、時間入力用エリアに「2L」をユーザが入力したのであれば、変数Lに2を代入する。続くステップ2002では、変数Lの値が2以上か否か判定する。変数Lに1、或いは0(シンボル「L」の前に数値が無いときに代入される)が代入されていた場合、即ち図7に示すように、それよりも前のステップ番号で入力されたデータからエンベロープの形状設定を行う必要がない場合、判定はNOとなり、ここで一連の処理を終了する。そうでない場合には、判定はYESとなってステップ2003に移行する。
【0080】
ステップ2003では、変数lに1を代入する。その後は、変数Mに変数Nの値を代入し、更に変数Mの値をデクリメントする(ステップ2004、2005)。変数Mの値のデクリメントを行った後は、ステップ2006に移行して、変数Mの値が1より大きいか否か判定する。変数Mの値が1より大きい場合、判定はYESとなってステップ2007に移行する。そうでない場合には、判定はNOとなってステップ2009に移行する。
【0081】
ステップ2007では、ステップ(M,時間)のデータ、即ちステップ番号が変数Mの値の時間データにシンボルとして「L」又は「D」が含まれているか否か判定する。そのデータ中に「L」又は「D」がシンボルとして含まれている場合、判定はYESとなってステップ2009に移行する。そうでない場合には、判定はNOとなり、上記ステップ2005に戻る。
【0082】
上記ステップ2005〜2007で形成される処理ループは、ステップ2006でNO、或いはステップ2007でYESと判定されるまで繰り返し実行される。それにより、時間データとしてシンボル「L」を含むステップ番号から順次、参照するステップ番号を前に戻しつつ、ステップ番号「1」となるまでにシンボルとして「L」又は「D」が入力されたステップ番号を特定するようになっている。
【0083】
ステップ2009では、変数Mの値をインクリメントする。それにより、シンボルとして「L」又は「D」を含むデータを持つステップ番号の次のステップ番号を変数Mに代入した後は、ステップ2010に移行して、変数Xに、変数FXの値にステップ(M,時間)のデータとして保存された時間差分値を加算した値を代入し、更に変数Yに、ステップ(M,レベル)のデータとして保存されたレベル値を代入する。そのようにして、線を描画させるうえでの終点の位置を決定すると、ステップ2011でそれらの間に線を描画するために線描画処理を実行する。その後はステップ2012に移行する。
【0084】
その線描画処理の実行時に、変数X、Yの各値は変数FX、FYにそれぞれ代入される。それにより、今回、終点とした位置は、次回、線の描画を行う際には始点の位置として扱われる。
ステップ2012では、変数Mの値をインクリメントする。続くステップ2013では、変数Mの値が変数Nの値と等しいか否か判定する。その変数Nには、シンボルとして「L」が入力された、図15〜図18に示す数値設定処理で現在、処理対象としているステップ番号が代入されている。このことから、上記ステップ2009で変数Mに代入した値に対応するステップ番号からステップ番号「N」の直前のステップ番号まで、各ステップ番号で入力されたデータに従ってエンベロープ(カーブ)の形状を示す線を描画した場合、判定はYESとなってステップ2015に移行する。そうでない場合には、判定はNOとなってステップ2014に移行する。
【0085】
ステップ2014では、変数ENDFの値が1か否か判定する。直前にステップ2011として実行した線描画処理で変数ENDFに1が代入された場合、判定はYESとなり、それ以上、線の描画は不必要であるとして、ここで一連の処理を終了する。そうでない場合には、判定はNOとなり、上記ステップ2010に戻る。それにより、線の描画を続行する。
【0086】
ステップ2015では、変数lの値をインクリメントする。続くステップ2016では、変数lの値が変数Lの値と等しいか否か判定する。それらの値が等しい場合、判定はYESとなり、ここで一連の処理を終了する。そうでない場合には、判定はNOとなって上記ステップ2004に戻り、それ以降の処理を同様に実行する。それにより、上記ステップ2001で変数Lに代入した値から1を引いて得られる回数、上記ステップ2009で変数Mに代入した値に対応するステップ番号からステップ番号「N」の直前のステップ番号まで、各ステップ番号で入力されたデータに従ってエンベロープ(カーブ)の形状を示す線を描画する。その結果、図5では、ステップ番号「1」〜「3」で入力されたデータで指定される内容で線が繰り返し描画されることになる。
【0087】
次に、上記ステップ2011として実行される線描画処理について、図21に示すそのフローチャートを参照して詳細に説明する。その線描画処理は、図15〜図18に示す数値設定処理ではステップ1528として実行される。更には、図16に示すステップ1520、1522、及び図13に示すステップ1307としてそれぞれ実行される多重ループ処理、永久ループ処理、及び描画処理の各サブルーチン処理内でも実行される。
【0088】
先ず、ステップ2101では、ステップ(M,波形)のデータ、即ちステップ番号が変数Mの値の波形を示す値で表示されるシンボルが「正1」「正2」「正3」及び「正4」の何れかであった場合に、正弦波の描画用に用意した波形テーブルのなかから、そのデータに対応する波形テーブルを選択する。それら波形テーブルは、例えば一定の時間間隔毎に、時間とレベル値の対応関係を定義したものである。変数Mの値は線描画処理を呼び出すサブルーチン処理から引数として渡される。
【0089】
ステップ2101に続くステップ2102では、そのステップ2101で波形テーブルを選択した場合に、選択した波形テーブルの内容を、変数FX、FYの各値で指定される始点から変数X、Yの各値で指定される終点間の時間間隔、レベル値の差に合わせて変換する。例えば波形テーブル上の時間は、それの総時間が始点−終点間の時間間隔と一致するように変換し、そのテーブル上のレベル値は、それの最初の値(最大値、或いは最小値)と最後の値(最小値、或いは最大値)の差が、始点−終点間のレベル値の差と一致するように変換する。ステップ2103には、そのような変換を行った後に移行する。
【0090】
ステップ2103では、始点から終点に向けて線を例えばドット(画素)単位で順次、描画していくために用意した変数nに1を代入する。続くステップ2104では、描画する点の横(X)軸上の位置を管理するための変数xに、変数FXの値に変数nの値を加算した値を代入し、その点の縦(Y)上の位置を管理するための変数yには、変数xに代入した値で指定される横軸上の位置でのレベル値を算出してそれを代入した後、それら変数x、yの各値で指定される点を線として表示させる。その後はステップ2105に移行する。ここで、変数yに代入する値は、上記ステップ2102で波形テーブルの変換を行っていた場合には、その変換後の波形テーブル中で変数nの値を時間として求められるレベル値(図中では「テーブル(n)」と表記)を変数FXの値に加算して得られる値である。そのステップ2102で波形テーブルの変換を行っていなかった、即ちステップ(M,波形)のデータで表示されるシンボルが「直」であった場合には、変数Yの値と変数FYの値の間を変数nの値に応じて直線補間により求められる値(=(Y−FY)・n/(X−FX))を変数FYの値に加算して得られる値である。
【0091】
ステップ2105では、変数nの値をインクリメントする。次に移行するステップ2106では、変数xの値が、エンベロープの編集が終了したか否か判定するために定めた値(図中では「最大値」と表記)以下か否か判定する。変数xの値がその値より大きい場合、判定はNOとなり、エンベロープの編集が終了したと見なす条件を満たしたとして、次にステップ2108で変数ENDFに1を代入し、更にステップ2109で変数FX、FYに変数X、Yの値をそれぞれ代入した後、一連の処理を終了する。そうでない場合には、判定はYESとなってステップ2107に移行する。
【0092】
ステップ2107では、変数xの値が変数Xの値と等しいか否か、即ち始点から終点を結ぶ線の描画が終了したか否か判定する。その描画が終了した場合、判定はYESとなり、次に上記ステップ2109の処理を実行した後、一連の処理を終了する。そうでない場合には、判定はNOとなって上記ステップ2104に戻る。
【0093】
このように、上記ステップ2104〜2107で形成される処理ループは、上記ステップ2106の判定がNOとなるまで繰り返し実行される。それにより、始点から終点に向かって、それらの間を結ぶ線が順次、描画されていくことになる。
【0094】
図22は、図15〜図18に示す数値設定処理内でステップ1520として実行される多重ループ処理のフローチャートである。次に図22を参照して、その多重ループ処理について詳細に説明する。
上述したように、この多重ループ処理は、ステップ番号が変数Nの値の時間入力用エリアにシンボルとして入力された「D」に対応するために実行される処理である。本実施の形態では、その「D」が入力されると、ステップ番号「0」に戻ってエンベロープの形状を設定するようにしている。
【0095】
先ず、ステップ2201では、変数Dに、ユーザが入力したデータ中でシンボル「D」の前に位置する数値を代入する。例えば図7に示すように、時間入力用エリアに「2D」をユーザが入力したのであれば、変数Dに2を代入する。続くステップ2202では、変数Dの値が2以上か否か判定する。変数Dに1、或いは0(シンボル「D」の前に数値が無いときに代入される)が代入されていた場合、即ちステップ番号「1」のデータからエンベロープの形状設定を行う必要がない場合、判定はNOとなり、ここで一連の処理を終了する。そうでない場合には、判定はYESとなってステップ2203に移行する。
【0096】
ステップ2203では、変数dに1を代入する。その次に実行するステップ2204では、変数Mに1を代入する。その後に移行するステップ2205では、変数Mの値をインクリメントする。そのインクリメントを行った後は、ステップ2206に移行して、変数Nの値が変数Mの値より大きいか否か判定する。エンベロープの形状設定は、変数Mの値を随時、インクリメントしながら、その変数Mの値で指定されるステップ番号「M」のデータを処理していくことで行われる。このことから、ステップ番号「N−1」のデータまでエンベロープの形状設定が終了した場合、判定はNOとなってステップ2214に移行する。そうでない場合には、判定はYESとなってステップ2207に移行する。
【0097】
ステップ2207では、変数Xに、変数FXの値にステップ(M,時間)のデータとして保存された時間差分値を加算した値を代入し、更に変数Yに、ステップ(M,レベル)のデータとして保存されたレベル値を代入する。そのようにして、線を描画させるうえでの終点の位置を決定すると、ステップ2011に移行して、上述の線描画処理を実行する。その後はステップ2209に移行する。
【0098】
ステップ2209では、変数Mの値をインクリメントする。続くステップ2210では、ステップ(M,時間)のデータ、即ちステップ番号が変数Mの値の時間データにシンボルとして「L」が含まれているか否か判定する。そのデータ中に「L」がシンボルとして含まれている場合、判定はYESとなってステップ2212に移行する。そうでない場合には、判定はNOとなってステップ2211に移行する。
【0099】
ステップ2211では、変数ENDFの値が1か否か判定する。その変数ENDFに1が代入されていた場合、判定はYESとなり、ここで一連の処理を終了する。そうでない場合には、判定はNOとなって上記ステップ2206に戻る。それにより、ステップ2209でインクリメントした後の変数Mの値で指定されるステップ番号のデータを対象にして、それ以降の処理を同様に実行する。
【0100】
一方、ステップ2212では、ステップ(M,時間)のデータ中に「L」がシンボルとして含まれていたことから、図20を参照して説明したループ処理を実行する。その後に移行するステップ2213では、変数ENDFの値が1か否か判定する。その変数ENDFに1が代入されていた場合、判定はYESとなり、ここで一連の処理を終了する。そうでない場合には、判定はNOとなって上記ステップ2205に戻る。それにより、変数Mの値を更にインクリメントして、処理の対象とするステップ番号を次に移す。
【0101】
上記ステップ2206でNOと判定することで移行するステップ2214では、変数ENDFの値が1か否か判定する。その変数ENDFに1が代入されていた場合、判定はYESとなり、ここで一連の処理を終了する。そうでない場合には、判定はNOとなり、次にステップ2215で変数dの値をインクリメントした後、ステップ2216に移行する。
【0102】
ステップ2216では、変数dの値が変数Dの値と等しいか否か判定する。それらの値が一致していた場合、判定はYESとなり、ここで一連の処理を終了する。そうでない場合には、判定はNOとなって上記ステップ2204に戻る。それにより、処理対象をステップ番号「1」に戻してエンベロープの形状設定を行う。
【0103】
このようにして、シンボル「D」の前に入力された数値から1を引いた回数、ステップ番号「1」からのエンベロープの形状設定を繰り返し行う。それにより、図7に示すようなエンベロープの線による描画を実現させる。なお、シンボル「D」の前に入力された数値から1を引いた回数だけエンベロープの形状設定を繰り返し行うのは、例えば図7では、ステップ番号「10」のデータを処理する時点でステップ「9」までのデータは一通り処理されているためである。
【0104】
図23は、図15〜図18に示す数値設定処理内でステップ1522として実行される永久ループ処理のフローチャートである。次に図23を参照して、その永久ループ処理について詳細に説明する。
上述したように、この永久ループ処理は、ステップ番号が変数Nの値の時間入力用エリアにシンボルとして入力された「E」に対応するために実行される処理である。本実施の形態では、その「E」が入力されると、それよりも前のステップ番号でシンボル「L」又は「D」が入力されていればそれ以降、そのようなシンボルが入力されていなければステップ番号「0」から、エンベロープの形状設定を変数ENDFに1が代入されるまで繰り返し行うようにしている。
【0105】
先ず、ステップ2301では、変数Mに変数Nの値を代入する。続くステップ2302では、変数Mの値をデクリメントする。その後に移行するステップ2303では、変数Mの値が1より大きいか否か判定する。変数Mの値が1より大きい場合、判定はYESとなってステップ2304に移行する。そうでない場合には、判定はNOとなってステップ2305に移行する。
【0106】
ステップ2304では、ステップ(M,時間)のデータ、即ちステップ番号「M」の時間入力用エリア内にシンボルとして「L」又は「D」が含まれているか否か判定する。その時間入力用エリア内に「L」又は「D」がシンボルとして表示されている場合、判定はYESとなってステップ2305に移行する。そうでない場合には、判定はNOとなり、上記ステップ2302に戻る。
【0107】
ステップ2305では、変数Mの値をインクリメントする。続くステップ2306では、変数Xに、変数FXの値にステップ(M,時間)のデータとして保存された時間差分値を加算した値を代入し、更に変数Yに、ステップ(M,レベル)のデータとして保存されたレベル値を代入する。そのようにして、線を描画させるうえでの終点の位置を決定すると、ステップ2307に移行して、図21に示す線描画処理を実行する。その後はステップ2308に移行する。
【0108】
ステップ2308では、変数Mの値をインクリメントする。次に移行するステップ2309では、変数Mの値が変数Nの値と等しいか否か判定する。その変数Nには、シンボルとして「E」が入力された、図15〜図18に示す数値設定処理で現在、処理対象としているステップ番号が代入されている。このことから、上記ステップ2305で変数Mに代入した値で指定されるステップ番号からステップ番号「N」の直前のステップ番号まで、各ステップ番号で入力されたデータに従ってエンベロープ(カーブ)の形状を示す線を描画した場合、判定はYESとなって上記ステップ2302に戻る。それにより、エンベロープの形状設定を再度、繰り返す。そうでない場合には、判定はNOとなってステップ2310に移行する。
【0109】
ステップ2310では、変数ENDFの値が1か否か判定する。直前にステップ2011として実行した線描画処理で変数ENDFに1が代入された場合、判定はYESとなり、それ以上、線の描画は不必要であるとして、ここで一連の処理を終了する。そうでない場合には、判定はNOとなり、上記ステップ2306に戻る。それにより、線の描画を続行する。
【0110】
次に、図15〜図18に示す数値設定処理内でステップ1537として実行されるクリア処理について、図24に示すそのフローチャートを参照して詳細に説明する。
そのクリア処理は、図4〜図7に示す数値設定画面上に配置された「クリア」アイコンへのクリックに対応するための処理である。本実施の形態では、「クリア」アイコンがクリックされると、それまで入力されたデータは全て消去(クリア)するようにしている。
【0111】
先ず、ステップ2401では、RAM103のエンベロープ描画領域(図2参照)に格納されたイメージデータをクリアし、表示エリアや数値入力用の各エリアでの表示をクリアさせる。次に移行するステップ2402では、数値データ領域に保存されたステップデータを全てクリアする。その後はステップ2403に移行する。
【0112】
ステップ2403では、変数X、Y、及びENDFにそれぞれ0を代入し、変数Nには2を代入する。続くステップ2404では、ステップ番号「1」の時間データ、レベルデータとしてそれぞれ0を数値データ領域に保存し、その保存と合わせて、ステップ番号「1」の時間入力用エリア、レベル入力用エリアにそれぞれ0を表示させる。一連の処理はその後に終了する。
【0113】
図13に示すエンベロープ設定処理内でステップ1305として実行される数値設定処理では、上述したようなサブルーチン処理が実行される。次に、そのエンベロープ設定処理内でステップ1307として実行される描画処理について、図25〜図29に示すそのフローチャートを参照して詳細に説明する。
【0114】
先ず、ステップ2501では、図8〜図11に示すような描画画面のオリジナル(図中では「描画画面画面枠」と表記)をROM102から読み出し、表示器104に送出することで表示させる。続くステップ2502では、図14を参照して説明した既設定エンベロープ描画処理を実行する。それにより、例えば図8に示すような状態で描画画面を表示器104に表示させた後はステップ2503に移行する。
【0115】
ステップ2503では、カーソルを表示器104に表示させる。次に実行するステップ2504では、カーソルを移動させる操作をユーザが行ったか否か判定する。ユーザが入力装置104の一部として搭載されたポインティングデバイスを操作したような場合、その操作に合わせてカーソルを移動させる必要が生じることから、判定はYESとなり、次にステップ2505において、ユーザが行った操作に応じてカーソルの表示位置を決定し、その決定した表示位置にカーソルを表示させる処理を行った後、ステップ2506に移行する。そうでない場合には、判定はNOとなり、他のステップの処理を実行することなく、そのステップ2506に移行する。
【0116】
ステップ2506では、ユーザがクリック操作を行ったか否か判定する。ポインティングデバイスと合わせて設けられたスイッチ、或いはそれに代わるスイッチをユーザが操作したような場合、判定はYESとなってステップ2507に移行する。そうでない場合には、判定はNOとなり、ユーザは入力装置106への操作を行っていないとして、上記ステップ2504に戻る。
【0117】
ステップ2507では、カーソルの表示位置がエンベロープイメージの表示エリア内か否か判定する。その表示エリア内にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はYESとなってステップ2508に移行する。そうでない場合には、判定はNOとなって図27のステップ2518に移行する。
【0118】
上記したように、表示エリア内の線の描画や描画された線の消去は、そのエリア内にクリックして行うようになっている。このことから、ステップ2508〜図26のステップ2517では、そのようなことに対応するための処理が行われる。
【0119】
先ず、ステップ2508では、変数PFに、表示エリア内への有効なクリックが行われたことを示す値の1を代入する。続くステップ2509では、クリックされた点の横軸上、縦軸上の位置を示す値をそれぞれ変数CX、CYに代入する。その後は図26のステップ2510に移行する。
【0120】
ステップ2510では、変数CXの値が変数Xの値以下か否か判定する。その変数Xには、表示エリア内に描画された線の横軸上における終端の位置を示す値が代入されている。このことから、横軸上の終端の位置より後方に位置する点をユーザがクリックした場合、判定はNOとなってステップ2517に移行する。そうでない場合には、判定はYESとなり、次にステップ2511で変数nに1を代入した後、ステップ2512に移行する。
【0121】
ステップ2512では、変数nの値で指定されるステップ番号「n」の時間データ、及びレベルデータとして保存された各値が、それぞれ変数CX、CYの各値と予め定めた範囲内で一致するか否か判定する。対応する値がそれぞれその範囲内で一致していた場合、判定はYESとなってステップ2516に移行する。そうでない場合には、判定はNOとなり、次にステップ2513で変数nの値をインクリメントした後、ステップ2514に移行する。
【0122】
ステップ2514では、変数nの値が変数Nの値より大きいか否か判定する。変数Nの値より大きい値が変数nに代入された場合、判定はYESとなってステップ2515に移行し、ユーザが表示エリア内でクリックした点が線の描画のために過去に指定した点の何れとも一致しなかったとして、変数PFに有効なクリックが行われていないことを示す値の0を代入する。その後は図25のステップ2504に戻る。一方、そうでない場合には、判定はNOとなって上記ステップ2512に戻る。それにより、ステップ2512〜2514で形成される処理ループを、ステップ2512、或いは2514の判定がYESとなるまで繰り返し実行する。
【0123】
そのステップ2512の判定がYESとなって移行するステップ2516では、線の描画のために過去に指定した点のうちの一つをユーザがクリックしたことに合わせて、消去の対象となる線が存在することを示す値の1を変数CLFに代入する。続くステップ2517では、変数CX、CYの各値で指定される位置に点(図10参照)を表示させる。その後に図25のステップ2504に戻る。
【0124】
このようにして、ユーザが表示エリア内をクリックしたことに対応するための処理が行われる。そのエリア外をクリックしたことに対応するための処理は、図27のステップ2518〜図29のステップ2547で行われる。そのステップ2518には、上述したように、上記ステップ2507の判定がNOとなることで移行する。
【0125】
図27のステップ2518では、カーソルが「クリア」アイコン上か否か判定する。「クリア」アイコン上にカーソルを移動させた状態でユーザがクリック操作を行っていない場合、判定はNOとなって図28のステップ2525に移行する。そうでない場合には、即ちユーザが「クリア」アイコンをクリックした場合には、判定はYESとなってステップ2519に移行する。
【0126】
ステップ2519では、変数CLFの値が1か否か、即ち消去の対象となる線が存在しているか否か判定する。そのような線が存在している場合、判定はYESとなってステップ2520に移行する。そうでない場合には、判定はNOとなって図25のステップ2504に戻る。
【0127】
ステップ2520では、RAM103のエンベロープ描画領域(図2参照)上から、変数CXの値で指定される横軸上の位置より後の部分のイメージデータを消去し、表示エリア上では、その横軸上の位置より後に描画されている線を消去させる。次に移行するステップ2521では、その消去に合わせて、数値データ領域から、ステップ番号「n+1」〜「N」のデータをクリアする。ステップ2522にはその後に移行する。
【0128】
ステップ2522では、変数PF、CLFにそれぞれ0を代入する。それ以外には、例えば変数CXの値が、エンベロープの編集が終了したか否か判定するために定めた値以下であれば、変数ENDFに0を代入する。そのようなことを行った後はステップ2523に移行して、表示エリアに表示させた点(ポイント)(図10参照)を消去させる。その後は、ステップ2524で変数Nに変数nの値を代入した後、図25のステップ2504に戻る。
【0129】
上記ステップ2518の判定がNOとなって移行するステップ2525では、カーソルが「正弦波番号」アイコン上か否か判定する。そのアイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はYESとなり、次にステップ2526で変数SWの値をインクリメントした後、ステップ2527に移行する。そうでない場合には、判定はNOとなってステップ2529に移行する。
【0130】
上記変数SWは、「正弦波番号」アイコンとして表示する番号を管理するために用意した変数であり、その番号は1〜4の間の数値である。このことから、ステップ2526では、変数SWの値が5か否か判定する。変数SWに5が代入されていた場合、判定はYESとなり、次にステップ2528で変数SWに1を代入した後、図25のステップ2504に戻る。そうでない場合には、判定はNOとなり、他のステップの処理を実行することなく、その図25のステップ2504に戻る。
【0131】
一方、ステップ2529では、カーソルが「戻る」アイコン上か否か判定する。そのアイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はYESとなり、次にステップ2530で変数PF、CLFにそれぞれ0を代入した後、一連の処理を終了する。そうでない場合には、判定はNOとなって図29のステップ2531に移行する。
【0132】
図29のステップ2531では、カーソルが「直線」アイコン上か否か判定する。そのアイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はYESとなってステップ2532に移行する。そうでない場合には、判定はNOとなってステップ2545に移行する。
【0133】
ステップ2532では、描画する線の種類を管理するために用意した変数Wに、直線を示す値の0を代入する。続くステップ2533では、変数PFの値が1か否か判定する。上述したように、表示エリアに有効なクリックをユーザが行っていた場合、判定はYESとなってステップ2534に移行する。そうでない場合には、判定はNOとなって図25のステップ2504に戻る。
【0134】
ステップ2534では、変数CLFの値が0か否か判定する。消去の対象が存在するように、ユーザが表示エリア内に描画された線上をクリックした場合、変数CLFには1が代入されることから、判定はNOとなって図25のステップ2504に戻る。そうでない場合には、即ち既に描画された線の終端よりも後方に位置する点をユーザがクリックした場合には、判定はYESとなり、ステップ2535で変数Nの値をインクリメントした後、ステップ2536に移行する。
【0135】
ステップ2536では、変数Nの値が12より大きいか否か判定する。予め固定されている先頭を除き、ユーザが11箇所の点を指定していた場合、変数Nの値は12より大きくなることから、判定はYESとなってステップ2538に移行する。そうでない場合には、判定はNOとなり、ステップ2537で変数Nに12、変数ENDFに1をそれぞれ代入した後、図25のステップ2504に戻る。
【0136】
ステップ2538では、変数FX、FYに、それぞれ変数X、Yの各値を代入する。次に移行するステップ2539では、変数X、Yに、それぞれ変数CX、CYの各値を代入する。そのようにして、線を描画するうえでの始点、終点を決定した後はステップ2540に移行して、変数CXの値から変数FXの値を引いた値をステップ番号「N」の時間データとしてRAM103の数値データ領域内に保存する。同様に、変数CYの値をステップ番号「N」のレベルデータとして保存し、変数Wの値をそれの波形データとして保存する。その後はステップ2541に移行する。
【0137】
ステップ2541では、変数Mに変数Nの値を代入する。続くステップ2542では、図21に示す線描画処理を実行する。その線描画処理を実行した後は、変数PFに0を代入し、更に表示エリア内に表示させた点(ポイント)を消去させる(ステップ2543、2544)。図25のステップ2504にはその後に戻る。
【0138】
一方、上記ステップ2531でNOと判定した場合に移行するステップ2545では、カーソルが「正弦波」アイコン上か否か判定する。そのアイコン上にカーソルを移動させた状態でユーザがクリック操作を行った場合、判定はYESとなり、次にステップ2546で変数Wに変数SWの値を代入した後、上記ステップ2533に移行する。そうでない場合には、即ち表示エリア内、及び各種アイコン以外の場所をユーザがクリックした場合には、判定はNOとなり、次にステップ2547で変数CLFに0を代入した後、上記ステップ2543に移行する。それにより、表示エリア内で有効なクリックを行っていても、それを無効とさせる。
【0139】
このように、本実施の形態では、ユーザが線を描画させる度に、そのために表示エリア内で指定した点、線の種類から、ステップ番号のデータを生成し保存している。それにより、異なる編集方法間でデータを共有化させている。
なお、本実施の形態では、ステップ番号毎に3種類のデータを入力するようになっているが、その数は2つ以上であれば幾つであっても良い。その入力は、必ずしも数値で行う必要はなく、例えば予め用意した選択肢のなかから選択して行うようにしても良い。
【0140】
データ入力上の機能を割り当てたシンボルとして「L」「D」「E」の3種類を用意しているが、その種類の数や割り当てる機能などは適宜、変更して良いものである。そのようなシンボルは時間入力用エリアに入力するようにしているが、他に2つの入力用エリアが存在していることから、それらのうちの何れかに、そのようなシンボルに割り当てた機能と組み合わせて用いられる機能を割り当てたシンボルを入力できるようにしても良い。そのようにした場合には、より所望の編集をより容易に行えるようになる。
【0141】
本実施の形態は、楽音発生装置(音源装置)に搭載されたパターン編集装置に本発明を適用したものであるが、本発明が適用できるのは楽音発生装置に搭載されたパターン編集装置に限定されるわけではない。編集の対象とするパターンの種類に係わらず、その編集をテーブル形式での数値の指定で行うパターン編集装置に幅広く本発明は適用させることができる。
【0142】
上述したようなパターン編集装置、或いはその変形例の動作を実現させるようなプログラムは、CD−ROM、DVD、フロッピーディスク、或いは光磁気ディスク等の記録媒体に記録させて配布しても良い。或いは、公衆網等で用いられる伝送媒体を介して、そのプログラムの一部、若しくは全部を配信するようにしても良い。そのようにした場合には、ユーザはプログラムを取得してコンピュータなどのデータ処理装置にロードすることにより、そのデータ処理装置に本発明を適用させることができる。このことから、記録媒体は、プログラムを配信する装置がアクセスできるものであっても良い。
【0143】
【発明の効果】
以上、説明したように本発明は、それぞれが異なる状態量を示す数値の組み合わせを複数、指定することにより、該指定された複数の数値の組み合わせで一部、或いは全体の形状が表されるパターンの編集を行う場合に、予め機能が割り当てられたシンボルを入力可能とし、そのシンボルが入力されると、そのシンボルに割り当てられている機能に従い、他に指定された数値の組み合わせを用いてパターンの一部、或いは全体の形状を設定する。このため、数値の組み合わせを指定する回数を最小限に抑えられるようになって、ユーザはパターンの編集をより容易、且つ迅速に行うことができることとなる。そのパターンを表示装置上に表示させるようにした場合には、その確認を容易に行えるようになる。
【図面の簡単な説明】
【図1】本実施の形態によるパターン編集装置を搭載した音源装置の回路構成図である。
【図2】RAMのマップを示す図である。
【図3】エンベロープ設定画面を示す図である。
【図4】数値設定画面上でエンベロープの編集を行う方法を説明する図である(その1)。
【図5】数値設定画面上でエンベロープの編集を行う方法を説明する図である(その2)。
【図6】数値設定画面上でエンベロープの編集を行う方法を説明する図である(その3)。
【図7】数値設定画面上でエンベロープの編集を行う方法を説明する図である(その4)。
【図8】描画画面上でエンベロープの編集を行う方法を説明する図である(その1)。
【図9】描画画面上でエンベロープの編集を行う方法を説明する図である(その2)。
【図10】描画画面上でエンベロープの編集を行う方法を説明する図である(その3)。
【図11】描画画面上でエンベロープの編集を行う方法を説明する図である(その4)。
【図12】全体処理のフローチャートである。
【図13】エンベロープ設定処理のフローチャートである。
【図14】既設定エンベロープ描画処理のフローチャートである。
【図15】数値設定処理のフローチャートである。
【図16】数値設定処理のフローチャートである(続き1)。
【図17】数値設定処理のフローチャートである(続き2)。
【図18】数値設定処理のフローチャートである(続き3)。
【図19】数値表示処理のフローチャートである。
【図20】ループ処理のフローチャートである。
【図21】線描画処理のフローチャートである。
【図22】多重ループ処理のフローチャートである。
【図23】永久ループ処理のフローチャートである。
【図24】クリア処理のフローチャートである。
【図25】描画処理のフローチャートである。
【図26】描画処理のフローチャートである(続き1)。
【図27】描画処理のフローチャートである(続き2)。
【図28】描画処理のフローチャートである(続き3)。
【図29】描画処理のフローチャートである(続き4)。
【符号の説明】
101 CPU
102 ROM
103 RAM
104 表示器
105 MIDIインターフェース
106 入力装置
107 音源LSI
108 バス
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a technique for editing a pattern in which a part or the entire shape is expressed by designating a plurality of combinations of numerical values each representing a different state quantity.
[0002]
[Prior art]
It is known that a volume envelope, which is a pattern of time change of volume, has a great influence on the impression of a musical sound. For this reason, some tone generators such as sound generators and synthesizers are equipped with a pattern editing device called an envelope editor so that the volume envelope can be changed. The volume envelope is usually divided into four parts: attack time, decay time, sustain time, and release time.
[0003]
In the pattern editing device installed in the musical tone generator, editing the shape of the volume envelope, that is, changing the shape or generating it, draw the shape using a pointing device or reflect it in the setting of the shape This is done by specifying the number to be processed. The numerical value is set as a parameter value prepared in advance, or for specifying a shape in a table format. In the table format, for example, a combination of numerical values including at least a value indicating a time elapsed from the start of sound generation and a value indicating a volume level at the time indicated by the value is designated by time. As parameters, a plurality of parameters for setting the time such as the attack time and the sustain level are usually prepared.
[0004]
[Problems to be solved by the invention]
In a conventional pattern editing apparatus in which numerical values can be specified in a table format, the relationship between time and volume level has to be specified numerically by time from the start of sound generation to mute. For this reason, many numerical values must be specified when editing the volume envelope, and there is a problem that the editing cannot be performed easily. The problem is common when editing is performed by designating numerical values in a table format regardless of the type of pattern.
[0005]
An object of the present invention is to provide a pattern editing apparatus that can more easily edit a pattern by specifying numerical values in a table format.
[0006]
[Means for Solving the Problems]
The pattern editing apparatus according to the first aspect of the present invention provides a numerical value for designating a numerical value indicating time and a numerical value indicating a level of the state variable that changes depending on the time as a combination of numerical values indicating the state quantities. By the specifying means and the numerical value specifying means A function to repeatedly input the numerical value combination that has already been input Assigned For repeated instructions When a symbol is specified, the numerical value specifying means Repeatedly set a pattern whose shape is represented by a combination of numerical values already entered Shape setting means.
[0008]
The pattern editing apparatus according to the second aspect of the present invention further includes, in addition to the first aspect, a drawing means for displaying the pattern whose shape is determined by the shape setting means on the display device.
By specifying a plurality of combinations of numerical values each indicating a different state quantity, the program of the present invention can edit a pattern in which a part or the entire shape is represented by the combination of the specified numerical values. A function for designating a numerical value indicating a time and a numerical value indicating a level of a state quantity that changes depending on the time as a combination of numerical values indicating the state quantity to a computer that can be used as a pattern editing device , According to the function to specify A function to repeatedly input the numerical value combination that has already been input Assigned For repeated instructions When a symbol is specified, the function for specifying the symbol A function that repeatedly sets a pattern whose shape is represented by a combination of numerical values that have already been entered And realize.
[0009]
In the present invention, when a plurality of combinations of numerical values each indicating a different state quantity are specified, a pattern that represents a part or the entire shape of the specified combination of numerical values is to be edited. , A symbol to which a function is assigned in advance can be input, and when the symbol is input, a part of the pattern or the entire pattern is used by using a combination of other specified numerical values according to the function assigned to the symbol. Set the shape. As a result, the number of times of specifying the combination of numerical values can be suppressed, and the user can edit the pattern more easily and quickly. When the pattern is displayed on the display device, the confirmation can be easily performed.
[0010]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
FIG. 1 is a circuit configuration diagram of a sound source device equipped with a pattern editing apparatus according to the present embodiment.
[0011]
As shown in FIG. 1, the sound source device displays a CPU 101 that controls the entire device, a ROM 102 that stores programs and various data, a RAM 103 that the CPU 101 uses for work, and data sent from the CPU 101. A display 104, a MIDI interface 105 for exchanging MIDI data with an external device, an input device 106 to be operated by a user, a tone generator LSI 107 for generating an audio signal for generating a musical sound, and respective units 101 to 107 Are connected to each other, an amplifier 109 that amplifies the audio signal output from the sound source LSI 107, and a speaker 110 that receives the audio signal output from the amplifier 109 and emits a musical sound. It is configured.
[0012]
The display 104 is a liquid crystal display, for example. Instead of the display device 104, an interface for outputting a signal or data to an external display device may be provided. The input device 106 includes operating elements such as various keys and a pointing device. As various keys, a large number of keys such as a numeric keypad for inputting numerical values and a plurality of keys for inputting symbols are provided. The tone generator LSI 107 generates waveform data of a musical sound to be generated according to an instruction from the CPU 101, for example, performs a process of adding an acoustic effect to the generated waveform data as necessary, and then D / A converts it. Thus, an audio signal is generated and output.
[0013]
The tone generator configured as described above processes the MIDI data received via the MIDI interface 105 to emit a musical sound designated by the MIDI data. The pattern editing apparatus according to the present embodiment is installed so that the user can edit various patterns used for processing the waveform of the musical sound to be emitted. Various patterns include volume envelope, pitch envelope, pan envelope, and the like. The RAM 103 is made nonvolatile by a battery (not shown) so that the envelope data edited by the user can be stored.
[0014]
The operation in the above configuration will be described.
When the user turns on the power, the CPU 101 reads out a program from the ROM 102 and executes it, thereby starting control of the entire apparatus. The control is performed in a form corresponding to the reception of the MIDI data of the MIDI interface 105 and the user's operation to the input device 106. Accordingly, when the MIDI interface 105 receives the MIDI data, the MIDI data or a command corresponding to the MIDI data or a command corresponding to the MIDI data is transmitted to the tone generator LSI 107, and the musical sound is emitted from the speaker 110. When the user operates the input device 106, processing corresponding to the type of operator operated by the user is performed. Pattern editing is realized by performing the processing.
[0015]
In order to realize the editing of the pattern, the CPU 101 stores the following data in the RAM 103. The data will be described in detail with reference to FIG.
FIG. 2 is a diagram showing a map of the RAM 103. Focusing on one type of envelope that can be edited, the assignment of the data and various variables prepared for editing in the RAM 103 is shown. Here, the envelope is a pitch envelope. The pitch envelope is a pattern indicating a time change of the pitch (pitch) of a musical sound. Hereinafter, in order to avoid confusion and facilitate understanding, the description will be made on the premise that the object of editing is a pitch envelope unless otherwise specified.
[0016]
The “envelope drawing area” in FIG. 2 is an area reserved for storing pitch envelope image data. The image data includes a display area (FIG. 3) in which the horizontal (X) axis is time, and the vertical (Y) axis is a level indicating the amount of displacement from the pitch (pitch) that is the reference of the pitch (pitch) of the musical sound. It is possible to input by drawing on (see FIG. 11).
[0017]
The shape of the pitch envelope can be specified numerically in addition to being specified by drawing it. “Envelope numerical data” in FIG. 2 is data including all numerical values inputted for the designation. The image data stored in the “envelope drawing area” is generated from a specified numerical value when a numerical value is specified. The area in which the envelope numerical data is stored is hereinafter referred to as a numerical data area.
[0018]
The numerical values are specified by time, time, level at that time (pitch displacement), and the type of line that forms the pitch envelope (in the figure, “waveform”. Unless otherwise specified, what is a waveform? Basically, the waveform for emitting a musical sound is designated (inputted) by designating (inputting) a musical sound waveform. The designated level and the level at the time designated immediately before are connected by a line designated as a waveform. “Steps (1) to (12)” in FIG. 2 each represent data composed of such a combination of numerical values, and the numbers in parentheses are “1” as an initial value from the beginning. The order is shown in ascending order. Hereinafter, numbers in parentheses are referred to as step numbers, and data designated (input) by the step numbers are collectively referred to as step data. Step data of step number “n” constituting the numerical envelope data is expressed as step (n) data. In this embodiment, each value indicating time and level is fixed to a predetermined value at step number “1”, and time, level, and waveform are arbitrarily designated at other step numbers “2” to “12”. I'm allowed to do that.
[0019]
“N”, “X”, “Y”, “FX”, “FY”, “M”, “ENDF”, “L”, “D”, “l”, “d”, and “n” in FIG. Is shown. A description of each variable will be described later.
When the user requests to edit the envelope by operating a predetermined switch provided as the input device 106, the CPU 101 causes the display 104 to display an envelope setting screen as shown in FIG. In the setting screen, icons for “numerical value”, “drawing”, and “return” are arranged in addition to a display area in which an image of the currently set pitch envelope is drawn. The “numerical value” icon is prepared so that the designation of the envelope shape by numerical values can be selected, and the “drawing” icon is selected so that the designation can be performed by drawing. As a result, in the present embodiment, the user can select the shape that is easier to specify (set) the shape so that the specification can be performed more easily. For example, the CPU 101 reads the original screen from the ROM 102 and stores the image data stored in the envelope drawing area shown in FIG. 2 in the RAM 103 in the display area. Is inserted and then sent to the display 104.
[0020]
When the user clicks the “numerical value” icon on the envelope setting screen, the CPU 101 displays a numerical value setting screen as shown in FIG. In the setting screen, icons for “clear” and “return” are arranged in addition to a display area in which an envelope image is drawn and a display area for numerical input. By arranging the display area, the user can easily confirm the shape of the envelope to be edited by numerical input. The “Clear” icon is used to instruct clearing of all input numerical values, and the “Return” icon returns to the previous state, that is, the state where the envelope setting screen shown in FIG. 3 is displayed. It is for instructing. For example, the CPU 101 reads the original screen from the ROM 102 and stores the data stored in the envelope drawing area and the numerical data area shown in FIG. After expanding and inserting, it is performed by sending it to the display 104.
[0021]
The display area for inputting numerical values is divided for each step number and for each content of numerical values (data) to be input. Here, for convenience, areas for inputting values indicating time, level, and waveform will be referred to as a time input area, a level input area, and a waveform input area. Data input to each input area is treated as time data, level data, and waveform data constituting step data (see FIG. 2).
[0022]
What is input as data in the time input area is a value (hereinafter referred to as a time difference value) indicating a time difference (time interval) from the designated time at the immediately preceding step number. The value range indicating the level is set to 100 to -100. “Direct” displayed (input) in each waveform input area of step numbers “2” and “3” is a symbol indicating that a straight line is connected to a specified level at the immediately preceding step number. Displayed by typing. Thereby, a pattern having a shape as shown in FIG. 4 is drawn in the display area of the envelope image. Input to the time input area, the level input area, and the waveform input area is performed, for example, by operating a switch provided in the input device 106.
[0023]
On the numerical value setting screen as shown in FIG. 4, numerical values are input sequentially in ascending order of step numbers. In the present embodiment, functions for numerical input are assigned to the following symbols so that the numerical input can be performed more easily. A method for editing the envelope by numerical input including the symbol and the numerical input function assigned thereto will be described in detail with reference to FIGS.
[0024]
In FIG. 5, “2L” is input to the time input area of step number “4” from the state shown in FIG. “L” in “2L” is a symbol for instructing to repeat data input (a combination of time, level, and waveform data) at the previous step number. “2L” “2” in the middle indicates that the number of repetitions is two. By inputting “2L” instructing such as data into the time input area of step number “4”, the display area of the envelope image has step numbers “0” to “0” as shown in FIG. The shape drawn by the data input in “2” is further drawn in a subsequent form.
[0025]
In FIG. 6, “E” is input to the time input area of step number “4” from the state shown in FIG. “E” is a symbol for instructing to repeat data input at a previous step number until a predetermined condition is satisfied. As shown in FIG. 6, step numbers “0” to “2” are displayed in the envelope image display area by inputting “E” instructing such to the time input area of step number “4”. The shape drawn by the data input in "" is drawn repeatedly throughout. In the present embodiment, it is assumed that the above condition is satisfied when the time when the shape of the envelope is set is longer than a predetermined time.
[0026]
In FIG. 7, “3L”, “1L”, and “2D” are respectively input to the time input areas of step numbers “4”, “9”, and “10” from the state shown in FIG. “Positive 3”, “Positive 4”, “Positive 1”, and “Positive 2” are respectively input to the waveform input areas of step numbers “5” to “8”. “Positive 3”, “Positive 4”, “Positive 1”, and “Positive 2” are sine waves corresponding to portions of 180 ° to 270 °, 270 ° to 360 °, 0 ° to 90 °, and 90 ° to 180 °, respectively. It is a symbol representing connecting lines.
[0027]
In the case of “L”, if there is another input before that, data input after the previous one (usually a combination of time, level, and waveform data) ) Is repeatedly input. For example, in “3L” input as data at step number “4”, data input at step numbers “1” to “3” is subject to repeated input, and “1L” input at step number “9” , Input at step numbers “5” to “8” is a target of repeated input. As described above, “L” can limit the range in which data input is repeated with the same type of symbols or symbols assigned with higher-order functions.
[0028]
“D” in “2D” input at step number “10” is a symbol for instructing to repeat data input at a previous step number, as in “L”. The assigned function is higher than “L”. For this reason, if “L” is input at the previous step number, the entire data input is repeated while repeating the data input by “L”. Thereby, a pattern having a shape as shown in FIG. 7 is drawn in the display area of the envelope image.
[0029]
As described above, in the present embodiment, symbols assigned with the functions as described above are prepared for editing by numerical input. Therefore, as shown in FIG. 5 to FIG. 7, data input at a plurality of consecutive step numbers having the same data content and order can be performed by the subsequent data input at one step number. It is like that. Thereby, the envelope (pattern) can be edited more easily and quickly.
[0030]
In this embodiment, three types of symbols “L”, “E”, and “D” are prepared as symbols to which functions for inputting numerical values are assigned. However, the symbols need not be three types. It may be more or less. The functions assigned to the symbols are not limited to those described above. As is apparent from these facts, the present invention can be modified in various ways.
[0031]
When the user clicks the “draw” icon on the envelope setting screen shown in FIG. 3, the CPU 101 displays a drawing screen as shown in FIG. In the drawing screen, in addition to the display area where the envelope image is drawn, “clear”, “return”, “sine wave”, and “straight line” icons are arranged. The “clear” icon is for instructing to erase the line drawn on the display area, and the “return” icon is the previous state, that is, the state in which the envelope setting screen shown in FIG. 3 is displayed. For instructing to return to. The “straight line” icon is used to select a straight line as a line connecting points designated in the display area. The “sine wave” icon is for selecting a sine wave as the line. “1” input (displayed) in the input area provided below it corresponds to “positive 1” in FIG. 7, that is, a portion corresponding to 0 to 90 degrees is drawn as a sine wave. ing. Similarly, “2”, “3”, and “4” correspond to “positive 2”, “positive 3”, and “positive 4”, respectively. The contents displayed in the area are cyclically changed every time the area is clicked. Hereinafter, the numerical value (number) display area provided under the “sine wave” icon is referred to as a “sine wave number” icon because it functions as one type of icon.
[0032]
To draw an envelope (curve), start from the point specified by the data that is fixedly input at step number "1", and then specify the point connecting with the line and the type of the line. It is supposed to be done with. By calculating the time difference value and the level value from the position of the designated point, step data is generated and stored even when the envelope is drawn. The waveform data thereof corresponds to the designated line type. In this way, by sharing the envelope data, the same envelope can be edited by different editing methods. A method for editing the envelope on the drawing screen will be specifically described with reference to the explanatory diagrams shown in FIGS.
[0033]
When the “clear” icon is clicked after clicking the point A shown in the display area in FIG. 8, all the points designated for drawing after the point A are invalidated as shown in FIG. Is erased. As a result, the line that has already been drawn can be deleted by clicking on the point located at the beginning of the line you want to delete (including the neighborhood here) from the points specified for drawing the line. This is done by clicking the icon.
[0034]
After the line is erased as described above, drawing is performed from the end of the remaining line. After the deletion, when the point B shown in FIG. 10 is clicked and then the “straight line” icon is clicked, as shown in FIG. 11, the end of the remaining line (at the end on the time (horizontal) axis) A straight line connecting the point B from the positioned end) is drawn.
[0035]
As described above, the CPU 101 allows the user to edit the pitch envelope on the numerical value setting screen or the drawing screen. The envelope image data and numerical data stored in the RAM 103 are updated as needed according to the editing contents performed by the user. For example, image data is transmitted to the sound source LSI 107 as data indicating the shape of the envelope as necessary. Thereby, the musical sound is emitted in the envelope edited by the user.
[0036]
The tone generator LSI 107 includes, for example, a memory storing musical sound waveform data, and generates musical sound waveform data corresponding to the pitch of the musical sound to be emitted by changing the speed at which the musical sound waveform data is read from the memory. When generating musical sound waveform data in this way, the sound source LSI 107 changes the speed at which the musical sound waveform data is read in accordance with the pitch envelope data sent from the CPU 101. Thereby, the pitch envelope is reflected in the generation of the musical sound waveform data.
[0037]
Next, the operation of the CPU 101 that allows the user to edit the envelope as described above will be described in detail with reference to various flowcharts shown in FIGS. Note that the processing represented by the various flowcharts shown in FIGS. 12 to 29 is realized by the CPU 101 executing a program stored in the ROM 102, for example.
[0038]
FIG. 12 is a flowchart of the entire process. This shows the overall flow of processing executed by the CPU 101 while the power is on. First, the entire process will be described in detail with reference to FIG.
First, in step 1201, initialization is performed to set the musical tone generator to a predetermined state in accordance with the power being turned on. In the following step 1202, it is determined whether or not the user has instructed to set an envelope. When it is determined that the user has operated the switch for instructing the setting by receiving data indicating the contents of the operations performed by the user on the various operators from the input device 106 and analyzing the data, the determination is made. YES, and in step 1203, the envelope setting process for realizing the envelope setting (editing) as described with reference to FIGS. 4 to 11 is executed. Thereafter, the process returns to step 1202 and the subsequent processing is executed in the same manner.
[0039]
On the other hand, when it is determined that the user has not operated the switch for instructing the setting of the envelope, the determination in step 1202 is NO and the process proceeds to step 1204. In step 1204, other processing is performed to respond to MIDI data reception by the MIDI interface 105, user operations on other controls provided in the input device 106, and the like. Thereafter, the process returns to step 1202 and the subsequent processing is executed in the same manner.
[0040]
FIG. 13 is a flowchart of the envelope setting process executed as step 1203. Next, the setting process will be described in detail with reference to FIG.
First, in step 1301, the original envelope setting screen (shown as “envelope setting screen frame” in the drawing) as shown in FIG. 3 is read from the ROM 102 and sent to the display unit 104 for display. In subsequent step 1302, envelope image data represented by the envelope numerical data stored in the numerical data area of the RAM 103 is generated and stored in the envelope drawing area of the RAM 103. In the next step 1303, a preset envelope drawing process for drawing the image data stored in the drawing area in the display area of the envelope setting screen is executed. Thereby, after the envelope setting screen as shown in FIG. 3 is displayed on the display unit 104, the process proceeds to step 1304.
[0041]
In step 1304, it is determined whether or not the “numerical value” icon on the envelope setting screen is turned on (clicked). If the user performs a click operation with the cursor positioned on the “numerical value” icon, the determination is yes, and in step 1305, a numerical value setting process for causing the user to edit the envelope by numerical value input Then, the process returns to step 1301. Otherwise, the determination is no and the process moves to step 1306.
[0042]
In step 1306, it is determined whether or not the “draw” icon on the envelope setting screen is turned on (clicked). If the user performs a click operation while the cursor is positioned on the “draw” icon, the determination is yes, and in step 1307, a drawing process is executed to cause the user to edit the envelope by drawing. After that, the process returns to step 1301. Otherwise, the determination is no and the process moves to step 1308.
[0043]
In step 1308, it is determined whether or not the “return” icon on the envelope setting screen has been turned on (clicked). If the user performs a click operation while the cursor is positioned on the “return” icon, the determination is yes, and the series of processing ends here. Otherwise, the determination is no and the process returns to step 1304. Thereby, when the envelope setting screen is displayed on the display device 104, the user waits for the user to click any of the icons arranged on the display screen.
[0044]
By executing the envelope setting process, the user can select and edit an envelope editing method. Hereinafter, subroutine processing executed in the setting processing will be described in detail.
FIG. 14 is a flowchart of the preset envelope drawing process executed as step 1303. The subroutine process executed in the envelope setting process will be described in detail with reference to FIG.
[0045]
First, in step 1401, the type of screen displayed on the display unit 104 is determined. If a numerical value setting screen as shown in FIGS. 4 to 7 is displayed on the display device 104 as the screen, that fact is determined and the process proceeds to step 1402. Similarly, when the envelope setting screen as shown in FIG. 3 is displayed, the fact is determined and the process proceeds to step 1403 and the drawing screen as shown in FIGS. 8 to 11 is displayed. Is determined to that effect and the process proceeds to step 1404.
[0046]
In step 1402, the envelope image data stored in the envelope drawing area (see FIG. 2) of the RAM 103 is sent to the display unit 104 so as to be drawn in the display area on the numerical value setting screen. Thereby, for example, an envelope (curve) as shown in FIG. 4 is displayed in the display area, and then a series of processing is terminated.
[0047]
In steps 1403 and 1404, the same processing as in step 1402 is executed by replacing the target screen. Thereby, even when the envelope setting screen or the drawing screen is displayed, the envelope (curve) is displayed in the display area as shown in FIG. 3 or FIG. 8, for example.
[0048]
15 to 18 are flowcharts of the numerical value setting process executed as step 1305 in the envelope setting process shown in FIG. Next, the numerical value setting process will be described in detail with reference to FIGS. The minimum unit data (time difference value, level value, etc.) constituting the numerical envelope data will be expressed as data of step (a, b) hereinafter. The subscript a in parentheses is used to indicate the step number, and the subscript b is used to indicate the type of data input by the step number. Specific symbols of the subscript b include “time” when representing a time difference value, “level” when representing a level value, and a value indicating a waveform (the display is “direct” or “ “Waveform” is used to represent a symbol such as “1”.
[0049]
First, in step 1501, the original numerical value setting screen (shown as “numerical value setting frame” in the drawing) as shown in FIGS. 4 to 7 is read from the ROM 102 and sent to the display unit 104 to be displayed. In the following step 1502, numerical value display processing for displaying the envelope numerical data stored in the numerical data area of the RAM 103 in the corresponding area for numerical value input is executed. In the next step 1503, the preset envelope drawing process described with reference to FIG. 14 is executed. Thus, for example, after the numerical value setting screen is displayed on the display unit 104 in the state shown in FIG.
[0050]
In step 1504, it is determined whether or not the value of the variable ENDF is zero. The variable ENDF is a variable prepared for grasping whether or not editing of the envelope to be edited can be considered complete. “0” assigned to it indicates that it is not in a state that can be regarded as complete, and “1” indicates that it is in that state. From this, if the editing of the envelope is not considered complete, the determination is YES, and then in step 1505, the step number is set to the value of the variable N in order to inform the user of the area where data input is to be performed next. After the display color of the time input area (shown as “step numerical value display area (N, time)” in the figure) is changed to a display color different from the other areas, the process proceeds to step 1506. Otherwise, the determination is no and the process moves to step 1506.
[0051]
In this embodiment, as will be described later, when data is input up to step number “12” or when the time for applying the envelope is longer than a predetermined time, it can be considered that the editing of the envelope has been completed. Judgment is made. The variable N is a variable prepared for managing a step number that is a target of data input. When the numerical value display process in step 1502 is executed, the step number that is the next data input target is substituted into the variable N.
[0052]
In step 1506, the cursor is displayed on the display unit 104. In step 1507 to be executed next, it is determined whether or not data input has been performed. If the user performs an operation for data input on the input device 106, the determination is yes and the process moves to step 1508. Otherwise, the determination is no and the process moves to step 1533 in FIG. The display color change, cursor display, or display position change is performed, for example, when the CPU 101 specifies a portion whose display content is to be changed in accordance with such change or display, and image data of the specified portion. Is transmitted to the display 104, and the image data for one screen of the display 104 is partially updated. The same applies to the case where the display unit 104 displays input data or lines constituting an envelope (curve) as the data is input.
[0053]
In step 1508, the type of the area whose display color is changed from the others, that is, the area to be the next data input target is determined. If the display color of the level input area has been changed from the others, it is determined that the area is a level input area, and the process proceeds to step 1509.
[0054]
In step 1509, the data input by the user is stored in the RAM 103 as the data of step (N, level), that is, the level value of step number “N”. In the following step 1510, the data is displayed in the level input area where the display color is changed from the others. In the next step 1511, the display color of the waveform input area located below the level input area is changed instead of the level input area. Thereafter, the process returns to step 1507.
[0055]
If the display color of the time input area has been changed from the other, it is determined in step 1508 that the area whose display color has been changed from the other is the time input area. In step 1512 which shifts by making such a determination, the data input by the user is stored in the RAM 103 as the data of step (N, time), that is, the time difference value of step number “N”. In the next step 1513, the data is displayed in the time input area where the display color is changed from the others. Thereafter, the process proceeds to step 1515 in FIG.
[0056]
In the time input area, symbols other than numerical values can be input as shown in FIGS. Each symbol is assigned a function for numerical input as described above. In steps 1515 to 1522 in FIG. 16, processing for handling data input to the numerical value input area including such symbols is performed.
[0057]
First, in step 1515, it is determined whether or not the input data is only a numerical value. When the user operates the input device 106 and inputs a numerical value in the time input area, the determination is YES, and then step 1516 is executed, and instead of the time input area, the position is below it. After changing the display color of the level input area, the process returns to step 1507 in FIG. Otherwise, the determination is no and the process moves to step 1517.
[0058]
In step 1517, it is determined whether or not the input data includes “L” as a symbol. If the user operates the input device 106 and inputs data including “L” in the time input area, the determination is yes and the process moves to step 1516. Otherwise, the determination is no and the process moves to step 1519.
[0059]
In step 1518, a loop process for responding to the input of “L” is executed. In the subsequent step 1529 of FIG. 17, the value of the variable N is interfaced. In the next step 1530, it is determined whether or not the value of the variable N is less than 12. If the user has not entered data at all step numbers, the determination is yes and the process moves to step 1531 to change the display color of the time input area whose step number is the value of variable N. Thereafter, the process returns to step 1507 in FIG. On the other hand, if this is not the case, that is, if the user inputs data at all step numbers, the determination is no, and after substituting 1 into the variable ENDF in step 1532, step 1507 in FIG. Return to.
[0060]
In step 1519 to which the process proceeds when NO is determined in step 1517 in FIG. 16, it is determined whether or not the input data includes “D” as a symbol. When the user operates the input device 106 and inputs data including “D” in the time input area, the determination is YES, the process proceeds to step 1520, and a multiple loop for responding to the input of “D” Execute the process. Thereafter, the process proceeds to step 1529 in FIG. Otherwise, the determination is no and the process moves to step 1521.
[0061]
In step 1521, it is determined whether or not the input data is a symbol “E”. If the user operates the input device 106 and inputs “E” in the time input area, the determination is YES, the process moves to step 1522, and an endless loop process for responding to the input of “E” is executed. To do. Thereafter, the process returns to step 1507 in FIG. Otherwise, the determination is no and the process returns to step 1507.
[0062]
When the above loop processing, multiple loop processing, and permanent loop processing are executed, a line is drawn in the display area for the envelope image in accordance with the type of symbol input by the user. This allows the user to confirm the shape of the envelope generated by inputting the symbol into the time input area.
[0063]
If the display color of the area other than the level input area and the time input area has been changed from the other, in step 1508 of FIG. 15, the area whose display color is changed from the other is the level input area and the time. It is determined that it is not one of the input areas. That is, it is determined that the area in which the display color is changed from the other is the waveform input area, or such an area does not exist. From this, in step 1514 which shifts by making such a determination, it is determined whether or not the display color of the waveform input area is changed from the others. If the display color of the waveform input area has been changed from the others, the determination is yes and the process moves to step 1523 in FIG. Otherwise, the determination is no and the process returns to step 1507.
[0064]
In step 1523 of FIG. 17, the data input by the user is stored in the RAM 103 as data of step (N, waveform), that is, a value indicating the waveform of step number “N”. In the following step 1524, the symbol corresponding to the value is displayed in the waveform input area whose display color is changed from the other. Next, proceeding to step 1511, the value of variable X is assigned to variable FX, and the value of variable Y is assigned to variable FY. The variables FX and Y are variables prepared for managing the start point for drawing a line, and the variables X and FY are variables prepared for managing the end point with respect to the start point. After completing the value assignment, the process proceeds to step 1526.
[0065]
In step 1526, the value obtained by adding the time difference value stored as the data of step (N, time) to the value of variable FX is substituted for variable X, and the data of step (N, level) is substituted for variable Y. Substitute the level value stored as. Next, the process proceeds to step 1527, and the value of the variable N is substituted for the variable M. Thereafter, the process proceeds to step 1528, and a line drawing process for drawing a line between the start point specified by the values of the variables FX and FY and the end point specified by the values of the variables X and Y is executed. When the line drawing process is executed, the process proceeds to step 1529 described above.
[0066]
When the user inputs up to a value indicating a waveform with one step number, the data input at that step number is completed, and the position of the point connected by the end and the line and the type of the line are determined. Therefore, in the present embodiment, when a value indicating a waveform is input by the user, a line is newly drawn (displayed) in the display area for image display of the envelope at that time.
[0067]
The determination of NO in step 1507 in FIG. 15 means that the user has performed an operation other than data input or that no operation has been performed. For this reason, in steps 1533 to 1541 of FIG. 18 to which the process proceeds when NO is determined in step 1507, processing for dealing with such a situation is performed.
[0068]
First, in step 1533, it is determined whether or not the user has performed an operation of moving the cursor. If the user operates a pointing device mounted as a part of the input device 104, it is necessary to move the cursor in accordance with the operation. Therefore, the determination is YES. Next, in step 1534, the user performs the determination. The display position of the cursor is determined according to the operated operation, and the process of displaying the cursor at the determined display position is performed. Otherwise, the determination is no and the process moves to step 1535 without executing the process of other steps.
[0069]
In step 1535, it is determined whether or not the user has performed a click operation. If the user operates a switch provided together with the pointing device or a switch instead of it, the determination is yes and the process moves to step 1536. Otherwise, the determination is no and the user returns to step 1507 in FIG. 15 assuming that the user has not operated the input device 106.
[0070]
In step 1536, it is determined whether or not the display position of the cursor is on the “clear” icon. If the user performs a click operation with the cursor moved on the “clear” icon, the determination is yes, and then a clear process is executed in step 1537 to cope with it, and in step 1538, the variable N After changing the display color of the time input area using the value of as a step number, the process returns to step 1507 in FIG. Otherwise, the determination is no and the process moves to step 1539.
[0071]
In the present embodiment, when the user clicks the “clear” icon, all the data input up to that point is cleared. In other words, data input is performed from step number “2”. Therefore, in the clear process, 2 is assigned to the variable N. Thereby, in step 1538, the display color of the time input area of step number “2” is changed.
[0072]
In step 1539, it is determined whether or not the display position of the cursor is on the “return” icon. If the user performs a click operation with the cursor moved on the “return” icon, the determination is yes and the process moves to step 1540. If not, that is, if the user performs a click operation with no cursor displayed on the icon to be clicked, the determination is no and the process returns to step 1507 in FIG.
[0073]
In step 1540, it is determined whether the display color of the input area other than the time input area having the value of the variable N as a step number is changed. Changing the display color of the input area other than the time input area means that data input at that step number is in progress. Therefore, when the user clicks the “return” icon in the state where the data input of the step number “N” is in the middle, the determination is YES, and then in step 1541, step (N, time) and step After clearing each data of (N, level) from the RAM 103, a series of processing ends. Otherwise, the determination is no and the series of processing ends here.
[0074]
By executing such numerical value setting processing, data input for each step number or drawing (display) of a line corresponding to the data input or input is performed according to the user's operation on the input device 106. Data is cleared. As a result, the user can edit the envelope by inputting numerical values.
[0075]
Next, a subroutine process executed in the numerical value setting process will be described in detail with reference to FIGS.
FIG. 19 is a flowchart of the numerical value display process executed as step 1502 above. In the subroutine processing executed in the numerical value setting processing, first, the numerical value display processing will be described in detail with reference to FIG. As described above, the numerical value display process is a process of reading the envelope numerical data stored in the numerical data area (see FIG. 2) of the RAM 103 and displaying the data constituting it in the corresponding input area. .
[0076]
First, in step 1901, 1 is substituted for variable N. In the subsequent step 1902, it is determined whether or not there is data having a value of the variable N as the step number. If the data of step number “N” does not exist, the determination is YES, and a series of processing ends here. Otherwise, the determination is no and the process moves to step 1903.
[0077]
In step 1903, corresponding data is displayed in each input area of step number “N”. In the next step 1904, the value of the variable N is incremented. In step 1905 which moves to after that, it is determined whether or not the value of the variable N is larger than 12. If the value of the variable N is greater than 12, that is, data exists up to the step number “12”, the determination is YES, and the series of processing ends here. Otherwise, the determination is no and the process returns to step 1902 above. Thereby, while the value of the variable N is incremented, data with the value as the step number is displayed.
[0078]
FIG. 20 is a flowchart of a loop process executed as step 1518 in the numerical value setting process. Next, the loop processing will be described in detail with reference to FIG. The loop processing is processing for setting the shape of the envelope (curve) according to the function assigned to “L” input as a symbol in the time input area.
[0079]
First, in step 2001, a numerical value positioned before the symbol “L” in the data input by the user is substituted for the variable L. For example, as shown in FIG. 5, if the user inputs “2L” in the time input area, 2 is substituted into the variable L. In the following step 2002, it is determined whether or not the value of the variable L is 2 or more. If the variable L is assigned 1 or 0 (assigned when there is no numerical value before the symbol “L”), that is, as shown in FIG. If it is not necessary to set the envelope shape from the data, the determination is no, and the series of processing ends here. Otherwise, the determination is yes and the process moves to step 2003.
[0080]
In step 2003, 1 is substituted into the variable l. Thereafter, the value of the variable N is substituted for the variable M, and the value of the variable M is further decremented (steps 2004 and 2005). After the value of the variable M is decremented, the process proceeds to step 2006 to determine whether or not the value of the variable M is greater than 1. If the value of the variable M is greater than 1, the determination is yes and the process moves to step 2007. Otherwise, the determination is no and the process moves to step 2009.
[0081]
In step 2007, it is determined whether or not “L” or “D” is included as a symbol in the data of step (M, time), that is, the time data whose step number is the value of the variable M. If “L” or “D” is included as a symbol in the data, the determination is yes and the process moves to step 2009. Otherwise, the determination is no and the process returns to step 2005 above.
[0082]
The processing loop formed in steps 2005 to 2007 is repeatedly executed until NO is determined in step 2006 or YES is determined in step 2007. As a result, the step number that is referred to as the time data is sequentially returned from the step number including the symbol “L”, and the step number “1” is input as the symbol until the step number becomes “1”. The number is specified.
[0083]
In step 2009, the value of the variable M is incremented. As a result, after substituting the step number next to the step number having data including “L” or “D” as a symbol into the variable M, the process proceeds to step 2010 to step into the variable X and the value of the variable FX. A value obtained by adding the time difference value saved as (M, time) data is substituted, and a level value saved as step (M, level) data is substituted for variable Y. In this way, when the position of the end point for drawing a line is determined, in step 2011, line drawing processing is executed to draw a line between them. Thereafter, the process proceeds to step 2012.
[0084]
When executing the line drawing process, the values of the variables X and Y are assigned to the variables FX and FY, respectively. Thereby, the position set as the end point this time is handled as the position of the start point when drawing a line next time.
In step 2012, the value of the variable M is incremented. In the following step 2013, it is determined whether or not the value of the variable M is equal to the value of the variable N. The variable N is assigned the step number currently being processed in the numerical value setting process shown in FIGS. 15 to 18 in which “L” is input as a symbol. From this, the line indicating the shape of the envelope (curve) according to the data input at each step number from the step number corresponding to the value assigned to the variable M in step 2009 to the step number immediately before the step number “N”. Is drawn, the determination is YES, and the process proceeds to step 2015. Otherwise, the determination is no and the process moves to step 2014.
[0085]
In step 2014, it is determined whether or not the value of the variable ENDF is 1. If 1 is assigned to the variable ENDF in the line drawing process executed as step 2011 immediately before, the determination is YES, and no further line drawing is necessary, and the series of processes ends here. Otherwise, the determination is no and the process returns to step 2010 described above. Thereby, line drawing is continued.
[0086]
In step 2015, the value of variable l is incremented. In the following step 2016, it is determined whether or not the value of the variable l is equal to the value of the variable L. If the values are equal, the determination is yes, and the series of processing ends here. Otherwise, the determination is no, the process returns to step 2004, and the subsequent processing is executed in the same manner. Thereby, the number obtained by subtracting 1 from the value substituted for the variable L in step 2001, from the step number corresponding to the value substituted for the variable M in step 2009 to the step number immediately before the step number “N”, A line indicating the shape of the envelope (curve) is drawn according to the data input at each step number. As a result, in FIG. 5, a line is repeatedly drawn with the contents specified by the data input at step numbers “1” to “3”.
[0087]
Next, the line drawing process executed as step 2011 will be described in detail with reference to the flowchart shown in FIG. The line drawing process is executed as step 1528 in the numerical value setting process shown in FIGS. Furthermore, it is also executed in each subroutine process of the multiple loop process, the permanent loop process, and the drawing process executed as steps 1520 and 1522 shown in FIG. 16 and step 1307 shown in FIG.
[0088]
First, in step 2101, the data displayed in step (M, waveform), that is, the symbols displayed as values indicating the waveform having the value of the variable M, are “positive 1”, “positive 2”, “positive 3”, and “positive 4”. ”Is selected, the waveform table corresponding to the data is selected from the waveform tables prepared for drawing the sine wave. These waveform tables define the correspondence between time and level values, for example, at regular time intervals. The value of the variable M is passed as an argument from a subroutine process that calls a line drawing process.
[0089]
In Step 2102 following Step 2101, when the waveform table is selected in Step 2101, the contents of the selected waveform table are designated by the values of the variables X and Y from the start point designated by the values of the variables FX and FY. Conversion is performed according to the difference in time interval and level value between the end points. For example, the time on the waveform table is converted so that the total time thereof coincides with the time interval between the start point and the end point, and the level value on the table is the first value (maximum value or minimum value) thereof. Conversion is performed so that the difference between the last values (minimum value or maximum value) matches the level value difference between the start point and the end point. The process proceeds to step 2103 after performing such conversion.
[0090]
In step 2103, 1 is substituted into a variable n prepared for drawing a line sequentially from the start point to the end point, for example, in units of dots (pixels). In the subsequent step 2104, a value obtained by adding the value of the variable n to the value of the variable FX is substituted for the variable x for managing the position on the horizontal (X) axis of the point to be drawn, and the vertical (Y) of the point For the variable y for managing the upper position, after calculating the level value at the position on the horizontal axis specified by the value substituted for the variable x and substituting it, each value of these variables x and y The point specified by is displayed as a line. Thereafter, the process proceeds to step 2105. Here, when the waveform table is converted in step 2102 above, the value to be substituted for the variable y is a level value (in the figure, the value of the variable n obtained as the time in the converted waveform table). This is a value obtained by adding “table (n)” to the value of the variable FX. If the waveform table is not converted in step 2102, that is, if the symbol displayed in the data of step (M, waveform) is “direct”, the value between the value of variable Y and the value of variable FY Is a value obtained by adding a value (= (Y−FY) · n / (X−FX)) obtained by linear interpolation according to the value of the variable n to the value of the variable FY.
[0091]
In step 2105, the value of the variable n is incremented. In the next step 2106, it is determined whether or not the value of the variable x is equal to or less than a value (denoted as “maximum value” in the drawing) determined to determine whether or not the editing of the envelope has ended. If the value of the variable x is larger than that value, the determination is NO, and it is determined that the condition for considering that the editing of the envelope has been completed. Next, in step 2108, 1 is assigned to the variable ENDF, and in step 2109, the variable FX, After substituting the values of the variables X and Y for FY, the series of processing ends. Otherwise, the determination is yes and the process moves to step 2107.
[0092]
In step 2107, it is determined whether or not the value of the variable x is equal to the value of the variable X, that is, whether or not the drawing of the line connecting the start point to the end point has been completed. When the drawing is completed, the determination is YES, and after executing the process of step 2109, the series of processes is terminated. Otherwise, the determination is no and the process returns to step 2104.
[0093]
As described above, the processing loop formed in steps 2104 to 2107 is repeatedly executed until the determination in step 2106 becomes NO. Thereby, the line connecting them is sequentially drawn from the start point to the end point.
[0094]
FIG. 22 is a flowchart of the multiplex loop process executed as step 1520 in the numerical value setting process shown in FIGS. Next, the multiple loop processing will be described in detail with reference to FIG.
As described above, this multiple loop process is a process executed to correspond to “D” input as a symbol in the time input area whose step number is the value of the variable N. In this embodiment, when “D” is input, the process returns to step number “0” to set the shape of the envelope.
[0095]
First, in Step 2201, a numerical value positioned before the symbol “D” in the data input by the user is substituted for the variable D. For example, as shown in FIG. 7, if the user inputs “2D” in the time input area, 2 is substituted into the variable D. In the following step 2202, it is determined whether or not the value of the variable D is 2 or more. When variable D is set to 1 or 0 (assigned when there is no numerical value before symbol “D”), that is, when it is not necessary to set the envelope shape from the data of step number “1” The determination is NO, and the series of processing ends here. Otherwise, the determination is yes and the process moves to step 2203.
[0096]
In step 2203, 1 is substituted into the variable d. In the next step 2204 to be executed, 1 is substituted into the variable M. In step 2205 which moves to thereafter, the value of the variable M is incremented. After the increment, the process proceeds to step 2206 to determine whether or not the value of the variable N is larger than the value of the variable M. The envelope shape is set by processing the data of the step number “M” specified by the value of the variable M while incrementing the value of the variable M as needed. Therefore, when the envelope shape setting is completed up to the data of step number “N−1”, the determination is no and the process proceeds to step 2214. Otherwise, the determination is yes and the process moves to step 2207.
[0097]
In step 2207, the value obtained by adding the time difference value stored as the data of step (M, time) to the value of variable FX is substituted for variable X, and further, the data of step (M, level) is substituted for variable Y. Substitute the saved level value. In this way, when the position of the end point for drawing a line is determined, the process proceeds to step 2011 to execute the above-described line drawing process. Thereafter, the process proceeds to step 2209.
[0098]
In step 2209, the value of the variable M is incremented. In the following step 2210, it is determined whether or not “L” is included as a symbol in the data of step (M, time), that is, the time data whose step number is the value of the variable M. If “L” is included in the data as a symbol, the determination is yes and the process moves to step 2212. Otherwise, the determination is no and the process moves to step 2211.
[0099]
In step 2211, it is determined whether or not the value of the variable ENDF is 1. If 1 is assigned to the variable ENDF, the determination is yes, and the series of processing ends here. Otherwise, the determination is no and the process returns to step 2206. Accordingly, the subsequent processing is similarly executed on the data of the step number specified by the value of the variable M after being incremented in step 2209.
[0100]
On the other hand, in step 2212, since “L” is included as a symbol in the data of step (M, time), the loop processing described with reference to FIG. 20 is executed. Thereafter, in step 2213, the process proceeds to step 2213 where it is determined whether the value of the variable ENDF is 1. If 1 is assigned to the variable ENDF, the determination is yes, and the series of processing ends here. Otherwise, the determination is no and the process returns to step 2205. Thereby, the value of the variable M is further incremented, and the step number to be processed is moved to the next.
[0101]
In step 2214, which is shifted by determining NO in step 2206, it is determined whether or not the value of the variable ENDF is 1. If 1 is assigned to the variable ENDF, the determination is yes, and the series of processing ends here. Otherwise, the determination is no, and after the value of variable d is incremented in step 2215, the process proceeds to step 2216.
[0102]
In step 2216, it is determined whether the value of variable d is equal to the value of variable D. If these values match, the determination is yes, and the series of processing ends here. Otherwise, the determination is no and the process returns to step 2204. Thereby, the processing object is returned to the step number “1” and the envelope shape is set.
[0103]
In this manner, the envelope shape setting from the step number “1” is repeatedly performed by subtracting 1 from the numerical value input before the symbol “D”. Thereby, the drawing by the envelope line as shown in FIG. 7 is realized. For example, in FIG. 7, when the data of the step number “10” is processed, the envelope shape setting is repeatedly performed by the number of times obtained by subtracting 1 from the numerical value input before the symbol “D”. This is because the data up to “is processed through.
[0104]
FIG. 23 is a flowchart of an endless loop process executed as step 1522 in the numerical value setting process shown in FIGS. Next, the permanent loop process will be described in detail with reference to FIG.
As described above, this endless loop process is a process executed to correspond to “E” input as a symbol in the time input area whose step number is the value of variable N. In this embodiment, when “E” is input, if the symbol “L” or “D” is input at the previous step number, then such symbol must be input thereafter. For example, from the step number “0”, the envelope shape setting is repeated until 1 is assigned to the variable ENDF.
[0105]
First, in step 2301, the value of the variable N is substituted for the variable M. In the following step 2302, the value of the variable M is decremented. In step 2303 which moves to after that, it is determined whether or not the value of the variable M is larger than one. If the value of the variable M is greater than 1, the determination is yes and the process moves to step 2304. Otherwise, the determination is no and the process moves to step 2305.
[0106]
In Step 2304, it is determined whether or not “L” or “D” is included as a symbol in the time input area of the step (M, time), that is, the step number “M”. If "L" or "D" is displayed as a symbol in the time input area, the determination is yes and the process moves to step 2305. Otherwise, the determination is no and the process returns to step 2302 above.
[0107]
In step 2305, the value of the variable M is incremented. In the subsequent step 2306, a value obtained by adding the time difference value stored as the data of the step (M, time) to the value of the variable FX is substituted for the variable X, and further, the data of the step (M, level) is substituted for the variable Y. Substitute the level value saved as. In this way, when the position of the end point for drawing the line is determined, the process proceeds to step 2307 to execute the line drawing process shown in FIG. Thereafter, the process proceeds to step 2308.
[0108]
In step 2308, the value of the variable M is incremented. In the next step 2309, it is determined whether or not the value of the variable M is equal to the value of the variable N. The variable N is assigned the step number currently being processed in the numerical value setting process shown in FIGS. 15 to 18 in which “E” is input as a symbol. From this, the shape of the envelope (curve) is shown according to the data input at each step number from the step number specified by the value substituted for the variable M in step 2305 to the step number immediately before the step number “N”. If a line is drawn, the determination is yes and the process returns to step 2302 above. Thereby, the envelope shape setting is repeated again. Otherwise, the determination is no and the process moves to step 2310.
[0109]
In step 2310, it is determined whether or not the value of the variable ENDF is 1. If 1 is assigned to the variable ENDF in the line drawing process executed as step 2011 immediately before, the determination is YES, and no further line drawing is necessary, and the series of processes ends here. Otherwise, the determination is no and the process returns to step 2306 above. Thereby, line drawing is continued.
[0110]
Next, clear processing executed as step 1537 in the numerical value setting processing shown in FIGS. 15 to 18 will be described in detail with reference to the flowchart shown in FIG.
The clear process is a process for responding to a click on the “clear” icon arranged on the numerical value setting screen shown in FIGS. In this embodiment, when the “clear” icon is clicked, all the data input up to that point is erased (cleared).
[0111]
First, in step 2401, the image data stored in the envelope drawing area (see FIG. 2) of the RAM 103 is cleared, and the display in the display area and each area for inputting numerical values is cleared. In the next step 2402, the step data stored in the numerical data area are all cleared. Thereafter, the process proceeds to step 2403.
[0112]
In step 2403, 0 is assigned to each of the variables X, Y, and ENDF, and 2 is assigned to the variable N. In the subsequent step 2404, 0 is stored in the numerical data area as the time data and level data of the step number “1”, and the time input area and level input area of the step number “1” are stored together with the storage. 0 is displayed. The series of processing is finished thereafter.
[0113]
In the numerical value setting process executed as step 1305 in the envelope setting process shown in FIG. 13, the subroutine process as described above is executed. Next, the drawing process executed as step 1307 in the envelope setting process will be described in detail with reference to the flowcharts shown in FIGS.
[0114]
First, in step 2501, an original drawing screen (shown as “drawing screen frame” in the drawing) as shown in FIGS. 8 to 11 is read from the ROM 102 and sent to the display unit 104 for display. In the following step 2502, the preset envelope drawing process described with reference to FIG. 14 is executed. Thereby, for example, after the drawing screen is displayed on the display unit 104 in the state shown in FIG.
[0115]
In step 2503, the cursor is displayed on the display unit 104. In step 2504 to be executed next, it is determined whether or not the user has performed an operation of moving the cursor. When the user operates a pointing device mounted as a part of the input device 104, it is necessary to move the cursor in accordance with the operation. Therefore, the determination is YES. Next, in step 2505, the user performs the determination. The display position of the cursor is determined according to the operated operation, and after the process of displaying the cursor at the determined display position, the process proceeds to step 2506. Otherwise, the determination is no and the process moves to step 2506 without executing the process of other steps.
[0116]
In step 2506, it is determined whether or not the user has performed a click operation. If the user operates a switch provided in conjunction with the pointing device or a switch instead thereof, the determination is yes and the process moves to step 2507. Otherwise, the determination is no, and the user returns to step 2504, assuming that the user has not operated the input device 106.
[0117]
In step 2507, it is determined whether or not the cursor display position is within the envelope image display area. If the user performs a click operation with the cursor moved within the display area, the determination is yes and the process moves to step 2508. Otherwise, the determination is no and the process moves to step 2518 in FIG.
[0118]
As described above, drawing a line in the display area and erasing the drawn line are performed by clicking in the area. Thus, in step 2508 to step 2517 in FIG. 26, processing for dealing with such a situation is performed.
[0119]
First, in step 2508, a value 1 indicating that a valid click in the display area has been performed is substituted for the variable PF. In the subsequent step 2509, values indicating the positions of the clicked points on the horizontal axis and the vertical axis are substituted into variables CX and CY, respectively. Thereafter, the process proceeds to step 2510 in FIG.
[0120]
In step 2510, it is determined whether or not the value of the variable CX is equal to or smaller than the value of the variable X. The variable X is assigned a value indicating the position of the end of the line drawn in the display area on the horizontal axis. Therefore, if the user clicks on a point located behind the end position on the horizontal axis, the determination is no and the process moves to step 2517. Otherwise, the determination is yes, and after substituting 1 for the variable n in step 2511, the process proceeds to step 2512.
[0121]
In step 2512, whether the time data of step number “n” specified by the value of variable n and the values stored as level data match the values of variables CX and CY within a predetermined range, respectively. Judge whether or not. If the corresponding values match within the range, the determination is yes and the process moves to step 2516. Otherwise, the determination is no, and after incrementing the value of the variable n in step 2513, the process proceeds to step 2514.
[0122]
In step 2514, it is determined whether or not the value of the variable n is larger than the value of the variable N. If a value greater than the value of variable N is assigned to variable n, the determination is yes and the process moves to step 2515, where the point clicked by the user in the display area is the point designated in the past for line drawing. If they do not coincide with each other, 0 is substituted for a variable PF indicating that a valid click has not been performed. Thereafter, the process returns to step 2504 in FIG. On the other hand, if not, the determination is no and the process returns to step 2512. Thereby, the processing loop formed in steps 2512 to 2514 is repeatedly executed until the determination in step 2512 or 2514 becomes YES.
[0123]
In step 2516 where the determination in step 2512 is YES and the process proceeds to step 2516, there is a line to be erased in accordance with the user clicking one of the points designated in the past for line drawing. 1 is substituted into the variable CLF. In the following step 2517, a point (see FIG. 10) is displayed at a position specified by each value of the variables CX and CY. Thereafter, the process returns to step 2504 in FIG.
[0124]
In this way, processing for responding to the user clicking in the display area is performed. Processing for responding to clicking outside the area is performed in step 2518 in FIG. 27 to step 2547 in FIG. As described above, the process proceeds to step 2518 when the determination in step 2507 is NO.
[0125]
In step 2518 of FIG. 27, it is determined whether or not the cursor is on the “clear” icon. If the user has not performed a click operation with the cursor moved on the “clear” icon, the determination is no and the process proceeds to step 2525 in FIG. If not, that is, if the user clicks the “clear” icon, the determination is yes and the process moves to step 2519.
[0126]
In step 2519, it is determined whether or not the value of the variable CLF is 1, that is, whether or not there is a line to be erased. If such a line exists, the determination is yes and the process moves to step 2520. Otherwise, the determination is no and the process returns to step 2504 in FIG.
[0127]
In step 2520, the image data of the portion after the position on the horizontal axis designated by the value of the variable CX is deleted from the envelope drawing area (see FIG. 2) of the RAM 103, and on the horizontal axis on the display area. The line drawn after the position of is deleted. In the next step 2521, the data of step numbers “n + 1” to “N” are cleared from the numerical data area in accordance with the deletion. Step 2522 then proceeds.
[0128]
In step 2522, 0 is substituted for variables PF and CLF, respectively. Other than that, for example, if the value of the variable CX is equal to or less than the value determined for determining whether or not the editing of the envelope has ended, 0 is substituted into the variable ENDF. After such a thing is performed, the process proceeds to step 2523, and the point (point) (see FIG. 10) displayed in the display area is deleted. Thereafter, after substituting the value of the variable n for the variable N in step 2524, the process returns to step 2504 in FIG.
[0129]
In step 2525 where the determination in step 2518 is NO and the process proceeds to step 2525, it is determined whether the cursor is on the “sine wave number” icon. If the user performs a click operation with the cursor moved over the icon, the determination is yes, and then the value of the variable SW is incremented in step 2526, and the process proceeds to step 2527. Otherwise, the determination is no and the process moves to step 2529.
[0130]
The variable SW is a variable prepared for managing the number displayed as the “sine wave number” icon, and the number is a numerical value between 1 and 4. Therefore, in step 2526, it is determined whether or not the value of the variable SW is 5. If 5 is assigned to the variable SW, the determination is YES. Next, after 1 is assigned to the variable SW in step 2528, the process returns to step 2504 in FIG. Otherwise, the determination is no and the process returns to step 2504 of FIG. 25 without executing the process of the other steps.
[0131]
On the other hand, in step 2529, it is determined whether or not the cursor is on the “return” icon. If the user performs a click operation with the cursor moved over the icon, the determination is yes, and after substituting 0 for variables PF and CLF in step 2530, the series of processing ends. Otherwise, the determination is no and the process moves to step 2531 in FIG.
[0132]
In step 2531 of FIG. 29, it is determined whether or not the cursor is on the “straight line” icon. If the user performs a click operation with the cursor moved over the icon, the determination is yes and the process moves to step 2532. Otherwise, the determination is no and the process moves to step 2545.
[0133]
In step 2532, a value 0 indicating a straight line is substituted into a variable W prepared for managing the type of line to be drawn. In the following step 2533, it is determined whether or not the value of the variable PF is 1. As described above, if the user has made a valid click in the display area, the determination is yes and the process moves to step 2534. Otherwise, the determination is no and the process returns to step 2504 in FIG.
[0134]
In step 2534, it is determined whether or not the value of the variable CLF is zero. When the user clicks on the line drawn in the display area so that there is an erasure target, 1 is assigned to the variable CLF, so the determination is no and the process returns to step 2504 in FIG. If not, that is, if the user clicks on a point located behind the end of the already drawn line, the determination is yes, and after incrementing the value of the variable N in step 2535, the process goes to step 2536. Transition.
[0135]
In step 2536, it is determined whether or not the value of the variable N is greater than 12. If the user designates 11 points except for the head fixed in advance, the value of the variable N is greater than 12, so the determination is YES and the process moves to step 2538. Otherwise, the determination is no, and in step 2537, 12 is substituted for variable N and 1 is substituted for variable ENDF, and the flow returns to step 2504 in FIG.
[0136]
In step 2538, the values of the variables X and Y are substituted for the variables FX and FY, respectively. In the next step 2539, the variables CX and CY are substituted for the variables X and Y, respectively. After determining the start point and end point for drawing the line in this way, the process proceeds to step 2540, and the value obtained by subtracting the value of the variable FX from the value of the variable CX is used as the time data of the step number “N”. It is stored in the numerical data area of the RAM 103. Similarly, the value of variable CY is stored as level data of step number “N”, and the value of variable W is stored as its waveform data. Thereafter, the process proceeds to step 2541.
[0137]
In step 2541, the value of variable N is substituted for variable M. In the following step 2542, the line drawing process shown in FIG. 21 is executed. After the line drawing process is executed, 0 is substituted for the variable PF, and the points displayed in the display area are deleted (steps 2543 and 2544). Thereafter, the process returns to step 2504 in FIG.
[0138]
On the other hand, in step 2545, where the determination is NO in step 2531, it is determined whether or not the cursor is on the “sine wave” icon. If the user performs a click operation with the cursor moved over the icon, the determination is yes, and then in step 2546, the value of the variable SW is substituted into the variable W, and then the process proceeds to step 2533. If not, that is, if the user clicks in the display area or a place other than various icons, the determination is no, and in step 2547, 0 is substituted into the variable CLF, and then the process proceeds to step 2543. To do. Thereby, even if a valid click is performed in the display area, it is invalidated.
[0139]
Thus, in this embodiment, every time a user draws a line, step number data is generated and stored from the point and line type specified in the display area. As a result, data is shared between different editing methods.
In this embodiment, three types of data are input for each step number. However, the number may be any number as long as it is two or more. The input is not necessarily performed with a numerical value, and may be performed by selecting from, for example, options prepared in advance.
[0140]
Three types of symbols “L”, “D”, and “E” are prepared as symbols to which functions for data input are assigned, but the number of types and assigned functions may be changed as appropriate. Such symbols are input to the time input area, but since there are two other input areas, the function assigned to such a symbol and You may enable it to input the symbol which allocated the function used in combination. In such a case, desired editing can be performed more easily.
[0141]
In the present embodiment, the present invention is applied to a pattern editing apparatus mounted on a musical sound generator (sound generator), but the present invention can be applied only to a pattern editing apparatus mounted on a musical sound generator. It is not done. Regardless of the type of pattern to be edited, the present invention can be widely applied to a pattern editing apparatus that performs editing by designating numerical values in a table format.
[0142]
The program for realizing the operation of the pattern editing apparatus as described above or a modified example thereof may be distributed by being recorded on a recording medium such as a CD-ROM, DVD, floppy disk, or magneto-optical disk. Alternatively, part or all of the program may be distributed via a transmission medium used in a public network or the like. In such a case, the user can apply the present invention to the data processing apparatus by acquiring the program and loading it into the data processing apparatus such as a computer. Therefore, the recording medium may be accessible by a device that distributes the program.
[0143]
【The invention's effect】
As described above, according to the present invention, by specifying a plurality of combinations of numerical values each indicating a different state quantity, a pattern in which a part or the entire shape is represented by the specified combination of numerical values. When editing, it is possible to input a symbol to which a function is assigned in advance, and when that symbol is input, according to the function assigned to that symbol, a combination of other specified numerical values is used. A part or the whole shape is set. For this reason, the number of times of specifying the combination of numerical values can be minimized, and the user can edit the pattern more easily and quickly. When the pattern is displayed on the display device, the confirmation can be easily performed.
[Brief description of the drawings]
FIG. 1 is a circuit configuration diagram of a sound source device equipped with a pattern editing device according to the present embodiment.
FIG. 2 is a diagram showing a map of a RAM.
FIG. 3 is a diagram showing an envelope setting screen.
FIG. 4 is a diagram for explaining a method for editing an envelope on a numerical value setting screen (part 1);
FIG. 5 is a diagram for explaining a method for editing an envelope on a numerical value setting screen (part 2);
FIG. 6 is a diagram for explaining a method for editing an envelope on a numerical value setting screen (part 3);
FIG. 7 is a diagram for explaining a method for editing an envelope on a numerical value setting screen (part 4);
FIG. 8 is a diagram for explaining a method for editing an envelope on a drawing screen (part 1);
FIG. 9 is a diagram for explaining a method for editing an envelope on a drawing screen (part 2);
FIG. 10 is a diagram for explaining a method for editing an envelope on a drawing screen (part 3);
FIG. 11 is a diagram for explaining a method for editing an envelope on a drawing screen (part 4);
FIG. 12 is a flowchart of overall processing.
FIG. 13 is a flowchart of an envelope setting process.
FIG. 14 is a flowchart of a preset envelope drawing process.
FIG. 15 is a flowchart of numerical value setting processing;
FIG. 16 is a flowchart of numerical value setting processing (continued 1).
FIG. 17 is a flowchart of numerical value setting processing (continued 2).
FIG. 18 is a flowchart of numerical value setting processing (continued 3).
FIG. 19 is a flowchart of numerical value display processing.
FIG. 20 is a flowchart of loop processing.
FIG. 21 is a flowchart of line drawing processing.
FIG. 22 is a flowchart of multiple loop processing.
FIG. 23 is a flowchart of an endless loop process.
FIG. 24 is a flowchart of a clear process.
FIG. 25 is a flowchart of a drawing process.
FIG. 26 is a flowchart of the drawing process (continued 1).
FIG. 27 is a flowchart of a drawing process (continued 2).
FIG. 28 is a flowchart of a drawing process (continued 3).
FIG. 29 is a flowchart of a drawing process (continued 4).
[Explanation of symbols]
101 CPU
102 ROM
103 RAM
104 Display
105 MIDI interface
106 Input device
107 Sound source LSI
108 Bus

Claims (4)

それぞれが異なる状態量を示す数値の組み合わせを複数、指定することにより、該指定された複数の数値の組み合わせで一部、或いは全体の形状が表されるパターンの編集が行える装置であって、
前記状態量を示す数値の組み合わせとして、時間を示す数値、及び該時間に依存して変化する状態量のレベルを示す数値を指定するための数値指定手段と、
前記数値指定手段によりすでに入力されている前記数値の組み合わせを、再度繰り返して入力するための機能が割り当てられた繰り返し指示用シンボルが指定された場合に、該数値指定手段によりすでに入力されている数値の組み合わせで形状が表されるパターンを繰り返し設定する形状設定手段と、
を具備することを特徴とするパターン編集装置。
By specifying a plurality of combinations of numerical values each indicating a different state quantity, a device that can edit a pattern in which a part of or the entire shape is represented by a combination of the specified numerical values,
Numerical value specifying means for specifying a numerical value indicating time and a numerical value indicating the level of the state variable that changes depending on the time as a combination of numerical values indicating the state quantity;
A numerical value already input by the numerical value specifying means when a repeat instruction symbol assigned a function for repeatedly inputting the combination of numerical values already input by the numerical value specifying means is specified . Shape setting means for repeatedly setting a pattern whose shape is represented by a combination of
A pattern editing apparatus comprising:
前記繰り返し指示用シンボルとして、前記他に指定された数値の組み合わせを繰り返す回数を指定して用いる第1の繰り返し指示用シンボル、該第1の繰り返し指示用シンボルを含む範囲を繰り返す回数を指定可能な第2の繰り返し指示用シンボル、及び予め定めた条件を満たすまで該数値の組み合わせを繰り返すことを指示するための第3の繰り返し指示用シンボルのうちの一つ以上が指定可能である、
ことを特徴とする請求項記載のパターン編集装置。
As the repetition instruction symbol, the first repetition instruction symbol used by specifying the number of repetitions of the combination of the other specified numerical values, and the number of repetitions of the range including the first repetition instruction symbol can be specified. One or more of a second repetition instruction symbol and a third repetition instruction symbol for instructing to repeat the combination of numerical values until a predetermined condition is satisfied can be designated.
The pattern editing apparatus according to claim 1 .
前記形状設定手段が形状を決定した前記パターンを表示装置上に表示させるための描画手段、
を更に具備することを特徴とする請求項1、または2記載のパターン編集装置。
Drawing means for displaying on the display device the pattern determined by the shape setting means;
The pattern editing apparatus according to claim 1, further comprising:
それぞれが異なる状態量を示す数値の組み合わせを複数、指定することにより、該指定された複数の数値の組み合わせで一部、或いは全体の形状が表されるパターンの編集が行えるパターン編集装置として用いることが可能なコンピュータに、
前記状態量を示す数値の組み合わせとして、時間を示す数値、及び該時間に依存して変化する状態量のレベルを示す数値を指定するための機能と、
前記指定するための機能によりすでに入力されている前記数値の組み合わせを、再度繰り返して入力するための機能が割り当てられた繰り返し指示用シンボルが指定された場合に、該指定するための機能によりすでに入力されている数値の組み合わせで形状が表されるパターンを繰り返し設定する機能と、
を実現させるためのプログラム。
Use as a pattern editing device that allows you to edit a part of or the entire shape of a pattern by specifying multiple combinations of numerical values that indicate different state quantities. To a computer that can
As a combination of numerical values indicating the state quantities, a function for designating a numerical value indicating time and a numerical value indicating the level of the state quantity that changes depending on the time;
When a repeat instruction symbol assigned with a function for repeatedly inputting the combination of numerical values already input by the function for specifying is specified, it is already input by the function for specifying. A function that repeatedly sets a pattern whose shape is represented by a combination of numerical values ,
A program to realize
JP2001175018A 2001-06-11 2001-06-11 Pattern editing apparatus and program Expired - Fee Related JP4042352B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001175018A JP4042352B2 (en) 2001-06-11 2001-06-11 Pattern editing apparatus and program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001175018A JP4042352B2 (en) 2001-06-11 2001-06-11 Pattern editing apparatus and program

Publications (2)

Publication Number Publication Date
JP2002366151A JP2002366151A (en) 2002-12-20
JP4042352B2 true JP4042352B2 (en) 2008-02-06

Family

ID=19016224

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001175018A Expired - Fee Related JP4042352B2 (en) 2001-06-11 2001-06-11 Pattern editing apparatus and program

Country Status (1)

Country Link
JP (1) JP4042352B2 (en)

Also Published As

Publication number Publication date
JP2002366151A (en) 2002-12-20

Similar Documents

Publication Publication Date Title
JP3632523B2 (en) Performance data editing apparatus, method and recording medium
JP3632522B2 (en) Performance data editing apparatus, method and recording medium
EP2068301B1 (en) Electronic music system and computer program for an electronic music system
JPH07302195A (en) Dsp programming device and dsp device
JP3538242B2 (en) Score display device
JPH0789279B2 (en) Music signal generator
CN114089808A (en) Waveform sequence generation device, method, electronic device, and storage medium
JP4042352B2 (en) Pattern editing apparatus and program
JP3444940B2 (en) Variable algorithm sound source
JP3972899B2 (en) Music score display device
JP3988730B2 (en) Program and acoustic signal processing apparatus
JP3931872B2 (en) Parameter editing apparatus and program for realizing parameter editing method
JP2004309522A (en) Pattern editing apparatus and program
JPH06301478A (en) Parameter pointing device
JP2962075B2 (en) Electronic musical instrument editing device
JP2580794B2 (en) Electronic musical instrument
JP4042669B2 (en) Waveform data editing apparatus and waveform data editing program
JP2513041B2 (en) Music signal generator
JP4046615B2 (en) Waveform display program
JP5347405B2 (en) Waveform generator and waveform generation processing program
JP3010994B2 (en) Tone parameter setting device
JP4148091B2 (en) Parameter editing apparatus and program for realizing parameter editing method
JP3539480B2 (en) Tone signal generator, tone signal generation method, and computer-readable recording medium storing a program for generating tone signals
JPH0981373A (en) Screen information editing reproduction method and device
JP2751386B2 (en) Music parameter editing method for electronic musical instruments

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20061020

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20061212

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070227

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070724

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070827

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20071023

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071105

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20101122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20101122

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20111122

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20111122

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121122

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20131122

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees