(57)【特許請求の範囲】
【請求項１】
演奏操作子を少なくとも一つ備えた演奏装置において、
前記演奏操作子へのユーザのオン及びオフ操作を検出する検出手段と、
特定された音階で発音あるいは消音を指示するイベントに、当該イベントを処理すべきタイミングを表す時間データを付加して構成された演奏データを記憶した記憶手段と、
この記憶手段に記憶されているイベントを当該イベントに付加されている時間データに基づいて順次読み出すとともに、前記検出手段が前記演奏操作子がオン操作されていると検出している場合は、当該読み出されたイベントに基づき、接続された音源に対して発音あるいは消音の指示を行う自動演奏手段と、
前記検出手段により前記演奏操作子のオン操作が検出されかつ前記音源が消音状態にあるときは、前記自動演奏手段により前記記憶手段に記憶された次の発音を指示するイベントが読み出されるタイミングまでの時間が所定時間内か否かを判定する判定手段と、
この判定手段により所定時間内と判定された場合は、前記記憶手段から当該次のイベントを読み出し、読み出された発音を指示するイベントに基づき、前記音源に対して発音の指示を行う処理手段と、
を具備したことを特徴とする演奏装置。
【請求項２】
前記自動演奏手段は、前記演奏操作子のオン操作が検出されかつ前記音源が発音状態にあるときに、前記記憶手段から発音を指示する次のイベントが読み出された場合は、ポルタメント効果により発音中の音高から当該次のイベントで特定される音高まで変更させるポルタメント指示手段を有する
ことを特徴とする請求項１記載の演奏装置。
【請求項３】
前記記憶手段に記憶されたイベントは、複数のチャンネル毎に分割され、前記自動演奏手段は、特定のチャンネルに属するイベントが読み出された場合にのみ当該読み出されたイベントに基づき、前記音源に対して発音あるいは消音の指示を行い、
前記演奏装置は更に、前記判定手段により所定時間以上と判定された場合は、前記特定のチャンネル以外のチャンネルに属する発音を指示するイベントに基づいて前記音源に対して発音の指示を行う伴奏手段を有する
ことを特徴とする請求項１記載の演奏装置。
【請求項４】
前記伴奏手段にて指示される発音の音色と、前記処理手段にて指示される発音の音色とを異ならせた
ことを特徴とする請求項３記載の演奏装置。
【請求項５】
特定された音階で発音あるいは消音を指示するイベントに、当該イベントを処理すべきタイミングを表す時間データを付加して構成された演奏データを記憶した記憶手段を有し、演奏操作子を少なくとも一つ備えた演奏装置に適用されるプログラムを記憶した記録媒体であって、
前記演奏操作子へのユーザのオン及びオフ操作を検出する検出手段と、
前記記憶手段に記憶されているイベントを当該イベントに付加されている時間データに基づいて順次読み出すとともに、前記検出手段が前記演奏操作子がオン操作されていると検出している場合は、当該読み出されたイベントに基づき、接続された音源に対して発音あるいは消音の指示を行う自動演奏手段と、
前記検出手段により前記演奏操作子のオン操作が検出されかつ前記音源が消音状態にあるときは、前記自動演奏手段により前記記憶手段に記憶された次の発音を指示するイベントが読み出されるタイミングまでの時間が所定時間内か否かを判定する判定手段と、
この判定手段により所定時間内と判定された場合は、前記記憶手段から当該次のイベントを読み出し、読み出された発音を指示するイベントに基づき、前記音源に対して発音の指示を行う処理手段と、
に対して、処理を実行させるためのプログラムを記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、演奏データで表現される演奏を、少なくとも一つの演奏操作子へのユーザの操作に応じて実行する技術に関する。
【０００２】
【従来の技術および発明が解決しようとする課題】
電子楽器等の楽音生成装置に搭載される機能の一つに、少なくとも一つの演奏操作子への操作に応じて演奏データで設定されている楽音を順次発音させていく機能がある。その機能を用いた場合、ユーザは発音させる楽音の音高に合った演奏操作子を必ずしも操作する必要はなくなることから、それだけ簡単に所望の演奏を行えるようになる。なお、その機能については、ここでは便宜的に演奏再生機能と呼ぶことにする。
【０００３】
従来の演奏再生機能（演奏装置）で用いられる演奏データの多くは、演奏上のイベントを表すイベントデータをそれの処理順序に並べたようにして構成されている。その演奏データを用いた従来の演奏の再生は、演奏操作子が操作される度にイベントデータを順次処理することで行っていた。楽音が発音されるタイミングや演奏の進行は、ユーザの演奏操作子への操作に依存するようになっていた。そのため、楽音を発音させるべきタイミングで演奏操作子を操作していくことができないようなユーザは、聴感上、本来の演奏（メロディ）とは大きく異なる演奏を再生させることしかできなかった。
【０００４】
また、楽音を発音させるべきタイミングを把握していても、誤操作すると、それによって演奏のリズムを崩して、それ以降の演奏を適正なリズムで継続できなくなるようなこともあった。
【０００５】
これらのことは、初心者は勿論のこと、楽譜の解釈（例えば音符と歌詞との対応関係）等を誤解しているような場合には、上級者にも発生することがある。そのため、従来の操作生成機能（演奏装置）では、ユーザ（演奏者）は必ずしも音楽的に自然な演奏を行うことができないという不具合があった。
【０００６】
その不具合を回避するようにした従来の演奏装置としては、例えば特開平７−１５２３７２号公報に開示されている演奏装置がある。その演奏装置では、イベントデータにそれを処理すべき時間データを付加して構成された演奏データを採用している。演奏操作子への操作に応じた楽音の発音は、時間データに沿って処理対象を変更していくイベントデータを処理することで行っている。そのため、演奏操作子を操作していくタイミングを把握していないユーザであっても、演奏操作子への操作を継続して行っていれば、結果として演奏のリズムが大きく崩れるようなことがないようになっていた。
【０００７】
しかし、この演奏装置では、時間データに沿って楽音を発音させることで、演奏データが表す演奏（以降、基本演奏、或いは本来の演奏と表現する）を再生することを基本としている。そのため、ユーザが行える音楽表現の幅は非常に狭いという問題点があった。
【０００８】
本発明の課題は、音楽的に自然な印象を損なわせることなく、ユーザが行える音楽表現の幅を広げることにある。
【０００９】
【課題を解決するための手段】
本発明の演奏装置は、演奏操作子を少なくとも一つ備えていることを前提とし、前記演奏操作子へのユーザのオン及びオフ操作を検出する検出手段と、特定された音階で発音あるいは消音を指示するイベントに、当該イベントを処理すべきタイミングを表す時間データを付加して構成された演奏データを記憶した記憶手段と、この記憶手段に記憶されているイベントを当該イベントに付加されている時間データに基づいて順次読み出すとともに、検出手段が演奏操作子がオン操作されていると検出している場合は、当該読み出されたイベントに基づき、接続された音源に対して発音あるいは消音の指示を行う自動演奏手段と、検出手段により演奏操作子のオン操作が検出されかつ音源が消音状態にあるときは、自動演奏手段により記憶手段に記憶された次の発音を指示するイベントが読み出されるタイミングまでの時間が所定時間内か否かを判定する判定手段と、この判定手段により所定時間内と判定された場合は、記憶手段から当該次のイベントを読み出し、読み出された発音を指示するイベントに基づき、音源に対して発音の指示を行う処理手段と、を具備する。
【００１０】
なお、上記の構成において、自動演奏手段は、演奏操作子のオン操作が検出されかつ前記音源が発音状態にあるときに、前記記憶手段から発音を指示する次のイベントが読み出された場合は、ポルタメント効果により発音中の音高から当該次のイベントで特定される音高まで変更させるポルタメント指示手段を有する、ことが望ましい。
【００１１】
また、記憶手段に記憶されたイベントは、複数のチャンネル毎に分割され、自動演奏手段は、特定のチャンネルに属するイベントが読み出された場合にのみ当該読み出されたイベントに基づき、前記音源に対して発音あるいは消音の指示を行い、演奏装置は更に、判定手段により所定時間以上と判定された場合は、特定のチャンネル以外のチャンネルに属する発音を指示するイベントに基づいて前記音源に対して発音の指示を行う伴奏手段を有する、ことが望ましい。
【００１２】
また、伴奏手段にて指示される発音の音色と、処理手段にて指示される発音の音色とを異ならせる、ことが望ましい。
【００１５】
本発明の記憶媒体は、特定された音階で発音あるいは消音を指示するイベントに、当該イベントを処理すべきタイミングを表す時間データを付加して構成された演奏データを記憶した記憶手段を有し、演奏操作子を少なくとも一つ備えた演奏装置に適用されるプログラムを記憶した記録媒体であって、演奏操作子へのユーザのオン及びオフ操作を検出する検出手段と、記憶手段に記憶されているイベントを当該イベントに付加されている時間データに基づいて順次読み出すとともに、検出手段が演奏操作子がオン操作されていると検出している場合は、当該読み出されたイベントに基づき、接続された音源に対して発音あるいは消音の指示を行う自動演奏手段と、検出手段により演奏操作子のオン操作が検出されかつ音源が消音状態にあるときは、自動演奏手段により記憶手段に記憶された次の発音を指示するイベントが読み出されるタイミングまでの時間が所定時間内か否かを判定する判定手段と、この判定手段により所定時間内と判定された場合は、記憶手段から当該次のイベントを読み出し、読み出された発音を指示するイベントに基づき、音源に対して発音の指示を行う処理手段と、に対して処理を実行させるためのプログラムを記録している。
【００１７】
本発明の演奏装置は、演奏操作子へのユーザのオン及びオフ操作を検出するとともに、記憶手段に記憶されているイベントを当該イベントに付加されている時間データに基づいて順次読み出し、演奏操作子がオン操作されていると検出している場合には、当該読み出されたイベントに基づき、接続された音源に対して発音あるいは消音の指示を行うことにより演奏を行う。そして演奏操作子のオン操作が検出されかつ音源が消音状態にあるときは、記憶手段に記憶され次の発音を指示するイベントが読み出されるタイミングまでの時間が所定時間内か否かを判定する判定手段と、この判定手段により所定時間内と判定された場合は、記憶手段から当該次のイベントを読み出し、読み出された発音を指示するイベントに基づき、音源に対して発音の指示を行う。
【００１８】
時間データを考慮してイベントデータを処理することで、演奏操作子への操作に応じて楽音を発音させるタイミングが本来の演奏から大きくずれるようなことは回避される。また、演奏操作子が操作されたタイミングを考慮することで、ユーザの演奏操作子への操作が実際の演奏上に反映されることになる。これらのことから、音楽的に自然な印象を損なわせることなく、ユーザが行える音楽表現の幅が広がることになる。
【００２１】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態につき詳細に説明する。
＜第１の実施の形態＞
図１は、本実施の形態による演奏装置を搭載した電子楽器の構成図である。
【００２２】
その電子楽器は、図１に示すように、楽器全体の制御を行うＣＰＵ１０１と、そのＣＰＵ１０１が実行するプログラムや演奏データ等を格納したＲＯＭ１０２と、ＣＰＵ１０１がワーク用に使用するＲＡＭ１０３と、自動演奏の実行等に使用されるタイマ１０４と、多数の鍵（演奏操作子）を有する鍵盤１０５と、各種スイッチからなるスイッチ群１０６と、ＣＰＵ１０１の指示に従って楽音を発音する音源システム１０７とを備えて構成される。
【００２３】
以上の構成において、その動作を説明する。
不図示の電源がオンされると、ＣＰＵ１０１はＲＯＭ１０２に格納されたプログラムを読み出して実行することにより、楽器全体の制御を開始する。その後は、ＲＡＭ１０３を作業用に使用しながら、スイッチ群１０６や鍵盤１０５から送られた情報に応じた各部の制御を行う。
【００２４】
鍵盤１０５は、ＣＰＵ１０１の指示に従い、各鍵を走査し、その走査結果（操作情報）を予め定められた形式、例えばＭＩＤＩデータの形でＣＰＵ１０１に送る。ＣＰＵ１０１は、そのＭＩＤＩデータを受け取ると、例えばそれをそのまま制御コマンドとして音源システム１０７に送出する。
【００２５】
その音源システム１０７は、例えば楽音の波形データを生成する音源ＬＳＩ、その音源ＬＳＩから出力された波形データをアナログのオーディオ信号に変換するＤ／Ａコンバータ、そのオーディオ信号を増幅するアンプ、及びアンプが出力したオーディオ信号を入力して楽音を放音するスピーカ等から構成される。上記音源ＬＳＩが、ＣＰＵ１０１から受け取った制御コマンドに従って波形データを生成することにより、鍵盤１０５への操作に応じて楽音が放音される。
【００２６】
スイッチ群１０６は、例えば特には図示しない制御回路がＣＰＵ１０１の指示に従い、各スイッチを走査することで操作状態を検出し、その検出結果（操作情報）をＣＰＵ１０１に送るようになっている。ＣＰＵ１０１は、その操作情報に応じて各部を制御することで、モードや音響効果、テンポ、音色といった各種の設定等を行う。
【００２７】
そのスイッチ群１０６を構成するスイッチの中には、特には図示しないが、演奏操作子への操作に応じて予め設定された演奏を行うモードを設定するためのモードスイッチがある。そのスイッチを介してユーザがモードを設定すると、ＣＰＵ１０１は、以下のようにして演奏操作子への操作に応じた演奏を行う。
【００２８】
第１の実施の形態では、そのモード設定時にユーザの操作対象となる演奏操作子を一つとしている。鍵とは別に鍵盤１０５が備えているキー１０５ａが、その演奏操作子である。以降は便宜的に、そのキー１０５ａをワンキー（或いはワンキースイッチ）１０５ａ、それを操作対象として演奏を行うモードをワンキープレイモードと呼ぶことにする。
【００２９】
ワンキープレイモードで演奏される内容を表す演奏データは、上記したように、ＲＯＭ１０２に格納されている。その演奏データは、自動演奏を行うためのデータと同じように、演奏上のイベントを表すイベントデータに、そのイベントが発生するタイミングを表す時間データが付加されて構成されている。そのイベントデータは、第１の実施の形態では、楽音の音高（音階）を表す音高データ、音色を表す音色データ、及び楽音の発音期間を表す音符長（ゲートタイム）データから構成されている。時間データは、直前のイベントとの時間差（デルタタイム）を表すデータである。ＲＯＭ１０２には、そのような構成の演奏データが複数格納されている。ユーザは、そのなかから所望の演奏データ（曲）をスイッチ群１０６を介して選択するようになっている。
【００３０】
ＣＰＵ１０１は、ワンキープレイモードが設定された場合、例えば演奏開始を指示するためのスタートスイッチ（或いはスタート／ストップスイッチ）への操作、或いはそのモードが設定後のワンキー１０５ａへの最初の操作を待って演奏を開始する。演奏を開始する際には、タイマ１０４に制御コマンドを送り、計時を開始させる。
【００３１】
演奏を開始後は、ワンキー１０５ａへの操作を監視するとともに、タイマ１０４の値を随時参照し、各イベントデータに付加された時間データに従って処理対象とするイベントデータをワンキー１０５ａへの操作の有無とは独立的に移行させる。言い換えれば、演奏データの処理を内部で独立的に進行させる。演奏データ上からイベントデータを処理対象とする期間は、それを処理対象としてから音符長データで表された時間が経過するまでの期間である（その期間は、演奏データを単に処理していった場合に、イベントデータで指定された楽音を発音させている期間と一致する）。
【００３２】
ワンキー１０５ａへの操作に応じて発音させる楽音は、処理対象となっているイベントデータを処理することで発音させる。そのイベントデータは、上記のように、本来の演奏（メロディ）の進行（流れ）に沿って変更させている。そのため、ワンキー１０５ａを操作することで発音される楽音が、本来の演奏（メロディ）からタイミングを大きく外れるようなことが回避される。それにより、楽音を発音させていくタイミングを把握していないようなユーザがワンキー１０５ａを操作しても、本来の演奏と基本的には同じ流れで演奏（メロディ）が奏でられることになる。演奏（メロディ）を聴いている人に、音楽的に自然な印象を損なわせるといったことが回避される。
【００３３】
ワンキー１０５ａへの操作としては、オンとオフがある。ユーザが実際に演奏を行っている印象を持てるようにするうえでは、楽音の発音の開始、それの終了を、ユーザの操作に合わせることが望ましい。当然のことながら、そうすることによって演奏が不自然となるのは好ましくない。このことから、第１の実施の形態では、以下のようにイベントデータを処理し、ワンキー１０５ａへの操作に応じて楽音を発音させている。
【００３４】
楽音の発音開始では、次に処理対象とするイベントデータが処理対象期間となる前にワンキー１０５ａがオンされた場合、そのオンタイミングが処理対象期間よりも僅かに早いのであれば、そのイベントデータを処理対象として処理し、楽音を発音させる。処理対象期間となってからワンキー１０５ａがオンされたのであれば、そのオンタイミングで処理対象のイベントデータを処理し、楽音を発音させる。
【００３５】
一方、楽音の発音終了では、処理対象期間内にワンキー１０５ａがオフされたのであれば、そのオフタイミングで発音中の楽音を消音させる。処理対象期間を越えてワンキー１０５ａをオンし続ければ、その処理対象期間が終了するタイミングで発音中の楽音を消音させる。
【００３６】
このように、第１の実施の形態では、時間データと音符長データとから特定される処理対象期間、更にはそれよりも僅かに早い期間までをワンキー１０５ａの操作を有効とし、その間に行われたワンキー１０５ａへの操作に応じて楽音を発音させている。楽音の発音開始や消音のタイミングを変化させられるようにしている。それにより、演奏が不自然となるのを回避しつつ、より幅広い音楽表現を可能としている。ユーザが演奏（メロディ）により幅広い音楽表現を付加できるようにしている。なお、ワンキー１０５ａの操作を有効として楽音が発音される期間、即ちワンキー１０５ａへの操作に応じて処理対象期間を拡張させる期間については、上記処理対象期間と区別するために、実処理対象期間と呼ぶことにする。
【００３７】
次に、上記ＣＰＵ１０１の動作について、図２〜図４に示す各種の動作フローチャートを参照して詳細に説明する。それらの動作フローチャートは、ＣＰＵ１０１が、ＲＯＭ１０２に格納されたプログラムを読み出して実行することで実現される。
【００３８】
図２は、全体処理の動作フローチャートである。始めに、この図２を参照して、全体処理について詳細に説明する。
電子楽器の特には図示しない電源がオンされ、ＲＯＭ１０２に格納されているプログラムの実行を開始したＣＰＵ１０１は、先ず、ステップ２０１でイニシャル処理を行う。そのイニシャル処理によって、音源システム１０７は予め定められた状態に初期設定される。その後、ステップ２０２に移行する。
【００３９】
ステップ２０２では、スイッチ（ＳＷ）処理を行う。このスイッチ（ＳＷ）処理は、スイッチ群１０６が各スイッチを走査して得られるそれらの操作情報を受け取り、その受け取った操作情報に応じて各種設定を行う処理である。これを実行することで、ワンキープレイモードの設定や解除、そのモードで演奏する曲（演奏データ）の選択等が実現されることになる。
【００４０】
ステップ２０２に続くステップ２０３では、鍵盤処理を行う。この鍵盤処理は、鍵盤１０５が各鍵を走査して得られるそれらの操作情報を受け取り、その受け取った操作情報に応じて、発音させるべき楽音、或いは消音させるべき楽音を決定する処理である。それが終了すると、ステップ２０４に移行する。
【００４１】
ステップ２０４では、鍵盤１０５に設けられたワンキー１０５ａへの操作に応じて演奏を行うためのワンキーＳＷ処理を実行する。それが終了すると、ステップ２０５に移行して、自動演奏再生処理を実行する。それらワンキーＳＷ処理、自動演奏再生処理についての詳細は後述する。
【００４２】
ステップ２０５に続くステップ２０６では、ステップ２０２のＳＷ処理、ステップ２０３の鍵盤処理の結果に従って、音源システム１０７を制御する音源処理を実行する。それが終了すると、ステップ２０７において、特には図示しないＭＩＤＩ端子を介したＭＩＤＩデータの送受信を行うといったその他の処理を実行する。その後、ステップ２０２に戻る。
【００４３】
このように、ステップ２０２〜２０７は処理ループを形成している。その処理ループを繰り返し実行することにより、電子楽器に搭載された機能が実現され、ワンキー１０５ａへの操作に応じて楽音が発音されることになる。
【００４４】
図３は、上記ステップ２０４として実行されるワンキーＳＷ処理の動作フローチャートである。次に、図３を参照して、そのワンキーＳＷ処理の内容について詳細に説明する。
【００４５】
先ず、ステップ３０１では、鍵盤１０５にワンキー１０５ａ（ＳＷ）の走査を指示する。続くステップ３０２では、そのワンキー１０５ａの走査結果を受け取り、ワンキー１０５ａの操作状態の変化を判定する。走査結果からワンキー１０５ａの操作状態が変化していないと判定した場合、ここで一連の処理を終了し、ワンキー１０５ａがオンされたと判定した場合には、ステップ３０３に移行する。
【００４６】
ステップ３０３では、ワンキー１０５ａの操作状態を把握するためのワンキーＳＷステータス（ＲＡＭ１０３に保持される変数である）に、ワンキー１０５ａがオン中であることを表す値を代入する。このとき、ワンキー１０５ａのオンがワンキープレイモード設定後における最初のオンであれば、タイマ１０４に制御コマンドを送り、計時をスタートさせる。
【００４７】
ステップ３０３に続くステップ３０４では、ワンキー１０５ａへの操作で再生させる演奏（メロディ）のチャンネル（以降、ワンキー再生チャンネル（ＣＨ）と呼ぶ）で処理対象期間、言い換えれば、演奏データ上では発音中（ノートオン中）となっている楽音（音符）があるか否か判定する。演奏データ上では発音中となっている楽音がある場合、その判定はＹＥＳとなって一連の処理を終了する。そうでない場合には、その判定はＮＯとなってステップ３０５に移行する。なお、演奏データ上では発音中となっている楽音がある場合には、後述する自動演奏再生処理で楽音の発音が指示されることになる。
【００４８】
処理対象期間と実処理対象期間とは、その大部分が一致するが、一致していない部分がある。ステップ３０５〜３０８の処理は、その一致していない部分の期間内にワンキー１０５ａがオンされた場合に対応するための処理である。
【００４９】
先ず、ステップ３０５では、ワンキー再生チャンネルで次のイベントデータ（音符）を読み出すまでの残り時間、即ち次のイベントデータを処理対象期間とするまでの残り時間が所定時間以内か否か判定する。その残り時間が所定時間以内、即ち次のイベントデータの実処理対象期間内であった場合、その判定はＹＥＳとなってステップ３０６に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【００５０】
上記残り時間は、変数に保持させている値であり、その値は時間の経過に応じて更新（減算）するようになっている。その変数については、以降、残り時間管理用変数と呼ぶことにする。演奏データは、楽曲のパート毎にチャンネルを割り当てて作成している。ワンキー１０５ａへの操作に応じて発音させる演奏（メロディ）は、１チャンネル分の演奏である。このようなことから、残り時間管理用変数は、各チャンネル毎に用意されている。
【００５１】
ステップ３０６では、次のイベントデータに処理対象を移行させるとともに、残り時間管理用変数に新たな値を代入する。具体的には、それまでの値（次のイベントデータが処理対象期間となるまでの残り時間）に、イベントデータ中の音符長データの値を加算した値、即ちそのイベントデータの処理対象期間が終わるまでの時間を示す値を残り時間管理用変数に代入する。その後、ステップ３０７に移行する。
【００５２】
ステップ３０７では、ステップ３０６で処理対象としたイベントデータが表す楽音の発音を指示する。続くステップ３０８では、ワンキー再生チャンネルで発音中の楽音を管理するためのデータとして、イベントデータ中の音高データ、及び音色データを保持するとともに、変数であるワンキー発音ステータスに楽音が発音中であることを表す値を代入する。その後、一連の処理を終了する。なお、楽音の発音の指示は、ＣＰＵ１０１が、イベントデータ中の音高データ、音色データを基にＭＩＤＩデータを生成し、それを音源システム１０７に送出することで行われる。
【００５３】
このようにして、次の処理対象となるイベントデータの処理対象期間よりも所定時間内で早くワンキー１０５ａがオンされた場合、ワンキーＳＷ処理内でそのイベントデータが処理され、楽音が発音されることになる。
【００５４】
一方、ユーザがワンキー１０５ａがオフした場合、ステップ３０２でそのことが判定され、次にステップ３０９が実行される。そのステップ３０９では、ワンキー１０５ａがオフされたことから、ワンキーＳＷステータスに、ワンキー１０５ａがオフ中であることを表す値をセットする。その後、ステップ３１０に移行する。
【００５５】
ステップ３１０では、ワンキー再生チャンネルで実際に発音中の楽音（音符）があるか否か判定する。ワンキー発音ステータスに楽音が発音中であることを示す値が代入されていた場合、その判定はＹＥＳとなってステップ３１１に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【００５６】
ステップ３１１では、現在ワンキー再生チャンネルで発音中の楽音の消音を音源システム１０７に指示する。その楽音は、発音中の楽音を管理するためのデータとして保持している音高データ、及び音色データとで特定される楽音である。その後に移行するステップ３１２では、楽音の消音を指示したことに伴い、それら音高データ、及び音色データをクリアし、ワンキー発音ステータスに発音中の楽音が無いことを表す値をセットする。その後、一連の処理を終了する。
【００５７】
このようにして、ワンキー１０５ａが処理対象期間内でオフされた場合、そこで楽音を消音させている。それにより、ユーザが楽音を消音させるタイミングを変えられるようにさせている。
【００５８】
図４は、図２に示す全体処理中でステップ２０５として実行される自動演奏再生処理の動作フローチャートである。次に、この図４を参照して、その処理内容について詳細に説明する。
【００５９】
先ず、ステップ４０１では、それ以降の処理を実行してから予め定めた単位時間が経過したか否か判定する。その単位時間が経過していた場合、その判定はＹＥＳとなってステップ４０２に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。このようにして、自動演奏再生処理は、実質的には単位時間が経過する毎に実行するようになっている。なお、単位時間の経過は、例えば、前回の実行時でのタイマ１０４の値と、現在のタイマ１０４の値とを比較することで判定している。
【００６０】
ステップ４０２では、楽音を発音させるチャンネル番号を初期化するとともに、単位時間の経過の判定用として現在のタイマ１０４の値を保持する。チャンネル番号の初期化は、予め用意した変数に、チャンネル番号のなかで最も小さい値を代入することで行われ、タイマ１０４の値の保持は、その値の保持に用意した変数に代入させることで行われる。チャンネル番号の値を代入させた変数は、処理対象とするチャンネルの管理に用いることから、以降、チャンネル管理用変数と呼ぶことにする。
ステップ４０２に続くステップ４０３では、チャンネル管理用変数の値で指定されるチャンネルの残り時間管理用変数の値を更新する。具体的には、単位時間の経過したことから、その値から単位時間（を表す値）を減算し、その減算後の値を残り時間管理用変数に新たに代入する。それが終了した後、ステップ４０４に移行する。
【００６１】
ステップ４０４では、残り時間管理用変数の値が０以下となったか否か判定する。その値は、次のイベントデータの処理対象期間が開始するか、或いはそれが終了した場合に０以下となる。そのため、それらのうちの何れかに該当していた場合、その判定はＹＥＳとなってステップ４０７に移行する。そうでない場合には、その判定はＮＯとなってステップ４０５に移行する。
【００６２】
ステップ４０５では、チャンネル管理用変数の値が最終のチャンネルの番号、即ちチャンネル番号のなかで最大の値となっているか否か判定する。各チャンネルを一通り処理した場合、その判定はＹＥＳとなって一連の処理が終了する。そうでない場合には、その判定はＮＯとなってステップ４０６に移行する。そのステップ４０６では、チャンネル管理用変数の値をインクリメントし、処理対象とするチャンネルを変更する。その後、ステップ４０３に移行する。
【００６３】
一方、ステップ４０７では、チャンネル管理用変数の値によって指定されるチャンネルのデータ（イベントデータ）をＲＯＭ１０２から読み出す。続くステップ４０８では、そのチャンネル管理用変数の値によって指定されるチャンネルがワンキー再生チャンネルか否か判定する。その変数の値がワンキー再生チャンネルの番号と一致していた場合、その判定はＹＥＳとなってステップ４１０に移行する。そうでない場合には、その判定はＮＯとなってステップ４０９に移行する。そのステップ４０９では、演奏データに従って楽音を発音させていく通常の自動演奏再生処理を実行し、その後はステップ４０４に戻る。
【００６４】
ワンキー再生チャンネル以外のチャンネルには、ワンキー再生チャンネルに割り当てられたパートとは異なるパートを割り当てている。具体的には、例えば伴奏を割り当てている。それにより、ユーザが伴奏（他のパート）を聴きながらワンキー１０５ａを操作できるようにしている。その伴奏（他のパートの演奏）は、楽曲のリズムを把握していないようなユーザにとってはワンキー１０５ａを操作するうえでのガイドとして働き、ユーザの演奏を支援する。そのため、ユーザは、本来の演奏（メロディ）の流れに沿ってワンキー１０５ａを操作することがより容易に行うことができる。その結果、奏でられる演奏（メロディ）もより自然な印象を人に与えられるようになる。
【００６５】
他方のステップ４１０では、現在ワンキーＳＷステータスにワンキー１０５ａがオン中であることを示す値が代入されているか否か判定する。ユーザがワンキー１０５ａをオンさせていた場合、その判定はＹＥＳとなってステップ４１１に移行する。そうでない場合には、即ちワンキー１０５ａがオフとなっている場合には、その判定はＮＯとなって一連の処理を終了する。それにより、ワンキー１０５ａがオフのときにはワンキー再生チャンネルの楽音は新たに発音させないことになる。
【００６６】
ステップ４１１〜４１７の処理は、楽音を発音させたり、発音中の楽音を消音させるための処理である。
上記したように、処理対象期間内ではない実処理対象期間内にワンキー１０５ａがオンされたことに伴う楽音の発音や、処理対象期間内にワンキー１０５ａがオフされたことに伴う楽音の消音は、ワンキーＳＷ処理内で行われる。ステップ４１１〜４１７の処理は、それ以外のケース、具体的には処理対象期間内にワンキー１０５ａがオンされたケース、処理対象期間内にワンキー１０５ａがオフされなかったケース、及びユーザが次のイベントデータの処理対象期間となるまでワンキー１０５ａをオンし続けているケースに対応するための処理である。
【００６７】
ステップ４１１では、音源システム１０７に対して送出すべきデータの種類を判定する。そのデータの種類が楽音を発音させるデータ（ＯＮデータ）であった場合、次にステップ４１２に移行する。そうでない場合には、即ち楽音を消音させるデータ（ＯＦＦデータ）であった場合には、次にステップ４１５に移行する。
【００６８】
ステップ４１２〜４１４では、現在処理対象期間となっているイベントデータに基づく楽音の発音に関わる処理が行われる。
先ず、ステップ４１２では、そのイベントデータ中の音高データ、及び音色データから発音させる楽音を特定するとともに、その楽音を発音させている時間を表す値を残り時間管理用変数に代入する。このとき、残り時間管理用変数に代入する値は、イベントデータ中の音符長データの値からその変数のそれまでの値（処理対象期間となってから経過した時間を表す値）を減算した値である。
【００６９】
続くステップ４１３では、ステップ４１２で特定した楽音の発音を音源システム１０７に指示する。その指示は、例えば音高データ、及び音色データから音源システム１０７に送出すべきＭＩＤＩデータを作成し、それを音源システム１０７に送出することで行われる。その後は、ステップ４１４に移行して、それら音高データ、及び音色データを保持するとともに、ワンキー発音ステータスに楽音が発音中であることを表す値を代入する。それが終了した後、ステップ４０４に戻る。
【００７０】
他方のステップ４１５〜４１７では、処理対象期間の経過に伴う楽音の消音に関わる処理が行われる。
先ず、ステップ４１５では、発音中の楽音を管理するために保持している音高データ、及び音色データから消音させるべき楽音を特定し、その楽音の消音を音源システム１０７に指示する。その指示は、音高データ、及び音色データを基にＭＩＤＩデータを作成し、それを音源システム１０７に送出することで行う。それが終了した後、ステップ４１６に移行する。
【００７１】
ステップ４１６では、残り時間管理用変数に次のイベントデータが処理対象期間となるまでの時間を表す値を代入する。上記したように、イベントデータは、音高データ、音色データ、及び音符長データとから構成される。イベントデータに付加された時間データは、直前のイベントが発生してから経過した時間を表す値である。そのため、残り時間管理用変数には、次のイベントデータに付加された時間データが表す時間から、処理対象期間が経過したイベントデータ中の音符長データが表す時間を減算した時間（休符長に対応する）を表す値が代入される。
【００７２】
ステップ４１６に続くステップ４１７では、楽音の消音を指示したことに伴い、保持していた音高データ、及び音色データをクリアし、ワンキー発音ステータスに発音中の楽音が無いことを表す値をセットする。その後、一連の処理を終了する。
【００７３】
ワンキー１０５ａがオンされていれば、ワンキーＳＷステータスにはその旨を示す値が代入されていることから、ステップ４０４の判定がＹＥＳとなると、ステップ４１１以降の処理が実行されることになる。これは、ワンキー１０５ａをオン状態に維持し続ければ、演奏データに従って楽音が順次発音されることを意味する。そのようになっているため、短い間隔で音符が続くようなメロディや、よく把握していないメロディを演奏するような場合、更には途中でメロディが判らなくなった場合、ユーザはワンキー１０５ａをオンし続けるだけで演奏を正確に行うことができる。それにより、ユーザは所望の演奏をより容易、且つ簡単に行うことができる。
【００７４】
なお、第１の実施の形態では、処理対象期間内に行われたワンキー１０５ａのオン／オフに応じて楽音の発音／消音を行っているが、それらが行われたタイミングによっては、楽音が発音されていた時間が極端に短くなることもある。それによって演奏が不自然と感じられる可能性がある。そのことを回避するために、ある時間だけは楽音の発音を継続させるようにしても良い。
＜第２の実施の形態＞
上記第１の実施の形態では、ワンキー１０５ａがオンされ続けると、演奏データに従って楽音を発音させている。これに対し、第２の実施の形態は、単に演奏データに従って楽音を発音させるのではなく、現在発音中の楽音から次に発音させる楽音へとポルタメント効果をかけて変更させるようにしたものである。
【００７５】
第２の実施の形態における構成は、上記第１の実施の形態におけるそれと基本的に同じである。そのため、第１の実施の形態の説明で使用した符号をそのまま用いて、第１の実施の形態から異なる部分のみを説明することとする。
【００７６】
図５は、第２の実施の形態における自動演奏再生処理の動作フローチャートである。その自動演奏再生処理は、図２の全体処理内でステップ２０５として実行される処理である。この図５を参照して、第２の実施の形態における自動演奏再生処理について詳細に説明する。
【００７７】
先ず、ステップ５０１では、それ以降の処理を実行してから予め定めた単位時間が経過したか否か判定する。その単位時間が経過していた場合、その判定はＹＥＳとなってステップ５０２に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【００７８】
ステップ５０２では、楽音を発音させるチャンネル番号を初期化するとともに、単位時間の経過の判定用として現在のタイマ１０４の値を保持する。チャンネル番号の初期化は、チャンネル管理用変数に、チャンネル番号のなかで最も小さい値を代入することで行われ、タイマ１０４の値の保持は、その値の保持に用意した変数に代入させることで行われる。
【００７９】
ステップ５０２に続くステップ５０３では、チャンネル管理用変数の値で指定されるチャンネルの残り時間管理用変数の値を更新する。具体的には、単位時間の経過したことから、その値から単位時間（を表す値）を減算し、その減算後の値を残り時間管理用変数に新たに代入する。それが終了した後、ステップ５０４に移行する。
【００８０】
ステップ５０４では、残り時間管理用変数の値が０以下となったか否か判定する。その値は、次のイベントデータの処理対象期間が開始するか、或いはそれが終了した場合に０以下となる。そのため、それらのうちの何れかに該当していた場合、その判定はＹＥＳとなってステップ５０７に移行する。そうでない場合には、その判定はＮＯとなってステップ５０５に移行する。
【００８１】
ステップ５０５では、チャンネル管理用変数の値が最終のチャンネルの番号、即ちチャンネル番号のなかで最大の値となっているか否か判定する。各チャンネルを一通り処理した場合、その判定はＹＥＳとなって一連の処理が終了する。そうでない場合には、その判定はＮＯとなってステップ５０６に移行する。そのステップ５０６では、チャンネル管理用変数の値をインクリメントし、処理対象とするチャンネルを変更する。その後、ステップ５０３に移行する。
【００８２】
一方、ステップ５０７では、チャンネル管理用変数の値によって指定されるチャンネルのデータ（イベントデータ）をＲＯＭ１０２から読み出す。続くステップ５０８では、そのチャンネル管理用変数の値によって指定されるチャンネルがワンキー再生チャンネルか否か判定する。その変数の値がワンキー再生チャンネルの番号と一致していた場合、その判定はＹＥＳとなってステップ５１０に移行する。そうでない場合には、その判定はＮＯとなってステップ５０９に移行する。そのステップ５０９では、演奏データに従って楽音を発音させていく通常の自動演奏再生処理を実行し、その後はステップ５０４に戻る。
【００８３】
他方のステップ５１０では、現在ワンキーＳＷステータスにワンキー１０５ａがオン中であることを示す値が代入されているか否か判定する。ユーザがワンキー１０５ａをオンさせていた場合、その判定はＹＥＳとなってステップ５１１に移行する。そうでない場合には、即ちワンキー１０５ａがオフとなっている場合には、その判定はＮＯとなって一連の処理を終了する。それにより、ワンキー１０５ａがオフのときにはワンキー再生チャンネルの楽音は新たに発音させないことになる。
【００８４】
上記したように、処理対象期間内ではない実処理対象期間内にワンキー１０５ａがオンされたことに伴う楽音の発音や、処理対象期間内にワンキー１０５ａがオフされたことに伴う楽音の消音は、ワンキーＳＷ処理内で行われる。ステップ５１１〜５１７の処理は、それ以外のケース、具体的には処理対象期間内にワンキー１０５ａがオンされたケース、処理対象期間内にワンキー１０５ａがオフされなかったケース、及びユーザが次のイベントデータの処理対象期間となるまでワンキー１０５ａをオンし続けているケースに対応するための処理である。
【００８５】
先ず、ステップ５１１では、音源システム１０７に対して送出すべきデータの種類を判定する。そのデータの種類が楽音を発音させるデータ（ＯＮデータ）であった場合、次にステップ５１２に移行する。そうでない場合には、即ち楽音を消音させるデータ（ＯＦＦデータ）であった場合には、次にステップ５１７に移行する。
【００８６】
ステップ５１２では、ステップ５０７で読み出したイベントデータ中の音高データ、及び音色データから発音させる楽音を特定するとともに、その楽音を発音させている時間を表す値を残り時間管理用変数に代入する。このとき、残り時間管理用変数に代入する値は、イベントデータ中の音符長データの値からその変数のそれまでの値（処理対象期間となってから経過した時間を表す値）を減算した値である。
【００８７】
続くステップ５１３では、現在ワンキー発音ステータスに楽音を発音中であることを示す値が代入されているか否か判定する。ワンキー再生チャンネルで発音中の楽音がある場合、その判定はＹＥＳとなってステップ５１５に移行する。そうでない場合には、その判定はＮＯとなってステップ５１４に移行する。
【００８８】
ステップ５１４では、ステップ５１２で特定した楽音の発音を音源システム１０７に指示する。その後、ステップ５１６に移行する。他方のステップ５１５では、音源システム１０７にポルタメント効果を指示し、現在発音中の楽音の音高（音階）からステップ５１２で特定した楽音の音高（音階）に変更させる。その後、ステップ５１６に移行する。
【００８９】
なお、ポルタメント効果の指示は、それらの楽音の音高（音階）の違いからポルタメントタイムを算出し、その算出したポルタメントタイムを用いてＭＩＤＩデータを作成し、それを音源システム１０７に送出することで行われる。
【００９０】
ステップ５１６では、ステップ５１２で特定した楽音の音高データ、及び音色データを保持するとともに、ワンキー発音ステータスに楽音が発音中であることを表す値を代入する。それが終了した後、ステップ５０４に戻る。
【００９１】
一方、ステップ５１１で音源システム１０７に楽音を消音させるデータ（ＯＦＦデータ）を送出すべきと判定した場合に実行されるステップ５１７では、残り時間管理用変数に、次のイベントデータが処理対象期間となるまでの時間を表す値を代入する。
【００９２】
一方、ステップ５１１で音源システム１０７に楽音を消音させるデータ（ＯＦＦデータ）を送出すべきと判定した場合に実行されるステップ５１７では、残り時間管理用変数に、次のイベントデータが処理対象期間となるまでの時間を表す値を代入する。具体的には、残り時間管理用変数に、次のイベントデータに付加された時間データが表す時間から、処理対象期間が経過したイベントデータ中の音符長データが表す時間を減算した時間（休符長に対応する）を表す値を代入する。その時間を表す値を残り時間管理用変数に代入した後、ステップ５０４に移行する。
【００９３】
なお、第２の実施の形態では、ワンキー１０５ａをユーザがオン状態に維持していた場合、次のイベントデータの処理対象期間となるのを待ってポルタメント効果をかけているが、それとは異なるタイミングでポルタメント効果をかけるようにしても良い。例えば次のイベントデータの処理対象期間が開始したときに、そのイベントデータで表された楽音の音高となるようにポルタメント効果をかけても良い。ポルタメント効果の換わりに、グリッサンドをかけるようにしても良い。
＜第３の実施の形態＞
上記第１及び第２の実施の形態では、実処理対象期間外のタイミングでワンキー１０５ａをオンさせた場合、処理対象とするイベントデータがないことから、楽音が発音しないようになっていた。ワンキー１０５ａをオンさせても楽音が発音されない場合、ワンキー１０５ａへの操作と楽音の発音とが対応しなくなることから、それがユーザに違和感を与える恐れがある。第３の実施の形態は、その違和感をユーザに与えるのを回避するようにしたものである。
【００９４】
第３の実施の形態における構成は、上記第１の実施の形態におけるそれと基本的に同じである。そのため、第１の実施の形態の説明で使用した符号をそのまま用いて、第１の実施の形態から異なる部分のみを説明することとする。
【００９５】
図６は、第３の実施の形態におけるワンキーＳＷ処理の動作フローチャートである。そのワンキーＳＷ処理は、図２の全体処理内でステップ２０４として実行される処理である。この図６を参照して、第３の実施の形態におけるワンキーＳＷ処理について詳細に説明する。
【００９６】
先ず、ステップ６０１では、鍵盤１０５にワンキー１０５ａ（ＳＷ）の走査を指示する。続くステップ６０２では、そのワンキー１０５ａの走査結果（操作情報）を受け取り、ワンキー１０５ａの操作状態の変化を判定する。走査結果（操作情報）からワンキー１０５ａの操作状態が変化していないと判定した場合、ここで一連の処理を終了し、ワンキー１０５ａがオンされたと判定した場合には、ステップ６０３に移行する。
【００９７】
ステップ６０３では、ワンキーＳＷステータスに、ワンキー１０５ａがオン中であることを表す値を代入する。このとき、ワンキー１０５ａのオンがワンキープレイモード設定後における最初のオンであれば、タイマ１０４に制御コマンドを送り、計時をスタートさせる。
【００９８】
ステップ６０３に続くステップ６０４では、ワンキー再生チャンネル（ＣＨ）で処理対象期間、言い換えれば、演奏データ上では発音中（ノートオン中）となっている楽音（音符）があるか否か判定する。演奏データ上では発音中となっている楽音がある場合、その判定はＹＥＳとなって一連の処理を終了する。そうでない場合には、その判定はＮＯとなってステップ６０５に移行する。なお、演奏データ上では発音中となっている楽音がある場合には、図４に示す自動演奏再生処理で楽音の発音が指示されることになる。
【００９９】
処理対象期間と実処理対象期間とは、その大部分が一致するが、一致していない部分がある。
ステップ６０５〜６０９の処理は、処理対象期間と実処理対象期間とで一致していない期間、及び実処理対象期間外にワンキー１０５ａがオンされた場合に対応するための処理である。
【０１００】
先ず、ステップ６０５では、ワンキー再生チャンネルで次のイベントデータ（音符）を読み出すまでの残り時間、即ち残り時間管理用変数の値で表される時間が所定時間以内か否か判定する。その時間が所定時間以内、即ち次のイベントデータの実処理対象期間内であった場合、その判定はＹＥＳとなってステップ６０６に移行する。そうでない場合には、即ち実処理対象期間外で処理対象とすべきイベントデータが無い場合には、その判定はＮＯとなってステップ６０８に移行する。
【０１０１】
ステップ６０６では、次のイベントデータに処理対象を移行させるとともに、残り時間管理用変数に新たな値を代入する。具体的には、それまでの値（次のイベントデータが処理対象期間となるまでの残り時間）に、イベントデータ中の音符長データの値を加算した値、即ちそのイベントデータの処理対象期間が終わるまでの時間を示す値を残り時間管理用変数に代入する。その後、ステップ６０７に移行する。
【０１０２】
ステップ６０７では、ステップ６０６で処理対象としたイベントデータが表す楽音の発音を指示する。その後に実行するステップ６０９では、ワンキー再生チャンネルで発音中の楽音を管理するためのデータとして、イベントデータ中の音高データ、及び音色データを保持するとともに、変数であるワンキー発音ステータスに楽音が発音中であることを表す値を代入する。その後、一連の処理を終了する。なお、楽音の発音の指示は、ＣＰＵ１０１が、イベントデータ中の音高データ、音色データを基にＭＩＤＩデータを生成し、それを音源システム１０７に送出することで行われる。
【０１０３】
他方のステップ６０８では、曲の他のパート、例えば伴奏を割り当てたチャンネルで現在発音中のコード（和音）、或いは次に発音させるコードのデータを読み出し、そのコードのルート（根音）の発音を指示する。その後、上記ステップ６０９に移行する。
【０１０４】
このようにして、第３の実施の形態では、処理対象とすべきイベントデータが無いタイミングでワンキー１０５ａがオンされると、並行して発音されている、或いは発音されるコードに基づいて発音させるべき楽音を決定し（ここではルート）、その楽音を発音させている。そのため、ワンキー１０５ａへの操作と楽音の発音とが対応するようになり、ユーザに違和感を与えるのが回避される。伴奏といった他のパートで発音される楽音に基づいて発音させるべき楽音を決定しているため、その決定した楽音は音楽的にはずれた音とはならず、演奏を損なわせることは回避される。
【０１０５】
一方、ユーザがワンキー１０５ａがオフした場合、ステップ６０２でそのことが判定され、次にステップ６１０が実行される。そのステップ６０９では、ワンキー１０５ａがオフされたことから、ワンキーＳＷステータスに、ワンキー１０５ａがオフ中であることを表す値をセットする。その後、ステップ６１１に移行する。
【０１０６】
ステップ６１１では、ワンキー再生チャンネルで実際に発音中の楽音（音符）があるか否か判定する。ワンキー発音ステータスに楽音が発音中であることを示す値が代入されていた場合、その判定はＹＥＳとなってステップ６１２に移行する。そうでない場合には、その判定はＮＯとなって一連の処理を終了する。
【０１０７】
ステップ６１２では、現在ワンキー再生チャンネルで発音中の楽音の消音を音源システム１０７に指示する。その楽音は、発音中の楽音を管理するためのデータとして保持している音高データ、及び音色データとで特定される楽音である。その後に移行するステップ６１３では、楽音の消音を指示したことに伴い、それら音高データ、及び音色データをクリアし、ワンキー発音ステータスに発音中の楽音が無いことを表す値をセットする。その後、一連の処理を終了する。
【０１０８】
ステップ６０８では、残り時間管理用変数の値を更新していない。そのため、実処理対象期間外でワンキー１０５ａがオンされ、その期間外中にオフされた場合には、ステップ６０８で発音させた楽音はステップ６１２で消音されることになる。
【０１０９】
実処理対象期間外でワンキー１０５ａをオンさせてから次のイベントデータの処理対象期間となるまでその状態が維持されていた場合には、ステップ６０８で発音させた楽音は図４に示す自動演奏再生処理内で消音される。その消音は、具体的には、ステップ４１２で行われるようになっている。第３の実施の形態でのステップ４１２では、ワンキー再生チャンネルで発音中の楽音があった場合、その楽音の消音を音源システム１０７に指示した後、次に発音させる楽音の特定や残り時間管理用変数の更新を行うようになっている。それにより、ステップ６０８で発音させた楽音が、次のイベントデータの処理対象期間となった以降まで発音しないようにさせている。
【０１１０】
なお、第３の実施の形態では、処理対象とすべきイベントデータが無いタイミングでワンキー１０５ａがオンされるとコードのルートを発音させているが、それ以外の楽音を発音させても良い。コードの他の構成音を発音させても良く、コードの構成音をランダムに発音させるようにしても良い。
＜第４の実施の形態＞
上記第３の実施の形態では、処理対象とすべきイベントデータが無いタイミングでワンキー１０５ａがオンされた場合、他のパートとして発音されるコードのルートを発音させている。これに対し、第４の実施の形態は、そのルートを、他のパートとして発音される際の音色とは異なる音色で発音させるようにしたものである。
【０１１１】
その第４の実施の形態における構成は、上記第３の実施の形態におけるそれと基本的に同じである。また、その動作も、第３の実施の形態におけるそれと殆ど同じであり、図２の全体処理内でステップ２０４として実行されるワンキーＳＷ処理だけが僅かに異なるだけである。そのため、ワンキーＳＷ処理のなかで第３の実施の形態から異なる部分だけを説明することにする。
【０１１２】
図７は、第４の実施の形態におけるワンキーＳＷ処理の動作フローチャートである。そのワンキーＳＷ処理は、図６に示す第３の実施の形態におけるワンキーＳＷ処理内のステップ６０８をステップ７０１に変更しただけである。そのため、ステップ７０１についてのみ説明する。なお、図７において、他の処理ステップは第３の実施の形態から変わっていないことから、第３の実施の形態で付与した符号をそのまま用いている。
【０１１３】
そのステップ７０１では、伴奏を割り当てたチャンネルで現在発音中のコード（和音）、或いは次に発音させるコードのデータを読み出し、そのコードのルート（根音）の発音を、そのコードで指定されている音色とは異なる音色で指示する。そのようにして楽音の発音を指示した後、ステップ６０９に移行する。
【０１１４】
上記音色の変更は、変更前の音色と変更後の音色の対応関係を予め定義しておき、その対応関係を参照することで行うことができる。その対応関係は、ピアノの音をオルガンの音に変更させるといったようなことだけでなく、基本的には同じ音色の音を奏法等によって変わる別の音に変更させることでも良い。具体的には、例えば音色がギターであった場合、変更後の音色として、ギターのミュート音（空ピック音）、ハーモニクス音、スクラッチノイズ音等を設定しても良い。当然のことながら、変更後の音色をランダムに変化させるようにしても良い。
【０１１５】
なお、第３及び第４の実施の形態では、ワンキー再生チャンネルで本来発音されない楽音を発音させる場合、他のパート（チャンネル）で発音される楽音に基づく楽音を発音させることで、演奏を崩すことなくワンキー１０５ａへの操作を楽音の発音に反映させているが、必ずしもそのようにしなくとも良い。ユーザが意図的に行ったワンキー１０５ａへの操作に対応できるように、再生している曲（演奏データ）に合った効果音や短いメロディを発音させるようにしても良く、或いは音響効果をかけたり、それの深さを変更させたりするようにしても良い。何れにしても、ユーザが行える音楽表現の幅は広がることになる。これらのように、様々な変形が可能である。
【０１１６】
また、本実施の形態（第１〜第４の実施の形態）は、電子楽器に搭載されたものであるが、本発明が搭載（適用）できるのは電子楽器等の楽音生成装置に限定されるものではない。例えばパーソナルコンピュータ（以降、パソコンと略す）にも本発明を搭載（適用）させることができる。
【０１１７】
現在では、パソコンの多くはマルチメディアパソコンとして販売されており、楽音を発音させるサウンド機能も標準的に搭載されている。そのため、パソコンでは、基本的には上記したように演奏データを処理するためのプログラムをロードするだけで本発明を実現（搭載）させることができる。そのプログラムは、フロッピーディスクやＣＤ−ＲＯＭ、或いはＲＯＭカードといった記録媒体に記録して配布しても良く、或いは何らかの通信手段を介して配信するようにしても良い。
【０１１８】
【発明の効果】
以上説明したように本発明（第１の態様）は、時間データ、及び演奏操作子が操作されたタイミングに基づいて処理対象とするイベントデータを決定し、その決定したイベントデータを演奏操作子が操作されたタイミングに応じて処理していくことにより演奏を行う。そのため、音楽的に自然な印象を損なわせることなく、ユーザが行える音楽表現の幅を広げることができる。
【図面の簡単な説明】
【図１】本実施の形態による演奏装置を搭載した電子楽器の構成図である。
【図２】全体処理の動作フローチャートである。
【図３】ワンキーＳＷ処理の動作フローチャートである。
【図４】自動演奏再生処理の動作フローチャートである。
【図５】自動演奏再生処理の動作フローチャートである（第２の実施の形態）。
【図６】ワンキーＳＷ処理の動作フローチャートである（第３の実施の形態）。
【図７】ワンキーＳＷ処理の動作フローチャートである（第４の実施の形態）。
【符号の説明】
１０１    ＣＰＵ
１０２    ＲＯＭ
１０３    ＲＡＭ
１０４    タイマ
１０５    鍵盤
１０５ａ    ワンキー
１０６    スイッチ群
１０７    音源システム
【図１】
0003800778.tif 000002
【図２】
0003800778.tif 000003
【図３】
0003800778.tif 000004
【図４】
0003800778.tif 000005
【図５】
0003800778.tif 000006
【図６】
0003800778.tif 000007
【図７】
0003800778.tif 000008