(57)【要約】【課題】既存の音信号処理プラグインに手を加えたり、楽音再生装置の高価格化を招くことなく、複数トラックからなるシーケンスデータに基づく楽音再生処理をソフトウェア処理で実行する際に処理負荷の集中を回避する。【解決手段】各々が楽曲の異なるチャネルの音を表す複数の波形トラックからなるシーケンスデータを受け取り、各波形トラックの表す音に互いに異なる音信号処理プラグインを割り当てて音響効果の付与を行う楽音再生装置に、各音信号処理プラグインの１回目のコールバックの実行タイミングをプラグイン毎に異ならせるとともに、２回目以降のコールバックについては所定のサンプル数分のシーケンスデータを受け取る毎に実行する制御を実行させる。【選択図】図１
2008268468.tif 000002
【特許請求の範囲】
【請求項１】
記憶手段と、音信号のサンプルを示すトラックデータを用いた音信号処理を実行するプログラムであって、コールバックされる毎に、前記記憶手段の読み出し用バッファに処理対象である所定サンプル数分のトラックデータが記憶されている場合にそのトラックデータを前記記憶手段の信号処理用バッファに移動させ、コールバックされたとき、前記信号処理用バッファに前記所定サンプル数よりも多いサンプル数である処理ブロックサイズ分のトラックデータが記憶されている場合のこの処理ブロックサイズ分のトラックデータを用いた音信号処理を実行する音信号処理プログラムを利用して楽音の再生を行う楽音再生装置において、
複数のトラックデータからなるシーケンスデータを受け取って、前記読み出し用バッファに書き込み、前記読み出し用バッファに蓄積されたシーケンスデータの１トラックデータ当たりのサンプル数が所定サンプル数になる毎に、コールバック実行指示を発生する書き込み手段と、
前記シーケンスデータを構成する複数のトラックデータを用いた音信号処理を行う複数の音信号処理プログラムを前記記憶手段のプログラム実行領域に記憶させ、前記コールバック指示が与えられる毎に前記複数の音信号処理プログラムのコールバックを実行する手段であり、１回目のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを音信号処理プログラム毎に異なるタイミングで実行し、２回目以降のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを同時に実行するコールバック制御手段と、
を有することを特徴とする楽音再生装置。
【請求項２】
前記コールバック制御手段は、前記処理ブロックサイズ、前記所定サンプル数、および前記シーケンスデータに含まれるトラックの数に応じて定まる間隔ずつ前記各音信号処理プログラムの１回目のコールバックの実行タイミングを異ならせる
ことを特徴とする請求項１に記載の楽音再生装置。
【請求項３】
前記コールバック制御手段は、乱数または素数を利用して前記１回目のコールバックの実行タイミングを音信号処理プログラム毎に定める
ことを特徴とする請求項１に記載の楽音再生装置。
【請求項４】
前記各音信号処理プログラムの１回目のコールバックを同時に実行した場合に、何回目のコールバックの実行で処理負荷が最大になるかを計測する計測手段を備え、
前記コールバック制御手段は、前記計測手段による計測結果から前記処理ブロックサイズを求め、その処理ブロックサイズ、前記所定サンプル数、および前記シーケンスデータに含まれるトラックの数に応じて定まる間隔ずつ前記各音信号処理プログラムの１回目のコールバックの実行タイミングを異ならせる
ことを特徴とする請求項１に記載の楽音再生装置。
【請求項５】
コンピュータ装置を、音信号のサンプルを示すトラックデータを用いた音信号処理を実行するプログラムであって、コールバックされる毎に、前記コンピュータ装置の読み出し用バッファに処理対象である所定サンプル数分のトラックデータが記憶されている場合にそのトラックデータを前記コンピュータ装置の信号処理用バッファに移動させ、コールバックされたとき、前記信号処理用バッファに前記所定サンプル数よりも多いサンプル数である処理ブロックサイズ分のトラックデータが記憶されている場合のこの処理ブロックサイズ分のトラックデータを用いた音信号処理を実行する音信号処理プログラムを利用して楽音の再生を行う楽音再生装置として機能させるプログラムにおいて、
前記コンピュータ装置を、
複数のトラックデータからなるシーケンスデータを受け取って、前記読み出し用バッファに書き込み、前記読み出し用バッファに蓄積されたシーケンスデータの１トラックデータ当たりのサンプル数が所定サンプル数になる毎に、コールバック実行指示を発生する書き込み手段と、
前記シーケンスデータを構成する複数のトラックデータを用いた音信号処理を行う複数の音信号処理プログラムを前記コンピュータ装置のプログラム実行領域に記憶させ、前記コールバック指示が与えられる毎に前記複数の音信号処理プログラムのコールバックを実行する手段であり、１回目のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを音信号処理プログラム毎に異なるタイミングで実行し、２回目以降のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを同時に実行するコールバック制御手段と、
して機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プラグインにより音信号処理を実行する楽音再生装置に関し、特に、複数のプラグインを並列に実行する楽音再生装置に関する。
【背景技術】
【０００２】
コンピュータ装置の高性能化および低価格化にともない、ＤＴＭ（Desk Top Music）における音源としてはソフト音源が主流に成りつつある。ここで、ソフト音源とは、ＭＩＤＩデータなどのシーケンスデータにしたがった音信号の生成処理をソフトウェア処理で実現し発音制御を行う音源のことである。また、シーケンスデータにしたがって楽音再生を行うシーケンサプログラムなどの他のアプリケーションプログラムからの呼び出し（以下、コールバック）によって、周波数変換などの音信号処理を実行するダイナミックリンクライブラリ（所謂プラグイン）形式の音信号処理プログラムも一般に提供されている。このようなソフト音源やプラグイン形式の音信号処理プログラム（以下、「音信号処理プラグイン」とも呼ぶ）を利用してＤＴＭを行う技術の一例としては特許文献１に開示された技術が挙げられる。
【特許文献１】特許３７９６７５２号
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、ステレオ収録された楽曲のように同時に再生されるべき複数トラック（例えば、各々が左右の各チャネルの音を表す２つのトラック）を含むシーケンスデータが再生対象である場合、トラック毎に音信号処理プログラムをコールバックして音信号処理を行う必要がある。しかしながら、音信号処理プログラムの実行過程では、高速フーリエ変換などの処理負荷の高い演算処理が実行されるため、上記のように複数の音信号処理プログラムを並列にコールバックすると、処理負荷が集中しシステムダウンなどの問題を引き起こす場合がある。このような問題を解決する方策としては、複数の音信号処理プログラムのコールバックによる負荷集中を許容し得るように楽音再生装置のハードウェア設計を行うことや、コールバックされる音信号処理プログラム側で処理負荷を平均化できるように改造を加えることが考えらえる。しかし、前者の態様にあっては、実装するべきメモリ量の増加などによりコスト増加を招くといった問題があり、後者の態様にあっては、音信号処理プログラムの構造が複雑になりその設計が難しいといった問題がある。
【０００４】
本発明は、上記課題に鑑みて為されたものであり、プラグイン形式で配布される既存の音信号処理プログラムに改造を加えたり、楽音再生装置の高価格化を招くことなく、複数トラックからなるシーケンスデータに基づく楽音再生処理をソフトウェア処理で実現する際の処理負荷の集中を回避することを可能にする技術を提供することを目的としている。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明は、記憶手段と、音信号のサンプルを示すトラックデータを用いた音信号処理を実行するプログラムであって、コールバックされる毎に、前記記憶手段の読み出し用バッファに処理対象である所定サンプル数分のトラックデータが記憶されている場合にそのトラックデータを前記記憶手段の信号処理用バッファに移動させ、コールバックされたとき、前記信号処理用バッファに前記所定サンプル数よりも多いサンプル数である処理ブロックサイズ分のトラックデータが記憶されている場合のこの処理ブロックサイズ分のトラックデータを用いた音信号処理を実行する音信号処理プログラムを利用して楽音の再生を行う楽音再生装置において、複数のトラックデータからなるシーケンスデータを受け取って、前記読み出し用バッファに書き込み、前記読み出し用バッファに蓄積されたシーケンスデータの１トラックデータ当たりのサンプル数が所定サンプル数になる毎に、コールバック実行指示を発生する書き込み手段と、前記シーケンスデータを構成する複数のトラックデータを用いた音信号処理を行う複数の音信号処理プログラムを前記記憶手段のプログラム実行領域に記憶させ、前記コールバック指示が与えられる毎に前記複数の音信号処理プログラムのコールバックを実行する手段であり、１回目のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを音信号処理プログラム毎に異なるタイミングで実行し、２回目以降のコールバック指示が与えられたときには、前記複数の音信号処理プログラムのコールバックを同時に実行するコールバック制御手段とを有することを特徴とする楽音再生装置、およびコンピュータ装置を前記楽音再生装置として機能させるプログラムを提供する。
【０００６】
上記音信号処理プログラムの処理ブロックサイズがその製造・販売元により公表されている場合には、その処理ブロックサイズ、前記所定のサンプル数、および前記シーケンスデータに含まれるトラックの数に応じて定まる間隔ずつ前記各音信号処理プログラムの１回目のコールバックの実行タイミングを異ならせる処理を前記コールバック制御手段に実行させれば良い。
【０００７】
また、上記処理ブロックサイズが公表されていない場合には、乱数または素数を利用して前記１回目のコールバックの実行タイミングを音信号処理プログラム毎に定める処理を前記制御手段に実行させれば良く、また、前記楽音再生装置に、前記各音信号処理プログラムの１回目のコールバックを同時に実行した場合に、何回目のコールバックで処理負荷が最大になるかを計測する計測する計測手段を設け、さらに、前記計測手段による計測結果から求まる前記処理ブロックサイズ、前記所定のサンプル数および前記シーケンスデータに含まれるトラックの数に応じて定まる間隔ずつ前記各音信号処理プログラムの１回目のコールバックの実行タイミングを異ならせる処理をその楽音再生装置の制御手段に実行させれば良い。
【発明の効果】
【０００８】
本発明によれば、プラグイン形式で配布される既存の音信号処理プログラムに改造を加えたり、楽音再生装置の高価格化を招くことなく、複数トラックからなるシーケンスデータに基づく楽音再生処理をソフトウェア処理で実現する際の処理負荷の集中を回避することが可能になる、といった効果を奏する。
【発明を実施するための最良の形態】
【０００９】
図１は、本発明の一実施形態に係る楽音再生装置１の構成例を示すブロック図である。
この楽音再生装置１は、シーケンスデータにしたがって楽音再生を行う装置である。ここで、シーケンスデータには、音のサンプリング波形を表わす時系列サンプリングデータが書き込まれた波形トラックやＭＩＤＩトラックが含まれている。また、ステレオ収録された楽曲のように複数チャネルの音を有する楽曲の場合には、上記シーケンスデータにはその複数チャネルの各々について上記波形トラックやＭＩＤＩトラックが含まれている。楽音再生装置１には、前述した音信号処理プラグインが予めインストールされており、音信号処理プラグインを適宜コールバックすることで音響効果の付与を実現しつつ楽音再生を実行する。つまり、楽音再生装置１は、シーケンスデータにしたがった楽音再生をソフトウェア処理で実現する装置であり、図１に示すように、制御部１１０、外部接続インタフェース（以下、「ＩＦ」）群１２０、サウンドシステム１３０、揮発性記憶部１４０、不揮発性記憶部１５０、および、これら各要素間のデータ授受を仲介するバス１６０を有している。
【００１０】
制御部１１０は、例えばＣＰＵ（Central Processing Unit）である。制御部１１０は、揮発性記憶部１４０をワークエリアとして不揮発性記憶部１５０に記憶されている各種プログラムを実行することにより、楽音再生装置１の制御中枢として働く。詳細については後に明らかにするが、制御部１１０は、上記プログラムを実行することによって、外部から楽音再生装置１に与えられるシーケンスデータにしたがって楽音の再生制御を実行する。
【００１１】
外部接続ＩＦ群１２０は、例えばＵＳＢ（Universal Serial Bus）などの所定の規格にしたがってＣＤ−ＲＯＭ（Compact
Disk-Read Only memory）ドライブなどの外部機器を接続するための外部機器ＩＦや、ＮＩＣ（Network
Interface Card）などの通信ネットワークＩＦを含んでいる。本実施形態では、これら外部接続ＩＦ群１２０のうちの適当なものを介して再生対象の楽曲を表すシーケンスデータ（以下、再生対象データ）が楽音再生装置１に与えられる。例えば、インターネットなどの通信回線を介したダウンロードにより再生対象データを与える場合には、上記通信ネットワークＩＦを介して与えれば良く、ＵＳＢメモリなどの記録媒体に書き込まれた楽曲データを再生対象として与える場合には、上記外部機器ＩＦにその記録媒体を接続し、その外部機器ＩＦを介してその記録媒体から再生対象データを読み出すようにすれば良い。
【００１２】
サウンドシステム１３０は、音のオーディオ波形を表す時系列サンプリングデータを制御部１１０から受け取り、そのオーディオ波形を有する音を出力するものである。図１では詳細な図示は省略したが、サウンドシステム１３０は、Ｄ／Ａ変換器、アンプおよびスピーカからなる音声出力系をｎ（ｎ：２以上の整数）組有しており、同時にｎチャネルの音を出力することができる。各音声出力系に含まれるＤ／Ａ変換器、アンプおよびスピーカの役割は以下の通りである。すなわち、Ｄ／Ａ変換器は、制御部１１０から引き渡される時系列サンプリングデータにＤ／Ａ変換を施してその時系列サンプリングデータの表すオーディオ波形を有するアナログ信号（以下、音信号）を生成しアンプに出力する。アンプは、Ｄ／Ａ変換器から受け取った音信号を適宜増幅して対応するスピーカに与え、スピーカは、アンプから受け取った音信号に応じた音を出力する。なお、本実施形態では、サウンドシステム１３０を楽音再生装置１の構成要素とする場合について説明したが、サウンドシステム１３０を本発明に係る楽音再生装置とは別体のハードウェアで構成するとしても勿論良い。
【００１３】
揮発性記憶部１４０は、例えばＲＡＭ（Random Access Memory）であり、各種プログラムを実行する際のワークエリアの役割を担う。また、揮発性記憶部１４０は、外部接続ＩＦ群１２０を介して与えられる再生対象データを蓄積する読み出し用バッファと、音響効果付与などの音信号処理の実行過程で利用される信号処理用バッファの２種類のバッファの役割を担う（図２参照）。なお、本実施形態では、図２に示すように、読み出し用バッファとして１つの波形トラックあたりに１６サンプル分のデータが含まれているシーケンスデータのデータサイズに相当する記憶領域が揮発性記憶部１４０内に割り当てられている。また、本実施形態では、音信号処理プラグインによる信号処理においては２５６サンプル分の時系列サンプリングデータが必要であることがそのプラグインの製造・販売元により公表されており、そのデータサイズに相当する記憶領域が上記信号処理用バッファとして音信号処理プラグイン毎に割り当てられる。
【００１４】
一方、不揮発性記憶部１５０は、例えばハードディスクである。図１に示すように、不揮発性記憶部１５０には、ＯＳプログラム１５１、音信号処理ライブラリ１５２、シーケンサプログラム１５３が格納されている。ＯＳプログラム１５１は、所謂マルチスレッドのプログラム実行環境を制御部１１０に実現させるためのものである。マルチスレッドのプログラム実行環境とは、複数のプログラムの各々をスレッドと呼ばれる実行単位ずつ直列に実行することによって複数プログラムの並列実行を実現するプログラム実行環境のことである。楽音再生装置１の電源（図示省略）が投入されると、制御部１１０は、即座に、ＯＳプログラム１５１を不揮発性記憶部１５０から揮発性記憶部１４０にロードし、その実行を開始する。ＯＳプログラム１５１にしたがって作動し上記プログラム実行環境を実現している制御部１１０は、例えばユーザの指示に応じてシーケンサプログラム１５３を実行することができる。
【００１５】
音信号処理ライブラリ１５２には、周波数変換などの音響効果付与を実現する音信号処理プラグインが含まれている。音信号処理プラグインは、シーケンサプログラム１５３にしたがって作動している制御部１１０からのコールバックにより呼び出され、スレッド単位で実行されるプログラムである。この音信号処理プラグインは、揮発性記憶部１４０のワークエリアにロードされ、その音信号処理プラグイン用の信号処理用バッファが揮発性記憶部１４０内に割り当てられて起動されると、制御部１１０に図２に示す音信号処理を実行させる。ここで、音信号処理とは、処理対象である波形トラックのデータを読み出しバッファから信号処理用バッファに移動して蓄積し、その蓄積量が高速フーリエ変換などの信号処理に適したデータ量（本実施形態では、２５６サンプル分：以下、処理ブロックサイズ）に達した場合に、信号処理用バッファに格納されている時系列サンプリングデータに高速フーリエ変換を施して周波数領域のデータとし、この周波数領域のデータに各種加工（例えば、ピッチ変換のための周波数変換）を施した後、逆高速フーリエ変換により時系列サンプリングデータに再度変換してサウンドシステム１３０に出力する処理である。
【００１６】
シーケンサプログラム１５３は、再生対象データに応じた楽音の再生処理を制御部１１０に実行させるプログラムである。より詳細に説明すると、シーケンサプログラム１５３が制御部１１０に実行させる処理は、音信号処理ライブラリ１５２内の音信号処理プラグインを利用して、上記シーケンスデータに含まれるトラック数分の個数の音信号処理プラグインを揮発性記憶部１４０内にロードし、各音信号処理プラグインに信号処理用バッファを割り当てる処理と、外部接続ＩＦ群１２０を介して与えられる再生対象データを読み出し用バッファに順次書き込む書き込み処理（図２参照）と、所定のサンプル数（本実施形態では、１６サンプル／１波形トラック）分のシーケンスデータを上記読み出し用バッファに書き込んだことを契機として、揮発性記憶部１４０にロード済みの各音信号処理プラグインをコールバックし、サウンドシステム１３０への時系列サンプリングデータの出力を実行させるコールバック制御処理（図２参照）と、を含む。なお、図２では、図面が繁雑になることを避けるため、１個の音信号処理プラグインが揮発性記憶部１４０にロードされ、そのコールバックが行われる場合について例示されている。
【００１７】
図２の書き込み処理とコールバック制御処理とは各々別個のソフトウェアモジュールにより実現される。より詳細に説明すると、書き込み処理モジュールは、所定のサンプル数分のシーケンスデータの読み出し用バッファへの書き込みが完了すると、図２に示すように、コールバックを実行する旨の指示をコールバック制御モジュールに与え、その完了通知をコールバック制御モジュールから受け取ると、読み出し用バッファをクリアして後続のシーケンスデータの書き込みを行う。一方、コールバック制御モジュールは、再生対象データに含まれる複数の波形トラックの各々について１つずつ音信号処理プラグインを揮発性記憶部１４０にロードして、そのコールバックを行うのであるが、その１回目のコールバックの実行タイミングを音信号処理プラグイン毎に異ならせることに本発明の特徴がある。
【００１８】
より詳細に説明すると、例えば、各々が左右のチャネルの音を表す２つの波形トラックを含むシーケンスデータが再生対象である場合、コールバック制御モジュールは、右チャネルの音についての音響効果の付与を担当する音信号処理プラグインについては、書き込み処理モジュールから最初のコールバック指示を受信した時点で１回目のコールバックを行い、以降、コールバック指示を受信する度にそのコールバックを行う。一方、左チャネルの音についての音響効果の付与を担当する音信号処理プラグインについては、コールバック制御モジュールは、コールバック指示を８回目に受信した時点で１回目のコールバックを行い、以降、コールバック指示を受信する度にそのコールバックを行う。このように、音信号処理プラグイン毎に１回目のコールバックの実行タイミングを異ならせる理由は、以下の通りである。
【００１９】
図３（ａ）は、書き込み処理モジュールからのコールバック指示を受信する度に音信号処理プラグインを１つだけコールバックした場合に制御部１１０にかかる処理負荷（例えば、ＣＰＵ利用率）を縦軸、コールバック指示の受信回数を横軸としてプロットしたグラフである。図３（ａ）を参照すれば明らかように、１６回目、３２回目および４８回目のコールバックによる処理負荷が他の場合に比較して高くなっていることが判る。前述したように、本実施形態に係る音信号処理プラグインは、２５６サンプル分の時系列サンプルデータが信号処理用バッファに蓄積されるまでは音信号処理を開始しない一方、１回のコールバックあたり１６サンプル分の時系列サンプリングデータしか信号処理用バッファに移動されないため、１〜１５回目のコールバックでは信号処理用バッファへのデータ蓄積処理のみが実行され、１６回目のコールバックで初めて高速フーリエ変換等の信号処理が実行される。このため、１６回目、３２回目および４８回目のコールバックによる処理負荷が他の場合に比較して高くなるのである。
【００２０】
音信号処理プラグインを利用した従来の楽音再生制御では、複数のプラグインをコールバックする際に、その１回目のコールバックの実行タイミングを揃えていたため様々な弊害が生じていた。図３（ｂ）にて実線で示すグラフは、書き込み処理モジュールからのコールバック指示を受信する度に音信号処理プラグインを２個ずつコールバックした場合（すなわち、２つのプラグインについて１回目のコールバックの実行タイミングを揃えて、そのコールバック制御を開始した場合）に制御部１１０にかかる処理負荷を縦軸、コールバック指示の受信回数を横軸としてプロットしたグラフである。このように、１回目のコールバックの実行タイミングを揃えて２個のプラグインのコールバック制御を開始してしまうと、各コールバックタイミングで制御部１１０に係る処理負荷は図３（ａ）の場合における処理負荷の２倍になる。そして、１６回目、３２回目および４８回目のコールバックの際には、各プラグインについて負荷の高い処理が重なるため、制御部１１０にかかる処理負荷は極めて高くなり、図３（ｂ）に示す例では、１００％に近い値になる。このため、１回目のコールバックタイミングを揃えて３個以上のプラグインのコールバック制御を開始してしまうと以下のような問題が生じる。図３（ｃ）は、１回目のコールバックタイミングを揃えて３個のプラグインのコールバック制御を行う場合に各プラグインの実行時間を、横軸を時間軸として示した図である。この図３（ｃ）では、ハッチングにより各プラグインのスレッド単位での実行時間が示されている。図３（ｃ）に示すように、３つ目のプラグインについては、１７回目のコールバックタイミングの到来までに、１６回目のコールバックにより開始した信号処理を完了できず、再生音が途切れたり、システムダウンが発生するといった問題が生じ得る。
【００２１】
これに対して、本実施形態では、各々が左右のチャネルの音を表す２つの波形トラックを含むシーケンスデータが再生対象である場合、右チャネルの音についての音響効果の付与を担当する音信号処理プラグインと、左チャネルの音についての音響効果の付与を担当する音信号処理プラグインとで、１回目のコールバックの実行タイミングをずらしてコールバック制御を行うため、図４に示すように処理負荷の集中が緩和される。その理由は以下の通りである。
【００２２】
右チャネルの音についての音響効果の付与を担当する音信号処理プラグインについては、書き込み処理モジュールから最初のコールバック指示を受信した時点で１回目のコールバックが行われるため、図４にて点線で示すように、１６回目、３２回目および４８回目のコールバック指示の受信の際のコールバックにより処理負荷が最大となる。一方、左チャネルの音についての音響効果の付与を担当する音信号処理プラグインについては、コールバック指示を８回目に受信した時点で１回目のコールバックが行われるため、図４にて一点鎖線で示すように、２４回目、４０回目および５６回目のコールバック指示の受信の際のコールバックによる処理負荷が最大になる。このように、各音信号処理プラグインの実行による処理負荷が最大になるタイミングが一致しないため、制御部１１０に係る処理負荷は最大でも６０％程度に抑えられるのである。
【００２３】
本実施形態では、２つの音信号処理プラグインのコールバック制御を行う場合を例にとって楽音再生装置１の作用効果を説明したが、３つ以上の音信号処理プラグインのコールバック制御を行う場合についても、各音信号処理プラグインの１回目のコールバックタイミングを異ならせることによって、処理負荷の集中を緩和することができる。例えば、各音信号処理プラグインについてＭ回目のコールバックによる処理負荷が最大になることが判っている状況下で、Ｎ個の音信号処理プラグインのコールバック制御を行う場合には、各音信号処理プラグインの１回目のコールバックタイミングをＭ／Ｎずつずらせば良い。ここで、音信号処理プラグンの処理ブロックサイズがＫサンプル分であり、読み出し用バッファのデータサイズが１つの波形トラックあたりＪサンプル分である場合には、上記Ｍの値はＫ／Ｊになる。
以上に説明したように、本実施形態によれば、複数トラックからなるシーケンスデータに基づく楽音再生処理をソフトウェア処理で実現する際に処理負荷の集中を回避することが可能になる。また、本実施形態では、各音信号処理プラグインについての１回目のコールバックの実行タインミングを適宜調整することによって上記処理負荷の集中が回避されるのであるから、既存の音信号処理プラグインに改造を加える必要はなく、また、楽音再生装置に搭載するメモリ量を増加させる必要もないため、楽音再生装置の高価格化を招くこともない。
【００２４】
以上、本発明の一実施形態について説明したが、係る実施形態に以下に述べる変形を加えても良いことは勿論である。
（１）上述した実施形態では、音信号処理プラグインの処理ブロックサイズが予め判っている場合について説明した。しかしながら、上記処理ブロックサイズが判らない場合（例えば、処理ブロックサイズが公表されていない場合）には、乱数や擬似乱数、素数を利用して上記１回目のコールバックの実行タイミングを音信号処理プラグイン毎に定めることにより、負荷分散を図っても良い。例えば、素数を利用する態様の具体例としては、例えば４つの音信号処理プラグインのコールバック制御を行う場合、１つ目のプラグインについては、最初のコールバック指示の受信時点で１回目のコールバックを行い、２つ目のプラグインについては２回目のコールバック指示の受信時点で１回目のコールバックを行い、３つ目のプラグインについては３回目のコールバック指示の受信時点で１回目のコールバックを行い、４つ目のプラグインについては５回目のコールバック指示の受信時点で１回目のコールバックを行うようにすれば良い。また、各プラグインの１回目のコールバックの実行タイミングを揃えてコールバック制御を行った場合に、何回目のコールバックで制御部１１０に係る処理負荷が最大になるかを計測する計測手段を設け、その計測結果から上記処理ブロックサイズを推定しても良い。
【００２５】
（２）上述した実施形態では、本発明に係る楽音再生装置に特徴的な音信号処理プラグインのコールバック処理を制御部１１０に実行させるプログラム（すなわち、シーケンサプログラム１５３）が楽音再生装置１の不揮発性記憶部１５０に予め格納されている（すなわち、予めインストールされている）場合について説明した。しかしながら、ＣＤ−ＲＯＭやＤＶＤなどのコンピュータ装置読み取り可能な記録媒体に上記シーケンサプログラムを書き込んで配布し、係る記録媒体を用いて一般的なコンピュータ装置に上記シーケンサプログラムをインストールしても良い。また、インターネットなどの電気通信回線を介したダウンロードにより上記シーケンサプログラムを配布し、一般的なコンピュータ装置にインストールしても良い。
【図面の簡単な説明】
【００２６】
【図１】本発明の一実施形態に係る楽音再生装置１の構成例を示す図である。
【図２】同楽音再生装置１の制御部１１０が各種プログラムにしたがって実行する処理の概要を説明するための図である。
【図３】音信号処理プラグインの並列実行により生じる従来の問題点を説明するための図である。
【図４】本発明により従来の問題点が解消されることを説明するための図である。
【符号の説明】
【００２７】
１…楽音再生装置、１１０…制御部、１２０…外部接続ＩＦ群、１３０…サウンドシステム、１４０…揮発性記憶部、１５０…不揮発性記憶部、１５１…ＯＳプログラム、１５２…音信号処理ライブラリ、１５３…シーケンサプログラム、１６０…バス。
【図１】
2008268468.tif 000003
【図２】
2008268468.tif 000004
【図３】
2008268468.tif 000005
【図４】
2008268468.tif 000006