実施の形態の説明に先立って、本開示の概要を説明する。図1は、本開示に係る音楽再生システムの概略構成を示す。音楽再生システム10は、作業端末(端末装置)20と外部端末(端末装置)30とを有する。作業端末20は、アウトソース管理手段21、トラック再生手段22、音源受信手段23、及び合成出力手段24を有する。外部端末30は、アウトソース指示受信手段31、トラック再生手段32、及び音源送信手段33を有する。
アウトソース管理手段21は、再生対象の複数のトラックのうち、どのトラックを外部端末30にアウトソースするアウトソース対象トラックとするかを決定する。アウトソース管理手段21は、作業端末20が再生対象の複数のトラックを再生した場合の処理負荷を示す指標に基づいてアウトソース対象トラックを決定する。アウトソース管理手段21は、アウトソース対象トラックの再生指示を外部端末30に送信する。トラック再生手段22は、再生対象の複数のトラックのうち、アウトソース対象トラックを除くトラックを再生する。
外部端末のアウトソース指示受信手段31は、アウトソース管理手段21から、アウトソース対象トラックの再生指示を受信する。トラック再生手段32は、アウトソース対象トラックを再生する。音源送信手段33は、トラック再生手段32が再生した音楽を、再生音楽ストリームとして作業端末20に送信する。
作業端末20の音源受信手段23は、外部端末30から、アウトソース対象トラックの再生音楽ストリームを受信する。合成出力手段24は、トラック再生手段が再生するトラックと、外部端末30から受信された再生音楽ストリームとを合成して出力する。
本開示に係る音楽再生システムでは、アウトソース管理手段21は、作業端末20が再生対象の複数のトラックを再生した場合の処理負荷を示す指標に基づいて、外部端末30にアウトソースするトラックを決定する。アウトソース管理手段21は、例えば、作業端末20のCPU能力を超えるトラックの再生を、外部端末30にアウトソースするアウトソース対象トラックとして決定する。このようにすることで、音楽再生時に音とびなどの再生不良を生じることなく、音楽再生を実行できる。また、全てのトラックを外部機器端末にアウトソースする場合に比べて、外部端末30のリソースを有効利用することができる。
以下、図面を参照しつつ、本開示の実施の形態を詳細に説明する。図2は、本開示の第1実施形態に係る音楽再生システムを示す。音楽再生システム100は、作業端末101、オーディオインタフェース(IF:interface)102、音声出力装置103、楽譜データ入力装置104、音声入力装置105、及び外部端末107を有する。作業端末101と外部端末107とは、例えばインタネットなどのネットワーク106を介して相互に通信可能である。なお、図2では、外部端末107が1つだけ図示されているが、音楽再生システム100は、複数の外部端末107を含んでいてもよい。
作業端末101は、CPU及びメモリなどを含むコンピュータ装置として構成される。作業端末101には、例えば家庭用PCやスマートフォンなどを用いることができる。作業端末101は、DAWなどの統合音楽制作環境を提供する音楽制作アプリケーションを実行する。作業端末101は、ネットワーク106を利用するためのTCP/IP(Transmission Control Protocol / Internet Protocol)通信機能を有する。また、作業端末101は、USB(Universal Serial Bus)ポートを有する。作業端末101は、図1の作業端末20に対応する。
オーディオIF102は、主に、デジタル信号とアナログ信号とを相互変換する機能を有する。オーディオIF102は、アナログ信号及びMIDI信号の入力端子を有する。オーディオIF102は、音声出力装置103、楽譜データ入力装置104、及び音声入力装置105と、作業端末101とに接続される。オーディオIF102は、例えば作業端末101にUSB接続される。また、オーディオIF102は、オーディオケーブルを介して音声出力装置103及び音声入力装置105にそれぞれ接続され、MIDIケーブルを介して楽譜データ入力装置104に接続される。オーディオIF102は、例えば、信号処理に特化したプロセッサであるDSP(Digital Signal Processor)を有する。
音声出力装置103は、例えばスピーカやヘッドフォンなどの音響機器を含む。楽譜データ入力装置104は、例えば外部MIDI機器であり、ユーザが演奏した音楽を所定フォーマットのMIDIデータに変換して出力する。楽譜データ入力装置104には、例えばMIDIキーボードなどが用いられる。楽譜データ入力装置104は、MIDIデータを出力する機能に加えて、オーディオIF102から出力されるMIDIデータを受信し、受信したMIDIに応じて音楽を演奏する機能を有していてもよい。音声入力装置105は、例えばマイクや楽器、アンプなどの、アナログ音声(音楽)信号を出力する機能を有する装置として構成される。
なお、上記では、図2を参照して、楽譜データ入力装置104がオーディオIF102を介して作業端末20に接続される例を説明したが、楽譜データ入力装置104と作業端末20の接続はこれには限定されない。例えば、楽譜データ入力装置104は、USBケーブを介して作業端末20のUSBポートに直接に接続されてもよい。
外部端末107は、CPU及びメモリなどを含むコンピュータ装置として構成される。外部端末107には、例えば家庭用PCやスマートフォンなどを用いることができる。外部端末107は、DAWなどの統合音楽制作環境を提供する音楽制作アプリケーションを実行する。外部端末107は、ネットワーク106を利用するためのTCP/IP通信機能を有する。また、外部端末107は、図示しないオーディオIFと接続するためのUSBポートを有していてもよい。外部端末107は、図1の外部端末30に対応する。
図3は、作業端末101及び外部端末107のソフトウェア構成を示す。作業端末101は、アウトソース管理手段111、音源ストリーミング受信手段112、DAWアプリケーション113、OS(Operating System)114、及びオーディオドライバ115を有する。作業端末101において、これらの要素は、作業端末101のCPUがメモリから読み出したプログラムを実行することで実現され得る。
OS114は、オーディオIF102を利用するためのオーディオドライバ115を有し、DAWアプリケーション113を実行可能な要件を満たす。オーディオIF102は、ADC(Analog to Digital Converter)121、及びDAC(Digital to Analog converter)122を含む。ADC121は、音声入力装置105(図2を参照)から入力される音声信号をデジタル信号に変換する。オーディオドライバ115は、ADC121から、デジタル信号に変換された音声信号を取得する。また、オーディオドライバ115は、DAC122に、デジタル音声信号を出力する。DAC122は、デジタル音声信号をアナログ信号に変換し、音声出力装置103に出力する。
DAWアプリケーション113は、音楽制作及び音楽再生に用いられるアプリケーションソフトウェアである。DAWアプリケーション113は、音声波形を扱うオーディオトラックと、MIDIデータ及びMIDI音源を扱うMIDIトラックとを、複数同時に再生可能である。また、DAWアプリケーション113は、各トラックに対し、波形変化を加えて音の性質を変化させるプラグインエフェクトを複数割り当てることができる。さらに、DAWアプリケーション113は、オーディオ録音機能、及びMIDI録音機能の少なくとも一方を有する。DAWアプリケーション113は、図1のトラック再生手段22及び合成出力手段24としても機能する。また、DAW113は、トラック録音手段としても機能する。
アウトソース管理手段111は、DAW上に展開されるトラック及びプラグインの情報を管理する。DAWアプリケーション113は、アウトソース管理手段111と連携し、トラックやプラグインの情報をメタ情報として収集し、保存する機能を有する。アウトソース管理手段111は、DAWアプリケーション113上の複数のトラックのうち、外部端末107へ再生処理をアウトソースするアウトソース対象トラックを決定する。アウトソース管理手段111は、外部端末107に、アウトソース対象トラックに関する情報(アウトソースデータ)を送信する。アウトソースデータは、例えば音源データ、プラグインデータ、及び変更差分データなどを含む。アウトソース管理手段111は、図1のアウトソース管理手段21に対応する。
アウトソース管理手段111は、作業端末101において再生対象の複数のトラックが再生された場合の処理負荷を示す指標に基づいて、アウトソース対象トラックを決定する。アウトソース管理手段111は、例えば、再生対象の複数のトラックの情報、及び各トラックに適用されるプラグインの情報に基づいて、アウトソース対象トラックを決定する。アウトソース管理手段111は、例えばプロセスごとに、処理負荷を示すスコア(トラックスコア)を計算する。ここで、プロセスとは、トラック処理やプラグイン処理の総称であり、アウトソース管理手段111は、トラックと、そのトラックに適用するプラグインとの組み合わせに対してトラックスコアを計算する。トラックスコアの値は、例えば処理負荷が高いほど大きい。アウトソース管理手段111は、計算したトラックスコアに基づいて、アウトソース対象トラックを決定する。
例えば、アウトソース管理手段111は、プラグインごとに、各プラグインの処理負荷を示すプラグインスコアを計算する。アウトソース管理手段111は、トラックの処理負荷を示すサブスコア(仮スコア)を計算し、そのサブスコアに、トラックに適用されるプラグインのプラグインスコアを加算したスコアを、トラックスコアとして計算する。
アウトソース管理手段111は、例えば、CPUの計算量が多いプラグインほど、プラグインスコアを加算する。アウトソース管理手段111は、例えばMIDIのソフトウェア音源として、大容量のサンプル音源を持つプラグインは、プラグインスコアを大きな値とする。また、アウトソース管理手段111は、例えば高機能なリバーブなどを使用するエフェクタのプラグインは、プラグインスコアを大きな値とする。
アウトソース管理手段111は、トラックのサブスコアについては、例えば再生時間がある程度長いトラックのサブスコアを加算する。例えば、楽曲全体に対する再生時間が多いトラックが作業端末に存在する場合、CPU処理を同時に実行するトラックが存在する時間の割合が多くなるため、作業端末101におけるCPU負荷が上昇する。アウトソース管理手段111は、例えば、トラックの再生時間が楽曲全体に対して所定割合を超えるトラックのサブスコアを大きな値とする。
アウトソース管理手段111は、例えば、トラックスコアが小さいトラックから順次にトラックを選択し、選択したトラックのトラックスコアを累積加算する。アウトソース管理手段111は、累積加算したトラックスコアが、基準スコア以上となるトラックを、アウトソース対象トラックとして決定する。アウトソース管理手段111は、例えばユーザが所定のボタンを押下した場合に、アウトソース対象トラックの決定を行ってもよい。
音源ストリーミング受信手段112は、ネットワーク106を介して、外部端末107から、ストリーミングデータを受信する。音源ストリーミング受信手段112は、受信したストリーミングデータを、DAW上のストリームトラックに出力する。DAWアプリケーション113は、音源ストリーミング受信手段112と連携し、ストリームトラック(ストリームデータ)を音声としてリアルタイムに(例えば10ms程度の低遅延で)再生する機能を有する。音源ストリーミング受信手段112は、図1の音源受信手段23に対応する。
外部端末107は、アウトソース指示受信手段171、音源ストリーミング送信手段172、DAWアプリケーション173、及びOS174を有する。外部端末107において、これらの要素は、CPUがメモリから読み出したプログラムを実行することで実現される。OS174は、DAWアプリケーション173を実行可能な要件を満たす。DAWアプリケーション173は、作業端末101のDAWアプリケーション113と同様に、音声波形を扱うオーディオトラックと、MIDIデータ及びMIDI音源を扱うMIDIトラックとを、複数同時に再生可能である。また、DAWアプリケーション173は、各トラックに対し、波形変化を加えて音の性質を変化させるプラグインエフェクトを複数割り当てることができる。
アウトソース指示受信手段171は、作業端末101から送信されるアウトソースデータを受信する。アウトソース指示受信手段171は、受信したアウトソースデータをDAWアプリケーション173上へ展開する。アウトソース指示受信手段171は、DAWアプリケーション173における再生開始、及び再生停止を制御する機能を有する。音源ストリーミング送信手段172は、DAWアプリケーション173で再生される音声をストリームデータに変換し、ネットワーク106を通じて作業端末101に送信する。アウトソース指示受信手段171は、図1のアウトソース指示受信手段31に対応し、音源ストリーミング送信手段172は、図1の音源送信手段33に対応する。DAWアプリケーション173は、図1のトラック再生手段32としても機能する。
ここで、本実施形態では、作業端末101は外部端末107から音声データのストリームデータを受信する。本実施形態において、作業端末101と外部端末107との間で、特定のトラックのMIDIデータを独立して送受信することは想定されていない。本実施形態において、再生対象のトラックに、物理シンセサイザなどの外部MIDI機器を使用するトラックがある場合、そのトラックは作業端末101において再生されることが想定されている。このため、アウトソース管理手段111は、外部MIDI機器を利用するトラックは、アウトソース対象トラックから除外するものとする。また、作業端末101を用いて録音が行われる場合、アウトソース管理手段111は、録音トラックも、アウトソース対象トラックから除外するものとする。
図4は、DAWにおけるトラックの構成例を示す。例えば、トラック01及び03はオーディオトラックであり、トラック02はMIDIトラックである。トラック01~03は、作成済みのトラックであるとする。録音トラックは、ユーザが楽譜データ入力装置104を用いて録音を行う場合に、録音されるデータが記録されるトラックである。ストリームトラックはオーディオトラックであり、外部端末107から送信されたストリームデータを再生するためのトラックである。マスタートラックは、全てのトラックを統合したトラックである。音声出力装置103(図2を参照)には、マスタートラックの音声が出力される。
各トラックには、1以上のプラグインを適用することができる。DAWアプリケーション113は、トラックに適用されるプラグインが指定されている場合、そのプラグインの処理を適用してトラックの再生を行う。図4の例では、トラック01にはプラグイン1のプラグインが適用され、トラック02にはプラグイン2及び3のプラグインが適用され、トラック03にはプラグイン4のプラグインが適用される。また、録音トラックにはプラグイン5のプラグインが適用され、マスタートラックにはプラグイン6及び7のプラグインが適用される。DAW上のトラックは、プラグインが適用されないトラックを含んでいてもよい。
続いて、動作手順を説明する。以下の説明では、主に、DAW上にトラックT1~T8の8つのトラックが展開される状況を想定する。トラックT1は、ボーカルに対応したオーディオトラックであり、トラックT1には、コンプレッサー、イコライザ、ピッチシフター、及びリバーブのプラグインが適用されるものとする。また、トラックT1の楽曲全体に対する再生時間の割合は60%であるとする。
トラックT2は、コーラスに対応したオーディオトラックであり、トラックT2には、コンプレッサー、イコライザ、ディレイ、及びリバーブのプラグインが適用されるものとする。また、トラックT2の楽曲全体に対する再生時間の割合は40%であるとする。トラックT3は、ギターに対応したオーディオトラックであり、トラックT3には、コンプレッサー、アンプシミュレータ、及びイコライザのプラグインが適用されるものとする。また、トラックT3の楽曲全体に対する再生時間の割合は100%であるとする。
トラックT4は、ギターに対応したオーディオトラックであり、トラックT4には、アンプシミュレータ、及びディレイのプラグインが適用されるものとする。また、トラックT4の楽曲全体に対する再生時間の割合は10%であるとする。トラックT5は、ベースに対応したMIDIトラックであり、トラックT5には、インストゥルメント、及びイコライザのプラグインが適用されるものとする。また、トラックT5の楽曲全体に対する再生時間の割合は95%であるとする。
トラックT6は、ドラムに対応したMIDIトラックであり、トラックT6には、インストゥルメント、及びリバーブのプラグインが適用されるものとする。また、トラックT6の楽曲全体に対する再生時間の割合は100%であるとする。トラックT7は、シンセサイザに対応したMIDIトラックであり、トラックT7には、オーバードライブ、及びフェイザーのプラグインが適用されるものとする。また、トラックT7の楽曲全体に対する再生時間の割合は20%であるとする。トラックT7の再生には、物理シンセサイザ(MIDI IN/MIDI OUT)が利用されるものとする。
トラックT8は、シンセサイザに対応したMIDIトラックであり、トラックT8には、インストゥルメント、コンプレッサー、及びイコライザのプラグインが適用されるものとする。また、トラックT8の楽曲全体に対する再生時間の割合は70%であるとする。以下の例では、これら8つのトラックに追加する形で、ユーザがオーディオトラックであるトラックT9にエレキギターを録音する状況を考える。
図5は、メタ情報収集の動作手順を示す。アウトソース管理手段111は、DAWアプリケーション113上に展開されたトラックをトラックオブジェクトTとして定義し、トラックリストに格納する(ステップA1)。アウトソース管理手段111は、例えば新たなトラックが追加されるたびに、或いはトラックの情報が変更されるたびにステップA1を実行し、新たに追加されるトラックのトラックオブジェクトをトラックリストに追加する。
アウトソース管理手段111は、トラックリストに格納されたトラックオブジェクトのそれぞれについて、変数を初期化する(ステップA2)。アウトソース管理手段111は、ステップA2では、例えば各トラックのトラック種別がオーディオであるか、MIDIあるかを示す変数isMIDI、及びMIDI OUTを使用して外部機器を利用するか否かを示す変数hasMIDIOutを設定する。また、アウトソース管理手段111は、トラックに含まれるデータの合計再生時間を示す変数lengthを設定する。さらに、アウトソース管理手段111は、トラックがアウトソース対象であるか否かを示す変数isOutsourcedにアウトソース対象外である旨を示すfalseを設定し、トラックのスコア値scoreを1に初期設定する。
続いて、アウトソース管理手段111は、トラックに関連付けられたプラグインをプラグインオブジェクトPとして定義し、プラグインリストに格納する(ステップA3)。アウトソース管理手段111は、プラグインリストに格納したプラグインオブジェクトのそれぞれについて、変数を初期化する(ステップA4)。アウトソース管理手段111は、ステップA4では、例えばプラグインが有効であるか無効であるかを示す変数plgEnabled、及びMIDI用の楽器プラグインであるか否かを示す変数isPlginstを設定する。また、アウトソース管理手段111は、プラグインのデータ量を示す変数pluginData、及び空間系のエフェクト機能があるか否かを示す変数isSpatialEffectを設定する。さらに、アウトソース管理手段111は、プラグインのスコア値scoreを0に初期設定する。
図6は、音楽再生時の作業端末101における動作手順を示す。ユーザは、作業端末101のDAWアプリケーション113にトラックを追加する(ステップB1)。また、ユーザは、任意のトラックに関連して、プラグインを追加する(ステップB2)。ステップB1でトラックが追加されると、そのトラックに対応するトラックオブジェクトがトラックリストに追加される。また、ステップB2でプラグインが追加されると、そのプラグインに対応するプラグインオブジェクトがプラグインリストに追加される。アウトソース管理手段111は、プラグインスコアを計算し(ステップB3)、トラックスコアを計算する(ステップB4)。
図7は、プラグインスコアの計算手順を示す。アウトソース管理手段111は、プラグインリストからプラグイン(プラグインオブジェクト)を1つ選択する(ステップC1)。アウトソース管理手段111は、選択したプラグインが有効であるか否かを判断する(ステップC2)。アウトソース管理手段111は、ステップC2では、例えばプラグインオブジェクトPの変数plgEnabledを参照し、プラグインが有効であるか否かを判断する。
アウトソース管理手段111は、ステップC2でプラグインが有効と判断した場合、仮スコアを0に初期化する(ステップC3)。アウトソース管理手段111は、ステップC1で選択されたプラグインの種別がVSTi(Virtual Studio Technology instruments)であるか否かを判断する(ステップC4)。アウトソース管理手段111は、ステップC4では、例えばプラグインオブジェクトPの変数isPlginstを参照し、プラグインの種別がVSTiであるか否かを判断する。
アウトソース管理手段111は、プラグインの種別がVSTiであると判断した場合、プラグインのデータ量が、所定データ量、例えば500MByteを超えるか否かを判断する(ステップC5)。アウトソース管理手段111は、ステップC5では、例えばプラグインオブジェクトPの変数pluginDataを参照し、pluginDataの値が500MByteを超えるか否かを判断する。アウトソース管理手段111は、ステップC5でデータ量が500MByteを超えると判断した場合、仮スコアに「2」を加算する(ステップC6)。アウトソース管理手段111は、ステップC5でデータ量が500Mbyteを超えないと判断した場合は、仮スコアに「1」を加算する(ステップC7)。
アウトソース管理手段111は、ステップC6で仮スコアに「2」を加算した後、又はステップC7で仮スコアに「1」を加算した後、プラグインが空間系のエフェクトであるか否かを判断する(ステップC8)。アウトソース管理手段111は、ステップC4でプラグインの種別がVSTiではないと判断した場合も、ステップC8に進み、プラグインが空間系のエフェクトであるか否かを判断する。アウトソース管理手段111は、ステップC8では、例えばプラグインオブジェクトPの変数isSpatialEffectを参照し、プラグインが空間系のエフェクトであるか否かを判断する。アウトソース管理手段111は、ステップC8でプラグインが空間系のエフェクトであると判断すると、仮スコアに「1」を加算する(ステップC9)。
アウトソース管理手段111は、ステップC1で選択したプラグインオブジェクトPの変数scoreに、仮スコアの値を代入する(ステップC10)。その後、アウトソース管理手段111は、プラグインリストに未選択のプラグインオブジェクトがあるか否かを判断する(ステップC11)。アウトソース管理手段111は、ステップC2でプラグインが有効でないと判断した場合、ステップC11に進み、未選択のプラグインオブジェクトがあるか否かを判断する。
アウトソース管理手段111は、ステップC11では、例えば、プラグインリストに含まれるプラグインオブジェクトPのうち、図6のステップB2で追加されたプラグインに対応するプラグインオブジェクトが残っているかを判断する。アウトソース管理手段111は、ステップC11で未選択のプラグインオブジェクトがあると判断した場合、ステップC1に戻り、未選択のプラグインオブジェクトの1つを選択する。ステップC11で未選択のプラグインオブジェクトがないと判断された場合、プラグインスコアの計算処理は終了する。
図8は、トラックスコアの計算手順を示す。アウトソース管理手段111は、トラックリストからトラック(トラックオブジェクト)を1つ選択する(ステップD1)。アウトソース管理手段111は、仮スコアを「1」に初期化する(ステップD2)。アウトソース管理手段111は、トラック種別がMIDIであるか否かを判断する(ステップD3)。アウトソース管理手段111は、ステップD3では、例えばトラックオブジェクTの変数isMIDIを参照し、トラック種別がMIDIであるか否かを判断する。
アウトソース管理手段111は、ステップD3でトラック種別がMIDIであると判断した場合、トラックが物理シンセサイザを使用するか否かを判断する(ステップD4)。アウトソース管理手段111は、ステップD4では、例えばトラックオブジェクトTの変数hasMIDIOutを参照し、トラックが物理シンセサイザを使用するか否かを判断する。アウトソース管理手段111は、ステップD4でトラックが物理シンセサイザを使用すると判断した場合、そのトラックをアウトソースの対象外とする(ステップD5)。
アウトソース管理手段111は、ステップD3でトラック種別がMIDIではないと判断した場合、トラックの再生時間が、楽曲全体の再生時間に対して所定の割合、例えば70%を超えているか否かを判断する(ステップD6)。アウトソース管理手段111は、ステップD6では、例えばトラックオブジェクトTの変数lengthの値が、楽曲全体の再生時間の70%を越えているか否かを判断する。アウトソース管理手段111は、ステップD6で再生時間が全体の70%を超えていると判断した場合、仮スコアに「1」を加算する(ステップD7)。
アウトソース管理手段111は、ステップD1で選択したトラックに関連付けられるプラグインのそれぞれに対して計算されたプラグインスコア(プラグインオブジェクトPの変数score)を、仮スコアに加算する(ステップD8)。アウトソース管理手段111は、ステップD8では、例えば選択されたトラックに、2つのプラグインP1及びP2が関連付けられていた場合は、プラグインオブジェクトP1のスコアとプラグインオブジェクトP2のスコアを、仮スコアに加算する。アウトソース管理手段111は、ステップD4で物理シンセサイザが使用されないと判断した場合、及びステップD6で再生時間が70%を超えないと判断した場合は、ステップD8に進み、仮スコアにプラグインスコアを加算する。
アウトソース管理手段111は、ステップD1で選択したトラックオブジェクトTの変数scoreに、仮スコアの値を代入する(ステップD9)。その後、アウトソース管理手段111は、トラックリストに未選択のトラックオブジェクトがあるか否かを判断する(ステップD10)。アウトソース管理手段111は、ステップD10では、例えば、トラックリストに、図6のステップB1で追加されたトラックに対応するトラックオブジェクトが残っているかを判断する。
アウトソース管理手段111は、ステップD10で未選択のトラックオブジェクトがあると判断した場合、ステップD1に戻り、未選択のトラックオブジェクトの1つを選択する。ステップD10で未選択のプラグインオブジェクトがないと判断された場合、トラックスコアの計算処理は終了する。
図6に戻り、ユーザは、プラグインのパラメータを調整する(ステップB5)。ユーザは、作業端末101のDAWアプリケーション113上の再生ボタンを押下し、DAWアプリケーション113に再生開始を指示する(ステップB6)。DAWアプリケーション113は、DAW上に展開された各トラックを再生する(ステップB7)。このとき、DAWアプリケーション113は、展開された全てのトラックを作業端末101上で再生するものとする。ユーザが停止ボタンを押下すると(ステップB8)、DAWアプリケーション113は再生を終了する。
アウトソース管理手段111は、再生が終了すると、ステップB4で計算されたトラックスコアの合計値をログ情報logScoreとして記録する(ステップB9)。ステップB9で記録されるトラックスコアの合計値は、作業端末101において音とびなどの再生不良が発生することなく再生処理を実施できた場合のトラックスコアの合計値として記録される。アウトソース管理手段111は、再生開始後、任意のタイミングでトラックスコアの合計値をログ情報として記録してもよい。アウトソース管理手段111は、例えば、トラックやプラグインの追加があるたびにトラックスコア及びプラグインスコアの再計算を行い、トラックスコアをログ情報として記録する。
アウトソース管理手段111は、例えば上記したトラックT1について、適用される3つのプラグインのプラグインスコアの合計値「1」に、仮スコア「1」を加算した値「2」をトラックスコアとして計算する。アウトソース管理手段111は、トラックT2について、適用される4つのプラグインのプラグインスコアの合計値「2」に、仮スコア「1」を加算した値「3」をトラックスコアとして計算する。アウトソース管理手段111は、トラックT3について、適用される3つのプラグインのプラグインスコアの合計値「0」に、仮スコア「1」を加算した値「1」をトラックスコアとして計算する。アウトソース管理手段111は、トラックT4について、適用される2つのプラグインのプラグインスコアの合計値「1」に、仮スコア「2」を加算した値「3」をトラックスコアとして計算する。
アウトソース管理手段111は、トラックT5について、適用される2つのプラグインのプラグインスコアの合計値「2」に、仮スコア「1」を加算した値「3」をトラックスコアとして計算する。アウトソース管理手段111は、トラックT6について、適用される2つのプラグインのプラグインスコアの合計値「3」に、仮スコア「1」を加算した値「4」をトラックスコアとして計算する。アウトソース管理手段111は、トラックT7ついて、適用される3つのプラグインのプラグインスコアの合計値「0」に、仮スコア「1」を加算した値「1」をトラックスコアとして計算する。アウトソース管理手段111は、トラックT8について、適用される3つのプラグインのプラグインスコアの合計値「2」に、仮スコア「1」を加算した値「3」をトラックスコアとして計算する。
図9は、再生不良などが発生した場合の動作手順を示す。ユーザは、例えば作業端末101のDAWアプリケーション113を用いて、既存トラックを再生しつつ、録音トラックに録音を行う。このとき、DAWアプリケーション113は、全ての既存トラックを再生しているとする。ユーザは、録音の最中に音とびなどの再生不良が発生すると、所定のボタン(COMPLAINボタン)を押下する(ステップE1)。作業端末101のアウトソース管理手段111は、COMPLAINボタンが押下されると、トラック再生を外部端末107にアウトソースするトラックを決定する(ステップE2)。
図10は、アウトソース対象トラック決定の動作手順を示す。アウトソース管理手段111は、ログ情報を参照し、基準スコア(しきい値)として用いられるローカルスコアlocalScoreを設定する(ステップF1)。アウトソース管理手段111は、ステップF1では、例えばログ情報として記録されているトラックスコアの合計値のうち、最新のものよりも1つ前の合計値を、ローカルスコアとして設定する。このローカルスコアは、作業端末101において再生不良が発生することなく再生を行うことができるトラックスコアの合計値を示す。
アウトソース管理手段111は、トラックリストに含まれるトラックを、スコアの昇順でソートする(ステップF2)。アウトソース管理手段111は、評価用スコアestScoreを0に初期化する(ステップF3)。アウトソース管理手段111は、スコア昇順でソートされたトラックリストから、トラック(トラックオブジェクト)の1つを選択する(ステップF4)。アウトソース管理手段111は、初回の選択では、スコアが最も低いトラックオブジェクトを選択する。アウトソース管理手段111は、選択したトラックのトラックスコアを評価用スコアに加算する(ステップF5)。アウトソース管理手段111は、ステップF5では、例えば評価用スコアestScoreに、選択されたトラックオブジェクトの変数scoreの値を加算する。
アウトソース管理手段111は、評価用スコアと、ステップF1で設定したローカルスコアとを比較し、評価用スコアがローカルスコア以上であるか否かを判断する(ステップF6)。アウトソース管理手段111は、ステップF6で評価用スコアがローカルスコア以上であると判断した場合、選択されたトラックが外部MIDI機器を利用するか否かを判断する(ステップF7)。アウトソース管理手段111は、ステップF7で、選択されたトラックが外部MIDI機器を利用しないと判断した場合、そのトラックをアウトソース対象のトラックと決定する(ステップF8)。
アウトソース管理手段111は、ステップF6で評価用スコアがローカルスコア以上ではないと判断した場合、及びステップF7で外部MIDI機器を利用すると判断した場合、ステップF4で選択されたトラックをアウトソース対象としない。アウトソース管理手段111は、トラックリストに未選択のトラックがあるか否かを判断する(ステップF9)。アウトソース管理手段111は、ステップF9で未選択のトラックがあると判断した場合、ステップF4に戻り、次にスコアが高いトラックを選択する。ステップF4からステップF9を未選択のトラックがなくなるまで繰り返し実施することで、スコアが高いトラックから順に、アウトソース対象とするか否かが決定される。
例えば、上記した8つのトラックのうち、トラックT2が存在しない7つのトラックの再生がDAWアプリケーション113において行われた場合を考える。その場合、トラックスコアのログ情報logScoreには、トラックスコアの合計値「17」が記録される。
ユーザは、トラックT2の追加後に再生不良を感じた場合、COMPLAINボタンを押下する。このときのトラックスコアの合計値は20である。アウトソース管理手段111は、ステップF1では、前回のトラックスコアの合計値「17」をローカルスコアに設定する。アウトソース管理手段111は、ステップF2では、トラックオブジェクトT1~T8をスコア昇順でソートする。ソートの結果、トラックリストにおけるトラックの順序は、トラックT3(スコア「1」),トラックT7(スコア「1」)、トラックT1(スコア「2」)、トラックT2(スコア「3」)、トラックT4(スコア「3」)、トラックT5(スコア「3」)、トラックT8(スコア「3」)、及びトラックT6(スコア「4」)の順となる。
アウトソース管理手段111は、評価用スコアに、トラックリストに含まれるトラックオブジェクトのスコアを順次に加算していき、ステップF6において、評価用スコアがローカルスコア以上であるか否かを判断する。別の言い方をすると、アウトソース管理手段111は、昇順にソートされたトラックスコアを順次に加算していったときに、どのトラックまで選択された場合にトラックスコアの総和がローカルスコア以上となるかを判断する。上記のケースでは、スコアが最も大きいトラックT6が選択されると、評価用スコアがローカルスコア「17」以上となり、ステップF8において、トラックT6がアウトソース対象トラックとして決定される。
なお、アウトソース対象トラックが一度決定された後、再度アウトソース対象トラックの決定を行う場合、アウトソース管理手段111は、ステップF1において初回のアウトソース対象トラックの決定時のローカルスコアをローカルスコアとして決定してもよい。その場合でも、アウトソース対象トラックの決定後、直ちにCOMPLAINボタンが押下された場合は、アウトソース管理手段111は、ステップF1において、更に1つ前に記録されたトラックスコアの合計値を、ローカルスコアとして設定してもよい。
例えば、前述のトラックT2が存在しない7つのトラックの再生がDAWアプリケーション113において行われた場合で、かつ、その1つ前の再生において、トラックT6においてリバーブのプラグインが適用されていなかった場合を考える。その場合、1つ前のトラックスコアのログ情報logScoreとして、トラックスコアの合計値「17」が記録され、2つ前のトラックスコアのログ情報として、トラックスコアの合計値「16」が記録される。
トラックT6の再生が外部端末107にアウトソースされた状態で作業端末101において録音が行われている場合に、ユーザが、録音開始後、すぐにCOMPLAINボタンを押下したとする。その場合、アウトソース管理手段111は、ステップF1において、2つ前のログ情報を参照し、ローカルスコアを「16」を設定してもよい。その場合、スコア昇順でソートされたトラックのうち、トラックT8が選択された段階で評価用スコアがローカルスコア「16」以上となる。このケースでは、アウトソース管理手段111は、ステップF8において、トラックT6とトラックT8の2つのトラックをアウトソース対象トラックとして決定する。
図9に戻り、作業端末101のアウトソース管理手段111は、アウトソース対象トラックを決定すると、アウトソース対象トラックのデータと、そのアウトソース対象トラックに適用されるプラグインのデータとを、外部端末107に送信する(ステップE3)。外部端末107のアウトソース指示受信手段171は、アウトソース対象トラックのデータと、そのアウトソース対象トラックに適用されるプラグインのデータとを、作業端末101から受信する。
アウトソース指示受信手段171は、アウトソース対象トラックと、そのアウトソース対象トラックに適用されるプラグインとを、DAWアプリケーション173上に展開する(ステップE4)。アウトソース指示受信手段171は、トラックの展開後、作業端末101に、録音開始準備が完了した旨を通知する(ステップE5)。作業端末101は、図示しない表示装置などを用いて、ユーザに、録音開始可能を通知する(ステップE6)。
ユーザは、録音ボタンを押下する(ステップE7)。作業端末101のアウトソース管理手段111は、録音ボタンが押下されると、外部端末107にストリームデータ送信開始要求を送信する(ステップE8)。外部端末107のDAWアプリケーション173は、アウトソース指示受信手段171が要求を受信すると、要求内に記述される再生開始位置に従って、トラックの再生を開始する。このとき、DAWアプリケーション173は、アウトソース対象トラックが複数のトラックを含む場合、複数のトラックのそれぞれにおいてプラグインを適用し、複数トラックのプラグインの適用結果を合成する。音源ストリーミング送信手段172は、DAWアプリケーション173が再生するトラックのストリームデータの送信を開始する(ステップE9)。
音源ストリーミング受信手段112はストリームデータを受信し、受信したストリームデータをDAWアプリケーション113のストリームトラック(図4を参照)にスルーする。DAWアプリケーション113は、ストリームトラックの再生開始タイミングと、他のトラックの再生開始タイミングとを同期して、既存トラックの再生(モニタ音の再生)を開始する(ステップE10)。また、DAWアプリケーション113は、録音トラックの録音を開始する(ステップE11)。
ユーザは、モニタ音を聞きながら楽器の演奏を行い、演奏データを作業端末101に送信する(ステップE12)。DAWアプリケーション113は、ユーザが演奏に用いる音声入力装置105(図2を参照)から出力される音楽信号を、オーディオIF102を通じて取得する。DAWアプリケーション113は、既存トラックに録音トラックの音楽信号データを合成し、再生する(ステップE13)。録音が継続する間、外部端末107から作業端末101へのストリームデータの送信、及び作業端末101におけるモニタ音の再生が実施される。
ユーザは、演奏を終えると、録音停止ボタンを押下する(ステップE14)。DAWアプリケーション113は、録音停止ボタンが押下されると、演奏データの記録を停止し、録音ファイルを保存する(ステップE15)。また、アウトソース管理手段111は、録音ボタンが停止されると、外部端末107にストリーム送信停止を要求する(ステップE16)。外部端末107のDAWアプリケーション173は、ストリーム送信停止が要求されるとトラックの再生を一時停止し、音源ストリーミング送信手段172は、ストリームデータの送信を停止する(ステップE17)。
ユーザは、音楽再生システム100において、録音作業やトラック及びプラグインの追加を繰り返し実施する。ユーザは、再生不良などの問題が生じた場合、COMPLAINボタンを押下する。作業端末101のアウトソース管理手段111は、COMPLAINボタンが押下されると、再度アウトソース対象トラックを決定する。
本実施形態では、作業端末101のアウトソース管理手段111は、再生対象の複数のトラックの情報とトラックに適用されるプラグインの情報とに基づいて、外部端末107に再生をアウトソースするトラックを決定する。例えば、作業端末101のCPU能力を超えるトラックの再生を外部端末107にアウトソースすることで、楽器演奏時などにおいて、違和感のない再生環境を実現できる。また、作業端末101の処理能力が低い場合であっても、DAWプロジェクトの容量に影響されずに、録音時などにおける再生不良を防止できる。本実施形態では、トラックの情報とプラグインの情報とに基づいてアウトソース対象トラックが決定されるため、外部端末107のリソースの効率的な使用を実現できる。
ここで、MIDI再生時の音源には、もともと外部のハードウェア音源が使用されていたため、DAWを動作させる端末自体は低スペックでもそれほど問題なかった。しかし、時代と共にソフトウェア音源の質が向上し、MIDI音源はソフトウェアDAW環境においてオールインワンで扱われるようになり、動作端末の要求スペックは向上している。例えば、VSTiなどの大容量のエフェクトを備えたソフトウェア音源やDAWの高性能化が年々進み、DAWを動作させる端末の奨励動作環境の水準が高くなっている。要求を満たせない世代の古い一般家庭用PCでは、CPU負荷が高くなると、音とびなどの再生不良が生じうる。
一方で、近年は、スマートフォンやタブレット端末などの比較的高性能なプロセッサを搭載したモバイル端末が普及しており、一部、モバイル端末向けのDAWアプリケーションも入手可能となっている。しかしながら、モバイル端末向けのDAWアプリケーションは、プロフェッショナル用途というよりは、手軽に音楽制作が行える程度のものであり、デスクトップ環境向け製品に比べると使用用途が狭く、また、統合性に欠ける。本実施形態において、作業端末101としてモバイル端末を用いた場合、多機能なデスクトップ環境向けDAW製品を動作させるにはスペックが不足するモバイル端末においても、デバイス非依存かつ統合性をカバーした音楽制作環境が実現可能である。
次いで、本開示の第2実施形態を説明する。本実施形態に係る音楽再生システムの構成は、図2に示す第1実施形態に係る音楽再生システムの構成と同様でよい。また、本実施形態における作業端末101及び外部端末107の構成は、図3に示す第1実施形態で用いられた作業端末101及び外部端末107の構成と同様でよい。本実施形態は、アウトソース管理手段111が、各トラック再生時の処理負荷を示す指標として、CPU使用率を用いてアウトソース対象トラックを決定する点で、第1実施形態と相違する。その他の点は、第1実施形態と同様でよい。
本実施形態において、アウトソース管理手段111は、各トラックについて、DAWアプリケーション113が各トラックを再生した場合の処理負荷を示す指標として、CPU使用率(プロセッサ使用率)を計測する。アウトソース管理手段111は、例えばトラックの再生を開始してから、再生終了までの間の平均CPU使用率を計測する。アウトソース管理手段111は、計測したCPU使用率に基づいて、アウトソース対象トラックを決定する。アウトソース管理手段111は、例えば計測したCPU使用率に基づいて基準使用率を選定し、各トラックのCPU使用率と基準使用率とを用いて各トラックの評価値を計算する。アウトソース管理手段111は、計算した評価値に基づいて、アウトソース対象トラックを決定する。
図11は、各トラックの評価値計算の動作手順を示す。アウトソース管理手段111は、トラックリストから、トラックを1つ選択する(ステップG1)。DAWアプリケーション113は、ステップG1で選択されたトラックを再生し、アウトソース管理手段111は、バックグランドプロセスとしてトラック再生時の平均CPU使用率を計測する(ステップG2)。DAWアプリケーション113は、ステップG2では、選択されたトラックに適用されるプラグインがある場合は、そのプラグインを適用してトラックを再生する。
アウトソース管理手段111は、未選択のトラックがあるか否かを判断する(ステップG3)。アウトソース管理手段111は、ステップG4では、例えば、トラックリストに含まれるトラックのうち、図6のステップB1で追加されたトラック、及びステップB2で追加されたプラグインが適用されるトラックが残っているかを判断する。アウトソース管理手段111は、ステップG3で未選択のトラックがあると判断した場合、ステップG1に戻り、未選択のトラックの1つを選択する。アウトソース管理手段111は、ステップG1からG3を、未選択のトラックがなくなるまで繰り返し実施することで、各トラックの再生時のCPU使用率を計測する。
アウトソース管理手段111は、ステップG3で未選択のトラックがないと判断すると、基準CPU使用率を選定する(ステップG4)。アウトソース管理手段111は、ステップG4では、例えば、計測されたCPU使用率のうち、最も低いCPU使用率を基準CPU使用率baseRとして選定する。アウトソース管理手段111は、ステップG4で選定した基準CPU使用率を用いて、各トラックの評価値を計算する(ステップG5)。アウトソース管理手段111は、ステップG5では、例えば、各トラックのCPU使用率から基準CPU使用率baseRを減算した値を、各トラックの評価値として計算する。
アウトソース管理手段111は、例えば前述のトラックT1~T8の8つのトラックをそれぞれDAWアプリケーション113で個別に再生した場合のCPU使用率の平均値を計測する。例えばトラックT1が再生されているときの平均CPU使用率の計測結果が58%であったとする。また、トラックT2の再生時の平均CPU使用率の計測結果が50%であり、トラックT3の再生時の平均CPU使用率の計測結果が52%であり、トラックT4の再生時の平均CPU使用率の計測結果が48%であったとする。さらに、トラックT5の再生時の平均CPU使用率の計測結果が58%であり、トラックT6の再生時の平均CPU使用率の計測結果が62%であり、トラックT7の再生時の平均CPU使用率の計測結果が42%であったとする。トラックT8の再生時の平均CPU使用率の計測結果は56%であったとする。
上記の場合、アウトソース管理手段111は、ステップG4において、最も平均CPU使用率が低いトラックT7の平均CPU使用率42%を、基準使用率baseRとして選定する。アウトソース管理手段111は、ステップG5では、各トラックの平均CPU使用率と基準使用率baseR(42%)との差を、各トラックの評価値Trとして計算する。
図12は、アウトソース対象トラック決定の動作手順を示す。アウトソース管理手段111は、CPU使用率のしきい値を設定する(ステップH1)。アウトソース管理手段111は、ステップH1では、例えば100%-基準CPU使用率baseRを、CPU使用率のしきい値localRとして設定する。アウトソース管理手段111は、評価合計値を0に初期化する(ステップH2)。
アウトソース管理手段111は、トラックリストに含まれるトラックを、評価値昇順でソートする(ステップH3)。アウトソース管理手段111は、評価値昇順でソートされたトラックリストから、トラックの1つを選択する(ステップH4)。アウトソース管理手段111は、初回の選択では、評価値が最も低いトラックを選択する。アウトソース管理手段111は、選択したトラックの評価値Trを評価合計値estRに加算する(ステップH5)。
アウトソース管理手段111は、評価合計値estRと、ステップH1で設定したしきい値localRとを比較し、評価合計値estRがしきい値localR以上であるか否かを判断する(ステップH6)。アウトソース管理手段111は、ステップH6で評価合計値がしきい値以上であると判断した場合、選択されたトラックが外部MIDI機器を利用するか否かを判断する(ステップH7)。アウトソース管理手段111は、ステップH7で選択されたトラックが外部MIDI機器を利用しないと判断した場合、そのトラックをアウトソース対象のトラックと決定する(ステップH8)。
アウトソース管理手段111は、ステップH6で評価合計値がしきい値以上ではないと判断した場合、及びステップH7で外部MIDI機器を利用すると判断した場合、ステップH4で選択されたトラックをアウトソース対象としない。アウトソース管理手段111は、トラックリストに未選択のトラックがあるか否かを判断する(ステップH9)。アウトソース管理手段111は、ステップH9で未選択のトラックがあると判断した場合、ステップH4に戻り、次に評価値が高いトラックを選択する。ステップH4からH9を未選択のトラックがなくなるまで繰り返し実施することで、評価値が低いトラックから順に、アウトソース対象とするか否かが決定される。
ユーザは、8つのトラックT1からT8の再生において再生不良を感じた場合、COMPLAINボタンを押下する。8つのトラックのうち、平均CPU使用率が最も低いのはトラックT7であり、平均CPU使用率は42%である。その場合、アウトソース管理手段111は、ステップH1では、「58」をしきい値localRの値として設定する。アウトソース管理手段111は、ステップH3では、トラックT1~T8を評価値昇順でソートする。ソートの結果、トラックリストにおけるトラックの順序は、トラックT7(評価値「0」)、トラックT4(評価値「4」)、トラックT2(評価値「8」)、トラックT3(評価値「10」)、トラックT8(評価値「14」)、トラックT1(評価値「16」)、トラックT5(評価値「16」)、及びトラックT6(評価値「20」)の順となる。
アウトソース管理手段111は、評価合計値に、トラックリストに含まれるトラックの評価値を順次に加算していき、ステップH6において、評価合計値がしきい値「58」以上であるか否かを判断する。別の言い方をすると、アウトソース管理手段111は、昇順にソートされた各トラックの評価価値を順次に加算していったときに、どのトラックまで選択された場合に評価値の総和がしきい値「58」以上となるかを判断する。上記のケースでは、トラックT5の評価値が加算された場合に評価合計値がしきい値「58」を超える。このため、ステップH8において、トラックT5及びT6がアウトソース対象トラックとして決定される。
本実施形態では、アウトソース管理手段111は、各トラックを再生した場合のCPU使用率に基づいて、アウトソース対象トラックを決定する。この場合も、作業端末101のCPU能力を超えるトラックの再生を外部端末107にアウトソースすることで、楽器演奏時などにおいて、違和感のない再生環境を実現できる。また、本実施形態においても、各トラック再生の際のCPU使用率に基づいてアウトソース対象トラックが決定されるため、外部端末107のリソースの効率的な使用が実現可能である。
なお、上記各実施形態において、プログラムは、様々なタイプの非一時的なコンピュータ可読媒体を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記憶媒体を含む。非一時的なコンピュータ可読媒体の例は、例えばフレキシブルディスク、磁気テープ、又はハードディスクなどの磁気記録媒体、例えば光磁気ディスクなどの光磁気記録媒体、CD(compact disc)、又はDVD(digital versatile disk)などの光ディスク媒体、及び、マスクROM(read only memory)、PROM(programmable ROM)、EPROM(erasable PROM)、フラッシュROM、又はRAM(random access memory)などの半導体メモリを含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体を用いてコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバなどの有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
以上、本開示の実施形態を詳細に説明したが、本開示は、上記した実施形態に限定されるものではなく、本開示の趣旨を逸脱しない範囲で上記実施形態に対して変更や修正を加えたものも、本開示に含まれる。
例えば、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
[付記1]
再生対象の複数のトラックを再生した場合の処理負荷を示す指標に基づいて、前記複数のトラックのうち、どのトラックを外部端末にアウトソースするアウトソース対象トラックとするかを決定するアウトソース管理手段と、
前記複数のトラックのうち、前記アウトソース対象トラックに決定されたトラック以外のトラックを再生するトラック再生手段と、
前記外部端末から、前記アウトソース対象トラックの再生音楽ストリームを受信する音源受信手段と、
前記トラック再生手段が再生するトラックと前記再生音楽ストリームとを合成して出力する合成出力手段とを備える端末装置。
[付記2]
ユーザが演奏した音楽を録音トラックに録音する録音手段を更に備え、
前記アウトソース管理手段は、前記複数のトラックのうち、前記録音トラックを除くトラックの中から、前記アウトソース対象トラックを決定する付記1に記載の端末装置。
[付記3]
前記トラック再生手段が再生するトラックは前記録音トラックを含む付記2に記載の端末装置。
[付記4]
前記アウトソース管理手段は、前記複数のトラックのうち、外部MIDI(Musical Instruments Digital Interface)機器を利用するトラックは前記外部端末にアウトソースするトラックから除外する付記1から3何れか1つに記載の端末装置。
[付記5]
前記トラック再生手段は、前記トラックに適用されるプラグインが指定されている場合、当該プラグインの処理を前記トラックに適用して前記トラックを再生する付記1から4何れか1つに記載の端末装置。
[付記6]
前記アウトソース管理手段は、各トラックについて、前記複数のトラックのそれぞれに関するトラック情報と前記プラグインに関するプラグイン情報とに基づいて、トラックスコアを前記処理負荷を示す指標として算出し、該算出したトラックスコアに基づいて、前記アウトソース対象トラックを決定する付記5に記載の端末装置。
[付記7]
前記アウトソース管理手段は、前記プラグインごとに各プラグインの処理負荷を示すプラグインスコアを算出し、前記トラックの再生時間に基づいて算出した仮スコアに、前記トラックに適用されるプラグインのプラグインスコアを加算したスコアを、前記トラックスコアとして算出する付記6に記載の端末装置。
[付記8]
前記トラックスコアの値は前記処理負荷が高いほど大きく、
前記アウトソース管理手段は、前記トラックスコアが小さいトラックから順次にトラックを選択して前記トラックスコアを累積加算し、該累積加算したトラックスコアが基準スコア以上となるトラックを前記アウトソース対象トラックとして決定する付記6又は7に記載の端末装置。
[付記9]
前記アウトソース管理手段は、前記トラック再生手段が再生を行うと前記トラックスコアを算出し、該算出したトラックスコアをログ情報として記録し、該ログ情報を参照して前記基準スコアを設定する付記8に記載の端末装置。
[付記10]
前記処理負荷を示す指標は、前記トラック再生手段が各トラックを再生した場合のプロセッサ使用率であり、
前記アウトソース管理手段は、前記プロセッサ使用率に基づいて前記アウトソース対象トラックを決定する付記1から5何れか1つに記載の端末装置。
[付記11]
前記アウトソース管理手段は、前記トラック再生手段が各トラックを再生した場合のプロセッサ使用率を計測する付記10に記載の端末装置。
[付記12]
前記アウトソース管理手段は、前記計測したプロセッサ使用率に基づいて基準プロセッサ使用率を設定し、各トラックのプロセッサ使用率の計測結果と前記基準プロセッサ使用率とに基づいて各トラックの評価値を計算し、該計算した評価値に基づいて前記アウトソース対象トラックを決定する付記11に記載の端末装置。
[付記13]
前記アウトソース管理手段は、前記計測したプロセッサ使用率のうち、値が最も小さいプロセッサ使用率を前記基準プロセッサ使用率として設定し、各トラックのプロセッサ使用率の計測結果と前記基準プロセッサ使用率との差を前記評価値として計算する付記12に記載の端末装置。
[付記14]
前記アウトソース管理手段は、前記評価値が小さいトラックから順次にトラックを選択して前記評価値を累積加算し、該累積加算した評価値がしきい値以上となるトラックを前記アウトソース対象トラックとして決定する付記12又は13に記載の端末装置。
[付記15]
前記アウトソース管理手段は、ユーザが所定のボタンを押下すると、前記アウトソース対象トラックを決定する付記1から14何れか1つに記載の端末装置。
[付記16]
前記アウトソース管理手段は、前記アウトソース対象トラックを決定すると、該アウトソース対象トラックを識別する情報、及び前記アウトソース対象トラックに適用されるプラグインを識別する情報を前記外部端末に通知する付記1から15何れか1つに記載の端末装置。
[付記17]
作業端末と、
前記作業端末と通信可能な外部端末とを備え、
前記作業端末は、
再生対象の複数のトラックを再生した場合の処理負荷を示す指標に基づいて、前記複数のトラックのうち、どのトラックを前記外部端末にアウトソースするアウトソース対象トラックとするかを決定し、前記アウトソース対象トラックの再生指示を前記外部端末に送信するアウトソース管理手段と、
前記複数のトラックのうち、前記アウトソース対象トラックに決定されたトラック以外のトラックを再生するトラック再生手段と、
前記外部端末から、前記アウトソース対象トラックの再生音楽ストリームを受信する音源受信手段と、
前記トラック再生手段が再生するトラックと前記再生音楽ストリームとを合成して出力する合成出力手段とを備え、
前記外部端末は、
前記アウトソース対象トラックの再生指示を受信するアウトソース指示受信手段と、
アウトソース対象トラックを再生するトラック再生手段と、
前記トラック再生手段が再生した音楽を、前記再生音楽ストリームとして前記作業端末に送信する音源送信手段とを備える音楽再生システム。
[付記18]
前記作業端末は、ユーザが演奏した音楽を録音トラックに録音する録音手段を更に備え、
前記アウトソース管理手段は、前記複数のトラックのうち、前記録音トラックを除くトラックの中から、前記アウトソース対象トラックを決定する付記17に記載の音楽再生システム。
[付記19]
再生対象の複数のトラックを再生した場合の処理負荷を示す指標に基づいて、前記複数のトラックのうち、どのトラックを外部端末にアウトソースするアウトソース対象トラックとするかを決定し、
前記複数のトラックのうち、前記アウトソース対象トラックに決定されたトラック以外のトラックを再生し、
前記外部端末から、前記アウトソース対象トラックの再生音楽ストリームを受信し、
前記再生されたトラックと前記再生音楽ストリームとを合成して出力する音楽再生方法。
[付記20]
更に、ユーザが演奏した音楽を録音トラックに録音し、
前記アウトソース対象トラックの決定では、前記複数のトラックのうち、前記録音トラックを除くトラックの中から、前記アウトソース対象トラックを決定する付記19に記載の音楽再生方法。
[付記21]
コンピュータに、
再生対象の複数のトラックを再生した場合の処理負荷を示す指標に基づいて、前記複数のトラックのうち、どのトラックを外部端末にアウトソースするアウトソース対象トラックとするかを決定し、
前記複数のトラックのうち、前記アウトソース対象トラックに決定されたトラック以外のトラックを再生し、
前記外部端末から、前記アウトソース対象トラックの再生音楽ストリームを受信し、
前記再生されたトラックと前記再生音楽ストリームとを合成して出力する処理を実行させるためのプログラム。
[付記22]
前記コンピュータに、更に、ユーザが演奏した音楽を録音トラックに録音するための処理を実行させ、
前記アウトソース対象トラックの決定では、前記複数のトラックのうち、前記録音トラックを除くトラックの中から、前記アウトソース対象トラックを決定する付記21に記載のプログラム。