(57)【特許請求の範囲】
【請求項１】
複数種のスペクトルデータが記憶されたスペクトルデータ記憶手段と、
楽曲を構成する複数のパート夫々に対応して設けられた複数の記憶エリアを有する記憶手段と、
前記各記憶エリアの夫々に、前記スペクトルデータ記憶手段に記憶されたスペクトルデータを指定するためのスペクトル番号データを記憶させるスペクトル指定手段と、
前記記憶手段の各記憶エリアに記憶されたスペクトル番号データを順次読み出すとともに、当該読み出されたスペクトル番号データに対応するスペクトルデータを順次読み出すスペクトルデータ読み出し手段と、
このスペクトルデータ読み出し手段で今回読み出されたスペクトルデータと同一のスペクトルデータが既に読み出されているか否か判別する判別手段と、
この判別手段により読み出されていないと判別された場合は、今回読み出されたスペクトルデータに基づいて波形データを生成するとともに、今回読み出されたスペクトルデータが記憶された記憶エリアに対応する音源の発音チャンネルに、この生成された波形データを転送する一方、既に読み出されていると判別された場合は、前記既に読み出されたスペクトルデータに基づいて生成された波形データを、今回読み出されたスペクトルデータが記憶された記憶エリアに対応する前記音源の発音チャンネルにコピーする波形生成手段と、
この波形生成手段により前記各発音チャンネルに割り当てられた波形データに基づいた演奏を行う演奏手段と、
を備えたことを特徴とする楽音制御装置。
【請求項２】
複数種のスペクトルデータが記憶されたスペクトルデータ記憶手段と、楽曲を構成する複数のパート夫々に対応して設けられた複数の記憶エリアを有する記憶手段と、を有する楽音制御装置に適用されるコンピュータに、
前記各記憶エリアの夫々に、前記スペクトルデータ記憶手段に記憶されたスペクトルデータを指定するためのスペクトル番号データを記憶させるスペクトル指定手順と、
前記記憶手段の各記憶エリアに記憶されたスペクトル番号データを順次読み出すとともに、当該読み出されたスペクトル番号データに対応するスペクトルデータを順次読み出すスペクトルデータ読み出し手順と、
今回読み出されたスペクトルデータと同一のスペクトルデータが既に読み出されているか否か判別する判別手順と、
読み出されていないと判別された場合は、今回読み出されたスペクトルデータに基づいて波形データを生成するとともに、今回読み出されたスペクトルデータが記憶された記憶エリアに対応する音源の発音チャンネルに、この生成された波形データを転送する一方、既に読み出されていると判別された場合は、前記既に読み出されたスペクトルデータに基づいて生成された波形データを、今回読み出されたスペクトルデータが記憶された記憶エリアに対応する前記音源の発音チャンネルにコピーする波形生成手順と、
前記各発音チャンネルに割り当てられた波形データに基づいた演奏を行う演奏手順と、
を実行させる楽音制御処理プログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、楽音制御装置及び楽音制御処理プログラムを記録した記録媒体に関する。
【０００２】
【従来の技術】
従来の楽音制御装置においては、複数のパートからなる曲データにおいて、各パートごとに指定された音色パラメータを設定し、その音色パラメータに基づいて、そのパートに割当られている発音チャンネルにおける音色波形データを生成していた。
【０００３】
【発明が解決しようとする課題】
しかしながら、ある任意のパートに音色パラメータが設定されると、他のパートの音色パラメータとの関連性を考慮することなく、その設定された音色パラメータに基づいてすべてのパートの音色波形データを生成していたので、複数の発音チャンネルにおいて同一の波形データを生成する場合が生じていた。このため、膨大なデータ量からなる波形データを生成する時間が長くなって波形生成処理の効率が低下するとともに、リアルタイムでの発音処理ができず音切れ等が発生するという問題があった。
本発明の課題は、生成した波形データの資源を有効に活用して波形生成処理の効率化を図るとともに、リアルタイムでの発音処理で音切れ等の発生を防止することである。
【０００４】
【課題を解決するための手段】
請求項１に記載の楽音制御装置は、複数種のスペクトルデータが記憶されたスペクトルデータ記憶手段と、楽曲を構成する複数のパート夫々に対応して設けられた複数の記憶エリアを有する記憶手段と、前記各記憶エリアの夫々に、前記スペクトルデータ記憶手段に記憶されたスペクトルデータを指定するためのスペクトル番号データを記憶させるスペクトル指定手段と、前記記憶手段の各記憶エリアに記憶されたスペクトル番号データを順次読み出すとともに、当該読み出されたスペクトル番号データに対応するスペクトルデータを順次読み出すスペクトルデータ読み出し手段と、このスペクトルデータ読み出し手段で今回読み出されたスペクトルデータと同一のスペクトルデータが既に読み出されているか否か判別する判別手段と、この判別手段により読み出されていないと判別された場合は、今回読み出されたスペクトルデータに基づいて波形データを生成するとともに、今回読み出されたスペクトルデータが記憶された記憶エリアに対応する音源の発音チャンネルに、この生成された波形データを転送する一方、既に読み出されていると判別された場合は、前記既に読み出されたスペクトルデータに基づいて生成された波形データを、今回読み出されたスペクトルデータが記憶された記憶エリアに対応する前記音源の発音チャンネルにコピーする波形生成手段と、この波形生成手段により前記各発音チャンネルに割り当てられた波形データに基づいた演奏を行う演奏手段と、を備えたことを特徴とする。
【０００５】
請求項２に記載の記録媒体は、複数種のスペクトルデータが記憶されたスペクトルデータ記憶手段と、楽曲を構成する複数のパート夫々に対応して設けられた複数の記憶エリアを有する記憶手段と、を有する楽音制御装置に適用されるコンピュータに、前記各記憶エリアの夫々に、前記スペクトルデータ記憶手段に記憶されたスペクトルデータを指定するためのスペクトル番号データを記憶させるスペクトル指定手順と、前記記憶手段の各記憶エリアに記憶されたスペクトル番号データを順次読み出すとともに、当該読み出されたスペクトル番号データに対応するスペクトルデータを順次読み出すスペクトルデータ読み出し手順と、今回読み出されたスペクトルデータと同一のスペクトルデータが既に読み出されているか否か判別する判別手順と、読み出されていないと判別された場合は、今回読み出されたスペクトルデータに基づいて波形データを生成するとともに、今回読み出されたスペクトルデータが記憶された記憶エリアに対応する音源の発音チャンネルに、この生成された波形データを転送する一方、既に読み出されていると判別された場合は、前記既に読み出されたスペクトルデータに基づいて生成された波形データを、今回読み出されたスペクトルデータが記憶された記憶エリアに対応する前記音源の発音チャンネルにコピーする波形生成手順と、前記各発音チャンネルに割り当てられた波形データに基づいた演奏を行う演奏手順と、を実行させる楽音制御処理プログラムを記録している。
【０００６】
本発明によれば、複数の発音チャンネルを有する音源手段の各発音チャンネルに含まれる波形データに基づいて発音処理を行う際に、異なる発音チャンネルに同一の波形データが含まれる場合には、異なる発音チャンネルの中の１つの発音チャンネルのために波形データを生成し、残りの発音チャンネルに含まれるべき波形データについては、１つの発音チャンネルのために生成した波形データを複製して使用する。
【０００７】
【発明の実施の形態】
以下、本発明の楽音制御装置の実施形態について図を参照して説明する。
図１は、実施形態における楽音制御装置のシステム構成を示している。ＣＰＵ１は、ＲＯＭ２、ＲＡＭ３、ＭＩＤＩインターフェース４にシステムバス５を介して接続され、この装置全体を制御する制御部を構成している。ＲＯＭ２には、ＣＰＵ１が実行する楽音制御処理プログラムとともに、楽音生成に必要なデータが記憶されている。ＲＡＭ３は、ＣＰＵ１のワークエリアであり、楽音制御処理に必要な各種レジスタやフラグが設けられている。ＲＯＭ２及びＲＡＭ３のメモリマップについては後述する。ＭＩＤＩインターフェース４は、鍵盤装置等の外部ＭＩＤＩ装置との間でＭＩＤＩデータを送受信する。
【０００８】
その他、ＣＰＵ１のシステムバス５には、表示器６、操作子７、音源８、シーケンサー９が接続され、ＣＰＵ１との間でデータの授受を行う。表示器６には、メニュー画面や曲設定画面及び各種のアイコン等が表示される。操作子７は、発音する楽音の条件を設定するための各種スイッチ、及び表示器６に表示されたアイコン等を選択するためのマウスで構成されている。音源８は、複数の発音チャンネル、Ｄ／Ａコンバータ等で構成され、ＣＰＵ１から転送された楽音データを各チャンネルに割り当てて、Ｄ／Ａコンバータによってアナログ信号に変換して出力する。音源８にはアンプ１０が接続され、音源８から入力された楽音信号を増幅して、スピーカ１１から発音させる。シーケンサー９は、大量の音符（メロディデータ）をＣＰＵ１に出力して自動演奏を行う。
【０００９】
次に、ＲＯＭ２に記憶されている楽音データ及び表示データについて説明する。図２において、ＳＰＥＣ（０）〜ＳＰＥＣ（  ）からなるスペクトルデータ群は、複数の音色の波形データを生成するためのスペクトルデータのパラメータである。ＳＹＳ（０）〜ＳＹＳ（  ）からなるシステムデータ群は、複数の音色の波形データを生成するためのシステムデータのパラメータである。システムデータのパラメータには、アンプエンベロープ、ピッチエンベロープ、フィルタエンベロープ等がある。ＳＯＮＧ（０）〜ＳＯＮＧ（  ）からなる曲データ群は、複数の自動演奏曲の音符データ（メロディデータ）である。
【００１０】
スペクトル名データ群、システム名データ群、及び曲名データ群は、図３に示すように、複数の音色の各々に対応して、ＳＰＮＡＭＥ（０）〜ＳＰＮＡＭＥ（）からなるスペクトル名、ＳＹＳＮＡＭＥ（０）〜ＳＹＳＮＡＭＥ（  ）からなるシステム名で構成されている。曲名データ群は、複数の曲の各々に対応して、ＳＧＮＡＮＥ（０）〜ＳＧＮＡＭＥ（  ）からなる曲名で構成されている。また、表示データとしては、図２に示すように、メニュー画面、曲リスト設定画面、及び音色設定画面の画像データがある。
【００１１】
次に、ＲＡＭ３のエリア及びそのエリアに記憶される楽音のパラメータ及び表示データについて説明する。図４において、ＢＬＯＣＫ（０）〜ＢＬＯＣＫ（  ）は、複数のブロックに分割された曲の各ブロックを指定するエリアである。各ブロックは、複数の曲で構成されている。したがって、ＢＬＯＣＫ（０）のエリアは、ＳＯＮＧ（０、０）、ＳＯＮＧ（０、１）、ＳＯＮＧ（０、２）……の複数のエリアで構成され、ＢＬＯＣＫ（１）のエリアは、ＳＯＮＧ（１、０）、ＳＯＮＧ（１、１）、ＳＯＮＧ（１、２）……の複数のエリアで構成されている。他のＢＬＯＣＫ（ｎ）のエリアも同様に、ＳＯＮＧ（ｎ、ｍ；ｍ＝０、１、２……）で指定される。すなわち、各曲のエリアは、ブロック番号ｎと曲番号ｍで指定される。
【００１２】
各曲は複数の発音チャンネル（実施形態では８チャンネル）に割り当てられる。したがって、ＳＯＮＧ（０、０）のエリアは、ＮＡＭＥ（０、０）、ＣＨ（０、０、０）、ＣＨ（０、０、１）……ＣＨ（０、０、７）の複数のエリアで構成され、ＳＯＮＧ（０、１）のエリアは、ＮＡＭＥ（０、１）、ＣＨ（０、１、０）、ＣＨ（０、１、１）……ＣＨ（０、１、７）の複数のエリアで構成されている。他のＳＯＮＧ（ｎ、ｍ）のエリアも同様に、ＮＡＭＥ（ｎ、ｍ）、ＣＨ（ｎ、ｍ、ｉ；ｉ＝０〜７）の複数のエリアで構成されている。すなわち、各発音チャンネルのエリアは、ブロック番号ｎ、曲番号ｍ、チャンネル番号ｉで指定される。
【００１３】
さらに、音色の設定は各発音チャンネルごとになされるので、各発音チャンネルのエリアは、スペクトルデータをストアするエリアと、システムデータをストアするエリアに分けられている。すなわち、図５に示すように、任意のブロック番号ｎの任意の曲番号ｍの任意の発音チャンネルｉに対応するエリアは、スペクトルデータのエリアＳＰＣＨ（ｎ、ｍ、ｉ、０）と、システムデータのエリアＳＹＣＨ（ｎ、ｍ、ｉ、１）とで構成されている。
【００１４】
図６及び図７は、表示する曲名のデータ並びにスペクトルデータ群及びシステムデータ群をストアするエリアである。図６において、ＳＧＬＩＳＴＡデータ群のエリアは、ＳＧＬＩＳＴＡ（０）〜ＳＧＬＩＳＴＡ（１１）の１２のエリアで構成され、ＲＯＭ２に記憶されている複数の曲（例えば２３２曲）のうち１２曲の曲名の表示データが一時的にストアされる。ＳＧＬＩＳＴＢデータ群のエリアは、ＳＧＬＩＳＴＢ（０）〜ＳＧＬＩＳＴＢ（１１）の１２のエリアで構成され、ＲＯＭ２に記憶されている複数の曲の中から演奏するために選択された最大１２曲の曲名のデータが一時的に記憶される。
【００１５】
ＳＰＬＩＳＴデータ群のエリアは、ＳＰＬＩＳＴ（０）〜ＳＰＬＩＳＴ（１１）の１２のエリアで構成され、１２個のスペクトルデータの表示データがストアされる。ＳＹＬＩＳＴデータ群のエリアは、ＳＹＬＩＳＴ（０）〜ＳＹＬＩＳＴ（１１）の１２のエリアで構成され、１２個のシステムデータの表示データがストアされる。ＢＫＬＩＳＴデータ群のエリアは、ＢＫＬＩＳＴ（０）〜ＢＫＬＩＳＴ（１１）の１２のエリアで構成され、１２個のブロックリストの表示データがストアされる。
【００１６】
ＳＰＣＨデータ群のエリアは、図７に示すように、ＳＰＣＨ（０）〜ＳＰＣＨ（７）の８個のエリアで構成され、各発音チャンネルごとに設定されるスペクトルデータの表示データがストアされる。ＳＹＣＨデータ群のエリアは、図７に示すように、ＳＹＣＨ（０）〜ＳＹＣＨ（７）の８個のエリアで構成され、各発音チャンネルごとに設定されるシステムデータの表示データがストアされる。また、図６における曲ブロック名データ群のエリアも、図７に示すように、ＢＬＯＣＫ  ＮＡＭＥ（０）〜ＢＬＯＣＫ  ＮＡＭＥ（１１）の１１のエリアで構成され、選択された曲ブロック名の表示データがストアされる。
【００１７】
次に、実施形態の動作について図８〜図４８に示すＣＰＵ１のフローチャート、及び、図４９〜図５１に示す表示器６の表示画面の図を参照して説明する。
図８はメインフローである。イニシャライズ処理（ステップＡ１）の後、ステップＡ２〜ステップＡ１０のループ処理を繰り返す。すなわち、メニュー画面を表示して（ステップＡ２）、カーソルを画面の所定位置に表示する（ステップＡ３）。メニュー画面には、曲設定アイコンその他の複数のアイコンが表示される。次に、マウスが移動されたか否かを判別し（ステップＡ４）、移動されたときはカーソルの表示位置を移動する（ステップＡ５）。カーソルの表示位置を移動した後、又はステップＡ４においてマウスの移動がなされない場合には、マウスがクリックされたか否かを判別する（ステップＡ６）。マウスがクリックされない場合には、ステップＡ４に移行してマウスの移動を判別する。
【００１８】
マウスがクリックされたときは、そのときのカーソル位置が「曲設定」アイコンの位置であるか否かを判別する（ステップＡ７）。このアイコンの位置である場合には、曲設定処理を実行する（ステップＡ８）。マウスをクリックしたときのカーソル位置が、「曲設定」アイコンの位置でない場合には、カーソル位置がその他のアイコンの位置であるか否かを判別する（ステップＡ９）。その他のアイコンの位置である場合には、そのアイコンに対応する処理を実行する（ステップＡ１０）。マウスをクリックしたときのカーソル位置が、いずれのアイコンの位置にもない場合にはクリックを無効とし、ステップＡ４に移行してマウスの移動を判別する。ステップＡ８において曲設定処理を実行した後、又は、ステップＡ１０においてその他の処理を実行した後は、ステップＡ２に移行してメニュー画面を表示し、上記ループ処理を繰り返す。
【００１９】
図９〜図１２は、メインフローのステップＡ８における曲設定処理のフローである。この処理では、表示をクリアして（ステップＢ１）、曲設定枠画面を表示する（ステップＢ２）。この処理によって、図４９の表示画面において、曲名及びその記号を表示する３つのエリアの枠（ｆｒａｍｅ１、ｆｒａｍｅ２、ｆｒａｍｅ３）が表示される。さらに、複数のアイコンすなわち「上（↑）」アイコン、「下（↓）」アイコン、「１曲」アイコン、「演奏」アイコン、「停止」アイコン、「削除」アイコン、「音色設定」アイコン、「演奏リスト」アイコン、「曲ブロックリスト」アイコン、「メニュー」アイコンが表示される。なお、この表示画面は、演奏曲リストの画面であるので、デフォルト処理によって「演奏リスト」アイコンが反転表示又は異なる色で表示されている。
【００２０】
次に、この曲設定処理がメニュー画面から遷移した処理であるか否かを判別する（ステップＢ３）。すなわち、初めて曲設定処理に移行したか否かを判別する。メニュー画面から遷移した場合には、曲ブロックを指定するポインタｎを０にセットして（ステップＢ４）、ｎをインクリメントしながら、図４に示したＲＡＭ３のエリアＢＬＯＣＫ（０）〜ＢＬＯＣＫ（最大値）を検索する。すなわち、ｎで指定するＢＬＯＣＫ（ｎ）のエリアが空きであるか否かを判別し（ステップＢ５）、空きでない場合には、ｎをインクリメントして次のエリアを指定する（ステップＢ６）。このときｎが最大値を超えたか否かを判別し（ステップＢ７）、最大値を超えていない場合には、ステップＢ５に移行してそのエリアが空きであるかを判別する。
【００２１】
ＢＬＯＣＫ（ｎ）のエリアが空きである場合には、ブロックの表示変更を示すフラグＤＦ１Ｆを１（表示変更あり）にセットし（ステップＢ８）、選択曲リストの表示変更を示すフラグＤＦ２Ｆを１（表示変更あり）にセットし（ステップＢ９）、曲リストの表示変更を示すフラグＤＦ３Ｆを１（表示変更あり）にセットする（ステップＢ１０）。ステップＢ７において、ｎが最大値を超えた場合には、ｎを０にセットし（ステップＢ１１）、ステップＢ１０に移行してＤＦ３Ｆを１にセットする。また、ステップＢ３においてメニュー画面からの遷移でない場合には、ステップＢ１０に移行してＤＦ３Ｆを１にセットする。ＤＦ３Ｆを１にセットした後は、ブロック名表示処理（ステップＢ１２）、選択曲名表示処理（ステップＢ１３）、曲リスト表示処理（ステップＢ１４）を実行する。
【００２２】
ステップＢ１２におけるブロック表示処理のフローを図１３に示す。この処理では、フラグＤＦ１Ｆが１（表示変更あり）であるか否かを判別し（ステップＣ１）、ＤＦ１Ｆが０（表示変更なし）である場合にはこのフローを終了するが、ＤＦ１Ｆが１である場合には、ブロック名エリアに図７に示したＢＬＯＣＫ  ＮＡＭＥ（ｎ）の内容を表示する（ステップＣ２）。図４９の例では、「１２  ０１  ＸＸＦＡ  ＸＸＦ１」という曲ブロック名を表示する。そして、ＤＦ１Ｆを０にリセットし（ステップＣ３）、このフローを終了して図９のステップＢ１３に移行する。
【００２３】
ステップＢ１３における選択曲名表示処理のフローを図１４に示す。この処理では、フラグＤＦ２Ｆが１（表示変更あり）であるか否かを判別し（ステップＣ４）、ＤＦ２Ｆが０（表示変更なし）である場合にはこのフローを終了するが、ＤＦ２Ｆが１である場合には、曲を指定するポインタｍを０にセットして（ステップＣ５）、ｍをインクリメントしながら以下の処理を行う。曲ブロックの番号ｎにおける曲名のデータＮＡＭＥ（ｎ、Ｂ＋ｍ）を、表示用エリアであるＳＧＬＩＳＴＢ（ｍ）にストアする（ステップＣ６）。ここで、Ｂの値は、図４９に示した画面において、表示枠ｆｒａｍｅ２に対応する「上」アイコン及び「下」アイコンのクリックによって変化する変数（初期値は０）である。
【００２４】
次に、ｍをインクリメントして（ステップＣ７）、ｍが１１（最大値）を超えたか否かを判別する（ステップＣ８）。ｍが１１以下である場合には、ステップＣ６に移行して、ｍが１１に到るまで表示用エリアであるＳＧＬＩＳＴＢ（ｍ）に曲名のデータＮＡＭＥ（ｎ、Ｂ＋ｍ）をストアする。そして、ステップＣ８においてｍが１１を超えたときは、ＲＡＭ３にストアされたＳＧＬＩＳＴＢ（０）〜ＳＧＬＩＳＴＢ（１１）を表示する（ステップＣ９）。そして、ＤＦ２Ｆを０にリセットし（ステップＣ１０）、このフローを終了して図９のステップＢ１４に移行する。なお、図４９の例は、曲名のデータが削除処理によって１曲削除されているので、ｆｒａｍｅ２には１１曲しか表示されていない。削除処理については後述する。
【００２５】
図９のステップＢ１４の曲リスト表示処理のフローを図１５に示す。この処理では、フラグＤＦ３Ｆが１（表示変更あり）であるか否かを判別し（ステップＣ１１）、ＤＦ３Ｆが０（表示変更なし）である場合にはこのフローを終了するが、ＤＦ３Ｆが１である場合には、曲を指定するポインタｍを０にセットして（ステップＣ１２）、ｍをインクリメントしながら以下の処理を行う。すなわち、図３に示したＲＯＭ２の曲名のデータであるＳＧＮＡＭＥ（ｎ、Ａ＋ｍ）を、ＲＡＭ３の表示用のエリアであるＳＧＬＩＳＴＡ（ｍ）にストアする（ステップＣ１３）。ここで、Ａは、図４９に示した画面において、表示枠ｆｒａｍｅ３に対応する「上」アイコン及び「下」アイコンのクリックによって変化する変数（初期値は０）である。
【００２６】
次に、ｍをインクリメントして（ステップＣ１４）、ｍが１１（最大値）を超えたか否かを判別する（ステップＣ１５）。ｍが１１以下である場合には、ステップＣ６に移行して、ｍが１１に到るまでＲＡＭ３のＳＧＬＩＳＴＢ（ｍ）のエリアにＳＧＮＡＭＥ（ｎ、Ａ＋ｍ）の曲名のデータをストアする。そして、ステップＣ８においてｍが１１を超えたときは、ＲＡＭ３にストアされたＳＧＬＩＳＴＢ（０）〜ＳＧＬＩＳＴＢ（１１）を表示する（ステップＣ１６）。そして、ＤＦ３Ｆを０にリセットし（ステップＣ１７）、このフローを終了して図１０のフローに移行する。
【００２７】
図１０のフローにおいて、マウスが移動されたか否かを判別する（ステップＢ１５）。マウスが移動されたときはカーソルの表示位置を移動する（ステップＢ１６）。カーソルを移動した後、又はマウスの移動がない場合には、マウスがクリックされたか否かを判別する（ステップＢ１７）。クリックがない場合にはステップＢ１５に移行してマウスの移動を判別するが、クリックされたときはそのときのカーソル位置に応じた処理を行う。
【００２８】
図４９の表示画面において、カーソル位置が「メニュー」アイコンであるか否かを判別し（ステップＢ１８）、このアイコンである場合には、表示をクリアし（ステップＢ１９）、このフローを終了して図８のメインフローに戻る。カーソル位置が「メニュー」アイコンでない場合には、「音色設定」アイコンの位置にカーソル位置があるか否かを判別する（ステップＢ２０）。このアイコンの位置にある場合には音色設定処理を実行する（ステップＢ２１）。カーソル位置が「音色設定」アイコンの位置にない場合には、「曲ブロックリスト」アイコンの位置にカーソル位置があるか否かを判別する（ステップＢ２２）。このアイコンの位置にある場合には、曲ブロックリスト表示処理を実行する（ステップＢ２３）。ステップＢ２１の音色設定処理又はステップＢ２３の曲ブロックリスト表示処理を実行した後は、図９のステップＢ１に移行する。
【００２９】
カーソル位置が上記３つのアイコンの位置にない場合には、図１１のフローに移行する。そして、カーソル位置が図４９の画面におけるｆｒａｍｅ３の枠内すなわち曲リスト上にあるか否かを判別する（ステップＢ２４）。曲リスト上にある場合には、曲選択処理を実行する（ステップＢ２５）。カーソル位置が曲リスト上にない場合には、ｆｒａｍｅ２の枠内の選択曲リスト上にカーソル位置があるか否かを判別する（ステップＢ２６）。選択曲リスト上にある場合には、曲入力指定処理を実行する（ステップＢ２７）。
【００３０】
カーソル位置が選択曲リスト上にない場合には、曲リストの「上」「下」アイコン（図４９のｆｒａｍｅ３の下部の矢印アイコン）の位置にカーソル位置があるか否かを判別する（ステップＢ２８）。この「上」「下」アイコンにある場合には、リスト変更処理（Ａ）を実行する（ステップＢ２９）。カーソル位置が曲リストの「上」「下」アイコンの位置にカーソル位置がない場合には、選択曲リストの「上」「下」アイコン（図４９のｆｒａｍｅ２の下部の矢印アイコン）の位置にカーソル位置があるか否かを判別する（ステップＢ３０）。この「上」「下」アイコンにある場合には、リスト変更処理（Ｂ）を実行する（ステップＢ３１）。カーソル位置が選択曲リストの「上」「下」アイコンにない場合には、図４９のｆａｍｅ１の枠内すなわち曲ブロック名エリアにカーソル位置があるか否かを判別する（ステップＢ３２）。このエリアにある場合には、曲ブロック名入力処理を実行する（ステップＢ３３）。
【００３１】
カーソル位置が上記いずれの位置でもない場合には、図１２のフローに移行する。そして、カーソル位置が「削除」アイコンであるか否かを判別する（ステップＢ３４）。このアイコンの位置にある場合には、削除処理を実行する（ステップＢ３５）。カーソル位置が「削除」アイコンの位置にない場合には、「演奏」アイコンの位置にカーソル位置があるか否かを判別する（ステップＢ３６）。このアイコンの位置にある場合には、全曲演奏処理を実行する（ステップＢ３７）。カーソル位置が「演奏」アイコンの位置にない場合には、カーソル位置が「１曲」アイコンの位置にあるか否かを判別する（ステップＢ３８）。このアイコンの位置にある場合には、１曲演奏処理を実行する（ステップＢ３９）。カーソル位置が「１曲」アイコンの位置にない場合には、カーソル位置が「停止」アイコンの位置にあるか否かを判別する（ステップＢ４０）。このアイコンの位置にある場合には、停止処理を実行する（ステップＢ４１）。
【００３２】
図１１において、ステップＢ２５の曲選択処理、ステップＢ２７の曲入力指定処理、ステップＢ２９のリスト変更処理（Ａ）、ステップＢ３１のリスト変更処理（Ｂ）、若しくは、ステップＢ３３の曲ブロック入力処理の後は、図９のステップＢ１２に移行する。また、図１２において、ステップＢ３５の削除処理、ステップＢ３７の全演奏処理、ステップＢ３９の１曲演奏処理、又は、ステップＢ４１の停止処理の後も、図９のステップＢ１２に移行する。
【００３３】
図１１のステップＢ２５の曲選択処理のフローを図１６に示す。この処理では、図４９の表示画面においてｆｒａｍｅ３の枠内のクリックした位置の曲リストの番号をレジスタＮにストアする（ステップＣ１８）。そして、図６に示したＲＡＭ３のエリアＳＧＬＩＳＴＡ（Ｎ）の曲データをレジスタＳＯＮＧにストアする（ステップＣ１９）。そして、フラグＳＥＬＦを１にセットし（ステップＣ２０）、このフローを終了して図１１のフローに戻る。
【００３４】
図１１のステップＢ２７の曲入力指定処理のフローを図１７に示す。この処理では、まず、ＳＥＬＦが１であるか否かを判別し（ステップＣ２１）、ＳＥＬＦが１（曲入力）である場合には、ポインタｍを０にセットして（ステップＣ２２）、図６に示したＲＡＭ３のエリアＳＧＬＩＳＴＢデータ群をストアする空きエリアを捜す。すなわち、ｍで指定するＳＧＬＩＳＴＢ（ｍ）のエリアが空きであるか否かを判別し（ステップＣ２３）、空きでない場合にはｍをインクリメントして（ステップＣ２４）、次のエリアを指定する。そして、ｍが最大値を超えたか否かを判別する（ステップＣ２５）。ｍが最大値以下である場合には、ステップＣ２３に移行して空きエリアを捜す。
【００３５】
ＳＧＬＩＳＴＢ（ｍ）のエリアが空きである場合には、図１６の曲選択処理でレジスタＳＯＮＧにストアした曲データをＳＧＬＩＳＴＧ（ｍ）にストアする（ステップＣ２５）。さらに、ＳＯＮＧの曲データのうち曲名データをＲＡＭ３のＮＡＭＥ（ｎ、Ｂ＋ｍ）のエリアにストアする（ステップＣ２６）。ここで、ｎはブロック番号を示す変数であり、Ｂの値は図４９の画面における表示枠ｆｒａｍｅ２に対応する「上」「下」アイコンのクリックに応じて変化する変数である。
【００３６】
次に、フラグＤＦ２Ｆを１（表示変更あり）にセットする（ステップＣ２７）。次に、ＳＧＬＩＳＴＢ（ｍ）の表示形態を変更する（ステップＣ２８）。そして、フラグＤＦを１にセットし（ステップＣ２９）、フラグＳＥＬＦを０にリセットする（ステップＣ３０）。ステップＣ２５において、ｍが最大値を超えた場合には、現在指定しているブロックに空きエリアがないので、ステップＣ３０に移行してＳＥＬＦを０にリセットする。
【００３７】
ステップＣ２１において、ＳＥＬＦが０（曲指定）である場合には、クリックされた選択曲リストの表示番号をレジスタＭにストアする（ステップＣ３１）。次に、フラグＤＦを反転する（ステップＣ３２）。そして、ＤＦが１であるか否かを判別する（ステップＣ３３）。ＤＦが１である場合には、Ｍの値で指定するＳＧＬＩＳＴＢ（Ｍ）の表示形態を変更する（ステップＣ３４）。ＤＦが０である場合には、ＳＧＬＩＳＴＢ（Ｍ）の表示形態がすでに変更されているか否かを判別する（ステップＣ３５）。表示形態が変更されている場合には、表示形態を通常に戻す（ステップＣ３６）。ＳＧＬＩＳＴＢ（Ｍ）の表示形態が変更されていない場合は、ＳＧＬＩＳＴＢ（Ｍ）のみ表示形態を変更し（ステップＣ３７）、ＤＦを１にセットする（ステップＣ３８）。ステップＣ３４若しくはステップＣ３６においてＳＧＬＩＳＴＢ（Ｍ）の表示形態の処理を行った後、又はステップＣ３８においてＤＦを１にセットした後は、このフローを終了して図１１のフローに戻る。
【００３８】
図１１のステップＢ２９におけるリスト変更処理（Ａ）を図１８に示す。この処理では、マウスをクリックしたときのカーソル位置に応じて、図１５のフローにおけるレジスタＡの値を変更する。すなわち、カーソル位置が「上」アイコンの位置にあるか又は「下」アイコンの位置にあるかを判別する（ステップＣ３９）。「上」アイコンの位置にある場合には、Ａの値が０でないか否かを判別する（ステップＣ４０）。すなわち、ＲＡＭ３の曲リストにおいて現在指定している曲が最初の曲（Ａ＝０）でないかどうかを判別する。Ａの値が０の場合には、曲リストにおいて１つ前の曲はないので、上アイコンのクリックは無効となり、このフローを終了する。Ａの値が０でない場合にはＡの値をデクリメントして（ステップＣ４１）、曲リストにおいて現在指定している曲の１つ前の曲を指定する。
【００３９】
ステップＣ３９において、マウスをクリックしたときのカーソル位置が「下」アイコンの位置にある場合には、レジスタＢの値が最大値でないか否かを判別する（ステップＣ４２）。すなわち、ＲＡＭ３の曲リストにおいて現在指定している曲が最後の曲（Ａ＝最大値）でないかどうかを判別する。Ａの値が最大値の場合には、曲リストにおいて次の曲はないので、「下」アイコンのクリックは無効となり、このフローを終了する。Ａの値が最大値でない場合にはＡの値をインクリメントして（ステップＣ４３）、曲リストにおいて現在指定している曲の次の曲を指定する。Ａの値をインクリメントした後、又はステップＣ４１においてＡの値をデクリメントした後は、フラグＤＦ３Ｆを１（表示変更あり）にセットして（ステップＣ４４）、このフローを終了して図１１のフローに戻る。
【００４０】
図１１のステップＢ３１におけるリスト変更処理（Ｂ）を図１９に示す。この処理では、マウスをクリックしたときのカーソル位置に応じて、図１４のフローにおけるレジスタＢの値を変更する。すなわち、カーソル位置が「上」アイコンの位置にあるか又は「下」アイコンの位置にあるかを判別する（ステップＣ４５）。「上」アイコンの位置にある場合には、Ｂの値が０でないか否かを判別する（ステップＣ４６）。すなわち、ＲＡＭ３の選択曲リストにおいて現在指定している選択曲が最初の曲（Ｂ＝０）でないかどうかを判別する。Ｂの値が０の場合には、選択曲リストにおいて１つ前の曲はないので、上アイコンのクリックは無効となり、このフローを終了する。Ｂの値が０でない場合にはＢの値をデクリメントして（ステップＣ４７）、選択曲リストにおいて現在指定している曲の１つ前の曲を指定する。
【００４１】
ステップＣ４５において、マウスをクリックしたときのカーソル位置が「下」アイコンの位置にある場合には、レジスタＢの値が最大値でないか否かを判別する（ステップＣ４８）。すなわち、ＲＡＭ３の選択曲リストにおいて現在指定している曲が最後の曲（Ｂ＝最大値）でないかどうかを判別する。Ｂの値が最大値の場合には、選択曲リストにおいて次の曲はないので、「下」アイコンのクリックは無効となり、このフローを終了する。Ｂの値が最大値でない場合にはＢの値をインクリメントして（ステップＣ４９）、選択曲リストにおいて現在指定している曲の次の曲を指定する。Ｂの値をインクリメントした後、又はステップＣ４７においてＢの値をデクリメントした後は、フラグＤＦ２Ｆを１（表示変更あり）にセットして（ステップＣ５０）、このフローを終了して図１１のフローに戻る。
【００４２】
図１１のステップＢにおける曲ブロック入力処理のフローを図２０に示す。この処理では、曲ブロック名のデータ及び表示エリアをクリアして（ステップＣ５１）、表示エリアに文字カーソルを表示する（ステップＣ５２）。そして、操作子７から文字入力があるか否かを判別する（ステップＣ５３）。文字入力があったときは、その入力文字を曲ブロック名のエリアに表示する（ステップＣ５４）。そして、登録（ＥＮＴＥＲ）キー等の操作によって入力終了がされたか否かを判別する（ステップＣ５５）。入力終了でない場合には、ステップＣ５３に移行して、文字入力がされるごとにその入力文字を順に表示していく。入力終了がされたときは、表示したすべての入力文字すなわち曲ブロック名のデータをＲＡＭ３のＢＬＯＣＫ−ＮＡＭＥのエリアにストアする（ステップＣ５６）。次に、ＤＦ１Ｆを１（表示変更あり）にセットして（ステップＣ５７）、このフローを終了して図１２のフローに戻る。
【００４３】
図１２のステップＢ３５における削除処理を図２１に示す。この処理では、フラグＤＦが１であるか否かを判別し（ステップＣ５８）、ＤＦが０の場合にはこのフローを終了する。ＤＦが１である場合には、画面の選択曲リストにおいて表示形態が変更されているＳＧＬＩＳＴＢ（ｍ）を消去する（ステップＣ５９）。また、ＲＡＭ３の選択曲名のデータであるＮＡＭＥ（ｎ、Ｂ＋ｍ）を消去する（ステップＣ６０）。さらに、ＲＡＭ３の該当するチャンネルのＣＨ（ｎ、Ｂ＋ｍ）のデータを消去する（ステップＣ６１）。そして、データの並べ替えを行う（ステップＣ６２）。次に、ＤＦを０にリセットし（ステップＣ６３）、フラグＤＦ２Ｆを１（表示変更あり）にセットする（ステップＣ６４）。そして、このフローを終了して図１２のフローに戻る。
【００４４】
図４９の画面には１１曲の選択曲の曲名が表示されているが、これは、１２曲表示されていた中からある１つの曲のデータを削除して、データの並べ替えを行って表示させ、さらに、３番目の「セラセラ」を指定して、その表示形態を変更した状態である。指定した曲について、削除、演奏、音色設定等の処理を行うことができる。
【００４５】
次に、図１１のステップＢ２１における音色設定処理のフローを図２２〜図２４に示す。図２２において、まず、表示をクリアする（ステップＤ１）。次に、表示変更を示すフラグＤＦ１０Ｆ、ＤＦ１１Ｆ、ＤＦ１２Ｆ、ＤＦ１３Ｆ、ＤＦ１４Ｆを全て１（表示変更あり）にセットする（ステップＤ２）。そして、図５０に示すような、音色設定枠画面を表示する（ステップＤ３）。次に、画面において表示形態が変更されている曲について、曲名表示処理（ステップＤ４）、スペクトルリスト表示処理（ステップＤ５）、システムリスト表示処理（ステップＤ６）、チャンネル表示処理（ステップＤ７）、スペクトル表示処理（ステップＤ７）を行う。その他、画面には、図５０に示すように、スペクトルリストの表示枠ｆｒａｍｅ５、システムリストの表示枠ｆｒａｍｅ６のそれぞれに対応した、「上」「下」アイコンが表示されるとともに、「演奏」アイコン、「クリア」アイコン、「音色設定」アイコン、「演奏曲リスト」アイコンが表示される。
【００４６】
各表示処理の後、マウスが移動されたか否かを判別する（ステップＤ９）。マウスの移動があったときはカーソルの表示位置を移動する（ステップＤ１０）。そして、マウスがクリックされたか否かを判別する（ステップＤ１１）。クリックされない場合には、ステップＤ９に移行して、ステップＤ１１までの処理を繰り返す。マウスがクリックされたときは、そのときのカーソル位置に応じた処理を行う。すなわち、カーソル位置が「演奏曲リスト」アイコンであるか否かを判別し（ステップＤ１２）、このアイコンの位置にある場合には、このフローを終了して図９のステップＢ１の処理に移行する。すなわち、図４９の画面に戻る。
【００４７】
図２２のステップＤ１２において、カーソル位置が「演奏曲リスト」アイコンの位置にない場合には、図２３のフローにおいて、カーソル位置が表示枠ｆｒａｍｅ５のスペクトルリストの位置にあるか否かを判別する（ステップＤ１３）。この位置にある場合には、スペクトル指定処理を実行する（ステップＤ１４）。カーソル位置がこの位置にない場合には、表示枠ｆｒａｍｅ６のシステムリストの位置にカーソル位置があるか否かを判別する（ステップＤ１５）。この位置にある場合には、システム指定処理を実行する（ステップＤ１６）。カーソル位置がこの位置にない場合には、表示枠ｆｒａｍｅ７のチャンネルリストの位置にカーソル位置があるか否かを判別する（ステップＤ１７）。この位置にある場合には、チャンネル入力処理を実行する（ステップＤ１８）。
【００４８】
カーソル位置がチャンネルリストの位置にない場合には、スペクトルリストの「上」「下」アイコンの位置にカーソル位置があるか否かを判別する（ステップＤ１９）。この位置にある場合には、「上」「下」アイコンに応じた処理を行う（ステップＤ２０）。カーソル位置がこの位置にない場合には、システムリストの「上」「下」アイコンの位置にカーソル位置があるか否かを判別する（ステップＤ２１）。この位置にある場合には、「上」「下」アイコンに応じた処理を行う（ステップＤ２２）。
【００４９】
カーソル位置がこの位置にない場合には、図２４のフローにおいて、「演奏」アイコンの位置にカーソル位置があるか否かを判別する（ステップＤ２３）。この位置にある場合には、演奏処理を行う（ステップＤ２４）。カーソル位置がこの位置にない場合には、「クリア」アイコンの位置にカーソル位置があるか否かを判別する（ステップＤ２５）。この位置にある場合には、クリア処理を行う（ステップＤ２６）。そして、クリックしたときのカーソル位置に応じた処理を行った後は、図２２のステップＤ４に移行する。クリックしたときのカーソル位置が上記いずれの位置でもない場合には、クリックが無効であるので、図２２のステップＤ９に移行してマウスの移動を判別する。
【００５０】
図２２のステップＤ４における曲名表示処理を図２５に示す。この処理では、フラグＤＦ１０Ｆが１（表示変更あり）であるか否かを判別する（ステップＥ１）。ＤＦ１０Ｆが０（表示変更なし）である場合にはこのフローを終了するが、ＤＦ１０Ｆが１である場合には、ＳＧＬＩＳＴＢ（Ｍ）を画面の曲名エリアに表示する（ステップＥ２）。そして、ＤＦ１０Ｆを０にリセットし（ステップＥ）、このフローを終了して図２２のフローに戻る。
【００５１】
図２２のステップＤ５のスペクトルリスト表示処理のフローを図２６に示す。この処理では、スペクトルリスト表示の変更を示すフラグＤＦ１１Ｆが１（表示変更あり）であるか否かを判別する（ステップＥ４）。ＤＦ１１Ｆが０（表示変更なし）である場合にはこのフローを終了するが、ＤＦ１１Ｆが１である場合には、表示枠内のエリアを指定するポインタａを０（先頭エリア）にセットして（ステップＥ５）、ａをインクリメントしながら、以下のループ処理を実行する。すなわち、図２に示したＲＯＭ２においてポインタ（ａ＋Ｃ）で指定するＳＰＥＣ（ａ＋Ｃ）のスペクトルデータをＲＡＭ３のエリアＳＰＬＩＳＴ（ａ）にストアする（ステップＥ６）。ここで、Ｃの値は図５０のスペクトルリストの「上」「下」アイコンのクリックによって変化する変数である。
【００５２】
次に、ａをインクリメントして（ステップＥ７）、次のエリアを指定する。そして、ａが１１を超えたか否かを判別する（ステップＥ８）。ａが１１以下である場合には、ステップＥ６に移行してループ処理を繰り返す。ステップＥ８においてａが１１を超えた場合すなわち表示するリストがそろった場合には、ＳＰＬＩＳＴ（０）〜ＳＰＬＩＳＴ（１１）をスペクトルエリアに表示する（ステップＥ９）。そして、ＤＦ１１Ｆを０にリセットし（ステップＥ１０）、このフローを終了して図２２のフローに戻る。
【００５３】
図２２のステップＤ６のシステムリスト表示処理を図２７に示す。この処理では、システムリスト表示の変更を示すフラグＤＦ１２Ｆが１（表示変更あり）であるか否かを判別する（ステップＥ１１）。ＤＦ１２Ｆが０（表示変更なし）である場合にはこのフローを終了するが、ＤＦ１２Ｆが１である場合には、表示枠内のエリアを指定するポインタｂを０にセットし（ステップＥ１２）、ｂをインクリメントしながら、以下のループ処理を実行する。すなわち、図２に示したＲＯＭ２においてポインタ（ｂ＋Ｄ）によって指定されるＳＹＳ（ｂ＋Ｄ）のシステムデータをＲＡＭ３のエリアＳＹＳＬＩＳＴ（ｂ）にストアする（ステップＥ１３）。ここで、Ｄの値は図５０のシステムリストの「上」「下」アイコンのクリックによって変化する変数である。
【００５４】
次に、ｂをインクリメントして次のエリアを指定する（ステップＥ１４）。そして、ｂが１１を超えたか否かを判別する（ステップＥ１５）。ｂが１１以下である場合には、ステップＥ１３に移行してループ処理を繰り返す。ステップＥ１５において、ｂが１１を超えた場合すなわち表示するシステムリストがそろった場合には、ＳＹＳＬＩＳＴ（０）〜ＳＹＳＬＩＳＴ（１１）をシステムエリアに表示する（ステップＥ１６）。そして、ＤＦ１２Ｆを０にリセットし（ステップＥ１７）、このフローを終了して図２２のフローに戻る。
【００５５】
図２２のステップＤ７におけるチャンネルリスト表示処理のフローを図２８に示す。この処理では、チャンネルリストの表示変更を示すフラグＤＦ１３Ｆが１（表示変更あり）であるか否かを判別する（ステップＥ１８）。ＤＦ１３Ｆが０（表示変更なし）である場合にはこのフローを終了するが、ＤＦ１３Ｆが１である場合には、チャンネルを指定するポインタｃを０にセットして（ステップＥ１９）、ｃをインクリメントしながら以下のループ処理を実行する。すなわち、変数Ｍの値で指定された図５のスペトクルデータＣＨ（ｎ、Ｍ、ｃ、０）を、ポインタｃで指定された図７のエリアＳＰＣＨ（ｃ）にストアする（ステップＥ２０）。また、変数Ｍの値で指定された図５のシステムデータＣＨ（ｎ、Ｍ、ｃ、１）を、ポインタｃで指定された図７のエリアＳＹＣＨ（ｃ）にストアする（ステップＥ２１）。
【００５６】
次に、ｃをインクリメントして（ステップＥ２２）、次のチャンネルを指定する。そして、ｃが７を超えたか否かを判別する（ステップＥ２３）。ｃが７以下である場合には、ステップＥ２０に移行してループ処理を繰り返す。ステップＥ２３において、ｃが７を超えた場合は、ＳＰＣＨ（０）〜ＳＰＣＨ（７）をチャンネルエリアに表示する（ステップＥ２４）。また、ＳＹＣＨ（０）〜ＳＹＣＨ（７）をチャンネルエリアに表示する（ステップＥ２５）。そして、ＤＦ１３Ｆを０にリセットし（ステップＥ２６）、このフローを終了して図２２のフローに戻る。
【００５７】
図２２のステップＤ８におけるスペクトル表示処理のフローを図２９に示す。この処理では、スペクトルの表示変更をしめすフラグＤＦ１４Ｆが１（表示変更あり）であるか否かを判別する（ステップＥ２７）。ＤＦ１４Ｆが０（表示変更なし）である場合にはこのフローを終了するが、ＤＦ１４Ｆが１である場合には、スペクトルデータの図形表示の変更を示すフラグＳＰＦが１（表示変更あり）であるか否かを判別する（ステップＥ２８）。ＳＰＦが１である場合には、スペトクルデータＳＰＥＣ（ａ＋Ｃ）を、図５０に示すように、表示枠ｆｒａｍｅ８にグラフィック（図形）表示する（ステップＥ２９）。このグラフィック表示の後、又はステップＥ２８においてＳＰＦが０（表示変更なし）である場合には、ＤＦ１４Ｆを０にリセットし（ステップＥ３０）、このフローを終了して図２２のフローに戻る。
【００５８】
図２３のステップＤ１４におけるスペクトル指定処理のフローを図３０に示す。この処理では、クリックした位置のスペクトルデータの番号をレジスタＮにストアする（ステップＥ３１）。次に、ＲＯＭ２におけるスペクトル名のデータＳＰＮＡＭＥ（Ｃ＋Ｎ）をレジスタＳＰＥＣにストアする（ステップＥ３２）。ここで、Ｃは図５０に示すスペクトルリストの「上」「下」アイコンのクリックによって変化する変数である。次に、図５０に示すように、Ｎ番目のスペクトルリストの表示を変更する（ステップＥ３３）。そして、ＳＰＦを１（表示変更あり）にセットし（ステップＥ３４）、このフローを終了して図２３のフローに戻る。
【００５９】
図２３のステップＤ１６におけるシステム指定処理のフローを図３１に示す。この処理では、クリックした位置のシステムデータの番号をレジスタＭにストアする（ステップＥ３５）。次に、ＲＯＭ２におけるシステム名のデータＳＹＮＡＭＥ（Ｄ＋Ｍ）をレジスタＳＹＳにストアする（ステップＥ３６）。ここで、Ｄは図５０に示すシステムリストの「上」「下」アイコンのクリックによって変化する変数である。次に、Ｍ番目のシステムリストの表示を変更する（ステップＥ３８）。そして、ＳＹＦを１（表示変更あり）にセットし（ステップＥ３９）、このフローを終了して図２３のフローに戻る。
【００６０】
図２３のステップＤ１８におけるチャンネル入力処理を図３２に示す。この処理では、クリックされた位置のチャンネル番号をレジスタＬにストアする（ステップＥ４０）。次に、システムデータの表示変更を示すフラグＳＰＦが１（表示変更あり）であるか否かを判別する（ステップＥ４１）。ＳＰＦが１である場合には、レジスタＳＰＥＣのスペクトルデータを図７に示した表示用のエリアＳＰＣＨ（Ｌ）にストアする（ステップＥ４２）。また、ＳＰＥＣのスペクトルデータを図５に示したエリアＣＨ（ｎ、Ｍ、Ｌ、０）にストアする（ステップＥ４３）。そして、ＳＰＦを０にリセットする（ステップＥ４４）。
【００６１】
この後、又はステップＥ４１においてＳＰＦが０（表示変更なし）である場合には、システムデータの表示変更を示すフラグＳＹＦが１（表示変更あり）であるか否かを判別する（ステップＥ４５）。ＳＹＦが１である場合には、レジスタＳＹＳのシステムデータを図７に示した表示用のエリアＳＹＣＨ（Ｌ）にストアする（ステップＥ４６）。また、ＳＹＳのシステムデータを図５に示したエリアＣＨ（ｎ、Ｍ、Ｌ、１）にストアする（ステップＥ４７）。そして、ＳＹＦを０にリセットする（ステップＥ４８）。この後、又はステップＥ４５においてＳＹＦが０（表示変更なし）である場合には、フラグＤＦ１３Ｆを１（表示変更あり）にセットし（ステップＥ４９）、このフローを終了して図２３のフローに戻る。
【００６２】
図２３のステップＤ２０におけるスペクトルの上下アイコン処理を図３３に示す。この処理では、マウスをクリックしたときのカーソル位置に応じて、図２６のフロー、図２９のフロー、及び図３０のフローにおけるレジスタＣの値を変更する。すなわち、カーソル位置が「上」アイコンの位置にあるか又は「下」アイコンの位置にあるかを判別する（ステップＥ５０）。「上」アイコンの位置にある場合には、レジスタＣの値が０でないか否かを判別する（ステップＥ５１）。すなわち、ＲＡＭ３のスペクトルリストにおいて現在指定しているスペクトルが最初のスペクトル（Ｃ＝０）でないかどうかを判別する。Ｃの値が０の場合には、スペクトルリストにおいて１つ前のスペクトルはないので、上アイコンのクリックは無効となり、このフローを終了する。Ｃの値が０でない場合には、Ｃ値をデクリメントして（ステップＥ５２）、スペクトルリストにおいて現在指定しているスペクトルの１つ前のスペクトルを指定する。
【００６３】
ステップＥ５０において、マウスをクリックしたときのカーソル位置が「下」アイコンの位置にある場合には、レジスタＣの値が最大値でないか否かを判別する（ステップＥ５３）。すなわち、ＲＡＭ３のスペクトルリストにおいて現在指定しているスペクトルが最後のスペクトル（Ｃ＝最大値）でないかどうかを判別する。Ｃの値が最大値の場合には、スペクトルリストにおいて次のスペクトルはないので、「下」アイコンのクリックは無効となり、このフローを終了する。Ｃの値が最大値でない場合にはＣの値をインクリメントして（ステップＥ５４）、スペクトルリストにおいて現在指定しているスペクトルの次のスペクトルを指定する。Ｃの値をインクリメントした後、又はステップＥ５２においてＣの値をデクリメントした後は、フラグＤＦ１１Ｆを１（表示変更あり）にセットして（ステップＥ５５）、このフローを終了して図２３のフローに戻る。
【００６４】
図２３のステップＤ２２におけるシステム上下アイコン処理を図３４に示す。この処理では、マウスをクリックしたときのカーソル位置に応じて、図２７のフロー及び図３１におけるレジスタＤの値を変更する。すなわち、カーソル位置が「上」アイコンの位置にあるか又は「下」アイコンの位置にあるかを判別する（ステップＥ５６）。「上」アイコンの位置にある場合には、レジスタＤの値が０でないか否かを判別する（ステップＥ５７）。すなわち、ＲＡＭ３のシステムリストにおいて現在指定しているシステムが最初のシステム（Ｄ＝０）でないかどうかを判別する。Ｄの値が０の場合には、システムリストにおいて１つ前のシステムはないので、上アイコンのクリックは無効となり、このフローを終了する。Ｄの値が０でない場合には、Ｄ値をデクリメントして（ステップＥ５８）、システムリストにおいて現在指定しているシステムの１つ前のシステムを指定する。
【００６５】
ステップＥ５６において、マウスをクリックしたときのカーソル位置が「下」アイコンの位置にある場合には、レジスタＤの値が最大値でないか否かを判別する（ステップＥ５９）。すなわち、ＲＡＭ３のシステムリストにおいて現在指定しているシステムが最後のシステム（Ｄ＝最大値）でないかどうかを判別する。Ｃの値が最大値の場合には、システムリストにおいて次のシステムはないので、「下」アイコンのクリックは無効となり、このフローを終了する。Ｄの値が最大値でない場合にはＤの値をインクリメントして（ステップＥ６０）、システムリストにおいて現在指定しているシステムの次のシステムを指定する。Ｄの値をインクリメントした後、又はステップＥ５８においてＤの値をデクリメントした後は、フラグＤＦ１２Ｆを１（表示変更あり）にセットして（ステップＥ６１）、このフローを終了して図２３のフローに戻る。
【００６６】
図２４のステップＤ２６におけるクリア処理を図３５に示す。この処理では、チャンネルを指定するポインタＬを０にセットし（ステップＥ６２）、Ｌをインクリメントしながら以下のループ処理を実行する。すなわち、図７に示した表示用のエリアＳＰＣＨ（Ｌ）、ＳＹＣＨ（Ｌ）をクリアし（ステップＥ６３）、図５に示したエリアＣＨ（ｎ、ｍ、Ｌ、０）、ＣＨ（ｎ、ｍ、Ｌ、１）をクリアする（ステップＥ６４）。次に、Ｌをインクリメントして（ステップＥ６５）、次のチャンネルを指定する。そして、Ｌが７を超えたか否かを判別する（ステップＥ６６）。Ｌが７以下である場合には、ステップＥ６３に移行してループ処理を繰り返す。ステップＥ６６において、Ｌが７を超えたときは、フラグＤＦ１３Ｆを１（表示変更あり）にセットし（ステップＥ６７）、このフローを終了して図２４のフローに戻る。
【００６７】
図１０のステップＢ２３における曲ブロックリスト表示処理を図３６、図３７に示す。この処理では、表示をクリアして（ステップＥ６８）、曲ブロックリスト表示枠を表示する（ステップＥ６９）。この画面では、図５１に示すように、表示枠ｆｒａｍｅ９の他に、「演奏曲リスト」アイコン、「曲ブロックリスト」アイコン、「削除」アイコン、「読み込み」アイコン、「上」「下」アイコンが表示される。次に、曲ブロックの表示変更を示すフラグＤＦ２０Ｆを１（表示変更あり）にセットし（ステップＥ７０）、リスト表示処理を実行する（ステップＥ７１）。次に、マウスが移動されたか否かを判別し（ステップＥ７２）、マウスの移動があったときは、カーソルの表示位置を移動する（ステップＥ７３）。そして、マウスがクリックされたか否かを判別し（ステップＥ７４）、クリックされない場合には、ステップＥ７２に移行してマウスの移動を判別する。ステップＥ７４において、マウスがクリックされたときは、そのときのカーソル位置に応じた処理を行う。
【００６８】
カーソル位置が「演奏曲リスト」アイコンの位置にあるか否かを判別し（ステップＥ７５）、このアイコンの位置にある場合には、このフローを終了して図９のフローに戻る。この場合には、図４９の演奏曲リストの表示画面になる。カーソル位置がこのアイコンの位置にない場合には、図３７のフローにおいて、「削除」アイコンの位置にカーソル位置があるか否かを判別する（ステップＥ７６）。このアイコンの位置にある場合には、削除処理を実行する（ステップＥ７７）。カーソル位置がこのアイコンの位置にない場合には、「読み込み」アイコンの位置にカーソル位置があるか否かを判別する（ステップＥ７８）。このアイコンの位置にある場合には、読み込み処理を実行する（ステップＥ７９）。カーソル位置がこのアイコンの位置にない場合には、「上」「下」アイコンの位置にカーソル位置があるか否かを判別する（ステップＥ８０）。このアイコンの位置にある場合には、「上」「下」アイコン処理を実行する（ステップＥ８１）。カーソル位置がこのアイコンの位置にない場合には、曲ブロックリスト上にカーソル位置があるか否かを判別する（ステップＥ８２）。リスト上にある場合には、曲ブロック指定処理を実行する（ステップＥ８３）。
【００６９】
マウスがクリックされたときのカーソル位置に応じた処理を実行した後、又はカーソル位置が上記いずれの位置にもない場合には、図３６のステップＥ７１におけるリスト表示処理に移行する。
【００７０】
図３６のステップＥ７１におけるリスト表示処理のフローを図３８に示す。この処理では、ブロックリストの表示変更を示すフラグＤＦ２０Ｆが１（表示変更あり）であるか否かを判別する（ステップＦ１）。ＤＦ２０Ｆが０（表示変更なし）である場合にはこのフローを終了するが、ＤＦ２０Ｆが１である場合には、ブロックを指定するポインタｇを０にセットして（ステップＦ２）、ｇをインクリメントしながら、以下のループ処理を実行する。すなわち、図７に示した曲ブロック名データ群において、ＢＬＯＣＫ  ＮＡＭＥ（Ｇ＋ｇ）のエリアのデータを図６に示したＢＫＬＩＳＴデータ群のＢＫＬＩＳＴ（ｇ）のエリアにストアする（ステップＦ３）。
【００７１】
ここで、Ｇは「上」「下」アイコンのクリックに応じて変化する変数である。次に、ｇをインクリメントして（ステップＦ４）、次のブロックリストを指定する。そして、ｇが１１を超えたか否かを判別する（ステップＦ５）。ｇが１１以下である場合には、ステップＦ３に移行してループ処理を繰り返す。ステップＦ５においてｇが１１を超えた場合には、ＢＫＬＩＳＴ（０）〜ＢＫＬＩＳＴ（１１）を表示する（ステップＦ６）。そして、ＤＦ２０Ｆを０にリセットし（ステップＦ７）、このフローを終了して図３６のフローに戻る。
【００７２】
図３７のステップＥ８３における曲ブロック指定処理のフローを図３９に示す。この処理では、フラグＢＬＦを反転し（ステップＦ８）、クリックされたブロック番号をポインタαにセットする（ステップＦ９）。そして、ＢＬＦが１であるか否かを判別する（ステップＦ１０）。ＢＬＦが１である場合には、ＢＫＬＩＳＴ（α）の表示形態を変更する（ステップＦ１１）。ＢＬＦが０である場合には、ＢＫＬＩＳＴ（α）の表示形態を通常に戻す（ステップＦ１２）。ステップＦ１１の表示形態変更処理、又は、ステップＦ１２の通常表示形態処理の後は、このフローを終了して図３７のフローに戻る。
【００７３】
図３７のステップＥ８１における「上」「下」アイコン処理のフローを図４０に示す。この処理では、マウスをクリックしたときのカーソル位置が「上」アイコンの位置にあるか又は「下」アイコンの位置にあるかを判別する（ステップＦ１３）。そして、クリックに応じて変化するブロックの番号である変数Ｇの値に応じた処理を行う。カーソル位置が「上」アイコンの位置にある場合には、レジスタＧの値が０でないか否かを判別する（ステップＦ１４）。すなわち、ＲＡＭ３のブロックリストにおいて現在指定しているブロックが最初のブロック（Ｇ＝０）でないかどうかを判別する。Ｇの値が０の場合には、ブロックリストにおいて１つ前のブロックはないので、「上」アイコンのクリックは無効となり、このフローを終了する。Ｇの値が０でない場合にはＧの値をデクリメントして（ステップＦ１８）、ブロックリストにおいて現在指定しているブロックの１つ前のブロックを指定する。
【００７４】
ステップＦ１３において、マウスをクリックしたときのカーソル位置が「下」アイコンの位置にある場合には、レジスタＧの値が最大値でないか否かを判別する（ステップＦ１６）。すなわち、ＲＡＭ３のブロックリストにおいて現在指定しているブロックが最後のブロック（Ｇ＝最大値）でないかどうかを判別する。Ｇの値が最大値の場合には、ブロックリストにおいて次のブロックはないので、「下」アイコンのクリックは無効となり、このフローを終了する。Ｇの値が最大値でない場合にはＧの値をインクリメントして（ステップＦ１７）、ブロックリストにおいて現在指定している次のブロックを指定する。Ｇの値をインクリメントした後、又はステップＦ１５においてＧの値をデクリメントした後は、フラグＤＦ２０Ｆを１（表示変更あり）にセットして（ステップＦ１８）、このフローを終了して図３７のフローに戻る。
【００７５】
図３７のステップＥ７７における削除処理のフローを図４１に示す。この処理では、フラグＢＬＦが１（削除あり）であるか否かを判別する（ステップＦ１９）。ＢＬＦが０（削除なし）である場合には、このフローを終了するが、ＢＬＦが１である場合には、図３９の処理においてαで指定した表示形態が変更されているリストＢＫＬＩＳＴ（α）を、図６の該当するエリアから削除する（ステップＦ２０）。また、これに対応するブロック名であるＢＫＮＡＭＥ（Ｇ＋α）を図７の該当するエリアから削除する（ステップＦ２１）。さらに、ＢＬＯＣＫ（Ｇ＋α）を図４の該当するエリアから削除する（ステップＦ２２）。次に、図４及び図７のＢＬＯＣＫ（  ）及びＢＫＮＡＭＥ（  ）のエリアを並べ替える（ステップＦ２３）。そして、ＤＦ２０Ｆを１（表示変更あり）にセットし（ステップＦ２４）、ＢＬＦを０にリセットする（ステップＦ２５）。そして、このフローを終了して図３７のフローに戻る。
【００７６】
図３７のステップＥ７９における読み込み処理のフローを図４２に示す。この処理では、表示形態が変更されているブロックリストのポインタＧ＋αを、指定ブロックのポインタｎにセットする（ステップＦ２６）。したがって、指定する曲ブロックが更新される。
【００７７】
図１２のステップＢ３７における全曲演奏処理のフローを図４３に示す。この処理では、全曲演奏のスタートフラグＳＴＦ２を１にセットし（ステップＨ１）、ポインタｐを０（最初の演奏曲の番号）にセットする（ステップＨ２）。そして、演奏設定処理を実行する（ステップＨ３）。この演奏設定処理のフローを図４４及び図４５に示す。この処理では、ＣＨ（０）〜ＣＨ（７）の８チャンネル分の波形データをＣＨ（０）から順に生成する。すなわち、図４４において、図４のＮＡＭＥ（ｎ、ｐ）に対する曲（ＳＯＮＧ）データを読み出す（ステップＨ４）。そして、読み出したデータをシーケンスメモリにストアする（ステップＨ５）。次に、波形生成のチャンネルＣＨの番号を指定するポインタｒを０（最初のチャンネル）にセットして（ステップＨ６）、ｒをインクリメントしながら以下のループ処理を実行する。
【００７８】
まず、ＣＨ（ｎ、ｐ、ｒ、０）に対するスペクトルデータを読み出し（ステップＨ７）、チャンネルを指定する別のポインタｒ１を０にセットする（ステップＨ８）。そして、ｒ１とｒとが同じでないか否かを判別する（ステップＨ９）。すなわち、ｒ１とｒとで指定した２つのチャンネルが同じチャンネルでないか否かを判別する。ｒ１とｒとが同じでない場合には、ＣＨ（ｎ、ｐ、ｒ１、０）のスペクトルデータとＣＨ（ｎ、ｐ、ｒ、０）のスペクトルデータとが同じであるか否かを判別する（ステップＨ１０）。スペクトルデータが同じでない場合には、ｒ１をインクリメントして（ステップＨ１１）、ステップＨ９に移行してｒ１とｒとが同じでないか否かを判別する。
【００７９】
ｒ１とｒとが同じである場合には、すでに波形生成したチャンネル番号ｒ１（ｒ１＜ｒ）のスペクトルデータの中に、チャンネル番号ｒと同じスペクトルデータが全くない場合である。この場合には、新規に波形データを生成する必要がある。すなわち、図４５のフローにおいて、スペクトルデータに基づいて波形生成を行い（ステップＨ１２）、生成された波形データを音源（発音用のバッファ）のｒチャンネルに転送する（ステップＨ１３）。図４４のステップＨ１０において、ＣＨ（ｎ、ｐ、ｒ１、０）のスペクトルデータとＣＨ（ｎ、ｐ、ｒ、０）のスペクトルデータとが同じである場合には、すでにポインタｒ１によって指定したチャンネルにおいて作成された波形データを利用することができるので、新規に波形データを作成する必要はない。この場合には、音源のｒ１チャンネルに割り当てられた波形データをｒチャンネルで使用できるようにコピーする（ステップＨ１４）。したがってこの場合には、波形生成に要する時間を省略することができる。
【００８０】
ステップＨ１３において波形を音源に転送した後、又は、ステップＨ１４において音源の波形をコピーした後は、ＣＨ（ｎ、ｐ、ｒ、１）に対するシステムデータを読み出し（ステップＨ１５）、音源のｒチャンネルにそのシステムデータを転送する（ステップＨ１６）。次に、ｒをインクリメントして（ステップＨ１７）、次のチャンネルを指定する。そして、ｒが７を超えたか否かを判別し（ステップＨ１８）、ｒが７以下である場合には、図４４のステップＨ７に移行してループ処理を繰り返す。図４５のステップＨ１８において、ｒが７を超えた場合には、発音用のチャンネルすべてにおいてスペクトルデータによる波形データが生成又はコピーされ、かつ、発音用のチャンネルすべてにおいてシステムデータが転送された場合であるので、演奏処理を実行する（ステップＨ１９）。そして、このフローを終了して図１２のフローに戻る。
【００８１】
図１２のステップＢ３９における１曲演奏処理のフローを図４６に示す。この処理では、１曲演奏スタートフラグＳＴＦ１を１にセットする（ステップＨ２０）。次に、図４のＮＡＭＥ（ｎ、ｍ）に対する曲（ＳＯＮＧ）データを読み出す（ステップＨ２１）。そして、読み出したデータをシーケンスメモリにストアする（ステップＨ２２）。次に、波形生成のチャンネルを指定するポインタｒを０にセットして（ステップＨ２３）、ｒをインクリメントしながら以下のループ処理を実行する。ＣＨ（ｎ、Ｍ、ｒ、０）に対するスペクトルデータを読み出し（ステップＨ２４）、音源のｒチャンネルに転送する（ステップＨ２５）。次に、ＣＨ（ｎ、Ｍ、ｒ、１）に対するシステムデータを読み出し（ステップＨ２６）、音源のｒチャンネルに転送する（ステップＨ２７）。
【００８２】
次に、ｒをインクリメントして（ステップＨ２８）、次のチャンネルを指定する。そして、ｒが７を超えたか否かを判別する（ステップＨ２９）。ｒが７以下である場合には、ステップＨ２４に移行してループ処理を繰り返す。ステップＨ２９においてｒが７を超えたとき、すなわち全てのチャンネルに対してデータの転送が終了したときは、演奏処理を実行する（ステップＨ３０）。そして、このフローを終了して図１２のフローに戻る。
【００８３】
図４５のステップＨ１９又は図４６のステップＨ３０における演奏処理のフローを図４７に示す。この処理では、１曲演奏のスタートフラグＳＴＦ１、又は全曲演奏処理のスタートフラグＳＴＦ２が１であるか否かを判別する（ステップＧ１）。ＳＴＦ１及びＳＴＦ２のいずれも０である場合には、このフローを終了する。いずれかのフラグが１である場合には、演奏処理を実行する（ステップＧ２）。そして、演奏終了か否かを判別し（ステップＧ３）、演奏終了でない場合にはこのフローを終了する。すなわち、演奏処理を続行する。演奏終了の場合には、演奏終了処理を実行する（ステップＧ４）。次に、１曲演奏のスタートフラグＳＴＦ１が１であるか否かを判別する（ステップＧ５）。ＳＴＦ１が１である場合には、このフラグを０（演奏停止）にリセットする（ステップＧ６）。そして、このフローを終了する。
【００８４】
ステップＧ５においてＳＴＦ１が０である場合、すなわち、全曲演奏のスタートフラグＳＴＦ２が１である場合には、図４３の全曲演奏処理のフローで指定したポインタｐをインクリメントして（ステップＧ７）、次の演奏曲を指定する。そして、指定した曲のＮＡＭＥ（ｎ、ｐ）が空きであるか否かを判別する（ステップＧ８）。空きでない場合には、図４４のフローの演奏設定処理を実行する（ステップＧ９）。そして、ステップＧ２に移行して、次の曲の演奏処理を実行する。ステップＧ８において、ＮＡＭＥ（ｎ、ｐ）が空きである場合には、ＳＴＦ２を０（演奏停止）にリセットし（ステップＧ１０）、このフローを終了する。
【００８５】
図１２のステップＢ４１における停止処理のフローを図４８に示す。この処理では、１曲演奏のスタートフラグＳＴＦ１又は全曲演奏のスタートフラグＳＴＦ２のうち１にセットされているフラグを０（演奏停止）にリセットする（ステップＨ３１）。そして、演奏停止処理を実行し（ステップＨ３２）、このフローを終了して図１２のフローに戻る。
【００８６】
このように、上記実施形態によれば、ＣＰＵ１は、音色パラメータを設定するパラメータ設定手段を構成するとともに、波形データを生成する波形生成手段を構成する。さらに、ＣＰＵ１は、図４４及び図４５の演奏設定処理に示すように、他のパートにおける波形データを複製する波形複製手段を構成する。そして、任意のパートにおいて設定されたパラメータに基づく波形データを生成する際に、生成すべき波形データが、他のパートにおいてすでに生成した波形データと同じである場合には、他のパートにおける波形データを複製して使用する。したがって、生成した波形データの資源を有効に活用して波形生成処理の効率化を図るとともに、リアルタイムでの発音処理で音切れ等の発生を防止することができる。
【００８７】
なお、上記実施形態においては、音色パラメータを設定して、設定した音色パラメータに基づいて波形データを生成するようにしたが、音色以外の他の楽音の要素となるパラメータに基づいて波形データを生成するようにしてもよい。
【００８８】
また、上記実施形態においては、ＲＯＭ２に記憶されている楽音制御処理プログラムをＣＰＵ１によって実行する専用の楽音制御装置について説明したが、実施形態においてＣＰＵ１のフローチャートによって表わされる楽音制御処理プログラムを、フロッピーディスク、ＣＤ等の汎用の記録媒体に記録して、これをパソコン等の汎用の情報処理装置で読み出して楽音制御処理を行うようにしてもよい。この場合には、記録媒体の発明を構成する。
【００８９】
【発明の効果】
本発明によれば、生成した波形データの資源を有効に活用して波形生成処理の効率化を図るとともに、リアルタイムでの発音処理で音切れ等の発生を防止することができる。
【図面の簡単な説明】
【図１】実施形態における演奏制御装置のシステム構成を示すブロック図。
【図２】図１におけるＲＯＭに記憶されているデータ構成を示す図。
【図３】図２に続くデータ構成を示す図。
【図４】図１のＲＡＭに記憶されるデータを示す図。
【図５】図１のＲＡＭに記憶されるデータを示す図。
【図６】図１のＲＡＭに記憶されるデータを示す図。
【図７】図１のＲＡＭに記憶されるデータを示す図。
【図８】図１のＣＰＵのメインフローチャート。
【図９】図８における曲設定処理のフローチャート。
【図１０】図９に続く曲設定処理のフローチャート。
【図１１】図１０に続く曲設定処理のフローチャート。
【図１２】図１１に続く曲設定処理のフローチャート。
【図１３】図９におけるブロック名表示処理のフローチャート。
【図１４】図９における選択曲名表示処理のフローチャート。
【図１５】図９における曲リスト表示処理のフローチャート。
【図１６】図１０における曲選択処理のフローチャート。
【図１７】図１１における曲入力指定処理のフローチャート。
【図１８】図１１におけるリスト変更処理（Ａ）のフローチャート。
【図１９】図１１におけるリスト変更処理（Ｂ）のフローチャート。
【図２０】図１１における曲ブロック名入力処理のフローチャート。
【図２１】図１２における削除処理のフローチャート。
【図２２】図１０における音色設定処理のフローチャート。
【図２３】図２２に続く音色設定処理のフローチャート。
【図２４】図２３に続く音色設定処理のフローチャート。
【図２５】図２２における曲名表示処理のフローチャート。
【図２６】図２２におけるスペクトルリスト表示処理のフローチャート。
【図２７】図２２におけるシステムリスト表示処理のフローチャート。
【図２８】図２２におけるチャンネルリスト表示処理のフローチャート。
【図２９】図２２におけるスペクトル表示処理のフローチャート。
【図３０】図２３におけるスペクトル指定処理のフローチャート。
【図３１】図２３におけるシステム指定処理のフローチャート。
【図３２】図２３におけるチャンネル入力処理のフローチャート。
【図３３】図２３におけるスペクトルの上下アイコン処理のフローチャート。
【図３４】図２３におけるシステムの上下アイコン処理のフローチャート。
【図３５】図２４におけるクリア処理のフローチャート。
【図３６】図１０における曲ブロックリスト表示処理のフローチャート。
【図３７】図３６に続く曲ブロックリスト表示処理のフローチャート。
【図３８】図３６におけるリスト表示処理のフローチャート。
【図３９】図３７における曲ブロック指定処理のフローチャート。
【図４０】図３７におけるブロックの上下アイコン処理のフローチャート。
【図４１】図３７における削除処理のフローチャート。
【図４２】図３７における読み込み処理のフローチャート。
【図４３】図１２における全曲演奏処理のフローチャート。
【図４４】図４３における演奏設定処理のフローチャート。
【図４５】図４４に続く演奏設定処理のフローチャート。
【図４６】図１２における１曲演奏処理のフローチャート。
【図４７】図４５及び図４６における演奏処理のフローチャート。
【図４８】図１２における停止処理のフローチャート。
【図４９】演奏曲リストの表示画面を示す図。
【図５０】スペクトルリスト及びシステムリストの表示画面を示す図。
【図５１】曲ブロックリストの表示画面を示す図。
【図５２】他の実施形態におけるシステムデータの図形画像の例を示す図。
【符号の説明】
１  ＣＰＵ
２  ＲＯＭ
３  ＲＡＭ
６  表示器
７  操作子
８  音源
【図１】
0004126475.tif 000002
【図２】
0004126475.tif 000003
【図３】
0004126475.tif 000004
【図４】
0004126475.tif 000005
【図５】
0004126475.tif 000006
【図６】
0004126475.tif 000007
【図７】
0004126475.tif 000008
【図８】
0004126475.tif 000009
【図９】
0004126475.tif 000010
【図１０】
0004126475.tif 000011
【図１１】
0004126475.tif 000012
【図１２】
0004126475.tif 000013
【図１３】
0004126475.tif 000014
【図１４】
0004126475.tif 000015
【図１５】
0004126475.tif 000016
【図１６】
0004126475.tif 000017
【図１７】
0004126475.tif 000018
【図１８】
0004126475.tif 000019
【図１９】
0004126475.tif 000020
【図２０】
0004126475.tif 000021
【図２１】
0004126475.tif 000022
【図２２】
0004126475.tif 000023
【図２３】
0004126475.tif 000024
【図２４】
0004126475.tif 000025
【図２５】
0004126475.tif 000026
【図２６】
0004126475.tif 000027
【図２７】
0004126475.tif 000028
【図２８】
0004126475.tif 000029
【図２９】
0004126475.tif 000030
【図３０】
0004126475.tif 000031
【図３１】
0004126475.tif 000032
【図３２】
0004126475.tif 000033
【図３３】
0004126475.tif 000034
【図３４】
0004126475.tif 000035
【図３５】
0004126475.tif 000036
【図３６】
0004126475.tif 000037
【図３７】
0004126475.tif 000038
【図３８】
0004126475.tif 000039
【図３９】
0004126475.tif 000040
【図４０】
0004126475.tif 000041
【図４１】
0004126475.tif 000042
【図４２】
0004126475.tif 000043
【図４３】
0004126475.tif 000044
【図４４】
0004126475.tif 000045
【図４５】
0004126475.tif 000046
【図４６】
0004126475.tif 000047
【図４７】
0004126475.tif 000048
【図４８】
0004126475.tif 000049
【図４９】
0004126475.tif 000050
【図５０】
0004126475.tif 000051
【図５１】
0004126475.tif 000052
【図５２】
0004126475.tif 000053