(57)【特許請求の範囲】
【請求項１】
オンオフ操作される演奏操作子と、
複数の音高データと、これら音高データのいずれかに付加されるデータであって、持続発音を指示する第１の指示データとを記憶する記憶手段と、
前記演奏操作子がオン操作される度に、前記記憶手段に記憶されている音高データを順次読み出す読出し手段と、
この読出し手段が前記記憶手段から前記第１の指示データが付加されていない音高データを読み出した場合には、その音高データに対応する楽音を発音させ、前記演奏操作子がオフ操作された時点でその楽音を消音させる第１の楽音発生手段と、
前記読出し手段が前記記憶手段から前記第１の指示データが付加されている音高データを読み出した場合には、この第１の指示データが付加された音高データに対応する楽音を発音させるとともに、前記演奏操作子がオフ操作されても持続発音させる第２の楽音発生手段と
を具備することを特徴とする楽音発生装置。
【請求項２】
前記記憶手段は、前記音高データのいずれかに付加されるデータであって、消音を指示する第２の指示データを更に記憶し、
前記第２の楽音発生手段は、前記読出し手段が前記記憶手段から第２の指示データが付加されている音高データを読み出した場合には、この第２の指示データが付加された音高データと同一音高であって、かつ前記第１の指示データに従って持続発音中の楽音を消音させる
ことを特徴とする請求項１記載の楽音発生装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、変化に富んだワンキープレイを実現することができる楽音発生装置に関する。
【０００２】
【従来の技術】
従来より、「ワンキープレイ」と呼ばれる演奏形態を実現する楽音発生装置が知られている。この「ワンキープレイ」とは、例えば、「ワンキープレイ」用に設けられた専用の演奏操作キーが操作される度に、一音づつ発音させて楽曲を演奏する形態を指す。
このような装置は、楽曲を形成する各音符の音高を表わすソングデータを各演奏パート毎にメモリ記憶しておき、キー操作がなされる度に、メモリ記憶されたソングデータを各パートについて一音づつ読み出して発音するように構成されている。
【０００３】
【発明が解決しようとする課題】
ところで、こうした従来の楽音発生装置では、ただ単にキーの押下（オン操作）に応じて発音させ、そのキーを離す（オフ操作）ことで消音させるだけである為、演奏形態が画一化して単調になるという問題がある。
【０００４】
そこで本発明は、上述した事情に鑑みてなされたもので、変化に富んだワンキープレイを実現することができる楽音発生装置を提供することを目的としている。
【０００５】
【課題を解決するための手段】
上記目的を達成するため、請求項１に記載の発明では、オンオフ操作される演奏操作子と、複数の音高データと、これら音高データのいずれかに付加されるデータであって、持続発音を指示する第１の指示データとを記憶する記憶手段と、前記演奏操作子がオン操作される度に、前記記憶手段に記憶されている音高データを順次読み出す読出し手段と、この読出し手段が前記記憶手段から前記第１の指示データが付加されていない音高データを読み出した場合には、その音高データに対応する楽音を発音させ、前記演奏操作子がオフ操作された時点でその楽音を消音させる第１の楽音発生手段と、前記読出し手段が前記記憶手段から前記第１の指示データが付加されている音高データを読み出した場合には、この第１の指示データが付加された音高データに対応する楽音を発音させるとともに、前記演奏操作子がオフ操作されても持続発音させる第２の楽音発生手段とを具備することを特徴とする。
【０００６】
好ましい実施態様である請求項２に記載の発明によれば、前記記憶手段は、前記音高データのいずれかに付加されるデータであって、消音を指示する第２の指示データを更に記憶し、前記第２の楽音発生手段は、前記読出し手段が前記記憶手段から第２の指示データが付加されている音高データを読み出した場合には、この第２の指示データが付加された音高データと同一音高であって、かつ前記第１の指示データに従って持続発音中の楽音を消音させることを特徴とする。
【０００８】
本発明では、演奏操作子がオン操作される度に、記憶手段に記憶されている音高データを読み出し、第１の指示データが付加されていない音高データを読み出した場合には、その音高データに対応する楽音を発音させ、演奏操作子がオフ操作された時点でその楽音を消音させる一方で、第１の指示データが付加されている音高データを読み出した場合には、この第１の指示データが付加された音高データに対応する楽音を発生させるとともに、演奏操作子がオフ操作されても発音を持続させる。
したがって、ただ単に演奏操作子の押下（オン操作）に応じて発音させ、その演奏操作子を離す（オフ操作）ことで消音させる従来のワンキープレイに比べ、指示データに応じた楽音をも発生し得るから、演奏形態が多様化して変化に富んだワンキープレイを実現することが可能になる。
【０００９】
【発明の実施の形態】
本発明による楽音発生装置は、周知の電子楽器はもとより、コンピュータを用いたデジタル楽器類やネットワークを利用した楽音発生装置等に適用され得る。以下では、本発明の実施の形態である楽音発生装置を実施例として図面を参照して説明する。
【００１０】
Ａ．実施例の構成
（１）全体構成
図１は、本発明による一実施例の構成を示すブロック図である。この図において、１は装置パネルに配設されるパネルスイッチ群であり、各種のスイッチ１ａ〜１ｈからなる。ここで、図２（イ）を参照して各種のスイッチ１ａ〜１ｈについて説明する。まず、記録スイッチ１ａは、押下操作（オン操作）される度に記録モードおよびプレイモードをオルタネートに切替え設定するスイッチである。
【００１１】
なお、ここで言う”記録モード”とは、ユーザー操作によりワンキープレイ用のソングデータをメモリに記憶する一連の処理動作を指し、一方、”プレイモード”とは後述するスイッチ１ｂの操作に応じてメモリ記憶されたソングデータを読み出してワンキープレイを行わせる一連の処理動作を指す。これら各モードの処理動作については追って述べる。
【００１２】
１ｂはワンキープレイスイッチであり、”記録モード”下では音名選択する際の操作子として使用され、”プレイモード”下では押下操作（オン操作）される度に順次ソングデータを読み出してワンキープレイするための演奏操作子として使用される。
１ｃは”記録モード”下で使用されるネクストスイッチである。このスイッチ１ｃは、ソングデータの区切りを表わすエンドマークＥＭを、記録する際に使用されるスイッチである。このエンドマークＥＭとは、ワンキープレイスイッチ１ｂの１回のオン操作に対応して読み出すソングデータを区切る為の識別子である。
【００１３】
１ｄは”記録モード”下で使用されるインサートスイッチである。インサートスイッチ１ｄは、”記録モード”において上述のワンキープレイスイッチ１ｂの操作により選択された音名の音高データ（ノートナンバ）をソングデータ記憶メモリ７（後述する）に登録する際に用いられる。
１ｅは”記録モード”下にてソングデータ記憶メモリ７に記憶させた直前の音高データを消去する際に使用されるデリートスイッチである。なお、このデリートスイッチ１ｅの操作により消された音高データについて、後述するホールドマークＨＭあるいはリリースマークＲＭが付与されている場合、それらマークも音高データと共に消去される。
【００１４】
１ｆは、”記録モード”において、ユーザーがワンキープレイスイッチ１ｂ等を使用して選択した音高データに対してホールドマークＨＭ（あるいはリリースマークＲＭ）を付与する際に使用するホールドスイッチであり、上述のインサートスイッチ１ｄと共に同時操作される時に機能するようになっている。
ホールドマークＨＭとは、従来のワンキープレイとは異なり、”プレイモード”下でワンキープレイスイッチ１ｂを離しても（オフ操作しても）消音させたくない音、つまり持続音となる音高データを識別するためのデータを言う。また、リリースマークＲＭとは、このホールドマークＨＭが付与された音高データ（ノートナンバ）を消音させるために付与するデータである。これらマークが意図するところについては追って説明する。
【００１５】
１ｇ，１ｈはそれぞれ”記録モード”下において、選択された音名に対するオクターブ域を指定する為のトランスポーズアップスイッチ、トランスポーズダウンスイッチである。トランスポーズアップスイッチ１ｇは、押下操作される度にオクターブ値を１インクリメントし、一方、トランスポーズダウンスイッチ１ｈは押下操作される度にオクターブ値を１デクリメントする。
【００１６】
次に、再び図１を参照して実施例の構成について説明する。図１において、２は装置各部を制御するＣＰＵであり、その特徴的な動作については後述する。３はＣＰＵ３のワークエリアとして使用されるＲＡＭである。ＲＡＭ３には、各種レジスタ／フラグデータを一時記憶するレジスタエリアや、ソングデータの読み出し／書込みに使用するバッファエリアを備えており、このバッファエリアの詳細については後述する。４はＣＰＵ２にロードされる各種制御プログラムや音色データ等を記憶するＲＯＭである。
【００１７】
５は、前述したパネルスイッチ群１の各種スイッチ操作に対応してＣＰＵ２が発生する表示制御データに従って表示部６を駆動するドライバである。表示部６は、モードＬＥＤ６ａ，ホールドＬＥＤ６ｃやセグメント表示器６ｂ等から構成されており、パネルスイッチ群１の各種スイッチ操作に対応したステイタス表示等を行う。
【００１８】
ここで、図２（イ），（ロ）を参照し、表示部６を形成するモードＬＥＤ６ａ，ホールドＬＥＤ６ｃおよびセグメント表示器６ｂの表示態様について説明しておく。
図２（イ）に図示するモードＬＥＤ６ａは、前述した記録スイッチ１ａの近傍に配設され、当該スイッチ１ａの操作により”記録モード”下に設定されている時に点灯され、”プレイモード”下では消灯される。
また、ホールドＬＥＤ６ｃは、前述したホールドスイッチ１ｆの近傍に配設され、前述のワンキープレイスイッチ１ｂ等の操作によって選択された音高データ（ノートナンバ）が、既にホールドマークＨＭ付きの場合に点灯され、リリースマーク付きの場合には消灯される。
【００１９】
セグメント表示器６ｂは、図２（ロ）に示すように、３桁のセグメント表示部６ｂ−１〜６ｂ−３から形成される。セグメント表示部６ｂ−１は前述のワンキープレイスイッチ１ｂの操作に応じて選択される音名（Ｃ音〜Ｂ音）を表示し、セグメント表示部６ｂ−２は前述のトランスポーズアップスイッチ１ｇあるいはトランスポーズダウンスイッチ１ｈの操作に対応したオクターブ値を表示する。また、セグメント表示部６ｂ−３は、音名をシャープ指定する時あるいはフラット指定する時の記号を表示する。
【００２０】
さて、再び図１に戻り、実施例の構成について説明を進める。図１において、７は各演奏パート毎のソングデータを記憶するソングデータ記憶メモリである。ソングデータは、ワンキープレイスイッチ１ｂが押されたら（オン操作されたら）発音し、離されたら（オフ操作されたら）消音する形式、つまり従来と同様の音高データ（ノートナンバＮＴ）が羅列される形式に加えて、図３（イ）に示すように、ホールドマークＨＭおよびリリースマークＲＭを音高データ（ノートナンバＮＴ）に付加した形式を有する。
【００２１】
図３（イ）に図示する形式によるソングデータの場合、ワンキープレイスイッチ１ｂのオン操作に対応してホールドマークＨＭ付きのノートナンバＮＴが読み出されると、当該ノートナンバＮＴの楽音が発音され、当該スイッチ１ｂが離されても（オフ操作されても）消音せずその発音が持続され、スイッチ１ｂの操作に対応して読み出されるソングデータが、リリースマークＲＭ付きの同一ノートナンバＮＴである時に、その持続発音を消音させる態様となる。
【００２２】
こうしたソングデータの具体例について説明すると、例えば、図３（ロ）に示す楽曲は、同図（ハ）に示すｓｔｅｐ１〜ｓｔｅｐ５からなるソングデータとして表現される。ここで、ｓｔｅｐ１〜ｓｔｅｐ５とは、ワンキープレイスイッチ１ｂの１回のオン操作に対応して処理されるデータ単位を指す。
したがって、例えば、ｓｔｅｐ１にてホールドマークＨＭが付与された楽音「Ｅ２音」は、ｓｔｅｐ１で発音してからｓｔｅｐ５にて消音され、ｓｔｅｐ１にてホールドマークＨＭが付与された楽音「Ｂ４音」はｓｔｅｐ１で発音してからｓｔｅｐ４にて消音される。
このように、上記ソングデータの一例から判るように、本発明によるワンキープレイでは、各パートの音符毎に発音／消音タイミングを異ならせることが可能になるので、変化に富んだ演奏を実現し得るようになっている。
【００２３】
次に、再び図１を参照して実施例の構成について説明を進める。図１において、８は周知の波形メモリ読み出し方式にて構成される音源であり、ＣＰＵ２から供給されるソングデータを、指定された音色の楽音データとして最大８ポリフォニックで楽音合成する。９はＤ／Ａ変換器であり、音源８から供給される楽音データを楽音信号にアナログ変換して出力する。１０はＤ／Ａ変換器９が出力する楽音信号にノイズ除去等のフィルタリングを施した後に増幅出力するアンプであり、このアンプ１０の出力はスピーカＳＰを介して放音される。
【００２４】
（２）ＲＡＭ３に配設されるバッファエリアの構成
前述したように、ＲＡＭ３には、ソングデータの読み出し／書込みに使用するバッファエリアが設けられており、その主要エリアは”プレイモード”下において使用されるノートバッファＮＢ１、”記録モード”下において使用されるノートバッファＮＢ２および消去バッファに大別される。
【００２５】
”プレイモード”下で使用されるノートバッファＮＢ１は、図４に示すように、音源８の発音チャンネル＃１〜＃８毎に対応して設けられており、発音チャンネル割当て等に使用される。各チャンネル当り８ビット長のバッファエリアがアサインされ、その８ビット長のバッファエリアの内、ＬＳＢ〜６ＳＢの下位６ビットには音高データ（ノートナンバＮＴ）がセットされ、７ＳＢには前述したホールドマークＨＭ付与の有無を表わすフラグＨＦがセットされる。
【００２６】
一方、”記録モード”下において使用されるノートバッファＮＢ２は、上記ノートバッファＮＢ１と同様に、図５に図示する通り、音源８の発音チャンネル＃１〜＃８毎に対応して設けられ、ポリ数チェックやホールド／リリースマーク付加チェックに使用される。
音源８の発音チャンネル＃１〜＃８毎に対応して設けられたノートバッファＮＢ２では、各チャンネル当り８ビット長のバッファエリアがアサインされ、その８ビット長のバッファエリアの内、ＬＳＢ〜６ＳＢの下位６ビットには音高データ（ノートナンバＮＴ）がセットされ、７ＳＢには前述したホールドマークＨＭ付与の有無を表わすフラグＨＦがセットされる。
【００２７】
消去バッファは、登録されるソングデータを入力履歴として一時記憶しておくものであって、一旦、ソングデータ記憶メモリ７に登録されたソングデータを削除する際にその内容を参照するために設けられている。この消去バッファが意図するところについては追って述べる。
【００２８】
Ｂ．実施例の動作
次に、上記構成による実施例の動作について説明する。以下では、最初に図６を参照して概略動作（メインルーチン）について述べた後、図７〜図１３を参照して記録モード処理ルーチンの動作について説明し、さらに、図１４〜図１７を参照してプレイモード処理ルーチンの動作について説明して行く。
【００２９】
（１）概略動作（メインルーチンの動作）
まず、本実施例に電源が投入されると、ＣＰＵ２はＲＯＭ４から所定の制御プログラムをロードして図６に示すメインルーチンを実行し、ステップＳＡ１に処理を進め、ＲＡＭ３に設けられる各種レジスタをゼロリセットしたり、初期値セットする他、音源８に対して初期化を指示する等のイニシャライズ処理を行う。そして、イニシャライズ処理が完了すると、ステップＳＡ２に処理を進め、記録スイッチ１ａ（図２参照）がオンイベントを発生したか、つまり、当該スイッチ１ａが新たにオン操作されたか否かを判断する。
【００３０】
ここで、記録スイッチ１ａがオン操作されると、オンイベントが発生して次のステップＳＡ３に処理を進め、一方、オンイベントが発生しない時には後述するステップＳＡ４に処理を進める。
記録スイッチ１ａのオン操作に応じてステップＳＡ３に処理を進めると、ＣＰＵ２はレジスタＭＦに格納されるモードフラグをビット反転させてステップＳＡ４に処理を進める。ステップＳＡ４では、このレジスタＭＦに格納されるモードフラグが「１」、つまり、”記録モード”に設定されたか否かを判断する。
【００３１】
ここで、モードフラグが「１」であると、”記録モード”に設定されたと判断して判断結果が「ＹＥＳ」となり、ステップＳＡ５に進む。ステップＳＡ５では、ユーザー操作に応じて入力されるソングデータをソングデータ記憶メモリ７に登録する記録モード処理を行う。
これに対し、モードフラグが「１」でない時には、判断結果が「ＮＯ」となり、この場合、ステップＳＡ６に進み、ワンキープレイを実行するプレイモード処理へ遷移する。
そして、ステップＳＡ５の記録モード処理あるいはステップＳＡ６のプレイモード処理の何れかが完了すると、ＣＰＵ２はステップＳＡ７に進み、装置の動作状態を表示部６にステイタス表示する等の、その他の処理を実行する。そして、この後、再び前述のステップＳＡ２に処理を戻して記録スイッチ１ａの操作に対応した記録モード処理もしくはプレイモード処理を実行させる。
【００３２】
（２）記録モード処理ルーチンの動作
次に、図７に示す操作の一例、すなわち、図３（ハ）に図示したソングデータを入力する場合を参照しながら記録モード処理ルーチンの動作について図８〜図１３を参照して説明する。
さて、記録スイッチ１ａの操作に応じて記録モードにモード設定されると、ＣＰＵ２はステップＳＡ５を介して図８に図示する記録モード処理ルーチンを起動し、ステップＳＢ１に処理を進める。
【００３３】
▲１▼記録モード設定
ステップＳＢ１では、記録モード切り替え直後か否か、つまり、プレイモード下から記録モード下への状態遷移であるかどうかを判断する。ここで、プレイモード下から記録モード下への状態遷移であると、判断結果が「ＹＥＳ」となり、次のステップＳＢ２へ処理を進めるが、そうでない場合には後述するステップＳＢ５へ処理を進める。
ステップＳＢ２では、モード遷移に伴い、記録モードを表示すべく前述したモードＬＥＤ６ａ（図２参照）を点灯駆動する。次いで、ステップＳＢ３では、前述した消去バッファ中の空き領域を検索し、検索した領域のアドレス値を現アドレスとして保持する。続いて、ステップＳＢ４では、ソングデータ記憶メモリ７の空き領域を検索し、検索した領域のアドレス値を現アドレスとして保持しておく。
【００３４】
▲２▼音名表示
以上のように、ステップＳＢ１〜ＳＢ４を経て記録モード設定が為されると、ＣＰＵ２はステップＳＢ５〜ＳＢ９にて音名表示を行う。先ずステップＳＢ５に進むと、ＣＰＵ２はワンキープレイスイッチ１ｂ（図２参照）がオン操作されたかどうかを判断する。
ここで、例えば、ユーザーが図７に示す操作手順のｓｔｅｐ１（ａ）に示すように、ワンキープレイスイッチ１ｂをオン操作したとする。そうすると、当該スイッチ１ｂに対応したオンイベントが発生して判断結果が「ＹＥＳ」となり、次のステップＳＢ６へ処理を進める。ステップＳＢ６では、ノートナンバＮＴに対応する値を計数するカウンタ１の値を１インクリメントしてカウントアップする。
【００３５】
そして、ステップＳＢ７に進むと、ワンキープレイスイッチ１ｂのオン操作に従って歩進されたカウンタ１の値が「１１」を超えたか、つまり、Ｃ音からＢ音までの１２音の範囲内に収まっているかどうかを判断する。ここで、カウンタ１の値が「１１」を超えた場合には、判断結果が「ＹＥＳ」となり、次のステップＳＢ８に処理を進め、カウンタ１の値がＣ音に対応するよう、カウンタ１の値をゼロリセットする。
一方、カウンタ１の値が「１１」を超えていない時には、上記ステップＳＢ７の判断結果は「ＮＯ」となり、ステップＳＢ９に処理を進める。ステップＳＢ９に進むと、ＣＰＵ２はカウンタ１の値に対応する音名（Ｃ音〜Ｂ音のいずれか）を、前述したセグメント表示器６ｂ−１，６ｂ−３（図２参照）に表示する。
【００３６】
▲３▼音高指定
こうして、現在指定されている音名がセグメント表示器６ｂ−１，６ｂ−３に表示されている状態において、トランスポーズアップスイッチ１ｇもしくはトランスポーズダウンスイッチ１ｈが操作されると、図９に示すステップＳＢ１０〜ＳＢ１９の処理により音高指定がなされる。以下、トランスポーズアップスイッチ１ｇもしくはトランスポーズダウンスイッチ１ｈの各操作に対応した処理について述べる。
【００３７】
（ａ）トランスポーズアップスイッチ１ｇがオフ状態で、トランスポーズダウンスイッチ１ｈがオン操作された場合
この場合、ステップＳＢ１０，ＳＢ１１を介してステップＳＢ１２に進み、カウンタ２の値が「０」であるか否かを判断する。ここで言うカウンタ２とは、オクターブ値に対応するカウント値を保持するものであり、最低のカウント値「０」の時に２オクターブ、カウント値「１」の時に３オクターブ、カウント値「２」の時に４オクターブ、カウント値「３」の時に５オクターブ、最高のカウント値「４」の時に６オクターブをそれぞれ指し示す。
【００３８】
そして、ステップＳＢ１２において、カウンタ２の値が最低のカウント値「０」であれば、これ以上オクターブ値を下げられない為、判断結果が「ＹＥＳ」となり、ステップＳＢ１４に処理を進め、この最低のカウント値「０」に対応する２オクターブをセグメント表示器６ｂ−２に表示させる。
これに対し、カウンタ２の値が最低のカウント値「０」でない場合には、判断結果が「ＮＯ」となり、ステップＳＢ１３に処理を進めて当該カウンタ２の値を１デクリメントさせ、その値に対応するオクターブ値をステップＳＢ１４にてセグメント表示させる。
【００３９】
（ｂ）トランスポーズアップスイッチ１ｇがオフ状態で、トランスポーズダウンスイッチ１ｈがオフ状態あるいはオン操作されたままの場合
この場合、上記スイッチ１ｇ，１ｈの操作は無効とされ、ステップＳＢ１０，ＳＢ１１を介してステップＳＢ１４に進み、現状のカウンタ２の値に対応するオクターブ値をセグメント表示する。
【００４０】
（ｃ）トランスポーズアップスイッチ１ｇがオン操作され、トランスポーズダウンスイッチ１ｈがオフ状態の場合
この場合、ステップＳＢ１０，ＳＢ１５を経てステップＳＢ１６に処理を進め、カウンタ２が最高のカウント値「４」を保持しているか否かを判断する。ここで、最高のカウント値「４」を保持して場合には、判断結果が「ＹＥＳ」となり、ステップＳＢ１４に処理を進め、この最高のカウント値「４」に対応する６オクターブをセグメント表示器６ｂ−２に表示させる。
これに対し、カウンタ２の値が最高のカウント値「４」でない場合には、判断結果が「ＮＯ」となり、ステップＳＢ１７に処理を進めて当該カウンタ２の値を１インクリメントさせ、その値に対応するオクターブ値をステップＳＢ１４にてセグメント表示させる。
【００４１】
（ｄ）トランスポーズアップスイッチ１ｇがオン状態でトランスポーズダウンスイッチ１ｈがオン操作された場合、あるいは両スイッチ１ｇ，１ｈが共にオン操作された場合
これらの場合には、ステップＳＢ１０，ＳＢ１５を介してステップＳＢ１９に進むか、あるいはステップＳＢ１０，ＳＢ１８を経てステップＳＢ１９に処理を進め、カウンタ２の値を中間値（２）にセットする。ここで、中間値（２）とは、カウント値「２」を表わすので、ステップＳＢ１４では４オクターブがセグメント表示される。
【００４２】
（ｅ）トランスポーズアップスイッチ１ｇがオン状態で、トランスポーズダウンスイッチ１ｈがオン状態もしくはオフ状態の場合
この場合、上記スイッチ１ｇ，１ｈの操作は無効とされ、ステップＳＢ１０，ＳＢ１８を介してステップＳＢ１４に進み、現状のカウンタ２の値に対応するオクターブ値をセグメント表示する。
【００４３】
▲４▼音高データの登録
以上のようにして登録すべき音高データが定まると、ＣＰＵ２は図１０に示すステップＳＢ２０に処理を進める。ステップＳＢ２０では、前述したノートバッファＮＢ２内に、現在選択した音高と同一の音高データが存在するか否かを判断する。
ここで、現在選択した音高と同一の音高データが存在すると、判断結果が「ＹＥＳ」となり、この場合、後述するステップＳＢ３２以降に処理を進め、リリースマクＲＭ付きの音高データもしくはマーク無しの音高データをソングデータとして登録する処理を行う。
【００４４】
（ａ）ホールドマークＨＭ付きの音高データをソングデータとして登録する場合一方、現在選択した音高と同一の音高データが存在しない場合、つまり、ホールドマークＨＭ付きの音高データあるいはマーク無しの音高データをソングデータとして登録する場合には、ステップＳＢ２１以降を実行する。
まず、ステップＳＢ２１に進むと、ＣＰＵ２はホールドＬＥＤ６ｃ（図２参照）を消灯させ、続くステップＳＢ２２（図１１参照）では、ノートバッファＮＢ２に空エリアが有るか否か判断する。空エリアが無ければ、後述するデリートスイッチ１ｅの操作に係わる処理へ移行すべく、ここでの判断結果が「ＮＯ」となるが、空エリアが有れば、判断結果が「ＹＥＳ」となり、次のステップＳＢ２３に進む。
【００４５】
ステップＳＢ２３では、インサートスイッチ１ｄが新たにオン操作されたか否かを判断し、続くステップＳＢ２４では、ホールドスイッチ１ｆがオン状態にあるか否かを判断する。
ここで、例えば、図７に図示するｓｔｅｐ１の操作手順（ｂ）に示すように、インサートスイッチ１ｄおよびホールドスイッチ１ｆを共にオン操作すると、ステップＳＢ２５に処理を進め、ホールドＬＥＤ６ｃを点灯させる。これにより、先に選択した音高データがホールドマークＨＭ付きのソングデータとして扱われる。
【００４６】
そして、ステップＳＢ２６では、ノートバッファＮＢ２の空エリアに、先に選択した音高データを一旦ストアしておき、続くステップＳＢ２７では、ソングデータ記憶メモリ７の現アドレスにホールドマークＨＭを書き込む。次いで、ステップＳＢ２８では、ノートバッファＮＢ２に一時記憶しておいた音高データを、上記ホールドマークＨＭに続けてソングデータ記憶メモリ７に登録するための準備としてアドレスを１インクリメントして歩進させ、ステップＳＢ２９に処理を進める。
ステップＳＢ２９に進むと、ＣＰＵ２は、この歩進されたアドレスに従ってノートバッファＮＢ２に一時記憶しておいた音高データを、ソングデータ記憶メモリ７に書き込む。この後、ステップＳＢ３０に進み、次のデータ登録に備えてソングデータ記憶メモリ７のアドレスを１インクリメントして歩進させておく。
【００４７】
（ｂ）マーク無しの音高データをソングデータとして登録する場合
この場合、ホールドスイッチ１ｆを操作せず、当該スイッチ１ｆがオフ状態だから、上述したステップＳＢ２４を介してステップＳＢ３１に処理を進め、ノートバッファＮＢ２の空エリアに、選択した音高データを一旦ストアしておいた後、上述のステップＳＢ２９、ＳＢ３０を実行してマーク無しの音高データをソングデータ記憶メモリ７に書込み、当該メモリ７のアドレスを歩進させる。
【００４８】
（ｃ）リリースマークＲＭ付きの音高データをソングデータとして登録する場合
さて、リリースマークＲＭ付きの音高データをソングデータとして登録する場合、つまり、上述の処理により登録したホールドマーク付きの音高データに対応したリリースマークＲＭ付きの音高データを入力する場合には、前述したステップＳＢ２０（図１０参照）の判断結果が「ＹＥＳ」となり、図１０のステップＳＢ３２に処理を進める。
ステップＳＢ３２では、ノートバッファＮＢ２中に、先に登録したホールドマーク付きの音高データの有無を判断する。ここで、ホールドマーク付きの音高データが無ければ、リリースマーク付きの音高データを登録することができないので、判断結果が「ＮＯ」となり、この場合、ホールドマーク付きの音高データを登録すべく前述のステップＳＢ２２（図１１）に処理を進める。
【００４９】
一方、ノートバッファＮＢ２中にホールドマーク付きの音高データが存在していれば、ステップＳＢ３２の判断結果は「ＹＥＳ」となり、次のステップＳＢ３３に進み、ホールドＬＥＤ６ｃを点灯させる。この後、ＣＰＵ２は図１１に示すステップＳＢ３４，ＳＢ３５を経てインサートスイッチ１ｄおよびホールドスイッチ１ｆの操作状態を判別する。
ここで、例えば、図７に図示するｓｔｅｐ５の操作手順のように、音高Ｅ２を選択した後にインサートスイッチ１ｄおよびホールドスイッチ１ｆを共にオン操作すると、ステップＳＢ３６に処理を進め、ソングデータ記憶メモリ７の現アドレスにリリースマークＲＭを書き込む。
【００５０】
そして、次のステップＳＢ３７に進むと、ソングデータ記憶メモリ７のアドレスを歩進させ、続くステップＳＢ３８では、ノートバッファＮＢ２からホールドマーク付きの同一の音高データを消去バッファへ移動させる。次いで、ステップＳＢ３９では、この消去バッファのアドレスを１インクリメントして歩進させておき、続くステップＳＢ４０ではホールドＬＥＤ６ｃを消灯させる。
この後、上述したステップＳＢ２９，ＳＢ３０を経て、ホールドマークＨＭ付きの音高データに対応したリリースマークＲＭ付きの音高データを、ソングデータ記憶メモリ７に書込み、当該メモリ７のアドレスを歩進させる。
【００５１】
（ｄ）ホールドマーク付きの音高データが存在する状態でマーク無しの音高データをソングデータとして登録する場合
この場合、ホールドスイッチ１ｆを操作せず、当該スイッチ１ｆがオフ状態のままなので、上述したステップＳＢ３５を介してステップＳＢ４１に処理を進め、ノートバッファＮＢ２の空エリアの有無を判断する。そして、空エリアがあれば、判断結果が「ＹＥＳ」となり、ステップＳＢ３１に進む。
そして、ステップＳＢ３１では、ノートバッファＮＢ２の空エリアに、選択した音高データを一旦ストアしてから、上述のステップＳＢ２９、ＳＢ３０を実行してマーク無しの音高データをソングデータ記憶メモリ７に書込み、当該メモリ７のアドレスを歩進させる。
なお、ノートバッファＮＢ２に空エリアが無い場合には、ステップＳＢ４１の判断結果が「ＮＯ」となり、後述するステップＳＢ４２へ処理を進める。
【００５２】
（ｅ）エンドマークＥＭの入力
こうして、ホールドマークＨＭあるいはリリースマークＲＭ付きの音高データ、もしくはマーク無しの音高データを１ステップ分登録し終えると、エンドマークＥＭをソングデータ記憶メモリ７に書き込むべくネクストスイッチ１ｃがオン操作されたとする。そうすると、図１２に示すステップＳＢ４２の判断結果が「ＹＥＳ」となり、ステップＳＢ４３に処理を進める。
ステップＳＢ４３では、ソングデータ記憶メモリ７の直前アドレスのデータが、ステップ終端を表わすエンドマークＥＭか否かを判断する。ここで、直前アドレスがステップ終端であれば、判断結果が「ＹＥＳ」となり、後述するデリートスイッチ１ｅの処理に移行するが、そうでない場合には次のステップＳＢ４４に処理を進める。
【００５３】
ステップＳＢ４４では、ソングデータ記憶メモリ７の現アドレスが先頭アドレスであるか否かを判断し、先頭アドレスに設定されている時には後述するデリートスイッチ１ｅの処理に移行し、一方、そうでない場合には、ステップＳＢ４５に進み、ソングデータ記憶メモリ７および消去バッファの現アドレスにエンドマークＥＭを書き込む。
次に、ステップＳＢ４６に進むと、ＣＰＵ２はソングデータ記憶メモリ７および消去バッファのアドレスを１インクリメントして歩進させ、続くステップＳＢ４７ではノートバッファＮＢ２内のホールドマークＨＭ無しの音高データを全て消去バッファへ移動させる。
【００５４】
以上のように、ステップＳＢ１〜ＳＢ４２では、ワンキープレイスイッチ１ｂおよびトランスポーズアップ／ダウンスイッチ１ｇ，１ｈを使ってソングデータとして登録する音高データを選択し、ホールドスイッチ１ｆおよびインサートスイッチ１ｄを使って、この選択した音高データにホールドマークＨＭ（あるいはリリースマークＲＭ）を付与してソングデータ記憶メモリ７に登録するようになっており、このような登録操作を１ステップ分し終えた時に、ネクストスイッチ１ｃをオン操作してステップの区切りを表わすエンドマークＥＭをソングデータ記憶メモリ７に書き込むようになっている。
【００５５】
▲５▼ソングデータの削除
さて、ソングデータ記憶メモリ７に登録した直前のデータを削除する際にはデリートスイッチ１ｅをオン操作する。すると、オンイベントが発生するから、図１３に示すステップＳＢ４８を介してステップＳＢ４９に処理を進め、ソングデータ記憶メモリ７にデータが記憶されているか否かを判断する。ここで、何等データが記憶されていない時には、消去し得ないので、判断結果が「ＮＯ」となり、一旦、本ルーチンを完了する。
【００５６】
これに対し、何等かのデータがソングデータ記憶メモリ７に記憶されていれば、上記ステップＳＢ４９の判断結果が「ＹＥＳ」となり、次のステップＳＢ５０に処理を進める。ステップＳＢ５０に進むと、ＣＰＵ２はソングデータ記憶メモリ７のアドレスを１デクリメントし、続くステップＳＢ５１では、この１つ戻された現アドレスのデータを消去する。
次いで、ステップＳＢ５２では、この消去したデータがエンドマークＥＭであるか否かを判断し、エンドマークＥＭである時には判断結果が「ＹＥＳ」となり、ステップＳＢ５３へ処理を進め、一方、そうでない場合には判断結果が「ＮＯ」となり、ステップＳＢ６０へ処理を進める。
【００５７】
（ａ）エンドマークＥＭを消去した場合
エンドマークＥＭを消去した場合には、ステップＳＢ５３に進み、消去バッファのアドレスをデクリメントしながら、最新のエンドマークＥＭを検索する。そして、ステップＳＢ５４では、この検索した最新のエンドマークＥＭが消去バッファの先頭アドレスに達する以前のものであるかどうかを判断する。
【００５８】
ここで、消去バッファの先頭アドレスに達する以前に最新のエンドマークＥＭが存在しない場合には、上記ステップＳＢ５４の判断結果は「ＮＯ」となり、ステップＳＢ５５に処理を進める。
ステップＳＢ５５では、消去バッファ内で、先頭アドレス迄に存在する全ての音高データをノートバッファＮＢ２に移動退避させ、続くステップＳＢ５６では消去バッファの現アドレスを先頭アドレスに更新しておく。
【００５９】
一方、消去バッファの先頭アドレスに達する以前に最新のエンドマークＥＭが存在する時には、上記ステップＳＢ５４の判断結果は「ＹＥＳ」となり、ステップＳＢ５７に処理を進める。
ステップＳＢ５７では、消去バッファ内で、最新のエンドマークＥＭ迄の間に存在する全ての音高データをノートバッファＮＢ２に移動退避させ、続くステップＳＢ５８では消去バッファの現アドレスを、最新のエンドマークＥＭに対応するアドレスに更新する。そして、ステップＳＢ５９では、消去バッファにおいて現アドレスに対応するエンドマークＥＭを消去する。
【００６０】
（ｂ）エンドマークＥＭ以外を消去した場合
さて、ソングデータ記憶メモリ７にてエンドマークＥＭ以外を消去した時には、上述したステップＳＢ５２の判断を介してステップＳＢ６０に処理を進める。ステップＳＢ６０に進むと、ＣＰＵ２は、ソングデータ記憶メモリ７においてデータ消去を行った現アドレスが、先頭アドレスであるか否かを判断する。
ここで、現アドレスが先頭アドレスであると、判断結果が「ＹＥＳ」となり、ステップＳＢ６１に処理を進め、ノートバッファＮＢ２内に一時記憶されている全てのデータを消去する。つまり、データ消去を行った時点で現アドレスがソングデータ記憶メモリ７の先頭アドレスであると、当該メモリ７は空状態であり、これに対応させてノートバッファＮＢ２をオールクリアする訳である。
【００６１】
これに対し、現アドレスが先頭アドレスではない場合には、上記ステップＳＢ６０の判断結果が「ＮＯ」となり、ステップＳＢ６２に進む。ステップＳＢ６２では、ソングデータ記憶メモリ７の現アドレスを１デクリメントした後、図１４に示すステップＳＢ６３に進み、この１つ戻された現アドレスに対応するソングデータがホールドマークＨＭであるか否かを判断する。
【００６２】
（イ）ホールドマークＨＭ付きの音高データを消去した場合
さて、ソングデータ記憶メモリ７において、ホールドマークＨＭ付きの音高データを消去した時には、１デクリメントされた現アドレスに対応するソングデータがホールドマークＨＭとなるので、上記ステップＳＢ６３の判断結果は「ＹＥＳ」となり、次のステップＳＢ６４に処理を進める。
【００６３】
ステップＳＢ６４では、ノートバッファＮＢ２内でホールドマークＨＭが付与された音高データを検索する。そして、ステップＳＢ６５では、検索されたホールドマークＨＭ付きの音高データの内、消去した音高データと同一音高のものを探し出してそれを消去する。この後、ステップＳＢ６６に進み、ソングデータ記憶メモリ７の現アドレスに対応するデータ、すなわち、ホールドマークＨＭを消去する。
【００６４】
（ロ）リリースマークＲＭ付きの音高データを消去した場合
この場合、上述したステップＳＢ６３の判断結果が「ＮＯ」となり、ステップＳＢ６７に進む。ステップＳＢ６７では、ソングデータ記憶メモリ７において、１つ戻された現アドレスに対応するソングデータがリリースマークＲＭであるか否かを判断する。そして、現アドレスに対応するソングデータがリリースマークＲＭであると、ここでの判断結果が「ＹＥＳ」となり、次のステップＳＢ６８に処理を進める。
ステップＳＢ６８に進むと、ＣＰＵ２は消去バッファのアドレスを１デクリメントし、続くステップＳＢ６９では、この１つ戻された現アドレスに従って消去バッファから読み出したデータをノートバッファＮＢ２に移動退避させる。そして、ステップＳＢ７０では、ソングデータ記憶メモリ７の現アドレスに対応するデータ、すなわち、リリースマークＲＭを消去する。
【００６５】
（ハ）マーク無しの音高データを消去した場合
この場合、上述したステップＳＢ６３，ＳＢ６７の判断結果がいずれも「ＮＯ」となり、ステップＳＢ７１に進む。ステップＳＢ７１では、ソングデータ記憶メモリ７のアドレスを１インクリメントして歩進させて消去する以前のアドレスに戻す。そして、ステップＳＢ７２では、ノートバッファＮＢ２内でホールドマーク無しの音高データを検索し、続くステップＳＢ７３では、検索されたホールドマーク無しの音高データの内で、消去した音高データと同一音高のものを消去する。
【００６６】
（３）プレイモード処理ルーチンの動作
次に、プレイモード処理ルーチンの動作について説明する。ここでは、図１５に示す操作の一例、すなわち、図３（ハ）に図示したソングデータをワンキープレイする場合を一例に挙げてプレイモード処理について詳述する。
さて、上述した一連の記録モード処理によって、ソングデータ記憶メモリ７に図３（ハ）に図示した形式のソングデータが登録された状態において、ユーザーの操作により記録モードからプレイモードに遷移したとする。そうすると、ＣＰＵ２は前述したステップＳＡ６（図６参照）を介して図１６に図示するプレイモード処理ルーチンを実行し、ステップＳＣ１に処理を進める。
【００６７】
ステップＳＣ１では、プレイモードへの切り換え直後であるか、つまり、モードフラグＭＦがビット反転したかどうかを判断する。ここで、プレイモードへの切り換え直後の場合には、判断結果が「ＹＥＳ」となり、次のステップＳＣ２に処理を進めるが、そうでない場合には後述するステップＳＣ４に処理を進める。
ステップＳＣ２に進むと、ＣＰＵ２はモードＬＥＤ６ａを消灯してプレイモードに遷移した状態を表わし、続くステップＳＣ３では、ソングデータ記憶メモリ７のアドレスをリセットする。
【００６８】
次いで、ステップＳＣ４に進むと、ワンキープレイスイッチ１ｂが新たにオン操作されたか、すなわち、スイッチ操作に対応したオンイベントが発生したか否かを判断する。ここで、スイッチ操作に対応したオンイベントが発生しない場合には、一旦、本ルーチンを完了してメインルーチンに処理を戻すが、例えば、ワンキープレイスイッチ１ｂが押下（オン操作）されると、次のステップＳＣ５に処理を進め、その操作のタッチ（押下速度あるいは押下強度）を検出し、検出したタッチ量に応じた音量データを生成する。
【００６９】
そして、ステップＳＣ６に進むと、ＣＰＵ２はソングデータ記憶メモリ７の現アドレスにデータが有るか、すなわち、読み出すべきソングデータが記憶されているか否かを判断する。
ここで、ソングデータ記憶メモリ７にソングデータが登録されていない時には、判断結果は「ＮＯ」となり、この場合、本ルーチンを完了するが、前述した記憶モード処理によって、例えば図３（ハ）に図示したソングデータが登録されている時には、判断結果が「ＹＥＳ」となり、次のステップＳＣ７に処理を進め、現アドレスに対応したソングデータをソングデータ記憶メモリ７から読み出す。続いて、ステップＳＣ８では、この読み出したデータがエンドマークＥＭであるか否かを判断する。
【００７０】
▲１▼ホールドマークＨＭを読み出した場合
ここで、例えば、図３（ハ）に図示したソングデータがワンキープレイスイッチ１ｂのオン操作によってソングデータ記憶メモリ７から読み出されたとする。そうすると、この場合には、ホールドマークＨＭが最初に読み出されるから、上記ステップＳＣ８の判断結果は「ＮＯ」となり、図１７に示すステップＳＣ９に処理を進める。
ステップＳＣ９では、読み出したデータがホールドマークＨＭであるか否かを判断し、この場合、それに該当するので、判断結果が「ＹＥＳ」となり、次のステップＳＣ１０に進む。
【００７１】
ステップＳＣ１０では、ソングデータ記憶メモリ７の現アドレスを１インクリメントして歩進させ、続くステップＳＣ１１では、この歩進された現アドレスに従って、ホールドマークＨＭに対応した音高データ、すなわち、図３（ハ）に図示したソングデータの場合には、音高データＥ２が読み出される。
そして、ステップＳＣ１２では、読み出した音高データをノートバッファＮＢ１の空きエリアにセットし、続くステップＳＣ１３では、このノートバッファＮＢ１にセットされる音高データに従って音源８の各発音チャンネル毎に対応する楽音の発音を指示する。したがって、図３（ハ）に図示したソングデータの一例では、まずＥ２音が発音されることになる。
【００７２】
この後、ＣＰＵ２はステップＳＣ１４に処理を進め、ソングデータ記憶メモリ７のアドレスを１インクリメントして歩進させ、前述したステップＳＣ６に処理を戻し、次のソングデータの読み出しを行う。
図３（ハ）に図示したソングデータの一例では、上記音高データＥ２に続いて再びホールドマークＨＭが読み出された後、これに対応する音高データＢ４が読み出されてノートバッファＮＢ１にセットされることになる。
つまり、図３（ハ）に図示したソングデータ例の場合、ワンキープレイスイッチ１ｂの最初のオン操作によりｓｔｅｐ１にて登録されたホールドマーク付きの音高データＥ２，Ｂ４がワンキープレイスイッチ１ｂのタッチに対応した音量で発音される。
【００７３】
▲２▼エンドマークＥＭを読み出した場合
こうして、ワンキープレイスイッチ１ｂのオン操作によって、図３（ハ）に図示したｓｔｅｐ１のソングデータが発音開始した状態において、いま例えば、ｓｔｅｐ１の区切りを表わすエンドマークＥＭが読み出されたとする。そうすると、上述したステップＳＣ８の判断結果が「ＹＥＳ」となり、ＣＰＵ２は図１８に示すステップＳＣ１５に処理を進め、ワンキープレイスイッチ１ｂが離される（オフ操作される）迄待機する。
【００７４】
そして、ワンキープレイスイッチ１ｂのオフ操作に応じてオフイベントが発生すると、上記ステップＳＣ１５を経て次のステップＳＣ１６に処理を進め、ノートバッファＮＢ１内のホールドマークＨＭ無しの音高データを検索する。次いで、ステップＳＣ１７では、検索されたホールドマークＨＭ無しの音高データを、全てノートバッファＮＢ１から消去する。この後、ステップＳＣ１８では、次のデータ読み出しに備え、ソングデータ記憶メモリ７のアドレスを１インクリメントして歩進させ、一旦、本ルーチンを完了させる。
【００７５】
このように、エンドマークＥＭが読み出された場合には、ワンキープレイスイッチ１ｂのオン操作に応じて発音された音の内、ホールドマークＨＭ無しの音高データに対応する楽音がワンキープレイスイッチ１ｂのオフ操作と共にリリースされ、ホールドマークＨＭ付きの音高データに対応する楽音は発音が持続されるようになっている。
【００７６】
▲３▼マーク無しの音高データを読み出した場合
この場合には、前述したステップＳＣ８（図１６参照）およびステップＳＣ９（図１７参照）の判断結果が共に「ＮＯ」となり、図１７に示すステップＳＣ１９に進む。ステップＳＣ１９に進むと、ＣＰＵ２は、読み出したデータがリリースマークＲＭであるか否かを判断し、マーク無しの音高データを読み出した時には、判断結果が「ＮＯ」となり、ステップＳＣ１２に進む。
【００７７】
そして、ステップＳＣ１２では、上述したように、読み出した音高データをノートバッファＮＢ１の空きエリアにセットし、続くステップＳＣ１３では、このノートバッファＮＢ１にセットされる音高データに従って音源８の各発音チャンネル毎に対応する楽音の発音を指示する。この後、ステップＳＣ１４を介してソングデータ記憶メモリ７のアドレスを歩進させてステップＳＣ６（図１６参照）に処理を戻す。
【００７８】
▲４▼リリースマークＲＭを読み出した場合
一方、リリースマークＲＭを読み出した場合には、上述のステップＳＣ１９の判断結果が「ＹＥＳ」となり、ステップＳＣ２０に処理を進める。ステップＳＣ２０では、このリリースマークＲＭに対応した音高データを読み出すべく、ソングデータ記憶メモリ７のアドレスを１インクリメントして歩進させ、続くステップＳＣ２１にて対応する音高データを読み出す。
【００７９】
そして、ステップＳＣ２２に進むと、この読み出した音高データと同一音高であって、ホールドマークＨＭ付きの音高データを、ノートバッファＮＢ１内で検索する。次いで、ステップＳＣ２３では、こうして検索された音高データを、ノートバッファＮＢ１から消去し、その音高データに対応した楽音のリリース（消音）を指示した後、次のソングデータを読み出すべくステップＳＣ１４を介してソングデータ記憶メモリ７のアドレスを歩進させた後、ステップＳＣ６に処理を戻す。
【００８０】
このように、リリースマークＲＭを読み出すと、そのリリースマークＲＭが付与された音高データと同一音高の、ホールドマークＨＭによって持続発音されていた楽音が、リリースマークＲＭの読み出しに対応して消音される訳である。
【００８１】
したがって、図１５に図示した操作を行うと、上述した一連の処理から判るように、まず、ワンキープレイスイッチ１ｂのオン操作すると（ｓｔｅｐ１）、Ｅ２音およびＢ４音が発音され、これら両音はワンキープレイスイッチ１ｂがオフ操作されても発音を持続する。
【００８２】
そして、次にワンキープレイスイッチ１ｂをオン操作すると（ｓｔｅｐ２）、Ｂ３音が発音され、これもホールドマーク付きの楽音なので、ワンキープレイスイッチ１ｂがオフ操作されても発音を持続する。
次いで、ワンキープレイスイッチ１ｂを再びオン操作すると（ｓｔｅｐ３）、Ｇ３音が発音され、これもホールドマーク付きの楽音なので、ワンキープレイスイッチ１ｂがオフ操作されても発音を持続する。
【００８３】
続いて、ワンキープレイスイッチ１ｂをオン操作すると（ｓｔｅｐ４）、リリースマークＲＭ付きの音高データＢ４，Ｂ３およびＧ３が読み出され、これに応じて持続発音中にあったＢ４音、Ｂ３音およびＧ３音が消音されると同時に、新たにＢ３音が持続される。
そして、続いてワンキープレイスイッチ１ｂをオン操作すると（ｓｔｅｐ５）、リリースマーク付きの音高データＥ２およびＢ３が読み出され、これに応じて持続発音中にあったＥ２音およびＢ３音が消音されると同時に、新たにマーク無しのＥ２音およびＧ３音が発音され、ワンキープレイスイッチ１ｂのオフ操作に従って、このマーク無しのＥ２音およびＧ３音が消音されるようになっている。
【００８４】
このように、本実施例によれば、ワンキープレイスイッチ１ｂが押されたら（オン操作されたら）発音し、離されたら（オフ操作されたら）消音する従来のワンキープレイ態様の他、ホールドマークＨＭおよびリリースマークＲＭを有する形式の音高データをソングデータ記憶メモリ７に登録しておき、ワンキープレイスイッチ１ｂのオン操作に対応してホールドマークＨＭ付きの音高データが読み出された時には、当該スイッチ１ｂが離されても（オフ操作されても）消音せずそのまま発音を持続させ、ワンキープレイスイッチ１ｂのオン操作に対応してリリースマークＲＭ付きの音高データが読み出された時には、そのリリースマークＲＭが付与された音高データと同一音高の、ホールドマークＨＭによって持続発音されていた楽音を消音させるようにしたので、ただ単にキーの押下（オン操作）に応じて発音させ、そのキーを離す（オフ操作）ことで消音させる従来のワンキープレイに比べ、演奏形態が多様化し、変化に富んだワンキープレイを実現し得る。
【００８５】
なお、本実施例では、ワンキープレイにて所望の期間、持続発音させるようにする為、ホールドマークＨＭおよびリリースマークＲＭを設けたが、これに限らず、例えば、これらマーク中に音色選択するための音色指定データを含めておき、この音色指定データを参照してワンキープレイ中に音色変更させれば、更に多様な演奏態様を実現し得る。
また、音高データに付与するマーク中に効果処理の内容を指定する効果指定データを含め、この効果指定データを参照して音源が発生する楽音に所定の効果を付与することもできる。
【００８６】
【発明の効果】
本発明によれば、演奏操作子がオン操作される度に、記憶手段に記憶されている音高データを読み出し、第１の指示データが付加されていない音高データを読み出した場合には、その音高データに対応する楽音を発音させ、演奏操作子がオフ操作された時点でその楽音を消音させる一方で、第１の指示データが付加されている音高データを読み出した場合には、この第１の指示データが付加された音高データに対応する楽音を発生させるとともに、演奏操作子がオフ操作されても発音を持続させるので、ただ単に演奏操作子の押下（オン操作）に応じて発音させ、その演奏操作子を離す（オフ操作）ことで消音させる従来のワンキープレイに比べ、指示データに応じた楽音をも発生し得るから、演奏形態が多様化して変化に富んだワンキープレイを実現することができる。
【図面の簡単な説明】
【図１】本発明による一実施例の構成を示すブロック図である。
【図２】パネルスイッチ群１に配設される各種スイッチ１ａ〜１ｈおよび表示部６を示す図である。
【図３】ソングデータ形式およびソングデータの一例を示す図である。
【図４】ノートバッファＮＢ１を説明するための図である。
【図５】ノートバッファＮＢ２を説明するための図である。
【図６】メインルーチンの動作を示すフローチャートである。
【図７】記録モード下での操作手順の一例を示す図である。
【図８】記録モード処理ルーチンの動作を示すフローチャートである。
【図９】記録モード処理ルーチンの動作を示すフローチャートである。
【図１０】記録モード処理ルーチンの動作を示すフローチャートである。
【図１１】記録モード処理ルーチンの動作を示すフローチャートである。
【図１２】記録モード処理ルーチンの動作を示すフローチャートである。
【図１３】記録モード処理ルーチンの動作を示すフローチャートである。
【図１４】記録モード処理ルーチンの動作を示すフローチャートである。
【図１５】プレイモード下での操作手順の一例を示す図である。
【図１６】プレイモード処理ルーチンの動作を示すフローチャートである。
【図１７】プレイモード処理ルーチンの動作を示すフローチャートである。
【図１８】プレイモード処理ルーチンの動作を示すフローチャートである。
【符号の説明】
１ｂ  ワンキープレイスイッチ（演奏操作子）
２  ＣＰＵ（読出し手段、第１の楽音発生手段、第２の楽音発生手段）
３  ＲＡＭ
４  ＲＯＭ
５  ドライバ
６  表示部
７  ソングデータ記憶メモリ（記憶手段）
８  音源（第１の楽音発生手段、第２の楽音発生手段）
【図１】
0003658719.tif 000002
【図２】
0003658719.tif 000003
【図３】
0003658719.tif 000004
【図４】
0003658719.tif 000005
【図５】
0003658719.tif 000006
【図６】
0003658719.tif 000007
【図７】
0003658719.tif 000008
【図８】
0003658719.tif 000009
【図９】
0003658719.tif 000010
【図１０】
0003658719.tif 000011
【図１１】
0003658719.tif 000012
【図１２】
0003658719.tif 000013
【図１３】
0003658719.tif 000014
【図１４】
0003658719.tif 000015
【図１５】
0003658719.tif 000016
【図１６】
0003658719.tif 000017
【図１７】
0003658719.tif 000018
【図１８】
0003658719.tif 000019