JP4207971B2 - 楽音発生システムにおける処理装置 - Google Patents

楽音発生システムにおける処理装置 Download PDF

Info

Publication number
JP4207971B2
JP4207971B2 JP2006077534A JP2006077534A JP4207971B2 JP 4207971 B2 JP4207971 B2 JP 4207971B2 JP 2006077534 A JP2006077534 A JP 2006077534A JP 2006077534 A JP2006077534 A JP 2006077534A JP 4207971 B2 JP4207971 B2 JP 4207971B2
Authority
JP
Japan
Prior art keywords
processing
connection
data
processing device
sound source
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2006077534A
Other languages
English (en)
Other versions
JP2007256376A (ja
Inventor
周三 唐川
弘行 大場
栄一郎 青木
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP2006077534A priority Critical patent/JP4207971B2/ja
Priority to US11/725,214 priority patent/US7592531B2/en
Publication of JP2007256376A publication Critical patent/JP2007256376A/ja
Application granted granted Critical
Publication of JP4207971B2 publication Critical patent/JP4207971B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

この発明は、ネットワークに接続されている複数の処理装置により楽音発生システムが構成される楽音発生システムにおける処理装置に関する。
従来、複数の電子楽器を互いに接続して電子楽器ネットワークシステムを構成している、いわゆるMIDI(Musical Instrument Digital Interface)が知られている。このMIDIは、自動演奏データ等を伝送するための共通規格であり、ネットワーク上に分散した複数の楽器の内のあるものから他のものにキーコード等の演奏データを一方向に伝送することを可能としている。MIDIでは、MIDIメッセージがシリアルデータであると共に、電子楽器間を接続しているMIDIラインは各機器を直列に接続するようそれぞれ布線されているため、各機器間を接続したMIDIラインがかなりの占有場所を取るようになり、また、MIDIラインが誤って1か所でもはずれてしまうと、その先に信号が伝送されず発音が停止されてしまうようになる。さらには、一度接続をはずしてしまうと元に戻す配線作業が大変になってしまう。
そこで、ネットワークを用いる楽器システムとしてmLAN(music Local Area Network)が提唱されている。mLANは、IEEE1394を使ったデジタルオーディオ/MIDIデータの伝送技術であり、AV機器や電子楽器、コンピュータシステム間をIEEE1394インターフェイスで接続することにより、256チャンネル以上のデジタルオーディオデータやMIDIデータをやり取りすることができる。このmLANは、IEEE1394上でオーディオ/MIDIデータをやり取りするためのプロトコルである「IEC61833-6 Audio and Music Data Transmission Protocol」をベースにして、AV機器や電子楽器を制御したり、連携して動作するように制御するためのコマンドを定義している。このmLANにより、従来はアナログケーブルやMIDIケーブルなどを使って行われていた複雑な機器間の接続を、IEEE1394ケーブルのデイジーチェイン接続に置き換えることができ、機器間の接続を大幅に簡略化することができる。
特許第3271493号公報 特開昭59−197090号公報
しかしながら、mLANはデイジーチェーン接続であるため、新たな機器を任意の箇所に物理的に接続して論理的な接続設定を行うことは困難な作業を伴うという問題点があった。また、各機器を直列に接続するようそれぞれ布線されているため、各機器間を接続したラインがかなりの占有場所を取るようになる。さらに、ラインが誤って1か所でもはずれてしまうと、その先に信号が伝送されず発音が停止されてしまうようになり、さらには、一度接続をはずしてしまうと元に戻す配線作業が大変になる。
また、新たな装置を任意の箇所に接続することのできるネットワークとしてLAN(Local Area Network)が知られている。LANは、企業内ネットワークなど比較的限られたエリア内のコンピュータ・ネットワークであり、最近では一般家庭においても構築されるようになってきている。しかしながら、LANに直接接続できる音源や各種の楽音発生関連装置が存在せず、LANのような一般的なネットワークを用いた楽器システムを構築することができない。
ここで、LANのような一般的なネットワークを用いた楽器システムを構築することを考えた場合に、このような電子楽器システムにおいては鍵盤や音源およびスピーカなどの楽音発生関連装置をネットワークを介して論理接続することになる。この場合に、要求された論理接続の状態に従って論理接続を確立していくのであるが、要求された接続先の楽音発生関連装置が新たな接続を確立できない状態にある場合は、要求された接続を行うことができない。この場合は、ユーザが他の楽音発生関連装置との論理接続を改めて設定する処理を繰り返して行うことにより、接続可能な楽音発生関連装置をさがさなければならず、その接続操作が煩雑でユーザに負担をかけるという問題点があった。
そこで、本発明はLANのような一般的なネットワークを利用して、音源や各種の楽音発生関連の装置として機能する処理装置をネットワークを介して相互に接続することにより楽音発生システムを構成する際に、負荷分散する必要があると判断された場合は、処理を追加できる処理装置に接続先を自動的に変更できるようにした楽音発生システムにおける処理装置を提供することを目的としている。
上記目的を達成するために、本発明の楽音発生システムにおける処理装置は、それぞれが楽音発生に関連する装置として機能する複数の処理装置をネットワークを介して相互に接続することにより構成した楽音発生システムにおける処理装置であって、他の処理装置から接続の要求を受け付けた際に、装置テーブルを参照して負荷分散対象であると判断されると共に、負荷分散する必要があると判断された場合に、処理を追加できる処理装置を検出して、接続の相手を検出した処理装置へ変更する指示を、接続の要求元の処理装置に送ることを最も主要な特徴としている。
本発明によれば、他の処理装置から接続の要求を受け付けた際に、装置テーブルを参照して負荷分散対象であると判断されると共に、負荷分散する必要があると判断された場合に、処理を追加できる処理装置を検出して、接続の相手を検出した処理装置へ変更する指示を、接続の要求元の処理装置に送るようにしていることから、処理を追加できる処理装置に接続先を自動的に変更できるようになる。
本発明の実施例の楽音発生システムの構成を示すブロック図を図1に示す。
本発明にかかる楽音発生システムは、図1に示すように外部ネットワークに接続可能な内部ネットワークを備えている。内部ネットワークはイーサネット等のLANとされ、この内部ネットワークはルータ2と、ルータ2の複数のLAN端子にLANケーブルを介してそれぞれ接続されているハブ10,ハブ20,ハブ30,ハブ40を備え、部屋1,部屋2,部屋3,部屋4の4つの部屋にまたがって構築されるスター型のネットワークとされている。ルータ2のWAN端子はインターネット1に接続されており、インターネット1には他のネットワークに接続されているルータ3,ルータ4が接続されている。これにより、内部ネットワークはルータ2およびインターネット1を介してルータ3に接続されている他のネットワークやルータ4に接続されている他のネットワークに接続可能とされる。
部屋1には、SV(サーバ)11,TG1(音源)12,TG2(音源)13,KB(鍵盤)14,SP1(スピーカ)15の各装置が設置されており、これらの装置にはネットワークアダプタが設けられてLAN装置とされている。部屋1に設けられたハブ10の上流のLAN端子はLANケーブルを介してルータ2のLAN端子に接続されており、ハブ10の下流の複数のLAN端子とSV(サーバ)11,TG1(音源)12,TG2(音源)13,KB(鍵盤)14,SP1(スピーカ)15にそれぞれ設けられているネットワークアダプタのLAN端子との間が、それぞれLANケーブルを介して接続されている。
また、部屋2には、SP2(スピーカ)21,DU(DSPユニット)22,MX(ミキサ)23,CR(コンテンツレコーダ)24の各装置が設置されており、これらの装置にはネットワークアダプタが設けられてLAN装置とされている。部屋2に設けられたハブ20の上流のLAN端子はLANケーブルを介してルータ2のLAN端子に接続されており、ハブ20の下流の複数のLAN端子とSP2(スピーカ)21,DU(DSPユニット)22,MX(ミキサ)23,CR(コンテンツレコーダ)24にそれぞれ設けられているネットワークアダプタのLAN端子との間が、それぞれLANケーブルを介して接続されている。
さらに、部屋3には、AA(自動伴奏)31,MR(MIDIレコーダ)32,ED(エディタ)33,EF(エフェクタ)34,AR(オーディオレコーダ)35,SY(音源、鍵盤)36の各装置が設置されており、これらの装置にはネットワークアダプタが設けられてLAN装置とされている。部屋3に設けられたハブ30の上流のLAN端子はLANケーブルを介してルータ2のLAN端子に接続されており、ハブ30の下流の複数のLAN端子とAA(自動伴奏)31,MR(MIDIレコーダ)32,ED(エディタ)33,EF(エフェクタ)34,AR(オーディオレコーダ)35,SY(音源、鍵盤)36にそれぞれ設けられているネットワークアダプタのLAN端子との間が、それぞれLANケーブルを介して接続されている。
さらにまた、部屋4には、MC(マイク)41,CD(CDプレーヤ)42の各装置が設置されており、これらの装置にはネットワークアダプタが設けられてLAN装置とされている。部屋4に設けられたハブ40の上流のLAN端子はLANケーブルを介してルータ2のLAN端子に接続されており、ハブ40の下流の複数のLAN端子とMC(マイク)41,CD(CDプレーヤ)42にそれぞれ設けられているネットワークアダプタのLAN端子との間が、それぞれLANケーブルを介して接続されている。
本発明の楽音発生システムにおける内部ネットワークに接続されている、部屋1ないし部屋4に設置されている各装置はDU(DSPユニット)22を除いて、CPU(Central Processing Unit)、RAM(Random Access Memory )、ROM(Read Only Memory)を少なくとも備え、各装置に対応するハードウェアを備える構成とされている。そして、装置名に対応するプログラムが実行されることにより、装置名の機能で動作するようになされている。このように、本発明における各装置はDU(DSPユニット)22を除いて、種々のプログラムを実行することのできる処理装置(コンピュータ)とされており、以下の記載においてはこの処理装置がプログラムを実行することにより達成される機能を処理要素と定義している。すなわち、部屋1に設置されるSV(サーバ)11,TG1(音源)12,TG2(音源)13,KB(鍵盤)14,SP1(スピーカ)15、部屋2に設置されるSP2(スピーカ)21,MX(ミキサ)23,CR(コンテンツレコーダ)24、部屋3に設置されるAA(自動伴奏)31,MR(MIDIレコーダ)32,ED(エディタ)33,EF(エフェクタ)34,AR(オーディオレコーダ)35,SY(音源、鍵盤)36、部屋4に設置されるMC(マイク)41,CD(CDプレーヤ)42は、全て処理要素であり処理装置が対応するプログラムを実行することにより、その処理要素として機能している。
SV(サーバ)11はクライアントコンピュータに対し、自身の持っている機能やデータを提供するコンピュータであり、クライアントコンピュータは上記した処理要素が機能している処理装置である。また、DU(DSPユニット)22は多数のDSPを備える処理装置により構成され、DSPがマイクロプログラムを実行することにより、ミキサ、エディタやエフェクタ等の処理要素として機能するようになる。すなわち、DU(DSPユニット)22はマイクロプログラムを選択して実行させることにより、機能する処理要素を切り替えることができる。
処理要素について具体的に説明すると、TG1(音源)12およびTG2(音源)13は、処理装置が音源プログラムを実行することにより音源要素として機能している。KB(鍵盤)14は、ハードウェアとしての鍵盤を備える処理装置が鍵盤プログラムを実行することにより鍵盤要素として機能している。SP1(スピーカ)15およびSP2(スピーカ)21は、ハードウェアとしてのスピーカを備える処理装置がスピーカプログラムを実行することによりスピーカ要素として機能している。MX(ミキサ)23は、処理装置がミキサプログラムを実行することによりミキサ要素として機能している。CR(コンテンツレコーダ)24は、大容量の記憶装置を備える処理装置がレコーダプログラムを実行することによりコンテンツレコーダ要素として機能している。AA(自動伴奏)31は、処理装置が自動伴奏プログラムを実行することにより自動伴奏要素として機能している。MR(MIDIレコーダ)32は、大容量の記憶装置を備える処理装置がレコーダプログラムを実行することによりMIDIレコーダ要素として機能している。ED(エディタ)33は、処理装置がエディタプログラムを実行することによりエディタ要素として機能している。EF(エフェクタ)34は、処理装置がエフェクタプログラムを実行することによりエフェクタ要素として機能している。AR(オーディオレコーダ)35は、大容量の記憶装置を備える処理装置がレコーダプログラムを実行することによりオーディオレコーダ要素として機能している。SY(音源、鍵盤)36は、ハードウェアとしての鍵盤を備える処理装置が音源プログラムと鍵盤プログラムを実行することにより音源要素および鍵盤要素の2つで機能している。MC(マイク)41は、ハードウェアとしてのマイクを備える処理装置がマイクプログラムを実行することによりマイク要素として機能している。CD(CDプレーヤ)42は、ハードウェアとしてのCDドライブを備える処理装置がプレーヤプログラムを実行することによりCDプレーヤ要素として機能している。
なお、SV(サーバ)11とDU(DSPユニット)22や上記した処理要素との間や処理要素同士の間で通信を行ってデータの授受を行うことができるが、ここではSV(サーバ)11と上記した処理要素とはTCP/IP(Transmission Control Protocol/Internet Protocol)をサポートしており、TCP/IPプロトコルを用いてデータ授受の通信を行うようにしている。
内部ネットワークにおいて、LANケーブル上を流れる情報はすべてMACフレームと呼ばれる所定長のパケットに入れられる。MACフレームにはIPパケットがカプセル化されており、その先頭と最後にはそれぞれ受信部で信号の先頭を見つけるためのプリアンブルとMACフレームの内容の正当性を検査するためのチェックコードが付けられている。さらに、MACフレームのヘッダには送信先と送信元を表わすMACアドレス(Media Access Control Address)が含まれている。MACアドレスとは、すべてのネットワーク手段に一意に与えられている固有の番号であり、イーサネットの場合はMACアドレスは48ビットとされている。また、MACフレームの送信はCSMA/CD(Carrier Sense Multiple Access with Collision Detection )方式で行われ、各ノード(処理装置)ではケーブル上のMACフレームを監視していて、自分宛かブロードキャストであれば受信するようにしている。CSMA/CDとは「搬送波感知多重アクセス/衝突検出方式」であり、データを送信したいノード(処理装置)はケーブルの搬送波を検出することにより通信状況を監視し空いている場合は送信を開始する。このとき、もし複数のノード(処理装置)が同時に送信を開始するとケーブル内でデータが衝突して壊れるので、これを検出(Collision Detection)しランダムな時間待機して送信を再開している。
また、TCP/IPは通信プロトコルのひとつでありOSI参照モデルではIPが第3層(ネットワーク層)、TCPが第4層(トランスポート層)に相当している。TCP層では、IP層によるデータグラム指向の通信機能を使って信頼性のある全二重のフロー制御つきの通信機能を上位の処理要素(アプリケーション)に対して提供している。これにより、データの抜けや重複あるいは誤りがなく、送信側で送ったデータがそのままの順序で正しく受信側へ届くようになる。すなわち、IP層やその下位の物理的な伝送媒体の特性により、送信側が送り出したパケットが消失したり、遅延によって順序が入れ替わって到着したり、再送によって重複して到着したりすることがあるが、それらの影響を排除して、処理要素にとって信頼性のある通信路をTCPにより確保している。TCPを使って送受信されるデータの各バイトには、シーケンス番号という連続する一連の番号が付けられており、シーケンス番号によりデータの抜けや重複がないかどうかを検査している。データを受け取った側では、ACK(ACKnowledgement)を送信元へ返すことによりどのシーケンス番号のデータまでを受け取ったかを通知しており、これにより、送信側ではデータが正しく相手に届いたことが確認できる。この場合、所定の時間が経過してもACKが返ってこなければ、途中でデータが消失したか、相手がパケットを受信できなかったと判断して再度パケットを送信する再送制御を行う。これにより、信頼性の高い通信を行うことができるようになる。なお、再送を開始するまでの待ち時間は固定とされておらず、通信路の遅延特性、ACKが返ってくるまでの時間や再送回数などの条件によって動的に変更され、効率よく通信が行なえるように高度に制御されている。
本発明にかかる楽音発生システムは、図1に示す内部ネットワークに接続されている複数の処理装置において機能している処理要素を組み合わせることにより構成される。例えば、KB(鍵盤)14から出力される演奏データをTG1(音源)12に供給し、TG1(音源)12において演奏データに基づいて生成されて出力される楽音波形データをSP1(スピーカ)15に供給する楽音発生システムを構築する場合は、KB(鍵盤)14とTG1(音源)12、および、TG1(音源)12とSP1(スピーカ)15とを論理的に接続する設定を行うことにより、楽音発生システムが構築されるようになる。このような楽音発生システムは、内部ネットワークに接続されている複数の処理装置において機能している処理要素を組み合わせて構築することができる。すなわち、KB(鍵盤)14とSY(鍵盤,音源)36の音源機能とSP2(スピーカ)21との間を論理的に接続しても楽音発生システムが構築されるようになる。この場合、EF(エフェクタ)34やMX(ミキサ)23をさらに論理的に接続することにより、楽音波形データにエフェクトをかけたり複数の楽音波形データをミキシングすることができるようになる。
処理装置において機能している処理要素はLANにより物理的に接続されているが、論理的に接続されることにより処理装置において機能している処理要素間においてデータの受け渡しが可能となる。例えば、KB(鍵盤)14とTG1(音源)12とが論理的に接続された際には、処理要素であるKB(鍵盤)14から出力される演奏データを、処理要素であるTG1(音源)12に受け渡すことができるようになる。この場合、KB(鍵盤)14とTG1(音源)12とはTCP/IPを用いて通信を行うことにより、KB(鍵盤)14からパケット化されて出力された演奏データが、TG1(音源)12で受信されるようになる。この場合の送信元の処理要素において生成されてネットワーク上に出力されるMACフレームの生成過程の概要を図2に示す。
図2に示すように、送信元の処理要素から出力されるデータは所定の長さの送信データに分割され、TCP層において所定長の送信データの先頭にTCPヘッダを付加してTCPセグメントが生成される。TCPヘッダには、シーケンス番号と送信元の処理要素のポート番号とあて先の処理要素のポート番号とが含まれている。IP層では、このTCPセグメントの先頭にIPヘッダを付加してIPパケットが生成される。IPヘッダには、送信元のIPアドレスとあて先のIPアドレスと、図示していないがパケット長やプロトコル番号等が含まれている。IPアドレスは、図1に示す内部ネットワークおよびインターネットを含む外部ネットワークに接続された処理装置の1台1台に割り振られた識別番号であり、IPv4では、8ビットずつ4つに区切られた32ビットの数値が使われており、「192.168.100.8」などのように、0から255までの10進数の数字を4つ並べて表現されている。そして、データリンク層および物理層においてこのIPパケットの先頭にMACヘッダを付加してMACフレームが生成される。MACヘッダには、送信元の処理装置に一意に与えられている送信元MACアドレスと、あて先の処理装置に一意に与えられているあて先MACアドレスとが含まれている。このようにして生成されたMACフレームが送信元の処理装置からLANケーブル上に送出され、MACフレームにおけるあて先MACアドレスが一致する処理装置がこのMACフレームを取り込み、IPアドレスとポート番号とで特定される処理要素に送信データが渡されるようになる。このように、ポート番号はIPアドレスの下のサブアドレスでありIPアドレスとポート番号との組み合わせにより処理要素を特定できることから、SY(音源、鍵盤)36のように1つの処理装置において機能している処理要素が複数とされていてもそれぞれの処理要素をIPアドレスとポート番号との組み合わせにより特定してMACフレームを渡すことができるようになる。
次に、図1に示す内部ネットワークにおけるすべての処理要素毎の識別情報の対応表である装置テーブルを図3に示す。この装置テーブルでは、ブロードキャストドメイン内に含まれる処理装置で機能している全ての処理要素が含まれている。この装置テーブルはSV(サーバ)11で作成されて、内部ネットワーク上の全ての処理装置に記録され、その内容は同一とされている。内部ネットワークに接続される処理装置に変更があった際の装置テーブルの内容はSV(サーバ)11が更新し、更新後の装置テーブルをSV(サーバ)11から全ての処理装置へ送信するようにしている。なお、内部ネットワークに接続された処理装置は、SV(サーバ)11から装置テーブルを取得して自機内の装置テーブルに記録する。
図3に示す装置テーブルにおいて、「論理装置ID」は処理要素のポート番号に相当し処理要素毎に異なるIDが割り当てられている。「IPアドレス」は、内部ネットワークおよびインターネットを含む外部ネットワークに接続された処理装置の1台1台に一意に割り振られた識別番号であり、処理装置がネットワークにログインした際に、DHCP(Dynamic Host Configuration Protocol)サーバが予め用意されたIPアドレスの1つをその処理装置に割り当てるようにしている。DHCPサーバにはルータ2がなることができるが、SV(サーバ)11や処理装置の一つがなることもできる。「物理装置ID」は、すべてのネットワーク装置に一意に与えられている固有の番号であり、MACアドレスに対応しており図3では内部ネットワークの処理装置に一意に与えられた固有番号とされている。「装置名」は、処理要素が機能している処理装置の略称とされている。
「処理ID」は、処理要素のポート番号に相当し処理要素毎に異なる処理IDが割り当てられているが、論理装置IDがあることから省略しても良い。「処理要素名」は、処理要素が実現している楽音発生関連装置の名称とされている。なお、論理装置ID”No.7”の処理要素名「DSPユニット」においては、実行されるマイクロプログラムに応じた処理要素で機能することから、設定されている処理要素の処理IDと処理要素名とが装置テーブルに記録される。また、論理装置ID”No.15”の処理要素名「音源」と論理装置ID”No.16”の処理要素名「鍵盤」は1つの処理装置で機能している処理要素であることから、IPアドレスと物理装置IDは同一とされるものの、異なる論理装置ID(ポート番号)を与えてそれぞれ独立して扱えるようにしている。「ボイスファイル提供」は、外部にボイスファイルを提供するか否かの情報であり、提供できる場合は[○]を提供できない場合は[×]を記録している。この場合、ボイスファイルが記録されている処理装置であっても、そのボイスファイルを外部へ送出することが禁止されている処理装置は[×]となる。「負荷分散対象」は、負荷分散対象となるか否かの情報であり、負荷分散対象となる場合は[○]を、負荷分散対象とならない場合は[×]を記録する。この場合、負荷分散対象となるのは、処理を他の処理装置にまかせてもユーザの意図した処理を実行できる処理要素についてに限られる。なお、負荷とはソフト処理(CPUで実行)による処理装置においてCPUにかかる負荷のことを指しており、処理要素をソフトウェアで実現している処理装置は対象となるが、ハードウェアのみで処理要素を実現している処理装置は負荷分散対象とはならない。
本発明の楽音発生システムにおいて、処理装置には上記した各種の処理要素として機能することができるように各種のプログラムが内蔵するハードディスク装置等の記憶手段に格納可能とされている。そして、記憶手段に記憶されているいずれかのプログラムを選択して実行することにより当該処理装置で機能する処理要素を切り替えることができる。この際に、同時に複数のプログラムを選択して実行することにより、1台の処理装置が複数の処理要素で機能するようになる。この場合、処理装置において機能させたい処理要素を選択した際には、処理要素に対応するプログラムが実行されるよう処理装置に設定されると共に、当該処理要素がSV(サーバ)11に登録されることにより論理装置ID(ポート番号)がその処理要素に設定される。そして、SV(サーバ)11で更新された装置テーブルが、内部ネットワーク上の全ての処理装置に送信されて記録されるようになる。
本発明の楽音発生システムにおいて、処理要素間において通信するデータは、実体データと制御データの2種類に分類される。ここでは、再生する音楽の内容を直接表すデータであって、リアルタイムでの通信を必要として優先的に通信するデータを実体データと定義する。具体的にはMIDIデータやオーディオ(PCMやMP3)データが実体データとなる。また、実体データ以外のデータを制御データと定義する。制御データの送受信はSV(サーバ)11を含むすべての処理装置が実行することができる。
そこで、内部ネットワーク上の処理要素において、実体データの通信が可能な処理要素毎の入力側と出力側ごとに記録される接続テーブルを図4に示す。接続テーブルは、SV(サーバ)11で作成されて、内部ネットワーク上の全ての処理装置に記録され、その内容は同一とされている。この接続テーブルには、図1に示す内部ネットワークに接続可能な全処理装置において機能している処理要素毎についての情報が記録されている。内部ネットワークに接続された処理装置は、SV(サーバ)11から接続テーブルを取得して記録する。
図4に示す接続テーブルは図1に示す構成の内部ネットワークにおける一部の処理要素の接続テーブルであり、接続テーブル中の「×」は、接続できる処理要素がないことを表しており、処理IDが「AA」のサーバは実体データの送受信を行わないことを示している。このサーバは、図1に示すSV(サーバ)11である。処理IDが「AB」の音源要素は、実体データとしてMIDIデータ等の演奏データを送信する処理要素を入力接続することができ、実体データとしてオーディオデータを受信する処理要素を出力接続することができる。すなわち、入力接続できる処理要素は、処理IDが「AC」の鍵盤要素、処理IDが「AH」の自動伴奏要素、処理IDが「AI」のMIDIレコーダ要素、処理IDが「AJ」のエディタ要素となり、出力接続できる処理要素は、処理IDが「AD」のスピーカ、処理ID「AK」のエフェクタ要素、処理IDが「AL」のオーディオレコーダ要素となる。また、処理IDが「AC」の鍵盤は、実体データとしてMIDIデータ等の演奏データを受信する処理要素を出力接続することができ、その性質から入力接続できる処理要素はない。すなわち、出力接続できる処理要素は、処理IDが「AB」の音源要素、処理IDが「AI」のMIDIレコーダ要素、処理IDが「AJ」のエディタ要素となる。さらに、処理IDが「AD」のスピーカは、実体データとしてオーディオデータを送信する処理要素を入力接続することができ、その性質から出力接続できる処理要素はない。すなわち、入力接続できる処理要素は、処理IDが「AB」の音源要素、処理IDが「AF」のミキサ要素、処理IDが「AK」のエフェクタ要素、処理IDが「AL」のオーディオレコーダ要素、処理IDが「AM」のマイク要素、処理IDが「AN」のCDプレーヤ要素等となる。接続テーブルでは、このような入力接続できる処理要素や出力接続できる処理要素が処理要素毎に示されており、接続テーブルを参照することにより入力接続する処理要素や出力接続する処理要素を選択することができるようになる。
次に、内部ネットワークに新たに処理装置が接続(ログイン)された際に実行されるネットワーク接続処理のフローチャートを図6に示す。なお、クライアントはSV(サーバ)11に対するクライアントであり、内部ネットワークにおいてSV(サーバ)11以外の処理装置は全てクライアントとなる。なお、クライアントとSV(サーバ)11間で通信される制御データは、あて先の処理装置のIPアドレスと予め定められている制御データ用のポート番号とを用いて通信される。
ネットワーク接続処理が起動されると、ステップS10にて新たに接続された新クライアントが複数の処理要素を有しているか否かが判断される。ここで、新クライアントが図5の上段に示す処理装置NEWのように鍵盤プログラムおよび音源プログラムを実行することにより鍵盤要素KBと音源要素TGとして機能しており、鍵盤要素KBで発生したMIDIデータを音源要素TGへ入力できるように接続されていた場合はYESと判断されてステップS11に進み、図5の下段に示すように鍵盤要素KBと音源要素TGとの間の内部接続が切断される。これにより、複数の処理要素が機能している処理装置NEWにおいては、ログオンした際に自動的に処理要素間の接続が切断されることから、ログオンする前に予め切断しておく作業を省略することができるようになる。そして、ステップS10で複数の処理要素を持っていないと判断された場合と同様にステップS12に進み、自機情報と登録要求を含むデータ部を作成する。自機情報は、その処理装置における全ての処理要素の論理装置ID、IPアドレス(IPアドレスは内部ネットワークにログインした際にDHCPサーバから割り当てられている)、物理装置ID、全ての処理要素の処理IDと処理要素名の情報、ボイスファイル提供情報および負荷分散対象情報であり、登録要求とは、SV(サーバ)11にある装置テーブルへ自機情報を登録する要求とされる。次いで、ステップS13にて送信処理が行われる。送信処理では、ステップS12において作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される。MACフレームのMACヘッダにはあて先MACアドレスとしてSV(サーバ)11のMACアドレス(物理装置ID)が設定される。
新クライアントから送信されたMACフレームは、スター型の内部ネットワークとされていることからハブで受信され、経路決定処理が行われる(ステップS20)。経路決定処理では、ハブは受信されたMACフレームのあて先MACアドレスを見て送信経路を決定し、MACフレームを中継する。例えば、新クライアントがハブ30に物理的に接続された場合は、ハブ30は受信したMACフレームをルータ2に中継し、ルータ2は受信したMACフレームをハブ10に中継し、ハブ10は受信したMACフレームをSV(サーバ)11に中継する。これにより、新クライアントから送信されたMACフレームがあて先MACアドレスが一致するSV(サーバ)11で受信されて、受信処理が行われる(ステップS30)。受信処理では、MACフレームからIPパケットが取り出され、IPパケットからTCPセグメントが取り出され、さらに、TCPセグメントからデータ部が取得される。そして、取得されたデータ部を解釈して登録要求があることから登録要求処理を行うと判断する。次いで、ステップS31にてデータ部の自機情報を装置テーブルへ記録し、ステップS32にて変更後の装置テーブルと変更要求を含むデータ部を作成する。このデータ部は、ステップS33で送信処理が行われることにより内部ネットワーク上に送信される。この送信処理は、前述したステップS13の送信処理と同様の処理とされるが、あて先MACアドレスにはオール”1”のブロードキャストアドレス(FF-FF-FF-FF-FF-FF)が設定され、あて先IPアドレスもブロードキャストアドレスが設定される。この場合、図3に示す装置テーブルのように内部ネットワークのネットワークアドレスが”192.168.111.0”とされている場合は、IPアドレスのブロードキャストアドレスは”192.168.111.255”とされる。
SV(サーバ)11からブロードキャストされたMACフレームは、ハブ10で受信され経路決定処理が行われる(ステップS20)。この経路決定処理では、ステップS20と同様の経路決定処理が行われるが、ブロードキャストアドレスのMACフレームとされていることからルータ2およびハブ10〜40により全ての処理装置にMACフレームが中継されるようになる。新クライアントは、ブロードキャストされたMACフレームが到来した際にブロードキャストアドレスとされていることからステップS30と同様のMACフレームを受信する受信処理を行う(ステップS14)。次いで、ステップS15にて受信されたMACフレームから取り出された装置テーブル情報を内部の記憶手段に記憶し、新クライアントにおけるネットワーク接続処理は終了する。また、他のクライアントにおいてはブロードキャストされたMACフレームが到来した際にブロードキャストアドレスとされていることからステップS30と同様のMACフレームを受信する受信処理を行う(ステップS40)。次いで、ステップS41にて受信されたMACフレームから取り出された装置テーブル情報で記憶されている装置テーブルを更新し、他のクライアントにおけるネットワーク接続処理は終了する。これにより、内部ネットワークに接続されている全てのクライアントにおいて更新された図3に示す装置テーブルを持つようになる。また、SV(サーバ)11は装置テーブルと共に接続テーブルを内部ネットワークに接続されている全てのクライアントにブロードキャストするようにしても良い。
次に、内部ネットワークに接続されている処理装置が切断(ログオフ)された際に実行されるネットワーク切断処理のフローチャートを図7に示す。
内部ネットワークに接続されている処理装置が切断(ログオフ)されると、ネットワーク切断処理が起動され、ステップS50にて切断された処理装置が複数の処理要素を有しており復帰すべき接続があるか否かが判断される。ここで、切断された処理装置が図8の上段に示す処理装置OLDのように複数の処理要素を有しており復帰すべき接続があると判断された場合は、ステップS51に進み複数の処理要素における復帰すべき全ての接続を復帰する。例えば、図8の上段に示すように鍵盤要素KBと音源要素TGとを有している処理装置OLDの場合は、鍵盤要素KBで発生したMIDIデータを音源要素TGへ入力できるように、鍵盤要素KBと音源要素TGとの間を図8の下段に示すように内部接続する。ステップS51の処理が終了した場合と、ステップS50にて復帰すべき接続がないと判断された場合は、ネットワーク切断処理は終了する。これにより、複数の処理要素が機能している処理装置OLDにおいては、ログオフした際に自動的に処理要素間の接続が復帰されてあらためて処理要素間の接続を行うことなく使用できるようになる。なお、処理要素間の接続はAPI(Application Program Interface)等を使用して内部接続されるが、各処理要素に割り当てられているポート番号を用いて論理的に接続する外部接続としてもよい。
なお、SV(サーバ)11は、定期的に内部ネットワーク上のクライアントの存在を確認する処理を行っており、この処理により切断されたクライアントが検出された際に、当該クライアントの情報を装置テーブルから削除して、装置テーブルを更新する。そして、更新された装置テーブルを全クライアントへブロードキャスト送信する。ブロードキャストを受信した各クライアントでは、受信した装置テーブル情報により自機に記憶している装置テーブルが更新されるようになる。
次に、処理要素と処理要素との接続を設定する接続選択処理を実行する際に表示される設定画面を図10および図11に示す。この設定画面は、内部ネットワークが図9に示す簡易な構成とされている際の設定画面とされている。
図9に示す内部ネットワークでは、複数の処理要素が機能している処理装置SY1がハブHBaにLANケーブルで接続されていると共に、複数の処理要素が機能している処理装置SY2がハブHBaにLANケーブルで接続されている。処理装置SY1では鍵盤要素KBaと、音源要素TGaと、スピーカ要素SPaとが機能しており、処理装置SY2では音源要素TBbと、スピーカ要素SPbとが機能している。処理装置SY1、SY2におけるこれらの処理要素は内部においてそれぞれ論理的に接続が分離されている。このように複数の処理要素が機能している処理装置SY1,SY2において、処理要素の接続選択は処理要素毎に行うことができる。ここでは、処理装置SY1の鍵盤要素KBaから接続選択の設定を行う場合を説明する。この場合は、処理装置SY1において接続選択処理を起動させる。すると、処理装置SY1の画面上に図10に示す画面A1が表示される。画面A1は、処理装置SY1において機能している鍵盤要素KBa、音源要素TGa、スピーカ要素SPaの3つの処理要素を表示して、接続を設定する処理要素としてそのうちの一つを選択する画面とされる。ここで、画面A1において鍵盤要素KBaを接続設定する処理要素として選択すると、処理装置SY1の画面上に図10に示す画面A2が表示される。
画面A2は、図9に示す内部ネットワーク上にあって、選択された処理要素である鍵盤要素KBaに接続することのできる処理要素が表示され、そのうちの一つを選択する画面とされる。内部ネットワーク上にあって鍵盤要素に接続することのできる処理要素は、装置テーブルと接続テーブルを参照して表示する。この場合、装置テーブルには鍵盤要素KBa、音源要素TGa、スピーカSPaと、音源TBb、スピーカSPbとが記録されている。また、接続テーブルを参照すると鍵盤要素KBaには入力接続がないので出力接続可能な処理要素についてのみ記録されている。すると、鍵盤要素に出力接続できる内部ネットワーク上の処理要素は音源要素のみであることから画面A2には音源要素だけが表示される。画面A2において表示されている音源要素を選択すると、処理装置SY1の画面上に図10に示す画面A3が表示される。画面A3は、選択した処理要素である音源要素の先の接続を行うか(続行)、否か(終了)を選択させる画面とされる。ここで続行を選択すると、処理装置SY1の画面上に図10に示す画面A4が表示される。画面A4は、選択された処理要素である音源要素の先に接続することのできる処理要素であって図9に示す内部ネットワーク上にある処理要素が表示され、そのうちの一つを選択する画面とされる。
内部ネットワーク上にある接続可能な処理要素は、装置テーブルと接続テーブルを参照して検出され、この場合、装置テーブルには鍵盤要素KBa、音源要素TGa、スピーカSPaと、音源TBb、スピーカSPbとが記録されている。すると、音源要素の先に接続できる処理要素はスピーカ要素とされることから画面A4にはスピーカ要素だけが表示される。この画面A4において表示されているスピーカ要素を選択すると、処理装置SY1の画面上に図10に示す画面A6が表示される。画面A6では、スピーカ要素の出力接続はなくスピーカ要素の先に処理要素を接続することができないことから終了を選択する画面とされる。そこで、画面A6において終了を選択すると処理装置SY1の画面上に図10に示す画面A7が表示される。終了を選択したことにより、鍵盤要素−音源要素−スピーカ要素の順に論理接続する設定が行われたことになり、内部ネットワーク上に複数の同じ処理要素がある場合は、それぞれの処理要素についていずれかの処理要素を選択して設定することになる。そこで、まず画面A2で選択された音源要素が機能している処理装置を装置テーブルを参照することにより内部ネットワークから検出して、その処理装置の装置名を画面A7に表示し、音源要素が機能している表示された装置名のいずれかを接続先として選択させる。図9に示す内部ネットワークの場合は、処理装置SY1と処理装置SY2とが音源要素が機能している処理装置として検出され、その装置名SY1および装置名SY2のいずれかが音源要素として選択されるように画面A7に表示される。
ここで、装置名SY2(あるいは装置名SY1)の音源要素を選択すると、次に、画面A4で選択されたスピーカ要素が機能している処理装置を装置テーブルを参照することにより内部ネットワークから検出して、その処理装置の装置名を画面A8に表示し、スピーカ要素が機能している表示された装置名のいずれかを接続先として選択させる。画面A8で、装置名SY1(あるいは装置名SY2)のスピーカ要素を選択すると接続するそれぞれの処理要素が決定されて、鍵盤要素KBa−音源要素TGb−スピーカ要素SPaの順で論理接続を行う設定が終了し、処理要素間の接続を行う接続選択処理は終了する。なお、選択された処理要素が機能している処理装置が複数あればそれらすべてについて順番に装置名を選択させる画面が順次表示されるようになる。
また、画面A3において終了を選択すると処理装置SY1の画面上に図10に示す画面A5が表示される。終了を選択したことにより、鍵盤要素−音源要素の順で論理接続する設定が行われたことになり、次に、それぞれの処理要素について内部ネットワーク上に複数の同じ処理要素がある場合はいずれかの処理要素を選択することになる。そこで、選択された音源要素が機能している処理装置を装置テーブルを参照することにより内部ネットワークから検出して、その処理装置の装置名を画面A5に表示し、音源要素が機能している表示された装置名のいずれかを接続先として選択させる。すなわち、画面A7と同様の画面が画面A5に表示され、ここで、装置名SY2の音源要素を選択すると接続するそれぞれの処理要素が決定されて、鍵盤要素KBa−音源要素TGbの順で論理接続を行う設定が終了し、処理要素間の接続を行う接続選択処理は終了する。
なお、処理要素間の接続を行う接続選択処理が終了した際には、設定された接続情報が設定を行った処理装置の接続バッファに記録される。そして、後述する周期的に起動される接続確立処理が起動された際に、接続バッファの接続情報に基づいて接続確立処理が行われて論理接続が確立され、確立された接続情報がカレントバッファに記録されるようになる。
次に、処理装置SY2の音源要素TGbから接続選択の設定をする際の説明を行う。ただし、この設定は図10に示す設定が行われて鍵盤要素KBa−音源要素TGb−スピーカ要素SPaの順で論理接続を行う設定が終了しているものとする。ここで、処理装置SY2において接続選択処理を起動させる。すると、処理装置SY2の画面上に図11に示す画面B1が表示される。画面B1は、処理装置SY2において機能している音源要素TGb、スピーカ要素SPbの2つの処理要素を表示して、接続を設定する処理要素としてそのうちの一つを選択する画面とされる。ここで、画面B1において音源要素TGbを接続を設定する処理要素として選択すると、処理装置SY2の画面上に図11に示す画面B2が表示される。
画面B2は、選択された処理要素である音源要素TGbに接続することのできる処理要素であって図9に示す内部ネットワーク上にある処理要素が表示され、そのうちの一つを選択する画面とされる。内部ネットワーク上にあって接続可能な処理要素は、装置テーブルと接続テーブルを参照して検出する。この場合、装置テーブルには鍵盤要素KBa、音源要素TGa、スピーカSPaと、音源TBb、スピーカSPbとが登録されている。接続テーブルを参照すると音源要素は入力接続および出力接続可能とされているので、まず入力接続を選択する画面B2が表示される。音源要素に入力接続できる処理要素は鍵盤要素のみとされることから、画面B2には鍵盤要素のみが表示されると共に、「入力接続」のタイトルも表示される。この画面B2において鍵盤要素を選択すると処理装置SY2の画面上に図11に示す画面B3が表示される。鍵盤要素が選択されると、その先に接続される処理要素を選択する処理が続けられるのであるが、鍵盤要素の先には処理要素を接続することができないことから、画面B3には入力接続に替えて出力接続を選択する画面が表示されるようになる。なお、処理要素が選択された際にその先に接続できる処理要素があれば、続行か出力接続かのいずれかを選択させる画面を表示して、続行であればその先に接続する処理要素を選択させるようにする。
画面B3において、出力接続を選択すると処理装置SY2の画面上に図11に示す画面B4が表示される。画面B4では、音源要素に出力接続できる処理要素が「出力接続」のタイトルと共に表示される。内部ネットワーク上にある出力接続可能な処理要素は、装置テーブルと接続テーブルを参照して検出される。この場合は、音源要素に出力接続できる内部ネットワーク上の処理要素はスピーカ要素のみであることから画面B4にはスピーカ要素と、スピーカ要素を選択することなく設定を終了する「終了」とのいずれかを選択する画面が表示される。画面B4においてスピーカ要素を選択すると、処理装置SY2の画面上に図11に示す画面B5が表示される。スピーカ要素が選択されると、スピーカ要素の先に処理要素を接続することができないことから画面B5には、終了を選択する画面が「出力接続」のタイトルと共に表示される。そこで、画面B5において終了を選択すると処理装置SY2の画面上に図11に示す画面B7が表示される。終了を選択したことにより、鍵盤要素−音源要素−スピーカ要素の順に論理接続する設定が行われたことになり、次に、内部ネットワーク上に複数の同じ処理要素がある場合はそれぞれの処理要素についていずれかの処理要素を選択することになる。
そこで、画面B7では装置テーブルを参照して選択された音源要素が機能している処理装置を内部ネットワークから検出して、その処理装置の装置名を表示して、表示された装置名の音源要素のいずれかを接続先として選択させる画面とされる。この場合、音源要素TGbに論理接続することのできる鍵盤要素は処理装置SY1のみで機能していると検出されるから、その装置名SY1を選択する画面が画面B7に表示される。この場合、図10に示す設定が既に行われて鍵盤要素KBa−音源要素TGbの論理接続を行う設定が終了していることから鍵盤要素KBaが機能している装置名SY1には既に選択されていることを示すアンダーラインが付されて表示される。画面B7において鍵盤要素として装置名SY1を選択すると、音源要素に論理接続することのできるスピーカ要素が機能している処理装置を内部ネットワークから検出して、その処理装置の装置名を表示して、表示された装置名のスピーカ要素のいずれかを接続先として選択させる画面B8が表示される。この場合、図10に示す設定が行われて音源要素TGb−スピーカ要素SPaの論理接続を行う設定が終了していることからスピーカ要素SPaが機能している装置名SY1には既に選択されていることを示すアンダーラインが付されて表示される。画面B8において装置名SY2のスピーカ要素を選択すると、音源要素TGbはスピーカ要素SPaに加えてスピーカ要素SPbにも論理的に接続される設定が行われたことになる。これにより、図9に示す内部ネットワークにおいて論理接続するそれぞれの処理要素が決定されて、鍵盤要素KBaと音源要素TGbとを論理接続する設定と、音源要素TGbとスピーカ要素SPaおよびスピーカ要素SPbとを論理接続する設定が終了し、処理要素間の接続を行う接続選択処理は終了する。なお、選択された処理要素が機能している処理装置が複数あればそれらすべてについて順番に装置名を選択させる画面が順次表示されるようになる。
また、画面B4において終了を選択すると処理装置SY2の画面上に図11に示す画面B6が表示される。終了を選択したことにより、鍵盤要素−音源要素の順で論理接続する設定が行われたことになり、次に、それぞれの処理要素について内部ネットワーク上に複数の同じ処理要素がある場合はいずれかの処理要素を選択することになる。そこで、選択された鍵盤要素が機能している処理装置を装置テーブルを参照することにより内部ネットワークから検出して、その処理装置の装置名を画面B6に表示し、鍵盤要素が機能している表示された装置名のいずれかを接続先として選択させる。すなわち、画面B7とほぼ同様の画面が画面B6に表示され、ここで、装置名SY1の鍵盤要素を選択すると接続するそれぞれの処理要素が決定されて、鍵盤要素KBa−音源要素TGbの順で論理接続を行う設定が終了し、処理要素間の接続を行う接続選択処理は終了する。
なお、処理要素間の接続を行う接続選択処理が終了した際には、設定された接続情報が設定を行った処理装置の接続バッファに記録される。そして、後述する周期的に起動される接続確立処理が起動された際に、接続バッファの接続情報に基づいて接続確立処理が行われて論理接続が確立され、確立された接続情報がカレントバッファに記録されるようになる。
図10および図11に示す設定画面により処理要素と処理要素との接続を設定する接続選択処理のフローチャートを図12に示す。
処理要素の接続を設定する処理装置において接続選択処理が起動されると、ステップS60にて図10の画面A1や図11の画面B1のように自機の全処理要素を画面に表示し、いずれかの処理要素の選択を受け付ける。ここで、いずれかの処理要素が選択されるとステップS61に進み、接続テーブルを参照して選択された処理要素が入力接続と出力接続とを持つか否かが判断される。ここで、選択された処理要素が入力接続と出力接続とを持たない場合はNOと判断されてステップS62に進み選択された処理要素に接続することのできる処理要素を表示し、表示された処理要素の選択を受け付ける画面を表示する。表示された処理要素のいずれかが選択されると、ステップS63にて選択された処理要素の先に続けて接続できる処理要素があれば、続けて接続するか終了するかのいずれかを選択させる画面を表示する。また、続けて接続できる処理要素がなければ、終了を選択させる画面を表示する。そして、処理要素の選択を終了する選択がされたか否かがステップS64にて判断される。ここで、「終了」を選択した場合はステップS65に進むが、続行すると選択した場合はステップS62に戻り、ステップS62ないしステップS64の処理が再度行われて前回選択された処理要素の先に続けて接続できる処理要素の選択処理が行われる。ステップS62ないしステップS64の処理は、先に続けて接続できる処理要素がなくなるまで、あるいは、終了が選択されるまで繰り返し実行される。
また、ステップS61にて選択された処理要素が入力接続と出力接続とを持つと検出された場合はステップS69に分岐して、まず、処理要素の入力に接続できる処理要素を表示して、表示された処理要素の選択を受け付ける画面を表示する。表示された処理要素のいずれかが選択されると、ステップS70にて選択された処理要素の先に続けて接続できる処理要素があれば、続けて接続するか終了するかのいずれかを選択させる画面を表示する。また、続けて接続できる処理要素がなければ、終了を選択させる画面を表示する。そして、処理要素の選択を終了する選択がされたか否かがステップS71にて判断される。ここで、終了すると選択した場合はステップS72に進むが、続行すると選択した場合はステップS69に戻り、ステップS69ないしステップS71の処理が再度行われて前回選択された処理要素の先に続けて接続できる処理要素の選択処理が行われる。ステップS69ないしステップS71の処理は、先に続けて接続できる処理要素がなくなるまで、あるいは、終了が選択されるまで繰り返し実行される。
ステップS71にて終了が選択されたと判断されてステップS72に進むと、ステップS61にて選択された処理要素の出力に接続できる処理要素を表示して、表示された処理要素の選択を受け付ける画面を表示する。表示された処理要素のいずれかが選択されると、ステップS73にて選択された処理要素の先に続けて接続できる処理要素があれば、続けて接続するか終了するかのいずれかを選択させる画面を表示する。また、続けて接続できる処理要素がなければ、終了を選択させる画面を表示する。そして、処理要素の選択を終了する選択がされたか否かがステップS74にて判断される。ここで、終了すると選択した場合はステップS65に進むが、続行すると選択した場合はステップS72に戻り、ステップS72ないしステップS74の処理が再度行われて前回選択された処理要素の先に続けて接続できる処理要素の選択処理が行われる。ステップS72ないしステップS74の処理は、先に続けて接続できる処理要素がなくなるまで、あるいは、終了が選択されるまで繰り返し実行される。
ステップS64あるいはステップS74にて終了が選択されたと判断されてステップS65に進むと、装置テーブルを参照して選択された処理要素毎に該当する処理要素が機能している処理装置の装置名を表示して、表示された装置名のいずれかの選択を受け付ける画面を表示する。表示されたいずれかの装置名が選択されると、選択された装置名の処理装置で機能している処理要素が選択されるようになり、これにより設定された論理接続の接続情報を接続バッファにステップS66で記録する。この場合、連続して選択された論理接続は連続して通信を行うものとして対応付けて接続バッファに記録し、処理要素の入力と出力の接続が連続して選択されたときはそれらの間で通信が行われることを接続バッファに記録する。ステップS66の処理が終了すると、ステップS67にて自動フラグが「1」か否かが判定される。自動フラグは後述するデフォルトバッファの更新を行うか否かを示すフラグであり、自動フラグ「0」はデフォルトバッファの更新を行うことを示しており、自動フラグ「1」はデフォルトバッファの更新を行わないことを示している。各処理装置において電源オン時には、後述するようにデフォルトバッファに記録された接続を自動的に復元する処理が行われることから、ユーザが新たに接続を設定した場合は、その設定された接続を反映するようデフォルトバッファを更新するようにしている。そこで、ステップS67にて自動フラグが「1」と判定された場合はステップS68に分岐して、自動フラグを「0」にセットすることにより、接続選択処理において設定された接続が次回の電源オン時に自動的に復元されるようにしている。ステップS68の処理が終了すると、接続選択処理は終了する。また、ステップS67にて自動フラグが「1」でないと判定された場合は、自動フラグは「0」であることからそのまま接続選択処理は終了する。そして、後述する周期的に起動される接続確立処理が起動された際に、ステップS66において設定された接続情報が記録された接続バッファの接続情報に基づいて接続確立処理が行われて論理接続が確立され、確立された接続情報がカレントバッファに記録されるようになる。
なお、図10および図11に示す接続選択処理が行われて処理要素の論理接続の設定が行われた場合に、接続バッファに記録される接続情報の例が図13に示されている。
図10に示す接続選択処理は処理装置SY1において、鍵盤要素KBaの接続から開始され、鍵盤要素KBaと処理装置SY2の音源要素TGbとの接続が設定されると共に、音源要素TGbと処理装置SY1のスピーカ要素SPaとの接続が設定されることから、図13に「●SY1鍵盤の例」として示すように、接続バッファには「出力1→SY2音源→SY1スピーカ」の接続情報が記録される。なお、「出力1」はSY1鍵盤の1番目の出力を意味している。
また、図11に示す接続選択処理は処理装置SY2において、音源要素TGbの接続から開始され、音源要素TGbの入力に処理装置SY1の鍵盤要素KBaを接続する設定と、音源要素TGbの出力に処理装置SY2のスピーカ要素SPbを接続する設定が行われることから、図13に「●SY2音源の例」として示すように、接続バッファには「入力1←SY1鍵盤」「入力1→出力1」「出力1→SY2スピーカ」の接続情報が記録される。ここで、「入力1←SY1鍵盤」「入力1→出力1」「出力1→SY2スピーカ」はSY1鍵盤から入力されたMIDIデータ(入力1)の、自機(SY2)の音源要素TGbでの処理結果(出力1)を、SY2スピーカへ出力する(対応付ける)ことを表わす接続情報である。
次に、接続確立処理のフローチャートを図14に示す。接続確立処理は所定時間間隔で周期的に起動される。なお、接続確立処理において操作している処理装置と接続相手の処理装置間で通信される制御データは、あて先の処理装置のIPアドレスと予め定められている制御データ用のポート番号とを用いて通信される。
接続確立処理が起動されると、ステップS80にて接続バッファの記録内容から未処理の接続があるか否かが判定される。ここで、未処理の接続がないと判定された場合は接続確立処理はそのまま終了する。また、ステップS80にて未処理の接続があると判定された場合はステップS81に進み未処理の接続の一つを接続確立の対象とする。ここで確立する接続とは実体データの通信を行うためのポートの設定を意味している。次いで、ステップS82にてカレントバッファが参照され、対象とする接続が既に確立しているか否かを検出する。ここで、対象とする接続が既に確立されていると検出された場合は、新たな接続の確立を行わずステップS83に進む。ステップS83では、対象とする接続の先の接続があるか否かが検出され、先の接続がないと検出された場合は接続確立処理はそのまま終了する。また、ステップS83にて先の接続があると検出された場合はステップS84に進み接続指示を含むデータ部を作成する。この場合、対応付けがある場合は対応付けを指示する接続要求をデータ部に含める。接続指示は、接続相手に接続させる先の相手の指示とされ、接続相手の先に複数の接続が連続して設定されている場合にはそれらすべての情報を含めるようにする。
また、ステップS82にてカレントバッファに対象とする接続の記録がされておらず、対象とする接続が未だ確立していないと検出された場合はステップS85に分岐し、接続要求と接続指示を含むデータ部を作成する。接続要求は、接続を確立する要求であり、対応付けがある場合は対応付けも指示する。接続指示は、接続相手に接続させる先の相手の指示とされ、接続相手の先に複数の接続が連続して設定されている場合にはそれらすべての情報を含めるようにする。ステップS84あるいはステップS85においてデータ部が作成されると、ステップS86にてデータ部を送信する送信処理が行われる。送信処理では、ステップS84あるいはステップS85において作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される。この場合、対象とする接続先の処理要素が機能している処理装置のMACアドレス(物理装置ID)が、MACフレームのMACヘッダにあて先MACアドレスとして設定される。
接続確立の操作をしている処理装置からネットワーク上に送信されたMACフレームは、スター型の内部ネットワークとされていることからハブで受信され、経路決定処理が行われる(ステップS90)。経路決定処理では、ハブは受信されたMACフレームのあて先MACアドレスを見て送信経路を決定し、MACフレームを中継する。この結果、接続確立の操作をしている処理装置から送信されたMACフレームがあて先MACアドレスが一致する接続相手の処理要素が機能している処理装置で受信されて、受信処理が行われる(ステップS100)。受信処理では、MACフレームからIPパケットが取り出され、IPパケットからTCPセグメントが取り出され、さらに、TCPセグメントからデータ部が取得される。そして、ステップS101にて負荷分散処理が行われる。負荷分散処理は後述するが、要求された接続先のクライアントが新たな接続を確立できない状態にある場合に、要求された接続を同じ処理要素をもつ他のクライアントに変更することができる処理である。負荷分散処理が終了すると、ステップS102にて取得されたデータ部を解釈して要求された接続を確立する。また、対応付けの指示がある場合は対応付けも行われ、確立した接続の接続情報および対応付けがカレントバッファに記録される。接続確立では、装置テーブルを参照して対象とされる接続の接続相手の処理要素が機能している処理装置のIPアドレスと、当該処理要素の論理装置ID(ポート番号)が取得される。このIPアドレスとポート番号とにより処理装置における接続相手の処理要素を特定することができることから、IPアドレスとポート番号とを設定することにより対象とする接続を確立することができる。ステップS102の処理が終了するとステップS103に進み接続指示があるか否かが判定される。ここで、接続指示があると判定された場合は接続指示で指示された他の処理装置との接続を自己の接続バッファに記録してステップS105に進む。
また、ステップS103にてデータ部に接続指示があると検出されない場合は、ステップS105に分岐する。ステップS105では接続完了を含むデータ部が作成され、ステップS106にてデータ部を送信する送信処理が行われる。送信処理では、ステップS105において作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される。この場合、操作している処理装置のMACアドレスが、MACフレームのMACヘッダにあて先MACアドレスとして設定される。接続相手である処理装置からネットワーク上に送信されたMACフレームは、スター型の内部ネットワークとされていることからハブで受信され、経路決定処理が行われる(ステップS91)。経路決定処理では、ハブは受信されたMACフレームのあて先MACアドレスを見て送信経路を決定し、MACフレームを中継する。この結果、接続相手の処理装置から送信されたMACフレームがあて先MACアドレスが一致する接続確立処理が実行されている処理装置で受信されて、受信処理が行われる(ステップS87)。
受信処理では、MACフレームからIPパケットが取り出され、IPパケットからTCPセグメントが取り出され、さらに、TCPセグメントからデータ部が取得される。そして、ステップS88にて取得されたデータ部を解釈して接続完了の返答(ACK)がされた接続を確立する。また、対応付けがある場合は対応付けも行われ、確立した接続の接続情報および対応付けがカレントバッファに記録される。接続確立では、装置テーブルを参照して対象とされる接続の接続相手の処理要素が機能している処理装置のIPアドレスと、当該処理要素の論理装置ID(ポート番号)が取得される。このIPアドレスとポート番号とにより処理装置における接続相手の処理要素を特定することができることから、IPアドレスとポート番号とを設定することにより対象とする接続を確立することができる。ステップS88の処理が終了すると接続確立処理は終了する。
なお、接続相手の処理装置の接続バッファに記録された接続情報に基づく接続確立は、接続相手の処理装置において接続確立処理が起動された際に、接続相手の処理装置が操作している処理装置となって、図14に示す接続確立処理が実行されることにより確立される。
上述したように、接続確立処理が実行されることにより確立された接続の接続情報と対応付けがカレントバッファに記録される。そこで、カレントバッファに記録される接続情報と対応付けの例を図15に示す。この場合、カレントバッファには自処理装置において現在確立している実体データを通信するための接続が記録される。
図15に示す接続情報と対応付けは、図13に示すように記録された接続バッファの接続情報に基づいて接続確立処理を行った場合とされ、処理装置SY1のカレントバッファには処理装置SY1で機能している鍵盤要素KBa、音源要素TGaおよびスピーカ要素SPaのそれぞれの接続情報と対応付けが記録される。この場合、鍵盤要素KBaの接続情報と対応付けは「ポート1:出力→SY2音源」とされ、鍵盤要素KBaから出力されるMIDIデータを処理装置SY1のポート1からSY2音源へ出力する接続情報とされる。また、音源要素TGaは接続されていないことから接続情報と対応付けはなく、スピーカ要素SPaの接続情報と対応付けは「ポート2:入力←SY2音源」とされ、処理装置SY2の音源要素TGbから出力されるオーディオデータを処理装置SY1のポート2で受信することによりスピーカ要素SPaに入力される接続情報とされる。
また、処理装置SY2のカレントバッファには処理装置SY2で機能している音源要素TGbとスピーカ要素SPbのそれぞれの接続情報と対応付けが記録される。この場合、音源要素TGbの接続情報と対応付けは「ポート1:入力←SY1鍵盤」、「ポート1→ポート2」、「ポート1→ポート3」、「ポート2:出力→SY1スピーカ」、「ポート3:出力→SY2スピーカ」とされている。「ポート1:入力←SY1鍵盤」は、処理装置SY1の鍵盤要素KBaから出力されるMIDIデータを処理装置SY2のポート1で受信することにより、音源要素TGbへ入力する接続情報である。「ポート1→ポート2」、「ポート1→ポート3」は、処理装置SY1の鍵盤要素KBaから入力されたMIDIデータの音源要素TGbでの処理結果であるオーディオデータをポート2およびポート3から出力する接続情報である。「ポート2:出力→SY1スピーカ」、「ポート3:出力→SY2スピーカ」は、音源要素TGbから出力されるオーディオデータをポート2から処理装置SY1のスピーカ要素SPaへ出力すること、および、音源要素TGbから出力されるオーディオデータをポート3から処理装置SY2のスピーカ要素SPbへ出力する接続情報である。スピーカ要素SPbの接続情報と対応付けは「ポート3:入力←SY2音源」とされ、処理装置SY2の音源要素TGbから出力されるオーディオデータをポート3で受信することによりスピーカ要素SPbに入力される接続情報と対応付けとされる。
次に、図14に示す接続確立処理のステップS101において実行される負荷分散処理のフローチャートを図16および図17に示す。この場合、接続の確立を開始している(操作している)処理装置自身が負荷分散処理を行うことはなく、外部から接続相手としてアクセスされた接続相手の処理装置において負荷分散処理が行われる。なお、負荷分散処理において操作している処理装置と接続相手の処理装置間で通信される制御データは、あて先の処理装置のIPアドレスと予め定められている制御データ用のポート番号とを用いて通信される。
負荷分散処理が起動されると、ステップS200にて図3に示す装置テーブルにおける「負荷分散対象」の情報をみて負荷分散の実行を判断する必要があるか否かを判断する。すなわち、接続相手の処理装置における接続を確立する処理要素の「負荷分散対象」の欄に[○]が付されていれば負荷分散の実行を判断する必要があると判断してステップS201へ進み、[×]が付されていれば負荷分散の実行を判断する必要がないと判断して接続確立処理のステップS102にリターンされる。
ステップS201では、自機の処理装置におけるCPU使用率が所定値を超えていると処理に時間遅れが生じるおそれがあることから負荷分散を行うと判断される。この場合、ソフトウェアではなくハードウェアで構成されている音源要素やミキサ要素やエフェクト要素は除外される。ここで、自機のCPU使用率が所定値を超えておらず負荷分散を行わないと判断された場合は、接続確立処理のステップS102にリターンされ、自機のCPU使用率が所定値を超えており負荷分散を行うと判断された場合はステップS202に進む。ステップS202では、図3に示す装置テーブルを参照して同じ処理要素が機能しているクライアント(処理装置)を全て抽出し、ステップS203にて抽出したクライアントを1つずつ順に対象とするよう抽出した内の1つの処理装置を対象とする。次いで、ステップS204にて対象とした処理装置に、新たな接続を追加することができるかを問い合わせるデータ部が作成され、ステップS205にてデータ部を送信する送信処理が行われる。送信処理では、ステップS204において作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される。この場合、対象の処理装置のMACアドレスが、MACフレームのMACヘッダにあて先MACアドレスとして設定される。接続相手の処理装置からネットワーク上に送信されたMACフレームは、スター型の内部ネットワークとされていることからハブで受信され、経路決定処理が行われる(ステップS210)。経路決定処理では、ハブは受信されたMACフレームのあて先MACアドレスを見て送信経路を決定し、MACフレームを中継する。この結果、接続相手の処理装置から送信されたMACフレームがあて先MACアドレスが一致する対象の処理装置で受信されて、受信処理が行われる(ステップS220)。
受信処理では、MACフレームからIPパケットが取り出され、IPパケットからTCPセグメントが取り出され、さらに、TCPセグメントからデータ部が取得される。そして、ステップS221にて取得されたデータ部を解釈して新たな接続が追加できるかを判断する。ここで、対象とする処理装置においてCPUの使用率が高くなっており新たな接続を追加することができないと判断された場合は、ステップS223に進み新たな接続を追加できないことを示すデータ部が作成され、ステップS224にてデータ部を送信する送信処理が行われる。送信処理では、ステップS223において作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される。この場合、接続相手の処理装置のMACアドレスが、MACフレームのMACヘッダにあて先MACアドレスとして設定される。そして、上記したと同様にして線路決定処理(S211)が行われて接続相手の処理装置においてMACフレームが受信されて受信処理(S206)が行われる。受信処理では、MACフレームからデータ部が取得され、取得されたデータ部が解釈されて新たな接続を追加できないことから、ステップS207にて他に問い合わせるクライアント(処理装置)があるか否かが判断される。ここで、ステップS202にて複数のクライアントが抽出されており、問い合わせていないクライアントがあると判断された場合は、ステップS203に戻りステップS203ないしステップS207の処理が問い合わせていないクライアントがなくなるまで繰り返し行われる。また、ステップS207にて問い合わせていないクライアントがないと判断された場合は図17に示すB以降の処理に移行する。
図17に示すB以降の処理に移行すると、ステップS230にて接続が確立不可能であることを示すデータ部が作成されて、ステップS231にてデータ部を送信する送信処理が行われる。送信処理では、ステップS230において作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される。この場合、操作している処理装置のMACアドレスが、MACフレームのMACヘッダにあて先MACアドレスとして設定される。そして、上記したと同様にして線路決定処理(S240)が行われて操作している処理装置においてMACフレームが受信されて受信処理(S250)が行われる。受信処理では、MACフレームからデータ部が取得され、取得されたデータ部が解釈されて接続が確立不可能であることから、ステップS251にて接続が確立が不可能である旨の表示を行って負荷分散処理を終了させると共に接続確立処理を終了させる。
また、ステップS222にて対象とする処理装置においてCPUの使用率が低くなっており新たな接続を追加できると判断された場合は、ステップS225に分岐し新たな接続を追加できることを示すデータ部が作成されて、ステップS226にてデータ部を送信する送信処理が行われる。送信処理では、ステップS225において作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される。この場合、接続相手の処理装置のMACアドレスが、MACフレームのMACヘッダにあて先MACアドレスとして設定される。そして、上記したと同様にして線路決定処理(S212)が行われて接続相手の処理装置においてMACフレームが受信されて受信処理(S208)が行われる。受信処理では、MACフレームからデータ部が取得され、取得されたデータ部が解釈されて新たな接続を追加できるとされ、図17に示すA以降の処理に移行する。
図17に示すA以降の処理に移行すると、ステップS232にて接続相手を、対象のクライアント(処理装置)へ変更することを示すデータ部が作成されて、ステップS233にてデータ部を送信する送信処理が行われる。送信処理では、ステップS232において作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される。この場合、操作している処理装置のMACアドレスが、MACフレームのMACヘッダにあて先MACアドレスとして設定される。そして、上記したと同様にして線路決定処理(S241)が行われて操作している処理装置においてMACフレームが受信されて受信処理(S252)が行われる。受信処理では、MACフレームからデータ部が取得され、取得されたデータ部が解釈されて接続相手を対象のクライアントへ変更することから、ステップS253にて接続相手を対象のクライアントへ変更するよう接続バッファを書き換える。そして、負荷分散処理を終了させると共に接続確立処理を終了させる。書き換えられた接続バッファにおける接続相手を対象のクライアントへ変更する接続設定に基づく接続確立は、操作している処理装置において次回以降に接続確立処理が起動されて、その接続設定が接続の対象とされた際に確立する処理が実行される。
このように、負荷分散処理において負荷分散を行うと判断された場合は、負荷分散できる場合であってもできない場合であっても負荷分散処理が終了された際に、接続確立処理はステップS102以降の処理を行うことなく終了することになる。
ところで、上記説明した接続選択処理はSV(サーバ)11において実行することもできる。SV(サーバ)11で実行される接続選択処理のフローチャートを図18に示す。なお、SV(サーバ)11と基点とされる処理装置間で通信される制御データは、あて先の処理装置のIPアドレスと予め定められている制御データ用のポート番号とを用いて通信される。
SV(サーバ)11において接続選択処理が起動されると、ステップS120にて装置テーブルを参照し、内部ネットワーク上の全処理装置を表示して、接続の基点とする処理装置の選択を受け付ける。ここで、接続の基点とする処理装置が選択されたことが検出されると、ステップS121にてSV(サーバ)11は選択された処理装置を基点とする接続の選択処理を実行し、接続の選択処理を行うことにより設定された内部ネットワーク上の全処理装置の接続内容をSV(サーバ)11に記憶する。次いで、ステップS122にて接続の選択処理を行うことにより設定された接続内容と、接続の基点とした処理装置へ接続内容の接続を確立することを指示する接続確立指示とを含むデータ部を作成する。
次いで、ステップS123にて送信処理が行われる。送信処理では、ステップS122において作成されたデータ部が送信データとされて図2に示すように最終的にデータ部がカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される。この場合、基点とされる処理装置のMACアドレス(物理装置ID)が、MACフレームのMACヘッダにあて先MACアドレスとして設定される。SV(サーバ)11からネットワーク上に送信されたMACフレームは、スター型の内部ネットワークとされていることからハブで受信され、経路決定処理が行われる(ステップS130)。経路決定処理では、ハブは受信されたMACフレームのあて先MACアドレスを見て送信経路を決定し、MACフレームを中継する。この結果、SV(サーバ)11から送信されたMACフレームがあて先MACアドレスが一致する基点として選択された処理装置で受信されて、受信処理が行われる(ステップS140)。受信処理では、MACフレームからIPパケットが取り出され、IPパケットからTCPセグメントが取り出され、さらに、TCPセグメントからデータ部が取得される。そして、ステップS141にて取得されたデータ部を解釈して接続確立指示された接続内容を接続バッファへ記録し、接続選択処理は終了する。
なお、基点の処理装置の接続バッファに記録された接続情報に基づく接続確立は、基点の処理装置において接続確立処理が起動された際に、基点の処理装置が操作している処理装置となって、図14に示す接続確立処理が実行されることにより確立される。
次に、音源要素において音色を変更する際に実行されるボイス変更処理のフローチャートを図19に示す。ボイス変更処理は、所定の間隔で周期的に起動される。ボイス変更処理は、要求されるボイスファイルが自機の処理装置にない場合に、ネットワーク上から要求されたボイスファイルを提供することができる処理である。
ボイス変更処理が起動されると、ステップS300にてボイス変更要求(プログラムチェンジ)が検出されたか否かが判断される。ここで、音色を変更する操作が行われたりネットワーク上からボイス変更の要求が行われてボイス変更要求が検出された場合はステップS301へ進み、ボイス変更要求が検出されない場合はそのままボイス変更処理は終了する。ステップS301では、要求されたボイスファイルがボイスメモリ内にあるか否かが判断される。この場合、ボイスメモリには複数のボイスファイルが記録されていて ボイスファイルごとに固有の識別情報が記録されている。ボイスファイルには音色データが記録されており、音色データは音色を合成できるPCM、FM、物理モデルなどの形式の音色データとされている。ステップS301ではボイスメモリ内の識別情報の中に要求されたボイスの識別情報と同じ識別情報があるか否かが判断される。ここで、要求されたボイスファイルがボイスメモリ内にあると判断された場合は、ステップS302に進んでボイスメモリから要求されたボイスファイルを取り出し、取り出したボイスファイルからステップS303にて音色データを取り出す。そして、取り出した音色データをステップS304にて操作している処理装置における音源要素に設定してボイス変更処理は終了する。設定とは、例えばMIDIデータを受信したときにPCMデータを生成できるように準備することである。
また、ステップS301にて要求されたボイスファイルがボイスメモリ内にないと判断された場合は、ステップS305に分岐してネットワーク上に要求されたボイスファイルを提供できる処理装置があるか否かが判断される。ここでは、図3に示す装置テーブル中の論理装置IDごとに、「ボイスファイル提供」の欄を参照することによりボイスファイルを提供できる処理装置を検出する。あるいは、装置テーブルに音源の種類も登録しておき、ボイスファイルを提供できる処理装置を探す場合に、音源の種類まで含めて検索してい抽出するようにしてもよい。ここで、ネットワーク上に要求されたボイスファイルを提供できる処理装置があると判断された場合は、ステップS306に進み該当する処理装置を抽出して抽出した処理装置のリストを作成する。次いで、ステップS307にてリストの内の1つの処理装置を対象として、ステップS308にてボイスファイル要求と識別情報(プログラムチェンジ番号)とPCM、FM、物理モデルなどの音源の種類を含むデータ部を作成する。このデータ部はステップS309のネットワーク処理により問い合わせ相手の処理装置に送られるが、このネットワーク処理のフローチャートを図20に示す。
図20に示すようにネットワーク処理では、ステップS308において作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される送信処理がステップS320で行われる。この場合、問い合わせ相手の処理装置のMACアドレスが、MACフレームのMACヘッダにあて先MACアドレスとして設定される。そして、線路決定処理(S330)が行われて問い合わせ相手の処理装置においてMACフレームが受信されて受信処理(S340)が行われる。受信処理では、MACフレームからデータ部が取得され、取得されたデータ部が解釈されて要求されたボイスファイルが自機の処理装置内にあるか否かが判断される。ここで、識別情報が一致すると共に音源の種類が一致するボイスファイルがあると判断された場合はそのボイスファイルをステップS342にてボイスメモリから取り出し、取り出したボイスファイルと要求されたボイスファイルがあったことを示すデータ部をステップS343で作成する。また、ステップS341にて要求されたボイスファイルがないと判断された場合は、ステップS344にて要求されたボイスファイルがなかったことを示すデータ部を作成する。そして、ステップS343で作成されたデータ部あるいはステップS344で作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される送信処理がステップS345で行われる。この場合、操作している処理装置のMACアドレスが、MACフレームのMACヘッダにあて先MACアドレスとして設定される。そして、線路決定処理(S331)が行われて操作している処理装置においてMACフレームが受信されて受信処理(S321)が行われる。受信処理では、MACフレームからデータ部が取得され、取得されたデータ部が解釈される。以上がステップS309で実行されるネットワーク処理である。
ステップS309のネットワーク処理が終了すると、ステップS310にて解釈されたデータ部にボイスファイルがあるか否かが判断される。ここで、データ部において要求されたボイスファイルがあったことが示されており、要求されたボイスファイルがある場合は、ステップS313に分岐してボイスファイルが取り出されてステップS303、ステップS304の処理が行われ、ボイスファイルから音色データを取り出して、その音色データを音源に設定する処理が行われる。また、データ部において要求されたボイスファイルがなかったことが示されており、要求されたボイスファイルがない場合は、ステップS311に進み、まだ問い合わせていない処理装置があるか否かが判断される。ここで、問い合わせていない処理装置があると判断された場合は、ステップS307に戻りステップS307ないしステップS311の処理が再度行われて、要求されたボイスファイルを取得できるようにする。この処理はステップS306で抽出した処理装置の1つ1つについて順番に最後まで処理が実行される。そして、ステップS311にて問い合わせていない処理装置がないと判断された場合は、ステップS312に進んで要求されたボイスファイルがなかった旨のメッセージを表示部に表示してボイス変更処理は終了する。
ところで、本発明にかかる楽音発生システムにおいては、各処理装置上で行われる各種の設定を不揮発性のデフォルトバッファへ順次記録しておいて、次回の電源オン時には、記録されている設定(前回の電源オフ前の最新の設定)を読み出して自動的に復元するようにしている。そこで、電源オン時に実行される自動設定処理のフローチャートを図21に示す。
内部ネットワークに接続されている処理装置の電源が投入され新たに処理装置が接続(ログイン)されると、前記したように図6に示すネットワーク接続処理が実行される。そして、ネットワーク接続処理が終了すると引き続いて自動設定処理が起動される。自動設定処理が起動されると、ステップS350にて新クライアントとなった処理装置のデフォルトバッファから接続対象とされている処理要素の一つが読み出される。次いで、読み出された処理要素がネットワーク上にあるか否かがステップS351にて判断される。ここで、ネットワーク接続処理においてSV(サーバ)11から取得した装置テーブルを参照して読み出された処理要素がネットワーク上にあると判断された場合は、ステップS352に進んで当該処理要素が利用できるかを問い合わせるデータ部を作成する。問い合わせは、当該処理要素の入力側と出力側の必要なすべてに対して行う。
そして、ステップS352で作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成され、内部ネットワーク上に送信される送信処理がステップS353で行われる。この場合、接続対象の処理要素が機能している処理装置のMACアドレスが、MACフレームのMACヘッダにあて先MACアドレスとして設定される。そして、線路決定処理(S370)が行われて接続対象の処理要素が機能している処理装置においてMACフレームが受信され、接続対象の処理要素において受信処理(S380)が行われる。受信処理では、MACフレームからデータ部が取得され、取得されたデータ部が処理要素が利用できるかの問い合わせであると解釈される。そこで、ステップS381にて処理要素が利用できるか否かが判断される。ここで、利用できるかの問い合わせがされた処理要素において、入力側と出力側の問い合わせのすべてについて利用できるかを判断する。ここで、カレントバッファの記録内容を参照して問い合わせのあった処理要素の入力側と出力側における接続を検出し、未だ他の処理要素と接続されていないと検出された場合は問い合わせのあった処理要素が利用できると判断されてステップS382に進む。ステップS382では、問い合わせのあった処理要素が利用できることを示すデータ部を作成する。また、既に他の処理要素と接続されていると検出された場合は、ステップS381にて問い合わせのあった処理要素が利用できないと判断されてステップS383に分岐する。ステップS383では、問い合わせのあった処理要素が利用できないことを示すデータ部を作成する。
そして、ステップS382で作成されたデータ部あるいはステップS383で作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成され、内部ネットワーク上に送信される送信処理がステップS384で行われる。この場合、新クライアントである処理装置のMACアドレスが、MACフレームのMACヘッダにあて先MACアドレスとして設定される。そして、線路決定処理(S371)が行われて新クライアントの処理装置においてMACフレームが受信され、接続対象の処理要素において受信処理(S354)が行われる。受信処理では、MACフレームからデータ部が取得され、取得されたデータ部が解釈される。次いで、ステップS355にて問い合わせた処理要素が利用できるか否かが判断されるが、受信されたデータ部を解釈してデータ部が利用できることを示すデータ部であった場合は、利用できると判断されてステップS357へ進む。ステップS357ではデフォルトバッファから読み出していない接続対象の処理要素があるか否かが判断される。
ところで、前記したステップS351にて装置テーブルを参照して読み出された処理要素がネットワーク上にないと判断された場合は、ステップS356に分岐してデフォルトの接続はしなかった旨の表示を表示部に行い、自動設定処理は終了する。この場合、処理要素が装置テーブルに登録されていない場合は、「登録されていません」とのメッセージを表示しても良い。また、ステップS355にて受信されたデータ部を解釈してデータ部が利用できないことを示すデータ部であった場合は、利用できないと判断されてステップS356に分岐しデフォルトの接続はしなかった旨の表示を表示部に行い、自動設定処理は終了する。この場合、処理要素が他に接続されている場合は、「他に利用されております」とのメッセージを表示しても良い。
ステップS357では、デフォルトバッファから読み出していない接続対象の処理要素が残っていると判断された場合は、ステップS350へ戻りステップS350ないしステップS357の上記した処理が、読み出していない接続対象の処理要素がなくなったとステップS357で判断されるまで繰り返し行われる。そして、ステップS357において読み出していない接続対象の処理要素がなくなったと判断されると、ステップS358へ進んで利用できるとされた処理要素の接続の情報を接続バッファに書き込み、ステップS359へ進む。ステップS359では自動フラグが「1」にセットされて自動設定処理は終了する。自動フラグ「1」は、前述したようにデフォルトバッファの更新を行なわないことを示すフラグであるが、上記したようにデフォルトバッファに記録されている接続を復元することを示すフラグでもある。また、自動設定処理においてはデフォルトバッファの接続が一つでもできない場合は、デフォルトバッファの全ての接続を行わないように、デフォルトバッファの接続の情報を接続バッファに書き込まないようにしている。この場合、自動フラグは「0」の状態を維持するようになり、自動フラグ「0」はデフォルトバッファに記録されている接続を行わないことを示すフラグでもある。
なお、ネットワーク接続時にデフォルトバッファに基づく接続を行うか否かを、ユーザが選択できるようにしてもよい。
そして、上述した周期的に起動される図14に示す接続確立処理が実行されて終了した際に、引き続いて実行されるフラグ処理のフローチャートを図22に示す。
フラグ処理が起動されると、ステップS390にて自動フラグが「0」か否かが判断される。ここで、デフォルトバッファの接続が更新されなかった場合および接続選択処理が行われた場合は自動フラグが「0」になっていると判断され、ステップS391に進んでカレントバッファに接続情報が記録されているか否かが判断される。ここで、デフォルトバッファの接続が復元されておらず、手動で設定された接続や外部から要求されて設定された接続もなされていない場合は、カレントバッファに接続情報が記録されておらずカレントバッファが空と判断されてそのままフラグ処理は終了する。また、手動で設定された接続や外部から要求されて設定された接続があり、カレントバッファに接続情報が記録されている場合は、ステップS392にてカレントバッファに記録されている接続情報をデフォルトバッファに記録してフラグ処理は終了する。これにより、手動で設定された接続や外部から要求されて設定された接続の接続情報が反映されているカレントバッファの接続情報で、デフォルトバッファが更新されるようになる。また、デフォルトバッファの接続が復元されるだけで、手動で設定された接続や外部から要求されて設定された接続がなされていない場合は、ステップS390において自動フラグが「1」と判断され、デフォルトバッファの更新を行うことなくそのままフラグ処理は終了する。
これにより、新クライアントが内部ネットワークに接続された際に接続対象の処理要素の全てが利用できる場合は、前回の電源オフ前の完全な接続状態に復元されることになる。また、接続対象の処理要素の少なくとも一部を利用することができず、前回の電源オフ前の接続状態が復元されない場合にログオフしても、その不完全な接続状態はデフォルトバッファに記録されないことから、次回ログオン時に不完全な接続状態が復元されることを防止することができるようになる。
ところで、図6に示すネットワーク接続処理、図7に示すネットワーク切断処理、図10ないし図12に示す接続選択処理、図14ないし図16に示す接続確立処理と負荷分散処理、図18に示すSV(サーバ)11において実行される接続選択処理、図19および図20に示すボイス変更処理、図21に示す自動設定処理、図22に示すフラグ処理を、これらの処理を行う処理装置においてブラウザソフトウェアを立ち上げてブラウザを利用して実行することができる。ブラウザでは、HTTP(HyperText Transfer Protocol)よるファイル転送を行え、HTML(Hyper Text Markup Language)で記述されたハイパーテキストを解読し表示することができる。この場合、ブラウザに必要とする設定画面や選択画面を表示させて、ユーザが画面上で設定や選択を行えるようになる。そして、制御データの通信はHTTPに用意されているファイル要求を行える”GET”、任意のデータを送る”POST”やファイルの更新を行える”PUT”等のリクエスト・メソッドを用いて行うことができる。なお、HTTPで使用されるポート番号は一般に80番とされるが、これに限るものではない。
次に、各処理要素の説明を行う。まず、音源要素の機能ブロック図を図23に示す。図示するように音源要素TGは、受信ポートからMIDIデータを受信して処理順に記録する受信バッファ100と、音源要素TGの内臓MIDIクロックのタイミングにあわせて、受信バッファ100から処理すべきMIDIデータを順次に読み出して、そのMIDIデータを楽音合成部102に供給する読出部101と、供給されたMIDIデータのノートデータで音高を決定すると共に、プログラムチェンジデータで音色を決定し、さらに、コントロールチェンジデータで音量やエフェクト量などの制御量を決定して、決定された情報でPCMデータの楽音を生成する楽音合成部102と、楽音合成部102で生成されたPCMデータを発生順に記録する送信バッファ103から構成されている。受信バッファ100は音源要素の受信ポートから実体データ(MIDIデータ)を受信し、送信バッファ103は音源要素の送信ポートから実体データ(PCMデータ)を送信する。なお、受信ポートのポート番号は図3に示される装置テーブルに記録されている該当する音源要素の論理装置IDであり、送信ポートは送信する際にランダムなポート番号が割り当てられるが、固定のポート番号としても良い。また、送信バッファ103から送信されるPCMデータはMP3データとして圧縮して送信するようにしてもよい。
次に、鍵盤要素の機能ブロック図を図24に示す。図示するように鍵盤要素KBは、ハードウェアの操作子111と、操作子111の操作を検出して、発生されたMIDIデータのタイミングデータを内蔵MIDIクロックに基づいて発生する操作検出部112と、操作検出部112からのMIDIデータとタイミングデータを組にして発生順に記録する送信バッファ113とから構成されている。送信バッファ113は鍵盤要素の送信ポートからMIDIデータである実体データを送信する。なお、送信ポートは送信する際にランダムなポート番号が割り当てられるが、固定のポート番号としても良い。
次に、スピーカ要素の機能ブロック図を図25に示す。図示するようにスピーカ要素SPは、受信ポートから受信したPCMデータを処理順に記録する受信バッファ121と、サンプリング周波数fsのタイミングにあわせてPCMデータを1サンプルずつ受信バッファ121から取り出してDA変換部123へ供給する読出部122と、読出部122から供給されたPCMデータをアナログのオーディオ信号に変換するDA変換部123と、DA変換部123からのオーディオ信号を増幅して放音するスピーカを備える出力部124とから構成されている。受信バッファ121はスピーカ要素の受信ポートから実体データ(PCMデータ)を受信する。なお、受信ポートのポート番号は図3に示される装置テーブルに記録されている該当するスピーカ要素の論理装置IDである。
次に、DSPユニットの機能ブロック図を図26に示す。DSPユニットDUは処理装置であり機能している処理要素を切り替えられるようにされている。DSPユニットDUは、処理要素を実現するためのDSPが実行する処理要素毎のマイクロプログラムとパラメータが記録されている処理装置記憶部133と、切替指示を検出して切替部131へ設定すべき処理要素の情報を含む切り替えを指示する切替検出部132と、切替指示で指示された処理要素のマイクロプログラムとパラメータを処理装置記憶部133から読み出して複数のDSPを有する信号処理部134へ設定する切替部131と、設定されたマイクロプログラムとパラメータに基づいて信号処理を行う信号処理部134とから構成されている。信号処理部134が信号処理を行うことにより、DSPユニットDUはマイクロプログラムに対応する処理要素として機能するようになる。すなわち、DSPユニットDUは、図23ないし図25に示す機能ブロックの処理要素のいずれかとしてとして機能することができる。なお、処理要素が切り替えられた際には、カレントバッファから変更前の処理要素の接続を切断するようにかかる接続の情報を削除する。
DSPユニットDUにおいて処理要素が切り替えられた際に、切り替えられたことを通知する通知処理のフローチャートを図27に示す。
DSPユニットDUにおいて処理要素を切り替える切替指示が検出されると通知処理が起動される(ステップS150)。次いで、ステップS151にて切替指示されたマイクロプログラムとパラメータを設定して処理要素を機能させる。さらに、ステップS152にて自機情報と変更要求を含むデータ部を作成する。この場合の自機情報は、論理装置ID、IPアドレス(IPアドレスは内部ネットワークにログインした際にDHCPサーバから割り当てられている)、物理装置ID、装置名、信号処理部134に設定した処理要素名とその処理IDの情報であり、変更要求とは、SV(サーバ)11にある装置テーブルのデータを添付した自機情報で書き換える要求とされる。次いで、ステップS153にて送信処理が行われる。送信処理では、ステップS152において作成されたデータ部が送信データとされて図2に示すように最終的にMACフレームが生成されて、内部ネットワーク上に送信される。MACフレームのMACヘッダにはあて先MACアドレスとしてSV(サーバ)11のMACアドレス(物理装置ID)が設定される。
DSPユニットDUから送信されたMACフレームは、スター型の内部ネットワークとされていることからハブで受信され、経路決定処理が行われる(ステップS161)。経路決定処理では、ハブは受信されたMACフレームのあて先MACアドレスを見て送信経路を決定し、MACフレームを中継する。これにより、DSPユニットDUから送信されたMACフレームがあて先MACアドレスが一致するSV(サーバ)11で受信されて、受信処理が行われる(ステップS170)。受信処理では、MACフレームからIPパケットが取り出され、IPパケットからTCPセグメントが取り出され、さらに、TCPセグメントからデータ部が取得される。そして、取得されたデータ部を解釈して変更要求があることから変更要求処理を行うと判断する。次いで、ステップS171にてデータ部におけるDSPユニットDUの自機情報で装置テーブルを書き換えて、ステップS172にて変更後の装置テーブルと変更要求を含むデータ部を作成する。このデータ部は、ステップS173で送信処理が行われることにより内部ネットワーク上に送信される。この送信処理は、前述したステップS153の送信処理と同様の処理とされるが、あて先MACアドレスにはオール”1”のブロードキャストアドレス(FF-FF-FF-FF-FF-FF)が設定され、あて先IPアドレスもブロードキャストアドレスが設定される。この場合、図3に示す装置テーブルのように内部ネットワークのネットワークアドレスが”192.168.111.0”とされている場合は、IPアドレスのブロードキャストアドレスは”192.168.111.255”とされる。
SV(サーバ)11からブロードキャストされたMACフレームは、ハブで受信され経路決定処理が行われる(ステップS161)。この経路決定処理では、ステップS160と同様の経路決定処理が行われるが、ブロードキャストアドレスのMACフレームとされていることから全ての処理装置にMACフレームが中継されるようになる。DSPユニットDUは、ブロードキャストされたMACフレームが到来した際にブロードキャストアドレスとされていることからステップS170と同様のMACフレームを受信する受信処理を行う(ステップS154)。次いで、ステップS155にて受信されたMACフレームから取り出された装置テーブル情報を内部の記憶手段に記憶することにより装置テーブルを更新し、DSPユニットにおけるネットワーク接続処理は終了する。また、他のクライアントにおいてはブロードキャストされたMACフレームが到来した際にブロードキャストアドレスとされていることからステップS170と同様のMACフレームを受信する受信処理を行う(ステップS180)。次いで、ステップS181にて受信されたMACフレームから取り出された装置テーブル情報で記憶されている装置テーブルを更新し、他のクライアントにおけるネットワーク接続処理は終了する。
次に、ミキサ要素の機能ブロック図を図28に示す。図示するようにミキサ要素MXは、受信ポートからPCMデータを受信して処理順に記録する受信チャンネル毎に用意されている受信バッファ141と、受信バッファ141からサンプリング周波数fsのタイミングにあわせてPCMデータを1サンプルずつ取り出してミックス部143へ供給する読出部142と、操作子144から入力された各種のパラメータの設定にあわせて、受信バッファ141から入力されたPCMデータをミキシング(信号処理)するミックス部143と、各種パラメータの設定を行う操作子144と、ミックス部143から出力されるPCMデータを発生順に記録する送信チャンネル毎に用意されている送信バッファ145から構成されている。受信バッファ141はミキサ要素の受信ポートから実体データ(PCMデータ)を受信し、送信バッファ145はミキサ要素の送信ポートから実体データ(PCMデータ)を送信する。なお、受信ポートのポート番号は図3に示される装置テーブルに記録されている該当する音源要素の論理装置IDであり、送信ポートは送信する際にランダムなポート番号が割り当てられるが、固定のポート番号としても良い。
次に、コンテンツレコーダ要素の機能ブロック図を図29に示す。コンテンツレコーダ要素CRにおいて通信するデータは、実体データではなく制御データとされ、他の処理要素と通信を行うときは実体データの通信に使うポートではなく制御データ通信用のポートを使用して通信を行う。この場合、コンテンツを要求する処理要素(処理装置)にコンテンツの取得に必要とする画面を表示させて、ユーザが画面上でコンテンツの選択を行えるようにしてもよい。そして、制御データの通信はHTTPに用意されているファイル要求を行う”GET”のリクエスト・メソッドを用いて行うことができる。
コンテンツレコーダ要素CRにコンテンツを要求する処理要素(処理装置)は、コンテンツ要求とコンテンツデータの識別情報を送信する制御データのデータ部に入れて送信する。コンテンツとは特定の処理要素で使用されるファイル、ソングやスタイルやボイスなどのファイルである。コンテンツレコーダ要素CRは、受信ポートからコンテンツ要求を検出(受信)して、コンテンツ要求とコンテンツデータの識別情報を読出部151へ供給する要求検出部152と、識別情報に該当するコンテンツデータをコンテンツ記憶部153から読み出してコンテンツ送信部154へわたす読出部151と、複数のコンテンツデータを識別情報と共に記憶しているコンテンツ記憶部153と、コンテンツ要求を送信した処理要素(処理装置)へ、読み出したコンテンツデータを送信ポートから送信するコンテンツ送信部154から構成されている。なお、受信ポートのポート番号は図3に示される装置テーブルに記録されている該当するコンテンツレコーダ要素CRの論理装置IDであり、送信ポートは送信する際にランダムなポート番号が割り当てられるが、固定のポート番号としても良い。
次に、自動伴奏要素の機能ブロック図を図30に示す。自動伴奏要素AAは、他の処理要素からの伴奏データの要求に応じて、指示された伴奏データを演奏データに基づいて編集し、伴奏データを処理要素に送るようにしている。そして、自動伴奏の要求データは実体データの通信に使うポートではなく制御データ通信用のポートを使用して通信を行う。この場合、伴奏データを要求する処理要素が機能している処理装置において自動伴奏の要求に必要とする画面を表示させて、ユーザが画面上で自動伴奏の選択や伴奏データの送り先の選択を行うようにしてもよい。そして、伴奏データの要求および取得の通信をHTTPにより行うようにしてもよい。
自動伴奏要素AAは、受信ポート1からMIDIデータ(演奏データ)を受信して処理順に記録する受信バッファ161と、自動伴奏要素AAの内臓MIDIクロックのタイミングにあわせて、処理すべきMIDIデータ(演奏データ)を受信バッファ161から取り出す読出部162と、読出部162で取り出したMIDIデータ(演奏データ)のうちのノートオンイベントとノートオフイベントを使用して演奏データにおける和音を検出する和音検出部163を備えている。
また、自動伴奏要素AAに自動伴奏を要求する処理要素(処理装置)は、伴奏データ要求と伴奏データの識別情報を送信する制御データのデータ部に入れて送信する。そして、自動伴奏要素AAは、受信ポート2から伴奏データ要求を検出(受信)した際に、受信された伴奏データ要求と自動伴奏の識別情報を読出部164へわたす要求検出部165と、識別情報に該当する伴奏データを伴奏データ記憶部166から読み出して伴奏データバッファ167へわたす読出部164と、複数の伴奏データを識別情報と共に記憶している伴奏データ記憶部166と、伴奏データ記憶部166から読み出した伴奏データを記録する伴奏データバッファ167を備えている。なお、伴奏データとは伴奏を再生するためのMIDIデータを処理順に記録したファイルとされている。
和音検出部163は検出した和音データと供給されたMIDIデータ(演奏データ)とを自動伴奏部168にわたし、伴奏データバッファ167はMIDIデータ(伴奏データ)を自動伴奏部168に渡す。自動伴奏部168は、自動伴奏要素AAの内臓MIDIクロックのタイミングにあわせて、処理すべきMIDIデータ(伴奏データ)を伴奏データバッファ167から順に取り出す。そして、取り出したMIDIデータ(伴奏データ)がノートオンであれば和音検出部163から渡されたその時点の和音データでノートナンバを変更し、変更後もしくは取り出したMIDIデータ(伴奏データ)と和音検出部163より受け取ったMIDIデータ(演奏データ)を、各データの処理タイミングを表すタイミングデータとともに、送信バッファ169へわたしている。送信バッファ169では、自動伴奏部168から送られたMIDIデータとタイミングデータを処理順に記録し、伴奏データ要求に含まれているあて先のIPアドレスとポート番号で特定される処理要素に送信ポートから送信している。なお、受信ポート1は実体データ(MIDIデータ)の受信ポートであり、受信ポート1のポート番号は図3に示される装置テーブルに記録されている該当する自動伴奏要素AAの論理装置IDとされ、受信ポート2のポート番号は制御データ用に予め割り当てられたポート番号(HTTPの場合は一般に80番とされるが、これに限られない)とされ、送信ポートは実体データ(MIDIデータ)の送信ポートであり送信する際にランダムなポート番号が割り当てられるが、固定のポート番号としても良い。
次に、MIDIレコーダ要素の機能ブロック図を図31に示す。MIDIレコーダ要素MRは、受信したMIDIデータを記録することができ、読出要求に応じて記録されたMIDIデータをあて先の処理要素(処理装置)に送信するようにしている。
MIDIレコーダ要素MRは、受信ポート1からMIDIデータを受信して処理順に記録する受信バッファ171と、受信バッファ171からMIDIデータを取り出して、MIDIのイベントデータとその処理タイミングを表すタイミングデータの組を処理順にMIDI記録部173に書き込む書込部172と、書込部172によりMIDIデータからなる演奏データがMIDIファイルとして記録されるMIDI記録部173を備えている。また、MIDIレコーダ要素MRにMIDIデータ(演奏データ)を要求する処理要素(処理装置)は、読出要求とMIDIファイルの識別情報を制御データのデータ部に入れて送信する。この場合、読出要求する処理要素が機能している処理装置において読出要求に必要とする画面を表示させて、ユーザが画面上でMIDIファイルの選択やMIDIデータの送り先の選択を行うようにしてもよいし、読出要求およびMIDIデータの取得の通信をHTTPにより行うようにしてもよい。
そして、MIDIレコーダ要素MRは、受信ポート2から読出要求を検出(受信)した際に、受信された読出要求とMIDIファイルの識別情報を読出部174へわたす要求検出部176と、識別情報に対応するMIDIファイルから、MIDIレコーダ要素MRの内臓MIDIクロックのタイミングにあわせて、処理すべきMIDIデータをMIDI記録部173から読み出して送信バッファ175へわたす読出部174と、読出部174から送られたMIDIデータとタイミングデータを処理順に記録する送信バッファ175とを備えている。送信バッファ175は、バッファに記録されたMIDIデータとタイミングデータを、読出要求に含まれているあて先のIPアドレスとポート番号で特定される処理要素に送信ポートから送信している。なお、受信ポート1は実体データ(MIDIデータ)の受信ポートであり、受信ポート1のポート番号は図3に示される装置テーブルに記録されている該当するMIDIレコーダ要素MRの論理装置IDとされ、受信ポート2のポート番号は制御データ用に予め割り当てられたポート番号(HTTPの場合は一般に80番とされるが、これに限られない)とされ、送信ポートは実体データ(MIDIデータ)の送信ポートであり送信する際にランダムなポート番号が割り当てられるが、固定のポート番号としても良い。
次に、エディタ要素の機能ブロック図を図32に示す。エディタ要素EDは、受信したMIDIデータを設定要求に応じてエディットしてあて先の処理要素(処理装置)に送信するようにしている。
エディタ要素EDは、MIDIデータを受信ポート1から受信して処理順に記録する受信バッファ181と、受信バッファ181からエディタ要素EDの内臓MIDIクロックのタイミングにあわせて処理すべきMIDIデータを読み出してエディット部183へ渡す読出部182とを備えている。また、エディタ要素EDにエディットの設定を要求する処理要素(処理装置)は、設定要求とエディット情報を制御データのデータ部に入れて送信する。この場合、設定要求する処理要素が機能している処理装置において設定要求に必要とする画面を表示させて、ユーザが画面上でエディットする内容の設定を行うようにしてもよいし、設定要求の通信をHTTPにより行うようにしてもよい。なお、エディット情報はエディット内容を表す情報である。
そして、エディタ要素EDは、受信ポート2から設定要求を検出(受信)した際に、受信された設定要求とエディット情報をエディット部183へわたす要求検出部185と、読出部182から渡されたMIDIデータに要求検出部185からのエディット情報に基づいてエディットを行い、エディットされたMIDIデータを送信バッファ184に渡すエディット部183と、エディット部183から送られたMIDIデータとタイミングデータを処理順に記録する送信バッファ184を備えている。エディット部183では、自動作曲の場合、読み出したMIDIデータ(フレーズ)から1曲分の楽曲を表すMIDIデータをエディット情報に基づいて作成し、作成したMIDIデータを送信バッファ184へわたしている。また、自動編曲の場合、読み出したMIDIデータ(メロディ)をエディット情報に基づいて編曲してオーケストラ曲を表すMIDIデータを作成し、作成したMIDIデータを送信バッファ184へわたしている。送信バッファ184は、バッファに記録されたMIDIデータとタイミングデータを、設定要求に含まれているあて先のIPアドレスとポート番号で特定される処理要素に送信ポートから送信している。なお、受信ポート1は実体データ(MIDIデータ)の受信ポートであり、受信ポート1のポート番号は図3に示される装置テーブルに記録されている該当するエディタ要素EDの論理装置IDとされ、受信ポート2のポート番号は制御データ用に予め割り当てられたポート番号(HTTPの場合は一般に80番とされるが、これに限られない)とされ、送信ポートは実体データ(MIDIデータ)の送信ポートであり送信する際にランダムなポート番号が割り当てられるが、固定のポート番号としても良い。
次に、エフェクタ要素の機能ブロック図を図33に示す。エフェクタ要素EFは、受信したPCMデータに設定要求に応じたエフェクトを施してあて先の処理要素(処理装置)に送信するようにしている。
エフェクタ要素EFは、PCMデータを受信ポート1から受信して処理順に記録する図示していないが受信チャンネル(入力チャンネル)毎に設けられた受信バッファ191と、受信バッファ191からサンプリング周波数fsのタイミングにあわせてPCMデータを1サンプルずつ取り出してエフェクト部193へ送る読出部192とを備えている。また、エフェクタ要素EFにエフェクトの設定を要求する処理要素(処理装置)は、設定要求とエフェクト情報を制御データのデータ部に入れて送信する。この場合、設定要求する処理要素が機能している処理装置において設定要求に必要とする画面を表示させて、ユーザが画面上でエフェクト内容の設定を行うようにしてもよいし、設定要求の通信をHTTPにより行うようにしてもよい。なお、エフェクト情報はエフェクトの設定内容を表す情報である。
そして、エフェクタ要素EFは、受信ポート2から設定要求を検出(受信)した際に、受信された設定要求とエフェクト情報をエフェクト部193へわたす要求検出部195と、読出部192から読み出されたPCMデータにエフェクトを施して新たなPCMデータを作成し、作成後のPCMデータを送信バッファ194へわたすエフェクト部193と、エフェクト部193から送られたPCMデータとタイミングデータを処理順に記録する図示していないが送信チャンネル毎に設けられた送信バッファ194を備えている。エフェクト部193でのエフェクトは、エフェクト情報に基づいて設定(決定)され、リバーブやコーラスなどのエフェクトがPCMデータに施される。送信バッファ194は、バッファに記録されたPCMデータを、設定要求に含まれているあて先のIPアドレスとポート番号で特定される処理要素に送信ポートから送信している。なお、受信ポート1は実体データ(PCMデータ)の受信ポートであり、受信ポート1のポート番号は図3に示される装置テーブルに記録されている該当するエフェクタ要素EFの論理装置IDとされ、受信ポート2のポート番号は制御データ用に予め割り当てられたポート番号(HTTPの場合は一般に80番とされるが、これに限られない)とされ、送信ポートは実体データ(PCMデータ)の送信ポートであり送信する際にランダムなポート番号が割り当てられるが、固定のポート番号としても良い。
次に、オーディオレコーダ要素の機能ブロック図を図34に示す。オーディオレコーダ要素ARは、受信したPCMデータを記録することができ、読出要求に応じて記録されたPCMデータをあて先の処理要素(処理装置)に送信するようにしている。
オーディオレコーダ要素ARは、受信ポート1からPCMデータを受信して処理順に記録する受信バッファ201と、受信バッファ201からPCMデータを取り出してPCM記録部203に書き込む書込部202と、書込部202によりPCMデータがPCMファイルとして記録されるPCM記録部203を備えている。また、オーディオレコーダ要素ARにPCMデータを要求する処理要素(処理装置)は、読出要求とPCMファイルの識別情報を制御データのデータ部に入れて送信する。この場合、読出要求する処理要素が機能している処理装置において読出要求に必要とする画面を表示させて、ユーザが画面上でPCMファイルの選択やPCMデータの送り先の選択を行うようにしてもよいし、読出要求およびPCMデータの取得の通信をHTTPにより行うようにしてもよい。
そして、オーディオレコーダ要素ARは、受信ポート2から読出要求を検出(受信)した際に、受信された読出要求とPCMファイルの識別情報を読出部204へわたす要求検出部206と、識別情報に対応するPCMファイルからサンプリング周波数fsのタイミングにあわせて、PCMデータをPCM記録部203から読み出して送信バッファ205へわたす読出部204と、読出部204から送られたPCMデータを処理順に記録する送信バッファ205とを備えている。送信バッファ205は、バッファに記録されたPCMデータを、読出要求に含まれているあて先のIPアドレスとポート番号で特定される処理要素に送信ポートから送信している。なお、受信ポート1は実体データ(PCMデータ)の受信ポートであり、受信ポート1のポート番号は図3に示される装置テーブルに記録されている該当するオーディオレコーダ要素ARの論理装置IDとされ、受信ポート2のポート番号は制御データ用に予め割り当てられたポート番号(HTTPの場合は一般に80番とされるが、これに限られない)とされ、送信ポートは実体データ(PCMデータ)の送信ポートであり送信する際にランダムなポート番号が割り当てられるが、固定のポート番号としても良い。
次に、実体データの通信を行う際に実行される通信処理のフローチャートを図35に示す。
実体データの通信を行う際には、実体データを送信する処理装置において通信処理が起動され、ステップS190にて送信バッファからデータを取り出してデータ部が作成される。次いで、ステップS191にて送信処理が行われる。送信処理では、ステップS190において作成されたデータ部が送信データとされて図2に示すように最終的に送信データがカプセル化されたMACフレームが生成されて、内部ネットワーク上に送信される。MACフレームのMACヘッダにはあて先MACアドレスとして実体データを受信するあて先の処理装置のMACアドレス(物理装置ID)が設定される。
送信されたMACフレームは、スター型の内部ネットワークとされていることからハブで受信され、経路決定処理が行われる(ステップS200)。経路決定処理では、ハブは受信されたMACフレームのあて先MACアドレスを見て送信経路を決定し、MACフレームを中継する。これにより、送信する処理装置から送信されたMACフレームがあて先MACアドレスが一致する受信する処理装置で受信されて、受信処理が行われる(ステップS210)。受信処理では、MACフレームからIPパケットが取り出され、IPパケットからTCPセグメントが取り出され、さらに、TCPセグメントからデータ部が取得される。次いで、ステップS211で取得されたデータ部が受信バッファに記録される。なお、通信には実態データを送信するために確立されたカレントバッファに記録されているポートが使用される。
以上の説明では、内部ネットワークをイーサネットのLANとしたが本発明はこれに限るものではなく、他のネットワーク媒体としても良い。また、通信プロトコルとしてTCPとしたが、本発明はこれに限るものではなく、リアルタイムを重んずる場合は信頼性は低いが転送速度が高いUDP(User Datagram Protocol)を用いても良いし、TCP/IPに替えてIPX/SPX(Internetwork Packet Exchange/Sequenced Packet Exchange)を用いるようにしても良い。
また、エディタ要素のエディット情報やエフェクタ要素のエフェクト情報を他の処理要素で設定して送ることができるようにすると、他の部屋にあるエディタ要素やエフェクト要素をスピーカ要素のある部屋から操作することができるようになり、あたかもその部屋にエディタ要素やエフェクト要素があるものとして操作することができることから操作性を向上することができる。
さらに、一つの処理装置内の複数の処理要素間の接続解除はネットワーク接続時にかぎるものではなく、ネットワーク接続後の任意のタイミングで解除を可能とすることができる。この場合、ネットワーク接続時には接続の解除を行わず、ネットワーク接続後に接続解除の指示を確認する処理を周期的に起動するようにしておき、接続解除の指示を検出したときに処理装置内の処理要素間の接続を解除するようにすればよい。また、接続解除の指示はそれを指示する特別なスイッチを設けてそのスイッチにより指示してもよい。このような接続解除の指示は自処理装置に限らず、ネットワーク上の他の処理装置から行うこともできる。
本発明の実施例の楽音発生システムの構成を示すブロック図である。 本発明にかかる楽音発生システムにおいてネットワーク上に送出されるMACフレームの生成過程の概要を示す図である。 本発明にかかる楽音発生システムの内部ネットワークにおけるすべての処理要素毎の識別情報の対応表である装置テーブルである。 本発明にかかる楽音発生システムの内部ネットワーク上の処理要素において、実体データの通信が可能な処理要素毎の入力側と出力側の接続テーブルである。 本発明にかかる楽音発生システムにおいて、ネットワーク接続処理の一部の処理の態様を示す図である。 本発明にかかる楽音発生システムにおいて、内部ネットワークに新たに処理装置が接続(ログイン)された際に実行されるネットワーク接続処理のフローチャートである。 本発明にかかる楽音発生システムにおいて、内部ネットワークに接続されている処理装置が切断(ログオフ)された際に実行されるネットワーク切断処理のフローチャートである。 本発明にかかる楽音発生システムにおいて、ネットワーク切断処理の一部の処理の態様を示す図である。 本発明にかかる楽音発生システムにおける内部ネットワークの構成の例を示す図である。 本発明にかかる楽音発生システムにおいて、処理要素間の接続を行う接続処理時に表示される設定画面の例を示す図である。 本発明にかかる楽音発生システムにおいて、処理要素間の接続を行う接続処理時に表示される設定画面の他の例を示す図である。 本発明にかかる楽音発生システムにおいて、処理要素と処理要素との接続を設定する際に実行される接続選択処理のフローチャートである。 本発明にかかる楽音発生システムにおいて、接続選択処理が行われて処理要素の論理接続の設定が行われた場合に、接続バッファに記録される接続情報の例を示す図である。 本発明にかかる楽音発生システムにおいて、接続選択処理に続けて実行される接続確立処理のフローチャートである。 本発明にかかる楽音発生システムにおいて、カレントバッファに記録される接続情報と対応付けの例を示す図である。 本発明にかかる楽音発生システムにおいて、接続確立処理において実行される負荷分散処理のフローチャートである。 本発明にかかる楽音発生システムにおいて、接続確立処理において実行される負荷分散処理のフローチャートの続きである。 本発明にかかる楽音発生システムにおいて、SV(サーバ)で実行される接続選択処理のフローチャートである。 本発明にかかる楽音発生システムにおいて、音源要素において音色を変更する際に実行されるボイス変更処理のフローチャートである。 本発明にかかる楽音発生システムにおいて、ボイス変更処理で実行されるネットワーク処理のフローチャートである。 本発明にかかる楽音発生システムにおいて、処理装置の電源オン時に実行される自動設定処理のフローチャートである。 本発明にかかる楽音発生システムにおいて、周期的に実行されるフラグ処理のフローチャートである。 本発明にかかる楽音発生システムにおける音源要素の機能ブロック図である。 本発明にかかる楽音発生システムにおける鍵盤要素の機能ブロック図である。 本発明にかかる楽音発生システムにおけるスピーカ要素の機能ブロック図である。 本発明にかかる楽音発生システムにおけるDSPユニットの機能ブロック図である。 本発明にかかる楽音発生システムにおいて、DSPユニットにおいて処理要素が切り替えられた際に、切り替えられたことを通知する通知処理のフローチャートである。 本発明にかかる楽音発生システムにおけるミキサ要素の機能ブロック図である。 本発明にかかる楽音発生システムにおけるコンテンツレコーダ要素の機能ブロック図である。 本発明にかかる楽音発生システムにおける自動伴奏要素の機能ブロック図である。 本発明にかかる楽音発生システムにおけるMIDIレコーダ要素の機能ブロック図である。 本発明にかかる楽音発生システムにおけるエディタ要素の機能ブロック図である。 本発明にかかる楽音発生システムにおけるエフェクタ要素の機能ブロック図である。 本発明にかかる楽音発生システムにおけるオーディオレコーダ要素の機能ブロック図である。 本発明にかかる楽音発生システムにおける実体データの通信を行う際に実行される通信処理のフローチャートである。
符号の説明
1 インターネット、2 ルータ、3 ルータ、4 ルータ、10 ハブ、11 SV(サーバ)、12 TG1(音源)、13 TG2(音源)、14 KB(鍵盤)、15 SP1(スピーカ)、20 ハブ、21 SP2(スピーカ)、22 DU(DSPユニット)、23 MX(ミキサ)、24 CR(コンテンツレコーダ)、30 ハブ、31 AA(自動伴奏)、32 MR(MIDIレコーダ)、33 ED(エディタ)、34 EF(エフェクタ)、35 AR(オーディオレコーダ)、36 SY(音源、鍵盤)40 ハブ、41 MC(マイク)、42 CD(CDプレーヤ)、100 受信バッファ、101 読出部、102 楽音合成部、103 送信バッファ、111 操作子、112 操作検出部、113 送信バッファ、121 受信バッファ、122 読出部、123 DA変換部、124 出力部、131 切替部、132 切替検出部、133 処理装置記憶部、134 信号処理部、141 受信バッファ、142 読出部、143 ミックス部、144 操作子、145 送信バッファ、151 読出部、152 要求検出部、153 コンテンツ記憶部、154 コンテンツ送信部、161 受信バッファ、162 読出部、163 和音検出部、164 読出部、165 要求検出部、166 伴奏データ記憶部、167 伴奏データバッファ、168 自動伴奏部、169 送信バッファ、171 受信バッファ、172 書込部、173 記録部、174 読出部、175 送信バッファ、176 要求検出部、181 受信バッファ、182 読出部、183 エディット部、184 送信バッファ、185 要求検出部、191 受信バッファ、192 読出部、193 エフェクト部、194 送信バッファ、195 要求検出部、201 受信バッファ、202 書込部、203 記録部、204 読出部、205 送信バッファ、206 要求検出部

Claims (1)

  1. それぞれが楽音発生に関連する装置として機能する複数の処理装置をネットワークを介して相互に接続することにより構成した楽音発生システムにおける前記処理装置であって、
    前記楽音発生システム内の前記処理装置ごとに、負荷分散対象であるか否かの情報を有する装置テーブルを記憶するテーブル記憶手段と、
    前記ネットワーク接続された他の前記処理装置から、接続の要求を受け付ける受付手段と、
    前記受付手段により前記接続の要求を受け付けた時、前記装置テーブルを参照して、負荷分散対象であるか否かを判断する第1判断手段と、
    前記第1判断手段により負荷分散対象でないと判断された場合、負荷分散する必要があるか否かを判断することなく、要求された接続を確立する第1接続手段と、
    前記第1判断手段により負荷分散対象であると判断された場合、負荷分散する必要があるか否かを判断する第2判断手段と、
    前記第2判断手段により負荷分散する必要がないと判断された場合、要求された接続を確立する第2接続手段と、
    前記第2判断手段により負荷分散する必要があると判断された場合、処理を追加できる処理装置を検出する検出手段と、
    接続の相手を前記検出手段により検出した処理装置へ変更する指示を、前記接続の要求元の処理装置に送る送信手段と、
    を備えることを特徴とする楽音発生システムにおける処理装置。
JP2006077534A 2006-03-20 2006-03-20 楽音発生システムにおける処理装置 Expired - Fee Related JP4207971B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006077534A JP4207971B2 (ja) 2006-03-20 2006-03-20 楽音発生システムにおける処理装置
US11/725,214 US7592531B2 (en) 2006-03-20 2007-03-15 Tone generation system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006077534A JP4207971B2 (ja) 2006-03-20 2006-03-20 楽音発生システムにおける処理装置

Publications (2)

Publication Number Publication Date
JP2007256376A JP2007256376A (ja) 2007-10-04
JP4207971B2 true JP4207971B2 (ja) 2009-01-14

Family

ID=38630710

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006077534A Expired - Fee Related JP4207971B2 (ja) 2006-03-20 2006-03-20 楽音発生システムにおける処理装置

Country Status (1)

Country Link
JP (1) JP4207971B2 (ja)

Also Published As

Publication number Publication date
JP2007256376A (ja) 2007-10-04

Similar Documents

Publication Publication Date Title
JP4432814B2 (ja) 演奏データ通信管理システム及び演奏データ通信管理装置
JP4211750B2 (ja) 電子音楽装置
US7977559B2 (en) Tone generation system controlling the music system
JP4207972B2 (ja) 楽音発生システムにおける処理装置
JP4207970B2 (ja) 楽音発生システムにおける処理装置
US6627807B2 (en) Communications apparatus for tone generator setting information
JP4207971B2 (ja) 楽音発生システムにおける処理装置
JP4200996B2 (ja) 楽音発生システムにおける処理装置
US7592531B2 (en) Tone generation system
JP2000181447A (ja) 音楽情報送信装置、音楽情報受信装置、音楽情報送受信装置、及び記憶媒体
JP4200997B2 (ja) 楽音発生システム
JP4200998B2 (ja) 楽音発生システムにおける処理装置
JP4155295B2 (ja) 楽音発生システム
JP6170692B2 (ja) 通信障害時にデュエット歌唱を継続可能な通信カラオケシステム
JP5066975B2 (ja) ネットワーク接続環境設定用クライアント装置及びネットワーク接続環境設定システム並びにプログラム
JP4318013B2 (ja) コンテンツ編集装置、コンテンツ編集方法及びプログラム格納媒体並びにコンテンツ編集システム
JP4304561B2 (ja) 情報処理装置、情報処理方法及びプログラム格納媒体並びに情報処理システム
JP3271572B2 (ja) 楽音情報の通信方法、通信装置及びプログラムを記録した媒体
JP4207901B2 (ja) 音楽lan設定装置及びプログラム
JP4156305B2 (ja) カラオケ端末装置
JP2002073439A (ja) 情報処理装置、情報処理方法及びプログラム格納媒体並びに情報処理システム
JP2021148848A (ja) オーディオインターフェース装置、及び、録音システム
JPH10282977A (ja) 楽音再生装置及びシステム
JPH0962273A (ja) 通信式音楽再生システム及びセンタ装置
JP2003022081A (ja) 楽曲情報配信装置及び楽曲情報配信プログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080703

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080715

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080822

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20080930

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20081013

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111031

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121031

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131031

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees