JP4432814B2 - 演奏データ通信管理システム及び演奏データ通信管理装置 - Google Patents

演奏データ通信管理システム及び演奏データ通信管理装置 Download PDF

Info

Publication number
JP4432814B2
JP4432814B2 JP2005088427A JP2005088427A JP4432814B2 JP 4432814 B2 JP4432814 B2 JP 4432814B2 JP 2005088427 A JP2005088427 A JP 2005088427A JP 2005088427 A JP2005088427 A JP 2005088427A JP 4432814 B2 JP4432814 B2 JP 4432814B2
Authority
JP
Japan
Prior art keywords
session
information
terminal device
notification
performance data
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
JP2005088427A
Other languages
English (en)
Other versions
JP2006267846A (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 JP2005088427A priority Critical patent/JP4432814B2/ja
Priority to AT06111445T priority patent/ATE395681T1/de
Priority to EP06111445A priority patent/EP1705640B1/en
Priority to DE602006001137T priority patent/DE602006001137D1/de
Priority to CN200610067385.9A priority patent/CN1838231B/zh
Priority to US11/389,595 priority patent/US7991897B2/en
Publication of JP2006267846A publication Critical patent/JP2006267846A/ja
Application granted granted Critical
Publication of JP4432814B2 publication Critical patent/JP4432814B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0893Assignment of logical groups to network elements
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H1/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32Architecture of open systems interconnection [OSI] 7-layer type protocol stacks, e.g. the interfaces between the data link level and the physical level
    • H04L69/322Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/329Intralayer communication protocols among peer entities or protocol data unit [PDU] definitions in the application layer [OSI layer 7]
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/095Identification code, e.g. ISWC for musical works; Identification dataset
    • G10H2240/115Instrument identification, i.e. recognizing an electrophonic musical instrument, e.g. on a network, by means of a code, e.g. IMEI, serial number, or a profile describing its capabilities
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/175Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments for jam sessions or musical collaboration through a network, e.g. for composition, ensemble playing or repeating; Compensation of network or internet delays therefor
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/281Protocol or standard connector for transmission of analog or digital data to or from an electrophonic musical instrument
    • G10H2240/295Packet switched network, e.g. token ring
    • G10H2240/305Internet or TCP/IP protocol use for any electrophonic musical instrument data or musical parameter transmission purposes

Description

この発明は、演奏データの送受信を行う複数の電子音楽装置と、その複数の電子音楽装置間の演奏データの送受信を管理する演奏データ通信管理装置とを備えた演奏データ通信管理システム及び、上記のようなシステムを構成する演奏データ通信管理装置に関する。
従来から、MIDI(Musical Instruments Digital Interface:登録商標)データのような、楽曲の演奏内容を示す演奏データを取り扱う装置を複数ケーブルで接続し、これらの間で演奏データを送受信させ、共同的に動作させることが行われている。
また、例えばMIDIデータを転送する場合には、従来は専用のインタフェースとケーブルを使用することが行われていた。しかし近年では、他の通信プロトコル上にMIDIメッセージを載せて転送を行うことにより、従来の専用インタフェースの場合と比べ、遠距離に、かつ大容量のデータを転送できるようにすることが提案されている。このような技術として、本件出願人は、インタフェースとしてIEEE(Institute of Electrical and Electronic Engineers)1394を利用した通信規格mLAN(登録商標)を提案している。
また、通信プロトコルとしてTCP(Transmission Control Protocol)やUDP(User Datagram Protocol)及びIP(Internet Protocol)を用いることにより、インターネットを介してMIDIデータを送受信できるようにすることも提案されている。
このような技術については、例えば特許文献1に記載されている。そして、この特許文献1には、インターネット上でMIDIデータを交換するセッションを実行する場合に、接続用サーバがセッションに参加する端末それぞれにIDを割り当てて通知し、各端末がMIDIデータを送信する際、そのIDと同じチャンネル番号を付して送信するようにすることが記載されている。
特開2004−301997号公報
しかしながら、上述したIEEE1394を利用した通信規格は、予め特定の参加装置を指定してセッショングループを形成し、その参加装置間に限定されたMIDIメッセージの交換を行う規格であり、セッショングループへの「飛び入り」ができないという問題があった。
また、特許文献1に記載の技術には、各端末をセッションに参加させる際に、ユーザが手動でグループを作成し、その後他の端末のユーザがそのグループを選択して参加を要求するといった、煩雑な操作が必要であるという問題があった。
この発明は、このような問題を解決し、複数の装置間で演奏データを送受信させる場合に、データの送受信のためのセッション形成の自由度を高めると共に、各装置を簡単な操作でセッションに参加させられるようにすることを目的とする。
上記の目的を達成するため、この発明は、演奏データの送受信を行う複数の電子音楽装置と、その複数の電子音楽装置間の演奏データの送受信を管理する演奏データ通信管理装置とを備えた演奏データ通信管理システムにおいて、上記演奏データ通信管理装置に、上記演奏データの送受信に係るセッションの情報として、そのセッションに参加している電子音楽装置の識別情報を記憶する記憶手段と、上記電子音楽装置から、通信相手を指定してセッションへの参加を要求された場合に、その通信相手が条規記憶手段に情報を記憶しているいずれかのセッションに参加していれば、そのセッションを参加先セッションとし、いずれのセッションにも参加していなければ、新たにセッションを作成すると共にその作成したセッションを参加先セッションとして、要求元の装置の識別情報を、上記参加先セッションに参加している装置の識別情報として上記記憶手段に記憶させると共に、上記参加先セッションおいて他の電子音楽装置と重ならないようにチャンネルを割り当て、その割り当てたチャンネルの情報と、上記参加先セッションに参加している各電子音楽装置の識別情報及びその各装置が使用するチャンネルの情報とをセッション情報として上記要求元の装置に通知し、さらに、上記参加先セッションに参加している他の電子音楽装置に対して、上記要求元の装置の識別情報、その装置が使用するチャンネル、および上記要求元の装置から通知されたその要求元の装置の音源設定情報をセッション情報として通知するセッション情報通知手段とを設け、上記各電子音楽装置に、上記演奏データ通信管理装置に対して、通信相手を指定してセッションへの参加要求と、その電子音楽装置における音源設定情報の通知とをする手段と、上記演奏データ通信管理装置から上記セッション情報の通知を受け取る手段と、その手段が受け取ったセッション情報の内容に基づき、自身が使用するチャンネルと、通信相手となる装置の宛先情報と、その通信相手が使用するチャンネルの情報及び音源部の発音に係る設定内容を設定し、それらの設定に基づいて上記演奏データの送受信及び上記音源部における発音の制御を行う手段とを設けたものである。
このような演奏データ通信管理システムにおいて、上記各電子音楽装置に、上記セッションに参加している場合には、自身の音源設定を変更した場合に、その内容を同じセッションに参加している他の電子音楽装置に通知すると共に、上記演奏データ通信管理装置にも通知する手段を設け、上記演奏データ通信管理装置において、上記記憶手段に、上記電子音楽装置の識別情報とその電子音楽装置が使用している音源設定の情報とを関連付けて記憶させ、上記電子音楽装置から上記音源設定の変更内容を受信した場合に、その内容に基づいて上記記憶手段に記憶している音源設定の情報を変更するようにすればよい。
また、この発明の演奏データ通信管理装置は、複数の電子音楽装置間の演奏データの送受信を管理する演奏データ通信管理装置において、上記演奏データの送受信に係るセッションの情報として、そのセッションに参加している電子音楽装置の識別情報を記憶する記憶手段と、上記電子音楽装置から、通信相手を指定してセッションへの参加を要求された場合に、その通信相手が上記記憶手段に情報を記憶しているいずれかのセッションに参加していれば、そのセッションを参加先セッションとし、いずれのセッションにも参加していなければ、新たにセッションを作成すると共にその作成したセッションを参加先セッションとして、要求元の装置の識別情報を、上記参加先セッションに参加している装置の識別情報として上記記憶手段に記憶させると共に、上記参加先セッションおいて他の電子音楽装置と重ならないようにチャンネルを割り当て、その割り当てたチャンネルの情報と、上記参加先セッションに参加している各電子音楽装置の識別情報及びその各装置が使用するチャンネルの情報とをセッション情報として上記要求元の装置に通知し、さらに、上記参加先セッションに参加している他の電子音楽装置に対して、上記要求元の装置の識別情報、その装置が使用するチャンネル、および上記要求元の装置から通知されたその要求元の装置の音源設定情報をセッション情報として通知するセッション情報通知手段とを設けたものである。
以上のようなこの発明の演奏データ通信管理システム又は演奏データ通信管理装置によれば、複数の装置間で演奏データを送受信させる場合に、データの送受信のためのセッション形成の自由度を高めると共に、各装置を簡単な操作でセッションに参加させられるようにすることができる。
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
〔第1の実施形態:図1乃至図18〕
まず、この発明の演奏データ通信管理システムの第1の実施形態について説明する。図1は、その演奏データ通信管理システムの概略構成を示すブロック図である。
この図に示す演奏データ通信管理システム1は、複数の端末装置10の間で演奏データであるMIDIデータを送受信させる場合において、管理サーバ100を設け、その管理サーバにより、MIDIデータの送受信に係るセッションを管理させるようにしたものである。また、各端末装置10が電子音楽装置に該当し、管理サーバ100が演奏データ通信管理装置に該当する。
ここで、セッションとは、複数の端末装置10が特定のグループ内の通信相手との間でMIDIデータを送受信(相互に交換)することをいう。そして、各端末装置10は、管理サーバ100に要求を行うことにより、そのグループのメンバーとなってセッションに参加し、同じグループ内の端末装置との間でMIDIデータを送受信可能な状態になることができるようにしている。また、管理サーバ100は、セッションを行うグループのメンバーの情報を管理するとともに、端末装置10からの要求に応じて、要求元の端末装置10をグループに登録し、グループのメンバーが変化した場合に、グループの各メンバーに必要な情報を通知することにより、各メンバーが正常にセッションを行うことができるようにしている。
なお、管理サーバ100は、複数のセッションを同時に管理することも可能であり、この場合には、複数のグループについてメンバーの情報を管理することになる。また、端末装置10側から見れば、同じ管理サーバ100と通信する端末装置であっても、違うグループの端末装置とはMIDIデータの送受信を行わず、同じグループの端末装置との間でのみMIDIデータの送受信を行うことになる。
また、演奏データ通信管理システム1においては、MIDIデータの送受信は、基本的には、管理サーバ100を介さず、各端末装置10間でピアツーピア(P2P)により行うようにしている。
ここで、ピアツーピアとは、各端末間(個人間)で直接データの交換を行う通信ネットワーク(一般にはインターネット)の利用形態である。本願発明においては、ピアツーピアの通信を行うための通信プロトコルについて特段の制限はないが、MIDIデータの伝送を行う場合には、データの等時性を維持するためのタイムスタンプや同期クロック等が規定された通信プロトコルであることが望ましい。また、端末装置間で交換されるデータの種別に応じて異なる通信プロトコルを利用するようにしてもよい。
次に、図2に、図1に示した端末装置10のハードウェア構成を示す。
この図に示すように、端末装置10は、CPU11,ROM12,RAM13,不揮発性メモリ14,ネットワークインタフェース(I/F)15,演奏入力デバイス16,音源部17を備え、これらがシステムバス18に接続されている。また、サウンドシステム19を、音源部17に接続して設けている。
そして、CPU11は、端末装置10を統括制御する制御部であり、ROM12に記憶された所要の制御プログラムを実行することにより、不揮発性メモリ14へのデータの読み書き、ネットワークI/F15を介した通信、演奏入力デバイス16による演奏入力操作の検知、音源部17によるMIDIデータに基づいた波形データの生成等を制御する制御動作を行う。
ROM12は、CPU11が実行する制御プログラムや、変更する必要のないデータ等を記憶する記憶手段である。このROM12をフラッシュメモリ等の書き換え可能な不揮発性記憶手段によって構成し、これらのデータを更新できるようにすることも考えられる。
RAM13は、CPU11のワークメモリとして使用したり、音源部17でのMIDIデータの処理(波形データの合成)に使用するパラメータの値を記憶する記憶領域を設けたり、その他一時的に使用するデータを記憶したりする記憶手段である。
また、不揮発性メモリ14は、不揮発RAMやHDD(ハードディスクドライブ)等による不揮発性の記憶手段であり、CPU11が実行する制御プログラムや、自動演奏用のMIDI楽曲データ等、比較的容量が大きく、電源を切断しても保持しておく必要があるデータを記憶させるようにしている。
ネットワークI/F15は、LAN(ローカルエリアネットワーク)やインターネット等のネットワークを介して管理サーバ100や他の端末装置10と通信を行うためのインタフェースであり、例えばイーサネット(登録商標)方式の通信を行うためのインタフェースとすることができる。ただし、端末装置10が使用する通信経路はこれに限られることはなく、ネットワークI/F15は、通信経路の規格や使用する通信プロトコル等に応じて適切なものを用意する。また、複数の規格に対応させて複数の通信I/F15を設けることも当然可能である。
演奏入力デバイス16は、鍵盤や弦、パッド、マウスピース等、演奏のための操作を受け付けるためのデバイスであり、ユーザがこの演奏入力デバイス16に対して行なった操作は、各種センサを備えた検出回路によって電気信号に変換されてCPU11に伝えられる。そして、CPU11は、その信号をもとに、ユーザの演奏操作に応じた発音を音源部17に指示するためのMIDIイベントを生成し、音源部17に送信する。また、他の端末装置と通信中である場合には、その端末装置にも同じMIDIイベントを送信する。
音源部17は、GM(ジェネラルMIDI)対応の音源であり、CPU11から送られてくるMIDIイベントに基づき、複数の発音チャンネルでデジタル音響信号である波形データを生成する音源手段である。このMIDIイベントには、発音の開始や停止を指示するデータの他、音色等の、発音内容に関する設定の変更を指示するデータも含まれる。また、MIDIイベントには、CPU11が生成したものも、他の端末装置10から受信したものも含まれる。そして、後述するように、CPU11が生成したMIDIイベントと、他の端末装置10から受信したMIDIイベントとを、チャンネルによって区別できるようにし、かつチャンネル毎に発音内容に関する設定を適切に行うことにより、音源部17に、全体として、複数の端末装置10による合奏のような波形データを生成させることができる。
サウンドシステム19は、スピーカ等の発音手段であり、音源部17から供給される波形データに従った発音を行う機能を有する。
以上のような構成を有する端末装置10としては、具体的には、キーボード、電子オルガン、電子ピアノを始めとし、その他打楽器、弦楽器、管楽器等も含む電子楽器とすることが考えられる。あるいは、MIDIシーケンサや、その機能を実現するためのアプリケーションを備えたPC(パーソナルコンピュータ)等、演奏操作子を備えない装置であってもよい。また、携帯電話やPDA(Personal Digital Assistance)のような携帯型の端末であっても、MIDIデータを取り扱う機能を有していれば、端末装置10として機能し得る。
そして、端末装置10は、MIDIデータを送信する機能と受信する機能のいずれか一方を有していれば、必ずしも送信と受信の双方が可能である必要はない。また、音源部17やサウンドシステム19についても、必須ではない。
また、管理サーバ100のハードウェアについては、CPU,ROM,RAM,HDD,ネットワークI/F等を備えた公知のコンピュータを用いることができる。そして、これらの各部の機能は、上述した端末装置10における対応する構成要素の場合と同様であるので、詳細な説明は省略する。また、管理サーバ100は、処理能力の高いCPUや大容量のHDDを備えていることが好ましいが、これに限られることはない。また、いずれかの端末装置10に、管理サーバ100の機能を兼ねさせることも考えられる。
次に、図3に、管理サーバ100がセッションの管理のために記憶しておく情報の例を示す。
この図に示すとおり、管理サーバ100は、HDDあるいはRAMのような記憶手段に、セッションの管理のための情報として、グループ管理テーブル及び端末装置管理テーブルを記憶している。
そして、前者は、管理サーバ100の管理下でセッションを行っているグループの情報を管理するためのテーブルであり、各グループのIDと共に、そのメンバー、すなわちセッションに参加している端末装置の情報を、その端末装置のIDにより登録している。ここで、グループIDは、管理サーバ100の内部でのみ使用する情報である。また、同時に1つのグループのメンバーになれる端末装置10の数に特に制限はないが、ジェネラルMIDIにおいては、使用できるチャンネル数が16であるので、これに合わせて16台に制限するようにするとよい。
一方、後者は、管理サーバ100の管理下でセッションを行っている端末装置10の情報を管理するためのテーブルであり、各端末装置10について、そのIDと対応させて、セッションへの参加を要求してきた際に指定した通信相手のID、その端末装置が使用する音源設定の情報、その端末装置に割り当てたチャンネルの番号、およびその端末装置が属するグループのIDを登録している。
なお、管理サーバ100の管理下で全くセッションが行われていない場合には、どちらのテーブルにも情報は登録されない。
また、図3に示した各テーブルにおいて、装置のIDとしては、機番や登録番号等、装置自体を識別するための情報を用いてもよいが、IPアドレス等、該当する装置と通信する際に使用する宛先情報を使用するようにすることが好ましい。この点については後に詳述する。
また、音源設定の情報としては、例えばMIDIプログラムチェンジイベントにより設定する音色の情報を、プログラム番号により登録することが考えられるが、これに限られることはない。複数項目の情報を登録してもよい。
次に、図4及び図5に、上述した管理サーバ100のCPUが実行する受信データに関する処理のフローチャートを、セッションの管理のために行う処理の部分を中心に示す。なお、以下に説明する処理は、特に断らない限り全て、いずれかの装置のCPUが所要の制御プログラムを実行することにより行うものである。
管理サーバ100のCPUは、端末装置10等の外部装置から受信したデータを、一旦受信バッファに貯めておき、定期的なタイミングで図4及び図5のフローチャートに示す処理を行うことにより、それらのデータに応じた処理を行う。
そして、この処理においては、まず受信バッファを確認する(S11)。そして、参加通知があれば(S12)、ステップS13乃至S20の、参加通知に関する処理を行う。
ここで、図6に参加通知のデータ構成を示す。
参加通知は、端末装置10が管理サーバ100に対してセッションへの参加を要求する場合に送信してくる通知であり、図6に示す通り、参加通知であることを示す情報と、その通知の送信元の装置(通知元装置)のID(自機ID)と、通信を希望する通信相手のIDと、通知元装置における音源設定情報とを含むものである。
なお、端末装置10から管理サーバ100への情報の転送をパケット転送で行う場合、参加通知であることを示す情報は、パケット内に記載してもよいが、パケットのIDを利用することが考えられる。また、自機IDとしては、パケットに付されるパケット送信元装置のIDの情報を利用することができる。IDとしてIPアドレスを利用するのであれば、パケット送信元装置のIPアドレスを利用することができる。
また、音源設定情報は、通知元装置がセッションにおいて送信するMIDIイベントに係る発音を音源部17に行わせる際に必要な範囲の設定内容(ここでは1チャンネル分の設定内容)の情報であり、通知元装置の音源に設定する全ての設定内容を含める必要はない。
図4の説明に戻ると、上記の参加通知に関する処理においてはまず、通知元装置が端末装置管理テーブルに登録済であれば、そのまま処理を抜けてステップS12に戻る(S13)。この場合、通知元装置は既にいずれかのセッションに参加していると考えられるので、同じ装置を二重にセッションに参加させてしまうことを防止するためである。なお、この判断は、グループ管理テーブルに登録済か否かによって行うようにしてもよい。
そして、登録済でなければ、次に、「通信相手ID」の示す装置が端末装置管理テーブル(又はグループ管理テーブル)に登録済か否か判断し(S14)、登録されていなければ、現状ではその装置とセッションを行うことはできないため、新規にグループを作成して通知元装置をそのグループに登録し(S15)、通信相手がセッションへの参加を要求してくるのを待たせることになる。逆に言えば、新規にグループを作成することを希望する場合には、参加通知にダミーの通信相手IDを記載しておけばよいことになる。なお、新規グループのIDは、連番や乱数等、適当な方法で作成すればよい。一方、登録済であれば、通知元装置を通信相手の属するグループに登録する(S16)。これらの登録は、グループ情報テーブルへのIDの登録により行うことができる。
そして、いずれの場合も、登録したグループにおいて空いているチャンネル(CH)を通知元装置に割り当てる(S17)と共に、通知元装置の情報を端末装置管理テーブル(S18)に登録する。チャンネルやグループの情報は、ステップS15乃至S17で定めたものを登録する。また、チャンネルの割り当ては、任意の方法でよいが、例えば、端末装置管理テーブルを参照して同じグループの端末装置に割り当てられているチャンネルをリストアップし、それ以外のチャンネルの中からランダムで選択して行うようにすることが考えられる。いずれにせよ、同じグループ内の複数の端末装置に同じチャンネルを割り当てないような、一意な割り当てを行うことができるようにすればよい。
そしてその後、通知元装置に状態通知を送信し、同じグループの全端末装置の情報を通知する(S19)と共に、通知元装置と同じグループの(通知元装置以外の)全端末装置に状態通知を送信し、通知元装置の情報を通知する(S20)。
そして、以上の後、ステップS12に戻って処理を繰り返し、受信バッファに他にもデータがあればそのデータに関する処理を行う。
なお、以上のステップS13乃至S20の処理において、管理サーバ100のCPUがセッション情報通知手段として機能する。
ここで、図7に状態通知のデータ構成を示す。
この図に示す通り、状態通知は、管理サーバ100が端末装置10に対してセッションに参加している端末装置10の情報を伝えるために送信する通知であり、状態通知であることを示す情報と、その状態通知がどの装置の状態を通知するものであるかを示す情報(装置ID)と、その装置に割り当てられているチャンネルの番号と、その装置における音源設定情報とを含む。
そして、この状態通知は、端末装置管理テーブルに登録されている情報に基づいて作成することができる。また、複数の装置に関する情報を通知する状態通知を送信することになる場合(主としてステップS19)には、各装置ごとに状態通知を送信してもよいし、1つの状態通知に複数装置分の情報を含めるようにしてもよい。端末装置10側では、この状態通知に含まれている情報に基づいて音源の設定を行う。
また、状態通知であることをパケットのIDにより示してよいこと、音源の設定の内容として全設定内容を含んでいなくてよいことは、上述の参加通知の場合と同様である。
再度図4の説明に戻ると、ステップS12で参加通知がなかった場合には、ステップS21に進み、ここで設定変更通知があれば、ステップS22及びS23の、設定変更通知に関する処理を行う。
設定変更通知は、端末装置10が、自身の音源設定(のうち参加通知により管理サーバ100に通知した部分)を変更した場合に、その内容を管理サーバ100に通知するものである。そして、管理サーバ100は、この通知を受けると、通知内容に基づいて端末装置管理テーブルの情報を更新する(S22)と共に、通知元機器と同じグループの全端末装置に設定変更通知を送信し、音源設定の変更内容を通知する(S23)。
そして、その後、ステップS12に戻って処理を繰り返し、受信バッファに他にもデータがあればそのデータに関する処理を行う。
ここで、図8に設定変更通知のデータ構成を示す。
この図に示す通り、設定変更通知は、設定の変更内容を示すMIDIイベントであり、ここではMIDIプログラムチェンジイベントとしている。そして、端末装置10から管理サーバ100に送信する際には、通知送信元の装置のID(自機ID)を付するようにしている。自機IDとして、パケットに付されるパケット送信元装置のIDの情報を利用することができることは、上述の参加通知の場合と同様である。
また、MIDIプログラムチェンジイベントには、そのMIDIデータがMIDIプログラムチェンジイベントであることを示すステータスバイトと、設定を変更するチャンネルを示すチャンネル番号と、そのチャンネルに新たに適用すべき設定の内容を示すプログラム番号の情報を含む。
MIDIプログラムチェンジイベントは、MIDIイベントの一種であり、同じセッションに参加している端末装置間では管理サーバ100を介さずに送受信されるものであるので、管理サーバ100が関与しなくても、各端末装置は、他の端末装置から受信したMIDIプログラムチェンジイベントに従って音源部に適切な内容に設定を行うことができる。
しかし、ここで示したように、MIDIプログラムチェンジイベントの内容を管理サーバ100にも送信させ、また管理サーバ100から通知送信元の装置と同じグループの端末装置にその内容を通知させることにより、データの冗長性を増し、端末装置間の転送あるいは管理サーバ100から端末装置への転送のどちらかに不具合が生じた場合であっても、他方の経路で転送したデータを利用して音源部に適切な内容に設定を行うことができる。また、管理サーバ100側で端末装置における音源の設定内容を把握し、ステップS19で送信する状態通知により、新たにセッションに参加した端末装置に対し、グループ内の他の装置における音源部17の設定の状態を通知し、適切な設定を行わせることができる。
なお、音源の設定に関する情報であれば、MIDIプログラムチェンジイベントだけでなく、他のイベント、例えばMIDIコントロールチェンジイベントも上記のような設定変更通知として送受信するようにしてよいことは、もちろんである。
再度図4の説明に戻ると、ステップS21で設定変更通知がなかった場合には、図5のステップS31に進み、ここで離脱通知があれば、ステップS32乃至S35の、離脱通知に関する処理を行う。
離脱通知は、端末装置10が、セッションから離脱する旨を管理サーバ100に伝える通知である。そして、管理サーバ100は、この通知を受けると、端末装置管理テーブル及びグループ管理テーブルから通知元装置の情報を削除する(S32,S33)。このことにより、通知元装置に対するチャンネルの割り当ても解消され、そのチャンネルは別の装置に割り当てることができる状態になる。そして、その削除の結果グループにメンバーがいなくなった場合には、グループ管理テーブルからそのグループ自体も削除する(S34,S35)。
そしてその後、図4のステップS12に戻って処理を繰り返し、受信バッファに他にもデータがあればそのデータに関する処理を行う。
ここで、図9に離脱通知のデータ構成を示す。
この図に示す通り、離脱通知は、離脱通知であることを示す情報と、その通知元装置のIDとを含むが、特にこれ以上の情報を含める必要はない。また、これらの情報として、パケットのIDやパケット送信元装置のIDを利用できることは、上述の参加通知の場合と同様である。
なお、離脱通知を行った端末装置10は、その後他の端末装置との間のMIDIデータの送受信をやめれば、セッションから離脱することができる。また、MIDIデータの送受信に関して、ある時点から離脱した端末装置が応答を返さなくなることにより通信エラーが起こるようになれば、その端末装置がセッションから離脱したと認識することができる。また、離脱した端末装置に割り当てられていたチャンネルのMIDIデータはもはや送られてこないので、そのチャンネルの設定内容は、特に変更しなくても問題ない。
従って、管理サーバ100側から、離脱通知の送信元の装置と同じグループの装置に対して、離脱に関する通知を行う必要は特にない。また、端末装置10から管理サーバ100に対して離脱通知を行うのは、グループ管理テーブルや端末装置管理テーブルの内容を、実際のセッションの内容に合ったものに保てるようにするためである。
図5の説明に戻ると、ステップS31で設定変更通知がなかった場合には、ステップS36に進み、ここで他のデータがあれば、その内容に応じた処理を行い(S37)、図4のステップS12に戻る。しかし、他のデータがなければ、もはや受信バッファ内の全てのデータに関する処理が終了しているため、フローチャートに係る処理を終了する。
管理サーバ100は、以上のような処理を行うことにより、グループ管理テーブル及び端末装置管理テーブルにより、各端末装置が行っているセッションの状況や、各端末装置における音源の設定内容を把握し、また必要な場合に端末装置にこれらの情報を通知することができる。
次に、図10に、端末装置10が実行する受信データに関する処理のフローチャートを、セッションの実行のために行う処理の部分を中心に示す。
端末装置10も、管理サーバ100や他の端末装置等の外部装置から受信したデータは、一旦受信バッファに貯めておき、定期的なタイミングで図10のフローチャートに示す処理を行うことにより、それらのデータに応じた処理を行う。
そして、この処理においては、まず受信バッファを確認する(S41)。そして、装置IDとして自身のIDを含む状態通知があれば(S42)、その通知は、管理サーバ100が、端末装置10に割り当てたチャンネルを通知してきたものであるとわかる。そこで、演奏入力デバイス16に、その状態通知で通知されたチャンネルを割り当てる(S43)。すなわち、CPU11が演奏入力デバイス16の操作に応じて生成するMIDIイベントに付すチャンネル番号を、管理サーバ100によって割り当てられたチャンネルの番号に設定する。そしてさらに、音源部17において、その通知されたチャンネルに、自機で使用する設定を行う(S44)。この設定は、参加通知の送信時に管理サーバ100に通知してある内容である。そして、例えば音色の設定を行えば、演奏入力デバイス16の操作に応じて音源部17に所望の音色で発音を行わせることができる。
ステップS44の後は、ステップS42に戻って処理を繰り返し、受信バッファに他にもデータがあればそのデータに関する処理を行う。
一方、ステップS42で自身のIDを含む状態通知がなければ、ステップS45に進む。そして、ここで装置IDとして他機のIDを含む状態通知があれば、その通知は、管理サーバ100が、同じセッションに参加している(又は新たに参加した)他の端末装置に割り当てたチャンネル及びそのチャンネルに係る音源設定内容を通知してきたものであるとわかる。そこで、その他機がまだ送信先リストに登録されていなければ、登録を行う(S46,S47)。また、どちらの場合も、通知内容に従って、音源部17において通知されたチャンネルに通知された内容の設定を行い(S48)、その後ステップS42に戻って処理を繰り返す。
なお、上記の送信先リストは、同じセッションに参加し、MIDIデータを送信する相手となる端末装置を登録するリストであり、データの送信時に使用するIPアドレス等の宛先情報を登録するようにする。そして、機器のIDとして宛先情報を使用している場合には、その宛先情報をそのまま登録すればよいが、そうでない場合には、何らかの手段で宛先情報を取得するようにする。例えば、管理サーバ100にIDと宛先情報の対応関係を記憶させておき、各端末装置10は、送信先リストへの登録を行う際に、管理装置100へ問い合わせを行う等である。しかし、このようにすると、処理が複雑になるし、多少なりとも余分な時間を要するので、この点で、各端末装置のIDとして、IPアドレス等の宛先情報を用いることが好ましいと言える。また、送信先リストに登録する情報は、必ずしも宛先そのものを示す情報でなくてもよく、どんな情報であれ、それをキーにしてデータの送信に必要な宛先を取得できるような情報であれば、宛先情報と呼ぶことにする。
また、管理サーバ100からは、同じセッションに参加している各端末装置に同じ状態通知が送信されているはずであるから、各端末装置がその状態通知に従って音源部17の設定を行うことにより、音源部17の設定内容を揃えることができる。従って、セッションに参加している全ての端末装置が、同じ端末装置からのMIDIイベントに対して同じ音を発音できる状態にすることができる。もしこのような統一が取れていないと、例えば各チャンネルについて装置ごとに設定されている音色が違うと、同じMIDIイベントに対して送信先ごとに違った音が発音されてしまうことになり、セッションを利用して合奏を行うような用途には極めて不都合である。しかし、このシステムにおいては、このような不具合を避けることができる。
一方、ステップS45で他機のIDを含む状態通知がなければ、ステップS49に進む。そして、設定変更通知があれば、その内容に従って音源部17に設定を行う(S50)。管理サーバ100側の説明で述べたように、この通知は、同じセッションに参加している端末装置からMIDIイベントとして受け取るものと同じであるから、ここで改めて設定変更を行うことは必須ではないが、設定変更を確実に行うことができるようにするため、あえて処理を二重にしたものである。
また、ステップS49で設定変更通知がなければ、ステップS51に進む。そして、MIDIデータがあれば、そのデータをアンパケットして音源部17に供給する(S52)。このMIDIデータには、発音の開始や停止を指示するものもあれば、音源部17の設定変更を指示するものもある。
また、ステップS51でMIDIデータがなければ、ステップS53に進む。そして、特定の送信先へのMIDIデータの送信に関して所定回数の送信エラーがあれば、エラーとなった送信先を送信先リストから削除する(S54)。セッションから離脱した端末装置があった場合、その端末装置に対するMIDIデータの送信はエラーになると考えられるので、このような場合にその装置との通信を止めるためである。所定回数としたのは、偶然生じるエラーの発生をセッションからの離脱と認識してしまわないようにするためである。
図10の説明に戻ると、ステップS53で送信エラーがなかった場合には、ステップS55に進み、ここで他のデータがあれば、その内容に応じた処理を行う(S55,S56)。しかし、他のデータがなければ、もはや受信バッファ内の全てのデータに関する処理が終了しているため、フローチャートに係る処理を終了する。
また、ステップS50,S52,S54,S56の後は、それぞれステップS42に戻って処理を繰り返す。
次に、図11に、端末装置10が実行するデータ送信に関する処理のフローチャートを、セッションの実行のために行う処理の部分を中心に示す。
端末装置10は、演奏入力デバイス16の操作に応じて生成したMIDIデータ、あるいは管理サーバ100に送信する通知等を、一旦送信バッファに貯めておき、定期的なタイミングで図11のフローチャートに示す処理を行うことにより、それらのデータの送信を行う。
なお、管理サーバ100に送信する通知には、参加通知、設定変更通知、離脱通知等がある。このうち、参加通知は、図示しない操作子等の操作により、通信相手のIDが特定され、セッション開始が指示された時点で、端末装置10自身で生成するMIDIデータに基づく発音に使用する予定の設定内容(音色番号等)を取得して、これらの情報に基づいて生成するようにしている。
また、設定変更通知は、音源部17における、自身に割り当てられているチャンネルの設定内容を監視し、その内容が変更された場合にその旨の通知を生成するようにしたり、送信バッファに書き込まれるMIDIデータの内容を監視し、プログラムチェンジ等、音源部17の設定内容の変更に係るものがあった場合に、そのMIDIデータを管理サーバ100宛てのパケットデータとして複製するようにすることも考えられる。CPU11が設定内容の変更に係るMIDIデータを生成した場合に、同時に管理サーバ100宛てのパケットデータの生成も行うようにしてもよい。
また、離脱通知は、図示しない操作子等の操作により、セッションの終了が指示された場合に生成するようにしている。
そして、図11に示す処理においては、まず送信バッファを確認する(S61)。そして、MIDIデータがあれば、そのMIDIデータを、送信先リストに登録された装置、すなわち同じセッションに参加している全ての端末装置に、ピアツーピアで直接送信する(S62,S63)。また、MIDIデータがない場合、管理サーバ100に送信する通知があれば、その通知を管理サーバ100に送信する(S64,S65)。そして、どちらの場合も、ステップS62に戻って処理を繰り返し、送信バッファに他にもデータがあればそのデータに関する処理を行う。また、ステップS64で通知がなければ、もはや送信バッファ内の全てのデータに関する処理が終了しているため、フローチャートに係る処理を終了する。
端末装置10は、以上の図10及び図11に示したような処理を行うことにより、管理サーバ100にセッションへの参加を要求したり、管理サーバ100から取得したデータに基づき、自身が使用するチャンネルと、通信相手となる装置の宛先情報と、その通信相手が使用するチャンネルの情報を設定し、それらの設定に基づいてMIDIデータの送受信を行ったりすることができる。
次に、図12乃至図18を用いて、管理サーバ100及び端末装置10が上述した処理により行う動作シーケンスの例について説明する。なお、これらの各図において、複数の端末装置を個別に区別するため、それぞれ異なる端末装置についてA,B,Cの符号を付して説明する。
まず、図12に、管理サーバ100に全く端末装置が登録されていない状態で最初の端末装置(端末装置A)が参加通知を行う場合の処理シーケンス例を示す。
この場合、端末装置A(IDは「ID#1」とする)は、自機IDとしてID#1を、通信相手IDとしてID#2(端末装置BのID)を、音源設定情報としてProg#1を含む参加通知を管理サーバ100に送信する(S101)。
そして、これを受けた管理サーバ100は、図4のステップS13以下の処理により、通信相手として指定されたID#2の装置が登録されていないため、グループ(IDは「GRP#1」とする)を新規に作成し(S102)、作成したグループのメンバーとしてグループ管理テーブルに端末装置Aを登録し(S103)、端末装置Aにチャンネルを割り当てる(S104)と共に、端末装置管理テーブルに端末装置Aの情報を登録し(S105)、端末装置Aに状態通知を送信して割り当てたチャンネルを通知する(S106)。なお、端末装置Aを登録したグループには他に端末装置が登録されていないため、他の装置への状態通知は行わない。
そして、端末装置Aは、ステップS106の通知に応じて、図10のステップS43以下の処理により、演奏入力デバイス16にCH#1を割り当て、音源部17においてCH#1のチャンネルにProg#1の内容の設定を行う(S107)。
図13に、この処理の終了時のグループ管理テーブル及び端末装置管理テーブルの状態を示す。
この図に示すとおり、グループ管理テーブルにはグループGRP#1が新規作成されると共に端末装置AのIDであるID#1が追加され、端末装置管理テーブルにも、端末装置Aの情報が登録される。チャンネル番号は、管理サーバ100が動的に割り当てたものである。なお、通信相手の情報は、テーブルに登録された後は特に意味を持たない。
次に、図14に、図12の処理の後、次の端末装置(端末装置B)が、端末装置Aとのセッションを希望する参加通知を行う場合の処理シーケンス例を示す。
この場合、端末装置B(IDは「ID#2」とする)は、自機IDとしてID#2を、通信相手IDとしてID#1を、音源設定情報としてProg#2を含む参加通知を管理サーバ100に送信する(S111)。
そして、これを受けた管理サーバ100は、やはり図4のステップS13以下の処理を行い、通信相手として指定されたID#1の装置がグループGRP#1に登録されているので、そのグループのメンバーとしてグループ管理テーブルに端末装置Bを登録し(S112)、端末装置Bに端末装置Aと重ならないようにチャンネルを割り当てる(S113)と共に、端末装置管理テーブルに端末装置Bの情報を登録し(S114)、端末装置Bに状態通知を送信して、割り当てたチャンネルと、同じグループの端末装置Aの情報を通知する(S115)。
そして、端末装置Bは、この通知に応じて、図10のステップS43以下の処理及びS46以下の処理により、演奏入力デバイス16にCH#2を割り当て、音源部17においてCH#1,CH#2のチャンネルにそれぞれProg#1とProg#2の内容の設定を行い、端末装置Aの宛先情報を送信先リストに登録する(S116)。
また、管理サーバ100は、端末装置Aにも状態通知を送信し、新たに同じグループに登録された端末装置Bの情報を通知する(S117)。そして、端末装置Aは、図10のステップS46以下の処理により、この通知に応じて音源部17においてCH#2のチャンネルにそれぞれProg#2の内容の設定を行い、端末装置Bの宛先情報を送信先リストに登録する(S118)。
そして、以上により、端末装置Aと端末装置Bは互いにピアツーピアでMIDIデータを送受信できる状態になり、通信を開始する(S119)。
図15に、この処理の終了時のグループ管理テーブル及び端末装置管理テーブルの状態を示す。
この図に示すとおり、グループ管理テーブルにはグループGRP#1のメンバーとして端末装置BのIDであるID#2が追加され、端末装置管理テーブルにも、端末装置Bの情報が登録される。また、端末装置Bが通信相手として指定したID#1の装置がグループGRP#1のメンバーであることは、端末装置管理テーブルを参照すればわかるし、直接グループ管理テーブルを参照してもわかる。
次に、図16に、図14の処理の後、次の端末装置(端末装置C)が、端末装置Aとのセッションを希望する参加通知を行う場合の処理シーケンス例を示す。
この場合、端末装置C(IDは「ID#3」とする)は、自機IDとしてID#3を、通信相手IDとしてID#1を、音源設定情報としてProg#3を含む参加通知を管理サーバ100に送信する(S121)。なお、通信相手IDをID#2とした場合でも以下の動作は同様となる。
そして、これを受けた管理サーバ100は、やはり図4のステップS13以下の処理を行い、通信相手として指定されたID#1の装置がグループGRP#1に登録されているので、そのグループのメンバーとしてグループ管理テーブルに端末装置Cを登録し(S122)、端末装置Cに端末装置Aや端末装置Bと重ならないようにチャンネルを割り当てる(S123)と共に、端末装置管理テーブルに端末装置Cの情報を登録し(S124)、端末装置Cに状態通知を送信して、割り当てたチャンネルと、同じグループの端末装置Aや端末装置Bの情報を通知する(S125)。
そして、端末装置Cは、この通知に応じて、図10のステップS43以下の処理及びS46以下の処理により、演奏入力デバイス16にCH#3を割り当て、音源部17においてCH#1,CH#2,CH#3のチャンネルにそれぞれProg#1,Prog#2,Prog#3の内容の設定を行い、端末装置Aと端末装置Bの宛先情報を送信先リストに登録する(S126)。
また、管理サーバ100は、端末装置A及び端末装置Bにも状態通知を送信し、新たに同じグループに登録された端末装置Cの情報を通知する(S127,S128)。そして、端末装置A及び端末装置Bはそれぞれ、この通知に応じて図10のステップS46以下の処理を行うことにより、音源部17においてCH#3のチャンネルにそれぞれProg#3の内容の設定を行い、端末装置Cの宛先情報を送信先リストに登録する(S129,S130)。
そして、以上により、端末装置Cは端末装置A及び端末装置Bと互いにピアツーピアでMIDIデータを送受信できる状態になり、通信を開始する(S131)。また、端末装置Aと端末装置Bは、それまで通り通信を継続する(S132)。従って、上記の処理により、端末装置A,B,Cは互いにピアツーピアの通信が可能な状態になる。
また、端末装置Cから見れば、1台の通信相手を指定するのみで、その通信相手と通信中の相手とも、同時に通信が可能な状態にすることができる。
次に、図17に、図16の処理の後、端末装置Aにおいて音源部17の設定変更操作がなされた場合の処理シーケンス例を示す。
この場合、端末装置Aは、設定変更操作を検出すると、対応するMIDIイベント(ここではチャンネルCH#1の設定をProg#4に変更するMIDIプログラムチェンジイベントとする)を生成して音源部17に供給し、音源部17の設定を変更する(S141)。また、送信先リストに登録されている送信先に、同じMIDIイベントを送信する(S142)。そして、これを受け取った他の端末装置も、図10のステップS52の処理により、MIDIイベントに従って音源の設定を変更する(S143)。
一方、端末装置Aは、管理サーバ100にもチャンネルCH#1の設定をProg#4に変更することを示す設定変更通知を送信する(S144)。そして、管理サーバ100は、図4のステップS22以下の処理により、端末装置管理テーブルの端末装置Aの情報を通知の内容に従って変更する(S145)と共に、端末装置Aと同じグループの各端末装置に、設定変更通知を送信して設定の変更を通知する(S146)。そして、これを受信した各端末装置はそれぞれ、図10のステップS50の処理により、通知内容に従って音源部17の設定を変更する(S147)。上述の通り、ステップS147の処理は、通常はステップS141やS143の処理と重複するが、誤り防止のために行うものである。
以上の処理により、1台の端末装置での音源部17の設定変更を、他の端末装置にも反映させることができる。
次に、図18に、図17の処理の後、端末装置Aにおいてセッションの終了操作がなされた場合の処理シーケンス例を示す。
この場合、端末装置Aは、終了操作を検出すると、管理サーバ100に離脱通知を送信する(S151)と共に、他の端末装置との間の通信を中止する(S152)。そして、管理サーバ100側では、離脱通知に応じて、図5のステップS32以下の処理により、通知元の端末装置Aの情報をグループ管理テーブルや端末装置管理テーブルから削除する(S153)。
また、それまで端末装置Aとセッションを行っていた端末装置Bや端末装置Cは、端末装置Aとの間の通信が失敗するようになるため(S154)、図10のステップS54の処理により送信先リストから端末装置Aを削除する(S155,S156)。ただし、端末装置Bと端末装置Cの間の通信は継続する(S157)。
以上の処理により、端末装置Aはセッションから離脱することができる。
以上説明してきたような演奏データ通信管理システム1によれば、各端末装置10は、セッションに参加する場合、データを送受信したい相手の端末装置のうちいずれか1つを指定して管理サーバ100に対して参加を要求するだけで、指定した端末装置が参加しているセッションに参加し、同じセッションに参加している全ての端末装置との間でデータを送受信できる状態となる。また、希望の通信相手がセッションを行っていない場合には、自動的に新しいセッショングループを作成することができる。従って、セッションへの参加に当たり、セッションルームの設定といった煩雑な操作は不要であり、セッション形成の自由度を高めると共に、各装置を簡単な操作でセッションに参加させられるようにすることができる。
また、音源設定の情報も管理サーバ100で管理するようにすれば、セッションに新たに参加した端末装置に、既にセッションに参加している端末装置における音源部の設定内容を通知し、逆に、既にセッションに参加している端末装置にも、セッションに新たに参加した端末装置おける音源部の設定内容を通知できる。従って、各装置がこの通知に基づいて音源部の設定を行うようにすれば、セッションへの参加時にユーザが特に設定操作を行わなくても、同じセッションに参加している装置間で音源部の設定内容を共通化し、MIDIイベントをどの装置に送信した場合でも、そのMIDIイベントに従って同じ音が発音されるようにすることができる。
また、端末装置間のMIDIデータの転送は、管理サーバ100を介さずにピアツーピアで行うようにしているから、情報伝送の遅延量を抑えることができる。
〔第2の実施形態:図19乃至図27〕
次に、この発明の演奏データ通信管理システムの第2の実施形態について説明する。図19は、その演奏データ通信管理システムの概略構成を示すブロック図である。
この図に示す演奏データ通信管理システム2は、複数の端末装置20をネットワーク30を介して通信可能とし、各端末装置20に、第1の実施形態で説明した端末装置10の機能と、管理サーバ100の機能を併せ持たせたものである。すなわち、各端末装置20が、電子音楽装置にも演奏データ通信管理装置にも該当する。ただし、1グループのセッションにつき1台の端末装置20をマスタノードとし、そのマスタノードでのみ、管理サーバ100としての機能を有効にし、他の端末装置20では管理サーバ100としての機能を無効にするようにしている。
なお、万一、1グループのセッションにおいて2台以上の端末装置20が同時にマスタとなるような事態が発生した場合には、適宜ネゴシエーションを行わせ、マスタとなった時刻のタイムスタンプが早い方を優先、あるいはランダム等により、いずれか1台のみをマスタノードとして機能させるようにする。2以上の端末装置20が同時にセッションへの参加を試みた場合には、このような事態が発生しうる。また、マスタは、ネットワーク30を介して通信可能な範囲内に1台のマスタノードしか存在できないようにしてもよい。
また、ネットワーク30としては、LANやインターネットを始め、種々の通信経路を利用可能である。ネットワークトポロジーも任意である。
このような端末装置20は、ハードウェア構成は第1の実施形態の端末装置10と同様であるので、その説明は省略する。また、対応する構成要素の符号としては、図2に示したものを用いる。
以下、図20乃至図24のフローチャートにより、端末装置20が実行する種々の処理について説明する。なお、第1の実施形態で説明した処理と共通する部分については、説明を簡単にするか省略する。
まず、図20に、セッション参加時の処理のフローチャートを示す。
端末装置20は、図示しない操作子により、セッションへの参加指示を受け付けると、図20のフローチャートに示す処理を開始する。そして、まずネットワーク30上の全ノード、あるいはセッションにより通信しようとする相手が存在すると想定されるアドレス範囲等に、マスタ検索通知をブロードキャストし、既にマスタノード(以下単に「マスタ」ともいう)となっている端末装置20があるか否かの検索を行なう(S201)。通信しようとする相手が個別に把握できるのであれば、個別にマスタ検索通知を送信してもよい。このステップS201の処理において、端末装置20のCPUが検索手段として機能する。
そして、マスタがあれば、その装置から応答が帰ってくるはずであるので、その有無に基づいてマスタの有無を判断し(S202)、あれば、そのマスタに対して参加通知を送信して(S203)処理を終了する。この参加通知は図6に示したものと同様な形式でよいが、ここでは少なくともマスタが通信相手であることは明らかであるから、通信相手IDを含める必要はない。
一方、マスタがなければ、自機をマスタとし(S204)、自身で使用するチャンネルを決定し(S205)、音源部17において、決定したチャンネルに自機で使用する設定を行う(S206)。そしてさらに、ノード情報テーブルを作成して必要な情報を登録し(S207)、処理を終了する。
次に、図21に、ノード情報テーブルの例を示す。
ノード情報テーブルは、各端末装置20が記憶するテーブルで、第1の実施形態における端末装置管理テーブルと対応するものである。そして、自身が参加しているセッションについて、そのセッションに参加している各端末装置の情報と、そのセッションにおけるマスタのIDとの情報を含むものである。
端末装置の情報としては、IDとチャンネル番号と音源設定情報を登録するようにしている。ここでは、1つのセッションに参加している端末装置の情報を扱うので、通信相手IDとグループ番号については不要であり、登録していない。
このノード情報テーブルは、最低限マスタのみが記憶していればよいが、ここでは、マスタがセッションから離脱する場合の処理の単純化を考慮し、セッションに参加している全端末装置20に記憶させるようにしている。
次に、図22に、マスタとなった端末装置20が実行する、受信データに関する処理のフローチャートを示す。
端末装置20は、他の端末装置20等の外部装置から受信したデータは、一旦受信バッファに貯めておき、自機がマスタとなっている場合、定期的なタイミングで図22のフローチャートに示す処理を行うことにより、それらのデータに応じた処理を行う。
そして、この処理においては、まず受信バッファを確認する(S211)。そして、参加通知があれば(S212)、ステップS213乃至S218の、参加通知に関する処理を行う。この処理は、参照するテーブルがノード情報テーブルである点と、グループに関する処理がない点、通知元装置に対する情報の通知の際に、ノード情報テーブルの内容を全て送信する点、自身でも図10のステップS47及びS48の場合のように送信先リストの更新や音源の設定を行う点(S218)が異なるが、それ以外の点は、図4のステップS13乃至S20の処理と同様なものである。
また、これらのステップS213乃至S218の処理において、端末装置20のCPUがセッション情報通知手段として機能する。また、マスタ以外の端末装置20は、後述のようにこの部分の処理は行わないので、マスタとして動作する状態になると、セッション情報通知手段の機能は有効になると言える。逆もまた成り立つ。
そして、ステップS218の後は、ステップS212に戻って処理を繰り返し、受信バッファに他にもデータがあればそのデータに関する処理を行う。
一方、ステップS212で参加通知がなかった場合には、ステップS219に進み、ここで離脱通知があれば、ステップS220及びS221の、離脱通知に関する処理を行う。この処理は、図5のステップS132以下の処理と対応する処理であるが、ここでは、各端末装置20がノード情報テーブルを記憶するようにしているので、他の端末装置にもテーブルの変更内容を通知するようにしている(S221)。
また、ステップS219で離脱通知がなかった場合には、ステップS222に進む。そして、マスタ検索通知があれば、応答として自機のIDを返送する(S223)。
また、ステップS222でマスタ検索通知がなかった場合には、ステップS224以降の処理に進み、MIDIデータ、通信エラーあるいはその他のデータがあった場合にそれらに応じた処理を行う(S224〜S229)が、この処理は、図10のステップS51乃至S56の場合と同様なものである。
また、ステップS221,S223,S225,S227,S229の後は、ステップS212に戻って処理を繰り返す。
次に、図23に、マスタ以外の端末装置20が実行する、受信データに関する処理のフローチャートを示す。
マスタ以外の端末装置20は、定期的なタイミングで、図22のフローチャートに代えて、図23のフローチャートに示す処理を行うことにより、受信バッファに貯めておいたデータに応じた処理を行う。
そして、この処理においては、まず受信バッファを確認する(S231)。そして、状態通知があれば(S232)、通知内容に従って自身で記憶しているノード情報テーブルを更新する(S233)と共に、演奏入力デバイス16へのチャンネルの割り当て、音源部の設定及び送信先リストの更新を行う(S234)。このステップS234の処理は、図10のステップS42乃至S48の処理と対応するものである。
一方、ステップS232で状態通知がなければ、ステップS235に進む。そして、ここで離脱通知があれば、ステップS236乃至S238の離脱通知に関する処理を行う。なお、マスタ以外の端末装置20は、セッションから離脱する場合にマスタに離脱通知を送信するので、マスタ以外の端末装置20が離脱通知を受信するのは、マスタからのみである。逆に、マスタは、セッションから離脱しようとする場合に、セッションに参加している端末装置20の中で、次にマスタにしたい端末装置20に、離脱通知を送信するようにしている。
そして、離脱通知に関する処理においては、まずノード情報テーブルに自機をマスタとして登録し(S236)、ノード情報テーブルから離脱した端末装置(前のマスタ)の情報を削除する(S237)。このことにより、以後この処理を実行中の端末装置20はマスタとして機能するようになり、離脱した装置に対するチャンネルの割り当ても解消される。そしてその後、ノード情報テーブルに登録されている他の全端末装置に状態通知を送信し、テーブルの変更内容を通知する(S238)。以上の処理により、マスタの変更を行うことができる。
また、ステップS235で離脱通知がなかった場合には、ステップS239以降の処理に進み、MIDIデータ、通信エラーあるいはその他のデータがあった場合にそれらに応じた処理を行う(S239〜S244)が、この処理は、図10のステップS51乃至S56の場合と同様なものである。
また、ステップS234,S238,S240,S242,S244の後は、ステップS232に戻って処理を繰り返す。
なお、端末装置20は、管理サーバ100の場合と異なり、セッションに参加している各端末装置における音源設定が変更された場合、MIDIイベントによりその通知を受ける。また、その内容を別途保管しておかなくても、自身の音源部17における設定内容を参照すれば、各端末装置に割り当てたチャンネルにどのような設定がなされているかを把握することができる。従って、第1の実施形態の場合のように設定変更通知を用いなくても、これらの情報に基づいて、ノード情報テーブルにおける音源設定情報の内容を、各端末装置の現状に合った状態に保つことができる(この処理の図示は省略した)。しかし、この実施形態でも、MIDIイベントの送受信とは別に、設定変更通知の送受信を行うようにしてもよい。これは、マスタについても、マスタ以外の端末装置20についても、同様である。
次に、図24に、端末装置20のCPUが実行するデータ送信に関する処理のフローチャートを示す。
この処理は、マスタも、マスタ以外の端末装置も共通に実行するものである。そして、この処理で送信する通知には、参加通知、離脱通知、マスタ検索通知等があり、送信先は一意ではないため、ステップS254,S255においては通知を送信すべき相手(例えばマスタ)を特定して通知の送信を行うが、その他の点では第1の実施形態で図11に示した処理とほぼ同様なものである。
マスタとなった端末装置20は、以上の図22及び図24に示したような処理を行うことにより、第1の実施形態における端末装置10と管理サーバ100の機能を兼ねたような動作を行うことができる。
また、マスタ以外の端末装置20は、以上の図23及び図24に示したような処理を行うことにより、第1の実施形態における端末装置10と同様な機能を実現しつつ、マスタから要求された場合に次のマスタとして機能するようになる動作を行うことができる。
次に、図25乃至図27を用いて、各端末装置20が上述した処理により行う動作シーケンスの例について説明する。なお、これらの各図において、複数の端末装置を個別に区別するため、それぞれの端末装置についてA,B,Cの符号を付して説明する。
まず、図25に、マスタとなった端末装置A(IDは「ID#1」とする)に対して2番目の端末装置(端末装置B)が参加通知を行う場合の処理シーケンス例を示す。
この場合、端末装置B(IDは「ID#2」とする)は、図20のステップS201の処理によりブロードキャストでマスタ検索を行い(S311)、これに対してマスタである端末装置Aは、図22のステップS223の処理により応答を返す(S312)。すると、端末装置Bはその応答を返してきた端末装置Aに対し、図20のステップS203の処理により、自機IDとしてID#2を、音源設定情報としてProg#2を含む参加通知を送信する(S313)。
そして、これを受けた端末装置Aは、図22のステップS214以下の処理により、端末装置Bに端末装置Aと重ならないようにチャンネルCH#2を割り当てる(S314)と共に、ノード情報テーブルに端末装置Bの情報を登録し(S315)、通知内容に従って音源部17のCH#2のチャンネルにProg#2の内容の設定を行い、端末装置Bの宛先情報を送信先リストに登録する(S316)。そしてその後、端末装置Bに状態通知を送信して、ノード情報テーブルの内容を通知する(S317)。
そして、端末装置Bは、この通知に応じて、図23のステップS233以下の処理により、ノード情報テーブルを更新(この場合は新規作成)し(S318)、演奏入力デバイス16にCH#2を割り当て、音源部17においてCH#1,CH#2のチャンネルにそれぞれProg#1とProg#2の内容の設定を行い、端末装置Aの宛先情報を送信先リストに登録する(S319)。
そして、以上により、端末装置Aと端末装置Bは互いにピアツーピアでMIDIデータを送受信できる状態になり、通信を開始する(S320)。
次に、図26に、図25の処理の後、次の端末装置(端末装置C)が、端末装置Aに対して参加通知を行う場合の処理シーケンス例を示す。
この場合、端末装置C(IDは「ID#3」とする)は、図25の場合と同様、端末装置Aとの間でマスタ検索と応答を交換し(S331,S332)、その後、自機IDとしてID#3を、音源設定情報としてProg#3を含む参加通知を端末装置Aに送信する(S333)。
そして、これを受けた端末装置Aは、やはり図22のステップS214以下の処理により、端末装置Cに端末装置Aや端末装置Bと重ならないようにチャンネルCH#3を割り当てる(S334)と共に、ノード情報テーブルに端末装置Cの情報を登録し(S335)、通知内容に従って音源部17のCH#3のチャンネルにProg#3の内容の設定を行い、端末装置Cの宛先情報を送信先リストに登録する(S336)。そしてその後、端末装置Cに状態通知を送信して、ノード情報テーブルの内容を通知する(S337)。また、同じセッションに参加している端末装置Bにも、ノード情報テーブルの変更内容を通知する(S338)。
そして、端末装置B及び端末装置Cは、それぞれ、状態通知に応じてノード情報テーブルを更新する(S339)と共に送信先や音源等の設定を行う(S340)。そして、以上により、端末装置Cは端末装置A及び端末装置Bと互いにピアツーピアでMIDIデータを送受信できる状態になり、通信を開始する(S341)。また、端末装置Aと端末装置Bは、それまで通り通信を継続する(S342)。従って、上記の処理により、端末装置A,B,Cは互いにピアツーピアの通信が可能な状態になる。
また、端末装置Cから見れば、マスタに参加通知を送信するのみで、そのマスタが管理するセッションに参加している全ての端末装置と、同時に通信が可能な状態にすることができる。
次に、図27に、図26の処理の後、端末装置Aにおいてセッションの終了操作がなされた場合の処理シーケンス例を示す。
この場合、端末装置Aは、終了操作を検出すると、セッションに参加しているいずれかの端末装置に、離脱通知を送信する(S351)と共に、他の端末装置との間の通信を中止する(S352)。どの装置に送信するかは、ランダムでも、ユーザの指示に従っても、適宜定めればよい。
ここでは端末装置Bに送信したとすると、端末装置Bは、図23のステップS236以下の処理により、ノード情報テーブルに自機をマスタとして登録し(S353)、ノード情報テーブルから端末装置Aの情報を削除する(S354)。そして、ノード情報テーブルに登録されている他のノードの状態通知を送信し、ノード情報テーブルの変更内容(ここでは変更後のテーブルそのもの)を通知する(S355)。
ここでは通知先は端末装置Cであり、この通知を受けた端末装置Cは、図23のステップS233以下の処理により、通知内容に従ってノード情報テーブルを更新する(S356)。
また、それまで端末装置Aとセッションを行っていた端末装置Bや端末装置Cは、端末装置Aの通信中止により、端末装置Aとの間の通信が失敗するようになるため(S357)、図23のステップS242の処理により端末装置Aを送信先リストから削除する(S358,S359)。ただし、端末装置Bと端末装置Cの間の通信は継続する(S360)。
なお、ステップS354やS356の直後に端末装置Aの送信先リストからの削除を行ってしまうことも考えられる。
以上の処理により、端末装置Aは、セッションから離脱した上で、マスタとしての動作を端末装置Bに引き継ぐことができる。この場合において、各端末装置にノード情報テーブルを記憶させてあるので、離脱する側は、単に離脱通知を行うのみでよい。従って、離脱時に負荷の大きい処理が発生しないようにすることができる。
以上で実施形態の説明を終了するが、装置の構成、具体的な処理内容やデータの形式等が上述の各実施形態で説明したものに限られないことはもちろんである。
例えば、取り扱う演奏データの形式が、MIDI形式でなくても構わないし、MIDIデータの転送を、ピアツーピア形式で行うシステムに限られることもない。端末装置10間のデータの転送を、管理サーバ100や、別の転送サーバを介して行うようにすることも考えられる。
また、第1の実施形態において、上述の音源部17の設定変更につき、各端末装置10が、セッションに参加中に音源部17の設定変更を行う場合、その内容を他の端末装置には送信せず、管理サーバ100のみに通知するようにし、他の端末装置は、管理サーバ100から送信されてくる設定変更通知に従って音源部17の設定を変更するようにすることも考えられる。
この場合、設定を変更しようとした端末装置10は、自機の音源部17については、自身で生成したMIDIイベントに従って設定を変更できるようにしてもよいが、自機の音源部17についても、管理サーバ100からの設定変更通知に従って変更するようにしてもよい。このようにすれば、セッションに参加している全端末装置の音源部17の設定を、一律の内容に保ちやすくなる。
また、管理サーバ100は、特に変更がなくても、セッション毎に、セッションに参加している全端末装置における設定内容を、そのセッションに参加している全端末装置に定期的に通知するようにしてもよい。このように定期的に通知を行うようにすれば、一部のデータが通信異常により欠落したような場合でも、その後の通知時にその欠落を補うことができる。
また、各端末装置が、セッションに参加する際に使用するIDを、インターネット上のポータルサイト等に登録・蓄積・公開できるようにしておき、そのポータルサイトのユーザリストを検索する等により、ユーザがセッションの相手を探すことができるようにすることも考えられる。この場合、検索で得られたIDを通信相手のIDとして指定して管理サーバ100にセッションへの参加を要求すればよい。
また、管理サーバ100の機能として、音源部の設定内容の管理及び通知を行うことは必須ではなく、最低限、セッションを行っているグループ毎に、端末装置のIDを管理し、端末装置にチャンネルを割り当て、上述したような状態通知により、ID及びチャンネルの通知を行うようにすればよい。
また、ここではセッションに参加する各端末装置に対してチャンネルを1チャンネルずつ割り当てる例について説明したが、これに限られることはなく、複数チャンネルを割り当てることができるようにしてもよい。
また、端末装置10と管理サーバ100の双方の機能を有する装置を設ける場合に、第2の実施形態のように、これらを組み合わせた機能を有する装置を用意するのではなく、単にこれらの双方の機能を別々に有する装置を用意するようにしてもよい。このようにした場合には、端末装置10が、自身が参加していないセッションの管理を行う場合もありうる。また、この場合、管理サーバ100の機能を有する端末装置10は、1台でよい。
また、第2の実施形態においては、各端末装置20に、送信先リストを設けず、ノード情報テーブルに登録されている端末装置が送信先であるとして取り扱って、MIDIデータの送信を行うようにしてもよい。
さらに、コンピュータを上述したような端末装置10,20や管理サーバ100として機能させるためのプログラムを、予めROMやHDD等に記憶させておくほか、CD−ROMあるいはフレキシブルディスク等の不揮発性記録媒体(メモリ)に記録して提供し、そのメモリからこのプログラムをRAMに読み出させてCPUに実行させたり、プログラムを記録した記録媒体を備える外部機器あるいはプログラムをHDD等の記憶手段に記憶した外部機器からダウンロードして実行させたりしても、同様の効果を得ることができる。
また、各実施形態や変形例の内容は、矛盾しない範囲で組み合わせて適用できることも、もちろんである。
以上の説明から明らかなように、この発明の演奏データ通信管理システム又は演奏データ通信管理装置によれば、複数の装置間で演奏データを送受信させる場合に、データの送受信のためのセッション形成の自由度を高めると共に、各装置を簡単な操作でセッションに参加させられるようにすることができる。
従って、操作性の高い通信環境を提供することができる。
この発明の演奏データ通信管理システムの第1の実施形態の構成を示すブロック図である。 図1に示した端末装置のハードウェア構成を示す図である。 図1に示した管理サーバがセッションの管理のために記憶しておく情報を示す図である。 図1に示した管理サーバが実行する受信データに関する処理の一部のフローチャートである。 図4の続きの処理のフローチャートである。
参加通知のデータ構成を示す図である。 状態通知のデータ構成を示す図である。 設定変更通知のデータ構成を示す図である。 離脱通知のデータ構成を示す図である。 図1に示した端末装置が実行する受信データに関する処理のフローチャートである。
同じくデータ送信に関する処理のフローチャートである。 管理サーバに全く端末装置が登録されていない状態で最初の端末装置Aが参加通知を行う場合の処理シーケンス例を示す図である。 図12に示した処理の終了時のグループ管理テーブル及び端末装置管理テーブルの状態を示す図である。 図12の処理の後、次の端末装置Bが、端末装置Aとのセッションを希望する参加通知を行う場合の処理シーケンス例を示す図である。 図14に示した処理の終了時のグループ管理テーブル及び端末装置管理テーブルの状態を示す図である。
図14の処理の後、次の端末装置Cが、端末装置Aとのセッションを希望する参加通知を行う場合の処理シーケンス例を示す図である。 図16の処理の後、端末装置Aにおいて音源部の設定変更操作がなされた場合の処理シーケンス例を示す図である。 図17の処理の後、端末装置Aにおいてセッションの終了操作がなされた場合の処理シーケンス例を示す図である。 この発明の演奏データ通信管理システムの第2の実施形態の概略構成を示すブロック図である。 図19に示した端末装置がセッション参加時に実行する処理のフローチャートである。
ノード情報テーブルの例を示す図である。 図19に示したシステムにおいて、マスタとなった端末装置が実行する、受信データに関する処理のフローチャートを示す。 同じくマスタ以外の端末装置が実行する、受信データに関する処理のフローチャートである。 同じく端末装置が実行するデータ送信に関する処理のフローチャートである。 マスタとなった端末装置Aに対して2番目の端末装置Bが参加通知を行う場合の処理シーケンス例を示す図である。 図25の処理の後、次の端末装置Cが、端末装置Aに対して参加通知を行う場合の処理シーケンス例を示す図である。 図26の処理の後、端末装置Aにおいてセッションの終了操作がなされた場合の処理シーケンス例を示す図である。
符号の説明
1,2…演奏データ通信管理システム、10,20…端末装置、11…CPU,12…ROM、13…RAM、14…不揮発性メモリ、15…ネットワークI/F、16…演奏入力デバイス、17…音源部、18…システムバス、19…サウンドシステム、30…ネットワーク、100…管理サーバ

Claims (3)

  1. 演奏データの送受信を行う複数の電子音楽装置と、該複数の電子音楽装置間の演奏データの送受信を管理する演奏データ通信管理装置とを備えた演奏データ通信管理システムであって、
    前記演奏データ通信管理装置に、
    前記演奏データの送受信に係るセッションの情報として、該セッションに参加している電子音楽装置の識別情報を記憶する記憶手段と、
    前記電子音楽装置から、通信相手を指定してセッションへの参加を要求された場合に、該通信相手が前記記憶手段に情報を記憶しているいずれかのセッションに参加していれば、そのセッションを参加先セッションとし、いずれのセッションにも参加していなければ、新たにセッションを作成すると共にその作成したセッションを参加先セッションとして、要求元の装置の識別情報を、前記参加先セッションに参加している装置の識別情報として前記記憶手段に記憶させると共に、前記参加先セッションおいて他の電子音楽装置と重ならないようにチャンネルを割り当て、その割り当てたチャンネルの情報と、前記参加先セッションに参加している各電子音楽装置の識別情報及びその各装置が使用するチャンネルの情報とをセッション情報として前記要求元の装置に通知し、さらに、前記参加先セッションに参加している他の電子音楽装置に対して、前記要求元の装置の識別情報、その装置が使用するチャンネル、および前記要求元の装置から通知された該要求元の装置の音源設定情報をセッション情報として通知するセッション情報通知手段とを設け、
    前記各電子音楽装置に、
    前記演奏データ通信管理装置に対して、通信相手を指定してセッションへの参加要求と、該電子音楽装置における音源設定情報の通知とをする手段と、
    前記演奏データ通信管理装置から前記セッション情報の通知を受け取る手段と、
    該手段が受け取ったセッション情報の内容に基づき、自身が使用するチャンネルと、通信相手となる装置の宛先情報と、該通信相手が使用するチャンネルの情報及び音源部の発音に係る設定内容を設定し、それらの設定に基づいて前記演奏データの送受信及び前記音源部における発音の制御を行う手段とを設けたことを特徴とする演奏データ通信管理システム。
  2. 請求項1記載の演奏データ通信管理システムであって、
    前記各電子音楽装置に、前記セッションに参加している場合には、自身の音源設定を変更した場合に、その内容を同じセッションに参加している他の電子音楽装置に通知すると共に、前記演奏データ通信管理装置にも通知する手段を設け、
    前記演奏データ通信管理装置において、前記記憶手段に、前記電子音楽装置の識別情報とその電子音楽装置が使用している音源設定の情報とを関連付けて記憶させ、前記電子音楽装置から前記音源設定の変更内容を受信した場合に、該内容に基づいて前記記憶手段に記憶している音源設定の情報を変更するようにしたことを特徴とする演奏データ通信管理システム。
  3. 複数の電子音楽装置間の演奏データの送受信を管理する演奏データ通信管理装置であって、
    前記演奏データの送受信に係るセッションの情報として、該セッションに参加している電子音楽装置の識別情報を記憶する記憶手段と、
    前記電子音楽装置から、通信相手を指定してセッションへの参加を要求された場合に、該通信相手が前記記憶手段に情報を記憶しているいずれかのセッションに参加していれば、そのセッションを参加先セッションとし、いずれのセッションにも参加していなければ、新たにセッションを作成すると共にその作成したセッションを参加先セッションとして、要求元の装置の識別情報を、前記参加先セッションに参加している装置の識別情報として前記記憶手段に記憶させると共に、前記参加先セッションおいて他の電子音楽装置と重ならないようにチャンネルを割り当て、その割り当てたチャンネルの情報と、前記参加先セッションに参加している各電子音楽装置の識別情報及びその各装置が使用するチャンネルの情報とをセッション情報として前記要求元の装置に通知し、さらに、前記参加先セッションに参加している他の電子音楽装置に対して、前記要求元の装置の識別情報、その装置が使用するチャンネル、および前記要求元の装置から通知された該要求元の装置の音源設定情報をセッション情報として通知するセッション情報通知手段とを設けたことを特徴とする演奏データ通信管理装置。
JP2005088427A 2005-03-25 2005-03-25 演奏データ通信管理システム及び演奏データ通信管理装置 Expired - Fee Related JP4432814B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2005088427A JP4432814B2 (ja) 2005-03-25 2005-03-25 演奏データ通信管理システム及び演奏データ通信管理装置
AT06111445T ATE395681T1 (de) 2005-03-25 2006-03-21 Kommunikationsmanagementsystem und vorrichtung für ausführungsdaten
EP06111445A EP1705640B1 (en) 2005-03-25 2006-03-21 Communication management system and device for performance data
DE602006001137T DE602006001137D1 (de) 2005-03-25 2006-03-21 Kommunikationsmanagementsystem und Vorrichtung für Ausführungsdaten
CN200610067385.9A CN1838231B (zh) 2005-03-25 2006-03-22 演奏数据通信管理系统以及演奏数据通信管理装置
US11/389,595 US7991897B2 (en) 2005-03-25 2006-03-24 Communication management system for performance data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005088427A JP4432814B2 (ja) 2005-03-25 2005-03-25 演奏データ通信管理システム及び演奏データ通信管理装置

Publications (2)

Publication Number Publication Date
JP2006267846A JP2006267846A (ja) 2006-10-05
JP4432814B2 true JP4432814B2 (ja) 2010-03-17

Family

ID=36758638

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005088427A Expired - Fee Related JP4432814B2 (ja) 2005-03-25 2005-03-25 演奏データ通信管理システム及び演奏データ通信管理装置

Country Status (6)

Country Link
US (1) US7991897B2 (ja)
EP (1) EP1705640B1 (ja)
JP (1) JP4432814B2 (ja)
CN (1) CN1838231B (ja)
AT (1) ATE395681T1 (ja)
DE (1) DE602006001137D1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100733987B1 (ko) * 2005-11-21 2007-06-29 한국전자통신연구원 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송방법
US7459624B2 (en) 2006-03-29 2008-12-02 Harmonix Music Systems, Inc. Game controller simulating a musical instrument
US20070245881A1 (en) * 2006-04-04 2007-10-25 Eran Egozy Method and apparatus for providing a simulated band experience including online interaction
US8678896B2 (en) 2007-06-14 2014-03-25 Harmonix Music Systems, Inc. Systems and methods for asynchronous band interaction in a rhythm action game
US20090088249A1 (en) 2007-06-14 2009-04-02 Robert Kay Systems and methods for altering a video game experience based on a controller type
US7730179B2 (en) * 2007-06-26 2010-06-01 Novell, Inc. System and method for policy-based registration of client devices
CN101355524B (zh) 2007-07-24 2013-10-09 华为技术有限公司 一种消息处理方法、系统、服务器和终端
CN101674320B (zh) * 2008-09-12 2013-06-05 阿里巴巴集团控股有限公司 一种集群环境下的服务寻址方法及装置
US8838532B2 (en) * 2008-12-24 2014-09-16 At&T Intellectual Property I, L.P. Collaborative self-service contact architecture with automatic blog content mapping capability
JP5470863B2 (ja) * 2009-01-15 2014-04-16 ソニー株式会社 サーバへの電子機器の登録
US8465366B2 (en) 2009-05-29 2013-06-18 Harmonix Music Systems, Inc. Biasing a musical performance input to a part
US8449360B2 (en) 2009-05-29 2013-05-28 Harmonix Music Systems, Inc. Displaying song lyrics and vocal cues
EP2494432B1 (en) 2009-10-27 2019-05-29 Harmonix Music Systems, Inc. Gesture-based user interface
US9981193B2 (en) 2009-10-27 2018-05-29 Harmonix Music Systems, Inc. Movement based recognition and evaluation
US8874243B2 (en) 2010-03-16 2014-10-28 Harmonix Music Systems, Inc. Simulating musical instruments
CA2802348A1 (en) 2010-06-11 2011-12-15 Harmonix Music Systems, Inc. Dance game and tutorial
US8562403B2 (en) 2010-06-11 2013-10-22 Harmonix Music Systems, Inc. Prompting a player of a dance game
US9024166B2 (en) 2010-09-09 2015-05-05 Harmonix Music Systems, Inc. Preventing subtractive track separation
US8962967B2 (en) * 2011-09-21 2015-02-24 Miselu Inc. Musical instrument with networking capability
WO2013054449A1 (ja) * 2011-10-14 2013-04-18 富士通株式会社 管理装置、管理プログラムおよび管理方法
JP5831320B2 (ja) * 2012-03-21 2015-12-09 株式会社リコー 伝送管理システム、伝送システム、及び伝送管理システム用プログラム
JP5720656B2 (ja) * 2012-11-02 2015-05-20 ヤマハ株式会社 音楽システム管理方法
JP6242707B2 (ja) * 2014-02-07 2017-12-06 富士通株式会社 管理プログラム、管理方法、及び管理システム
CN106531138A (zh) * 2016-12-13 2017-03-22 蒋晓东 一种演艺现场观众智能手机群辅助演出的娱乐系统

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3003498B2 (ja) * 1994-03-18 2000-01-31 ヤマハ株式会社 電子楽器ネットワークシステム
JP3493737B2 (ja) * 1994-08-12 2004-02-03 ヤマハ株式会社 送信ノードおよび受信ノード
DE69616734T2 (de) * 1995-07-05 2002-07-25 Koninkl Philips Electronics Nv Übertragungssystem zwischen einer dynamischen gruppe von vorrichtungen
JP3180708B2 (ja) 1997-03-13 2001-06-25 ヤマハ株式会社 音源設定情報通信装置
US6259701B1 (en) * 1997-09-11 2001-07-10 At&T Corp. Method and system for a unicast endpoint client to access a multicast internet protocol (IP) session
JP3171241B2 (ja) * 1998-03-06 2001-05-28 日本電気株式会社 通信方法
US6636887B1 (en) * 1998-06-02 2003-10-21 Mark A. Augeri Tele-jam system and method for real-time musical interaction
US7240093B1 (en) * 2000-02-29 2007-07-03 Microsoft Corporation Use of online messaging to facilitate selection of participants in game play
JP3584873B2 (ja) * 2000-10-31 2004-11-04 ヤマハ株式会社 通信制御装置及び通信システム
JP4120978B2 (ja) * 2001-02-27 2008-07-16 ヤマハ株式会社 電子楽器用バスシステム
JP4311897B2 (ja) * 2001-09-21 2009-08-12 ヤマハ株式会社 電子音楽装置システム
JP2003256552A (ja) * 2002-03-05 2003-09-12 Yamaha Corp 演奏者情報提供方法、サーバ、プログラムおよび記録媒体
JP4131678B2 (ja) 2003-03-31 2008-08-13 株式会社河合楽器製作所 演奏データ通信システム
US7285047B2 (en) * 2003-10-17 2007-10-23 Hewlett-Packard Development Company, L.P. Method and system for real-time rendering within a gaming environment
JP4305153B2 (ja) * 2003-12-04 2009-07-29 ヤマハ株式会社 音楽セッション支援方法、音楽セッション用楽器
US7677970B2 (en) * 2004-12-08 2010-03-16 Microsoft Corporation System and method for social matching of game players on-line

Also Published As

Publication number Publication date
CN1838231B (zh) 2010-12-08
CN1838231A (zh) 2006-09-27
EP1705640A1 (en) 2006-09-27
US20060218288A1 (en) 2006-09-28
JP2006267846A (ja) 2006-10-05
EP1705640B1 (en) 2008-05-14
ATE395681T1 (de) 2008-05-15
DE602006001137D1 (de) 2008-06-26
US7991897B2 (en) 2011-08-02

Similar Documents

Publication Publication Date Title
JP4432814B2 (ja) 演奏データ通信管理システム及び演奏データ通信管理装置
JP4211750B2 (ja) 電子音楽装置
JP4856084B2 (ja) 無線機器、ネットワーク機器、無線ゲーム機器、中継メッセージ送信方法
JP3584873B2 (ja) 通信制御装置及び通信システム
WO2008041421A1 (fr) Système et procédé de distribution de contenu, terminal dans le système et support d'enregistrement contenant son programme
EP1796010A2 (en) Receiving and transmitting distributed content
JP2011211543A (ja) 情報通信システム、情報処理装置、情報処理方法、及び情報処理プログラム
JP4604919B2 (ja) コンテンツ配信システム、コンテンツ配信方法、接続管理装置、配信装置、端末装置、及びそのプログラム
JP5402725B2 (ja) リモート制御システム
JP2008262290A (ja) 通信装置、ネットワークシステム、通信方法、及びプログラム
JP5212435B2 (ja) カラオケシステム、カラオケ装置、リモコン端末
JP2004129159A (ja) パケット変換方法、パケット通信システム、パケット変換装置、パケット変換プログラムおよび記録媒体
JP6295675B2 (ja) 音楽セッションシステム、方法及び端末装置
JP3846428B2 (ja) 音楽情報提供サーバ及び電子音楽装置
WO2011122452A1 (ja) 通信装置、通信システムおよび通信方法
JP2010085662A (ja) カラオケネットワークシステム及びカラオケ装置
JP2004301997A (ja) 演奏データ通信システム、装置、方法及びプログラム
JP4207972B2 (ja) 楽音発生システムにおける処理装置
JP4207970B2 (ja) 楽音発生システムにおける処理装置
JP4207971B2 (ja) 楽音発生システムにおける処理装置
JP2010081471A (ja) ネットワークシステム
JP2007006321A (ja) Vpnトンネル接続トポロジを決定する管理サーバ及びプログラム
JP4200997B2 (ja) 楽音発生システム
JP4867803B2 (ja) ネットワーク通信システム
Guide SDP-Implementation in Opnet® v.

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20081225

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: 20091201

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: 20091214

R150 Certificate of patent or registration of utility model

Ref document number: 4432814

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20140108

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees