(57)【要約】【課題】優先順位の高い音制御パラメータ値について、操作に対する値送信のリアルタイム性を高める。【解決手段】音制御パラメータごとに、値（Ｖａｌｕｅ）と値変化の有無を示す変化情報（Ｆｌａｇ）と、優先順位を示す情報（Ｐｒｉｏｒｉｔｙ）とを対応付けた優先度テーブルＴＢＬが、コントローラ２０の操作に応じて更新される。送信バッファ１７の容量に空きがある場合、優先度テーブルＴＢＬにおいて、Ｆｌａｇ＝１である音制御パラメータのうち、優先順位の高い音制御パラメータから順に、値が送信バッファ１７へ送信される。【選択図】図２
2018054807.tif 000002
【特許請求の範囲】
【請求項１】
音制御パラメータによって制御される機器へ前記音制御パラメータの値を転送する送信バッファと、
前記音制御パラメータごとに、値と、値変化の有無を示す変化情報と、優先順位を示す情報と、を対応付けた管理情報を保持する保持手段と、
前記音制御パラメータを制御するための操作子の操作を検出する操作検出手段と、
前記操作検出手段による検出結果に基づいて、前記保持手段に保持された前記管理情報を更新する更新手段と、
前記管理情報における前記変化情報が値変化有りを示すものとなっている音制御パラメータのうち、優先順位の高い音制御パラメータから順に、値を前記送信バッファへ送信する制御手段と、を有することを特徴とする音制御装置。
【請求項２】
前記更新手段は、値が送信された音制御パラメータについては優先順位を最下位にするよう前記管理情報を更新することを特徴とする請求項１に記載の音制御装置。
【請求項３】
前記更新手段は、時間間隔を保って訪れる更新タイミングで、前記操作検出手段による検出結果に基づく前記管理情報の更新を実施し、
前記制御手段は、前記送信バッファへ次に値を送信すべき音制御パラメータの、前記送信バッファから前記機器への予測転送所要時間と前記時間間隔とに基づいて、前記次に値を送信すべき音制御パラメータの送信タイミングを決定し、前記送信タイミングが到来したと判断すると前記送信バッファへの送信を実行することを特徴とする請求項１または２に記載の音制御装置。
【請求項４】
前記制御手段は、転送に利用できる時間を示す余力時間に対して、前記更新タイミングごとに前回の更新タイミングからの経過時間を加算すると共に、値が送信された音制御パラメータの予測転送所要時間を減算することで、前記余力時間を更新し、前記余力時間が前記次に値を送信すべき音制御パラメータの予測転送所要時間を超えると、前記送信タイミングが到来したと判断することを特徴とする請求項３に記載の音制御装置。
【請求項５】
前記次に値を送信すべき音制御パラメータは、レイヤ音色を制御する一群の音制御パラメータを単位として定められることを特徴とする請求項３または４に記載の音制御装置。
【請求項６】
音制御パラメータによって制御される機器へ前記音制御パラメータの値を送信バッファから転送する音制御装置の制御方法であって、
前記音制御パラメータごとに、値と、値変化の有無を示す変化情報と、優先順位を示す情報と、を対応付けた管理情報を保持部に保持させる保持ステップと、
前記音制御パラメータを制御するための操作子の操作を検出する操作検出ステップと、
前記操作検出ステップによる検出結果に基づいて、前記保持部に保持された前記管理情報を更新する更新ステップと、
前記管理情報における前記変化情報が値変化有りを示すものとなっている音制御パラメータのうち、優先順位の高い音制御パラメータから順に、値を前記送信バッファへ送信する制御ステップと、を有することを特徴とする音制御装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、音制御パラメータによって制御される機器へ音制御パラメータの値を転送する技術に関する。
【背景技術】
【０００２】
従来、音制御パラメータによって制御される音源装置等の機器へＭＩＤＩデータ等の音制御パラメータの値を転送する電子楽器等の音制御装置が知られている。ＭＩＤＩの通信帯域は限られていることから、音制御パラメータの円滑な伝送を行うためにデータ間引き等の工夫がなされている（下記特許文献１、２）。
【０００３】
特許文献１では、ネットワーク処理能力が低下した場合であっても、相手端末に必要なＭＩＤＩデータ等を円滑に送信できるようにするために、音量が所定値以上である等の間引き条件に合致するデータを間引いて通信ネットワークへ送信している。また、特許文献２では、時系列で密度が高くなってしまう音制御データを特定種類の音制御データとして設定し、送信側でこの音制御データの一部を間引いて送信することで、受信側でデータの取りこぼしや通信伝送路が占領されることを回避している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−２２１７８８号公報
【特許文献２】特開平７−１３５６０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、音制御装置において、コントローラ（効果操作子等）の操作に応じて音制御パラメータの値を更新し、値が変化したら送信バッファに値を送信して、送信バッファから外部機器へ音制御パラメータの値を転送することが一般になされている。音制御パラメータの値が送信バッファに送信されるのに比し、送信バッファに蓄積されたデータが外部機器へ転送されるのが相対的に遅延すると、送信バッファがあふれてしまう（容量オーバーする）。すると、待ち時間が増え処理負担も増える。特に、音制御パラメータには、特に低レイテンシーで送信したい種類もあり、コントローラの操作に対して求められる送信の追従性は音制御パラメータによって異なる。上記特許文献１、２では、操作に対する値送信のリアルタイム性を音制御パラメータごとに考慮していないため、低レイテンシーで送信したい音制御パラメータであっても、送信の順番が到来するまで送信バッファへ送信されない。
【０００６】
一方、コントローラの操作による音制御パラメータの値は所定の更新周期で更新され、送信バッファに送信される。更新周期を長くすれば送信バッファがあふれることは抑制できるが、演奏性が低下するため望ましくない。さらに、レイヤ音色を制御する場合、１つのコントローラの操作によって値が変化するコントロールチェンジの数が複数（例えば、８個）となり、これらのコントロールチェンジは一群の音制御パラメータとして転送させることが望ましい。従って、同じタイミングで送信すべき音制御パラメータの数が多くなる場合があり、状況によっては送信バッファがあふれるケースが増加するおそれがある。
【０００７】
本発明は上記従来技術の問題を解決するためになされたものであり、その目的は、優先順位の高い音制御パラメータ値について、操作に対する値送信のリアルタイム性を高めることである。
【課題を解決するための手段】
【０００８】
上記目的を達成するために本発明の請求項１の音制御装置は、音制御パラメータによって制御される機器へ前記音制御パラメータの値を転送する送信バッファ（１７）と、前記音制御パラメータごとに、値と、値変化の有無を示す変化情報（Ｆｌａｇ）と、優先順位を示す情報と、を対応付けた管理情報（ＴＢＬ）を保持する保持手段（１８）と、前記音制御パラメータを制御するための操作子（２０）の操作を検出する操作検出手段（１５）と、前記操作検出手段による検出結果に基づいて、前記保持手段に保持された前記管理情報を更新する更新手段（１１）と、前記管理情報における前記変化情報が値変化有り（Ｆｌａｇ＝１）を示すものとなっている音制御パラメータのうち、優先順位の高い音制御パラメータから順に、値を前記送信バッファへ送信する制御手段（１１）と、を有することを特徴とする。
【０００９】
上記目的を達成するために本発明の請求項６の音制御装置の制御方法は、音制御パラメータによって制御される機器へ前記音制御パラメータの値を送信バッファから転送する音制御装置の制御方法であって、前記音制御パラメータごとに、値と、値変化の有無を示す変化情報と、優先順位を示す情報と、を対応付けた管理情報を保持部に保持させる保持ステップと、前記音制御パラメータを制御するための操作子の操作を検出する操作検出ステップと、前記操作検出ステップによる検出結果に基づいて、前記保持部に保持された前記管理情報を更新する更新ステップと、前記管理情報における前記変化情報が値変化有りを示すものとなっている音制御パラメータのうち、優先順位の高い音制御パラメータから順に、値を前記送信バッファへ送信する制御ステップと、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、優先順位の高い音制御パラメータ値について、操作に対する値送信のリアルタイム性を高めることができる。
【００１１】
請求項２によれば、操作に対する値送信のリアルタイム性が特定の音制御パラメータに偏らないようにすることができる。請求項３によれば、送信バッファの空き状態を検知できなくても、送信バッファがあふれることを回避することができる。請求項５によれば、レイヤ音色を操作に応じて適切に変化させることができる。
【図面の簡単な説明】
【００１２】
【図１】第１の実施の形態に係る音制御装置を含む音制御システムの構成を示すブロック図である。
【図２】優先度テーブルの遷移図（図（ａ）〜（ｄ））である。
【図３】優先度テーブル更新処理のフローチャートである。
【図４】送信処理のフローチャートである。
【図５】第２の実施の形態における送信処理のフローチャートである。
【図６】余力時間のタイムチャートである。
【発明を実施するための形態】
【００１３】
以下、図面を参照して本発明の実施の形態を説明する。
【００１４】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係る音制御装置を含む音制御システムの構成を示すブロック図である。この音制御システムは、音制御装置としての電子楽器１０に外部機器３０が接続されて成る。外部機器３０は例えば音源装置である。なお、外部機器３０は音制御パラメータによって制御される機器であればよく、音源装置に限定されず、例えば効果付与装置でもよい。外部機器３０は、通信インターフェイス（通信Ｉ／Ｆ２２）を通じて電子楽器１０に接続される。なお、電子楽器１０に接続される外部機器３０の数は複数であってもよく、接続の形態も、並列、直列を問わない。また、音制御装置は、操作子（コントローラ）の操作に応じて音制御パラメータを送信する機能を有すればよく、操作子を接続したパーソナルコンピュータであってもよい。
【００１５】
電子楽器１０は、ＲＡＭ１２、ＲＯＭ１３、タイマ１４、検出回路１５、検出回路１６、送信バッファ１７、記憶部１８、表示部１９、通信インターフェイス（通信Ｉ／Ｆ）２２が、バス２３を介してＣＰＵ１１にそれぞれ接続されて構成される。ＣＰＵ１１にはタイマ１４が接続される。検出回路１６は、音高情報を入力するための鍵盤やペダルを含む演奏操作子２１の操作を検出し、その検出結果をＣＰＵ１１に供給する。検出回路１５は、コントローラ２０の操作を検出し、その検出結果をＣＰＵ１１に供給する。コントローラ２０は例えば効果操作子であり、複数あることを想定する。なお、図示はしないが、電子楽器１０は、これらの構成要素の他に、外部機器３０とは別の内蔵の音源回路や効果回路を有していてもよい。
【００１６】
ＣＰＵ１１は、本楽器全体の制御を司る。ＲＯＭ１３は、ＣＰＵ１１が実行する制御プログラムや各種データ等を記憶する。ＲＡＭ１２は、各種フラグやバッファデータ及び演算結果等を一時的に記憶する。タイマ１４は、タイマ割り込み処理における割り込み時間等の各種時間を計時する。表示部１９は、各種情報を表示する。通信Ｉ／Ｆ２２は、通信インターフェイスはＭＩＤＩ（Musical Instrument Digital Interface）信号を送受信できるものであるが、種類は限定されず、ＵＳＢ等であってもよい。記憶部１８は、制御プログラムを含む各種アプリケーションプログラムや各種楽曲データ、各種データ等を記憶する。また、記憶部１８は、後述する優先度テーブルＴＢＬ（管理情報）（図２）を保持する。優先度テーブルＴＢＬは、ＣＰＵ１１によって管理され、逐次更新される。ＣＰＵ１１は、コントローラ２０の操作の検出結果に基づいて、電子楽器１０から外部機器３０へ転送すべきデータである音制御パラメータを生成し、その音制御パラメータの値を適切なタイミングで送信バッファ１７へ送信する。送信バッファ１７には、音制御パラメータの値が一時的に格納され、格納された音制御パラメータの値は、格納順に通信Ｉ／Ｆ２２を通じて外部機器３０へ転送される。
【００１７】
図２（ａ）〜（ｄ）は、優先度テーブルＴＢＬの遷移図である。優先度テーブルＴＢＬには、「Ｐｒｉｏｒｉｔｙ」、「Ｃｏｎｔｒｏｌｌｅｒ」、「Ｆｌａｇ」、「Ｖａｌｕｅ」が互いに対応付けられている。コントローラ２０には、例示として、モジュレーション（modulation）用、ピッチベンド（pitch bend）用、フットコントローラ（Foot Controller）用、アフタタッチ（After touch）用があるとする。優先度テーブルＴＢＬにおいて、「Ｃｏｎｔｒｏｌｌｅｒ」の列が各コントローラ２０に対応する音制御パラメータを示し、「Ｖａｌｕｅ」の列が音制御パラメータの値を示す。音制御パラメータとしては、ＭＩＤＩメッセージ、特に主としてコントロールチェンジ（ＣＣ）を例示するが、これに限らない。
【００１８】
コントローラ２０が操作されると、検出回路１５による検出結果に基づいて、ＣＰＵ１１が、操作されたコントローラ２０に対応する音制御パラメータの値（Ｖａｌｕｅ）を更新する。後に図３で説明するが、この更新は所定の更新周期で実行される。従って、更新周期の間に複数回の操作があった場合は、その期間中における最後の操作だけが音制御パラメータの値として反映され、最後でない操作に基づく値の変更は実質的に間引かれることになる。
【００１９】
「Ｆｌａｇ」は、コントローラ２０の操作により音制御パラメータの値（以下、「パラメータ値」と略記する）が更新されたか否かを示す情報、すなわち値変化の有無を示す変化情報である。初期状態ではＦｌａｇは「０」であり、パラメータ値が更新されると「１」に変わる。そして、パラメータ値の送信バッファ１７へ送信が完了すると、そのパラメータ値に対応するＦｌａｇは「０」に戻る。「Ｐｒｉｏｒｉｔｙ」は、送信バッファ１７へ値を送信する優先順位を示す情報であり、Ｐｒｉｏｒｉｔｙの数値が小さいほど優先順位が高い。図２（ａ）の例では、モジュレーションが１位となっている。なお、初期状態では各音制御パラメータの優先順位は決められているが、その後、転送の進捗に応じて更新される。
【００２０】
図３は、優先度テーブル更新処理のフローチャートである。図２、図３で、優先度テーブルＴＢＬの更新について説明する。図３の処理は、電子楽器１０の電源がオンにされた後、割り込み処理により所定時間間隔で実行される。この処理は、ＲＯＭ１３に格納された制御プログラムをＣＰＵ１１が実行することで実現される。
【００２１】
まず、ステップＳ１０１では、ＣＰＵ１１は、いずれかのコントローラ２０の操作が有ったか否かを、検出回路１５の検出結果から判別する。そして、コントローラ２０の操作がない場合は、図３の処理は終了する。一方、コントローラ２０の操作があった場合は、ＣＰＵ１１は、優先度テーブルＴＢＬにおける、操作されたコントローラ２０に対応する音制御パラメータの値を、検出結果に応じて更新する（ステップＳ１０２）。例えば、図２（ａ）に示す状態において、ピッチベンド用とフットコントローラ１用のコントローラ２０の操作があった場合、ピッチベンドとフットコントローラ１とにそれぞれ対応するパラメータ値が更新される（図２（ｂ））。さらにステップＳ１０３では、ＣＰＵ１１は、操作されたコントローラ２０に対応する音制御パラメータのＦｌａｇを「１」にする（図２（ｂ））。その後、処理は終了する。
【００２２】
図４は、送信処理のフローチャートである。図２、図４で、パラメータ値を送信バッファ１７へ送信する処理について説明する。図４の処理は、電子楽器１０の電源がオンにされると開始される。この処理は、ＲＯＭ１３に格納された制御プログラムをＣＰＵ１１が実行することで実現される。
【００２３】
まず、ＣＰＵ１１は、ステップＳ２０１で初期設定を行う。この初期設定では優先度テーブルＴＢＬも初期化される。次に、ＣＰＵ１１は、送信バッファ１７の容量に空きが生じるまで待つ。本実施の形態では、ＣＰＵ１１は、送信バッファ１７の残容量を検知できるとする。送信バッファ１７の容量に空きが生じると、ＣＰＵ１１は、ステップＳ２０２で、優先度テーブルＴＢＬにＦｌａｇが「１」となっている音制御パラメータが存在するか否かを判別する。その判別の結果、ＣＰＵ１１は、Ｆｌａｇ＝１となっている音制御パラメータが存在しない場合は、処理をステップＳ２０２へ戻す。例えば、図２（ａ）に示す状態においては、Ｆｌａｇ＝１となっている音制御パラメータが無いので処理はステップＳ２０２へ戻る。
【００２４】
一方、Ｆｌａｇ＝１となっている音制御パラメータが存在する場合は、ステップＳ２０４で、ＣＰＵ１１は、Ｆｌａｇ＝１で且つ優先順位の最も高い音制御パラメータを抽出し、そのパラメータ値を送信バッファ１７へ送信する。さらにＣＰＵ１１は、値を送信した音制御パラメータの優先度を最下位へ下げると共に、その音制御パラメータに対応するＦｌａｇを「０」にする（ステップＳ２０５）。これにより、値を送信した音制御パラメータ以外の音制御パラメータについては、優先度が１つずつ繰り上がる。
【００２５】
例えば、図２（ｂ）に示す状態でステップＳ２０３へ移行した場合、ピッチベンドとフットコントローラ１のＦｌａｇがいずれも「１」であるので、これらのうち優先度の高いピッチベンドが抽出され、ピッチベンドの値「９０００」が送信バッファ１７へ送信される。その結果、ピッチベンドの優先度は最下位に移動し、対応するＦｌａｇも「０」にされる（図２（ｃ））。あるいは、図２（ｃ）に示す状態でステップＳ２０３へ移行した場合、フットコントローラ１のＦｌａｇだけが「１」であるので、フットコントローラ１が抽出され、フットコントローラ１の値「９９」が送信バッファ１７へ送信される。その結果、フットコントローラ１の優先度は最下位に移動し、対応するＦｌａｇも「０」にされる（図２（ｄ））。従って、送信バッファ１７が空いている限り、Ｆｌａｇ＝１である音制御パラメータのうち、優先順位の高い音制御パラメータから順に、値が送信バッファ１７へ送信される。特に、操作がされたばかりのコントローラ２０に対応する音制御パラメータはできるだけ速やかに送信したいが、その中でも特に優先順位が高いものが優先して送信される。
【００２６】
次にＣＰＵ１１は、ステップＳ２０６で、その他処理を実行して、処理をステップＳ２０２へ戻す。なお、その他処理には、電源のオフの判別が含まれ、電源がオフにされると処理はステップＳ２０２へ戻る。なお、上述したように、送信バッファ１７は、受信したパラメータ値から順に外部機器３０へ転送していく。
【００２７】
本実施の形態によれば、音制御パラメータごとに、値（Ｖａｌｕｅ）と、値変化の有無を示す変化情報（Ｆｌａｇ）と、優先順位を示す情報（Ｐｒｉｏｒｉｔｙ）とを対応付けた優先度テーブルＴＢＬが、コントローラ２０の操作に応じて更新される。そして、優先度テーブルＴＢＬにおいて、Ｆｌａｇ＝１である音制御パラメータのうち、優先順位の高い音制御パラメータから順に、値が送信バッファ１７へ送信される。これにより、優先順位の高い音制御パラメータ値について、操作に対する値送信のリアルタイム性を高めることができる。
【００２８】
また、値が送信された音制御パラメータについては優先順位を最下位にされるので、操作に対する値送信のリアルタイム性が特定の音制御パラメータに偏らないようにすることができる。なお、この効果を求めない場合は、音制御パラメータの優先順位は可変でなく固定としてもよい。
【００２９】
（第２の実施の形態）
第１の実施の形態では、送信バッファ１７の空きを検知できることを前提とした。しかし検知機能を有さない場合もある。また、１回のコントローラ操作に対応して同じタイミングで外部機器３０へ転送すべき音制御パラメータの数が複数になる場合がある。例えばレイヤ音色を制御する場合、レイヤ音色を制御する一群の音制御パラメータを単位として転送させるのが望ましい。レイヤ音色を制御するためのパート数が８個だとすると、コントローラ１回の操作で８パート分、すなわち８個のコントロールチェンジを一斉に転送したい。
【００３０】
一般に、ＭＩＤＩの通信帯域においては、送信バッファから約１ｍｓあたり１個のコントロールチェンジを転送できる。約１ｍｓあたり１個という値は、ＭＩＤＩの通信規格である３１．２５ｋｂｉｔ／秒（１スタート・ビット、８データ・ビット、１ストップ・ビット）の通信速度やコントロールチェンジのデータサイズである３ｂｙｔｅｓから求められる値である。約１ｍｓあたりの送信個数は、コントロールチェンジ以外のデータを扱う場合にはそのデータのサイズ（バイト数）に応じて変更して扱われる。８パートのレイヤ音色では、８パート分のコントロールチェンジの転送には約８ｍｓの時間を要する。そのため、コントローラ１回の操作に対応する一群の音制御パラメータを一斉に転送できない場合がある。そこで、本実施の形態では、時間経過と、送信バッファ１７に送信した音制御パラメータの数とに基づいて送信バッファ１７に空きが生じたと推定できたことを条件に、送信バッファ１７への送信を実行する。本実施の形態では、第１の実施の形態に対して図４に代えて図５を用い、さらに図６を用いる。
【００３１】
図５は、第２の実施の形態における送信処理のフローチャートである。この処理は、ＲＯＭ１３に格納された制御プログラムをＣＰＵ１１が実行することで実現され、電子楽器１０の電源がオンにされると開始される。図６は、余力時間のタイムチャートである。横軸に経過時間ｔ、縦軸に余力時間ｔＡをとる。ここで、登場するパラメータについて概説しておく。
【００３２】
まず、コントローラ２０に対応する音制御パラメータの値（Ｖａｌｕｅ）の更新の時間間隔Ｔである更新周期は、固定値（例えば、５ｍｓ）とする。余力時間ｔＡは、送信バッファ１７が外部機器３０への転送に利用できる時間を示す。転送所要時間ｔＰは、コントローラ１回の操作に対応する一群の音制御パラメータを単位として送信バッファ１７から外部機器３０へ転送されるのに要する時間である。すなわち、コントローラ１回の操作に対応する一群の音制御パラメータを単位として、送信バッファ１７へ送信され、さらに、送信バッファ１７から外部機器３０へ転送されるとする。そして、一群の音制御パラメータが送信バッファ１７から外部機器３０へ転送されるのに要する時間を転送所要時間ｔＰとする。転送所要時間ｔＰは、実測されるのではなく、予測される値である。例えば、レイヤ音色を制御するためのパート数が８個で、１ｍｓあたりに転送可能な音制御パラメータの数が１個であるとすると、転送所要時間ｔＰは、パート数（８個）×１ｍｓ／１個＝８（ｍｓ）となる。なお、転送所要時間ｔＰは、パート数及び通信帯域によって変化し得る。
【００３３】
以下、図５、図６で、余力時間ｔＡの遷移に基づく音制御パラメータの送信バッファ１７への送信について説明する。まず、ステップＳ３０１では、ＣＰＵ１１は、初期設定を行う。この初期設定では優先度テーブルＴＢＬが初期化されるほか、余力時間ｔＡも０に初期化される。次に、ＣＰＵ１１は、更新タイミングが到来したか否かを判別する（ステップＳ３０２）。更新タイミングは、コントローラ２０の操作に基づく音制御パラメータの値を更新すべきタイミングであり、ここでは更新周期が一定であると仮定したので、更新タイミングは時間間隔Ｔを保って訪れる。従って、前回の更新タイミングから更新周期が経過すると今回の更新タイミングが到来する。
【００３４】
そしてＣＰＵ１１は、更新タイミングが到来していない場合は、処理をステップＳ３０６に進める一方、更新タイミングが到来した場合は、前回の更新タイミングからの経過時間である時間間隔Ｔを計測する。ここでは更新周期を一定と仮定したので、時間間隔Ｔは更新周期と一致する。次にＣＰＵ１１は、ステップＳ３０４で、余力時間ｔＡに対して、今回計測した時間間隔Ｔを加算して余力時間ｔＡを更新する（ｔＡ←ｔＡ＋Ｔ）。例えば、図６の時点ｔ１で更新タイミングが到来すると、余力時間ｔＡ（０ｍｓ）に時間間隔Ｔ（５ｍｓ）が加算されて、余力時間ｔＡ＝５となる。また、図６の時点ｔ３で更新タイミングが到来すると、余力時間ｔＡ（２ｍｓ）に時間間隔Ｔ（５ｍｓ）が加算されて、余力時間ｔＡ＝７となる。
【００３５】
次に、ステップＳ３０５では、ＣＰＵ１１は、余力時間ｔＡが送信バッファ１７の設計上の容量から定まる上限値を超えるか否かを判別し、余力時間ｔＡが上限値を超えた場合に限り、余力時間ｔＡを上限値に設定する。送信バッファ１７の設計上の容量はＣＰＵ１１が予め取得しているとする。このようなリミット処理は、長時間が経過することにより余力時間ｔＡが算出上、無限に大きくなることを回避するためである。
【００３６】
次に、ステップＳ３０６では、ＣＰＵ１１は、転送所要時間ｔＰをパート数から算出すると共に、余力時間ｔＡが転送所要時間ｔＰを超えた（ｔＡ＞ｔＰ）か否かを判別する。ここで転送所要時間ｔＰは、送信バッファ１７へ次に値を送信すべき音制御パラメータの、送信バッファ１７から外部機器３０への転送に予測される所要時間である。ここでは、パート数が８個とすると、転送所要時間ｔＰ＝８（ｍｓ）となる。なお、次に値を送信すべき音制御パラメータは、優先度テーブルＴＢＬにおいて、Ｆｌａｇ＝１で且つ優先順位の最も高い音制御パラメータであるので、パート数が変動する場合は、その音制御パラメータについて予測される転送所要時間ｔＰを逐次算出してもよい。
【００３７】
ステップＳ３０６の判別の結果、ｔＡ≦ｔＰである場合は、ＣＰＵ１１は、処理をステップＳ３０２に戻す。従って、次回の更新タイミングまでに値が変化した音制御パラメータについては、最新でない値の送信は間引かれることになる。一方、ｔＡ＞ｔＰである場合は、次に値を送信すべき音制御パラメータの送信タイミングが到来したと判断できる。従ってＣＰＵ１１は、現時点を音制御パラメータの送信タイミングと決定し、処理をステップＳ３０７に進める。ステップＳ３０７〜Ｓ３０９では、ＣＰＵ１１は、図４のステップＳ２０３〜Ｓ２０５と同様の処理を実行する。
【００３８】
次に、ステップＳ３１０では、ＣＰＵ１１は、余力時間ｔＡから転送所要時間ｔＰを減算して更新する。すなわち、ＣＰＵ１１は、今回、送信バッファ１７へ値が送信された音制御パラメータの、予測される転送所要時間ｔＰを余力時間ｔＡから減算することで、余力時間ｔＡを更新する。例えば、図６の時点ｔ２で更新タイミングが到来すると、ステップＳ３０４の処理により、余力時間ｔＡ（５ｍｓ）に時間間隔Ｔ（５ｍｓ）が加算されて、余力時間ｔＡ＝１０となる。しかしその直後、ステップＳ３１０の処理により、転送所要時間ｔＰ（８ｍｓ）が余力時間ｔＡ（１０）から減算されて余力時間ｔＡ＝２となる。また、図６の時点ｔ４で更新タイミングが到来すると、ステップＳ３０４の処理により、余力時間ｔＡ（７ｍｓ）に時間間隔Ｔ（５ｍｓ）が加算されて、余力時間ｔＡ＝１２となる。しかしその直後、ステップＳ３１０の処理により、転送所要時間ｔＰ（８ｍｓ）が余力時間ｔＡ（１２）から減算されて余力時間ｔＡ＝４となる。
【００３９】
ステップＳ３１１では、ＣＰＵ１１は、図４のステップＳ２０６と同様の処理を実行し、図５の処理を終了させる。
【００４０】
本実施の形態によれば、優先順位の高い音制御パラメータ値について、操作に対する値送信のリアルタイム性を高めることに関し、第１の実施の形態と同様の効果を奏することができる。
【００４１】
また、ＣＰＵ１１は、送信バッファ１７へ次に値を送信すべき音制御パラメータの、送信バッファ１７から外部機器３０への予測される転送所要時間ｔＰと時間間隔Ｔとに基づいて、次に値を送信すべき音制御パラメータの送信タイミングを決定し、送信タイミングが到来すると送信バッファへ１７の送信を実行する。これにより、送信バッファ１７の空き状態を検知できなくても、送信バッファ１７があふれることを回避することができる。
【００４２】
また、次に値を送信すべき音制御パラメータは、レイヤ音色を制御する一群の音制御パラメータを単位として定められるので、レイヤ音色をコントローラ操作に応じて適切に変化させることができる。
【００４３】
なお、音制御パラメータの値の更新の時間間隔Ｔ（更新周期）は固定としたが、時間間隔Ｔが変動する場合であっても、図５のフローチャートで適切に対応することができる。
【００４４】
なお、電子楽器１０から音制御パラメータが転送される先を外部機器３０としたが、これに限らない。音制御装置に内蔵される機器に対して送信バッファから音制御パラメータが転送される構成も本発明から除外されない。
【００４５】
なお、本発明を達成するためのソフトウェアによって表される制御プログラムを記憶した記憶媒体を、本装置に読み出すことによって同様の効果を奏するようにしてもよく、その場合、記憶媒体から読み出されたプログラムコード自体が本発明の新規な機能を実現することになり、そのプログラムコードを記憶した記憶媒体は本発明を構成することになる。また、プログラムコードを伝送媒体等を介して供給してもよく、その場合は、プログラムコード自体が本発明を構成することになる。なお、これらの場合の記憶媒体は可搬媒体であってもよい。
【００４６】
以上、本発明をその好適な実施形態に基づいて詳述してきたが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
【符号の説明】
【００４７】
１１  ＣＰＵ（更新手段、制御手段）、  １７  送信バッファ、  １５  検出回路（操作検出手段）、  １８  記憶部（保持手段、保持部）、  ２０  コントローラ（操作子）、  ＴＢＬ  優先度テーブル（管理情報）、  Ｔ  時間間隔、  ｔＰ  転送所要時間（予測転送所要時間）、  ｔＡ  余力時間
【図１】
2018054807.tif 000003
【図２】
2018054807.tif 000004
【図３】
2018054807.tif 000005
【図４】
2018054807.tif 000006
【図５】
2018054807.tif 000007
【図６】
2018054807.tif 000008