JP4211750B2 - 電子音楽装置 - Google Patents

電子音楽装置 Download PDF

Info

Publication number
JP4211750B2
JP4211750B2 JP2005088450A JP2005088450A JP4211750B2 JP 4211750 B2 JP4211750 B2 JP 4211750B2 JP 2005088450 A JP2005088450 A JP 2005088450A JP 2005088450 A JP2005088450 A JP 2005088450A JP 4211750 B2 JP4211750 B2 JP 4211750B2
Authority
JP
Japan
Prior art keywords
terminal device
information
session
notification
electronic music
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
JP2005088450A
Other languages
English (en)
Other versions
JP2006267850A (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 JP2005088450A priority Critical patent/JP4211750B2/ja
Priority to EP06111446A priority patent/EP1705641B1/en
Priority to DE602006000407T priority patent/DE602006000407T2/de
Priority to AT06111446T priority patent/ATE383637T1/de
Priority to CN2006100717931A priority patent/CN1838233B/zh
Priority to US11/389,577 priority patent/US20060218239A1/en
Publication of JP2006267850A publication Critical patent/JP2006267850A/ja
Application granted granted Critical
Publication of JP4211750B2 publication Critical patent/JP4211750B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Electrophonic Musical Instruments (AREA)
  • Toys (AREA)
  • Fittings On The Vehicle Exterior For Carrying Loads, And Devices For Holding Or Mounting Articles (AREA)

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. 請求項1記載の電子音楽装置であって、
    マスタ装置として動作していない場合に、参加中のセッションを管理するマスタ装置である電子音楽装置から離脱通知を受信したことに応じて、該電子音楽装置の情報を前記記憶手段から削除すると共に、自身を、前記参加中のセッションを管理するマスタ装置として動作させ、さらに、前記記憶手段に記憶している識別情報に基づいて、自身がマスタ装置であることを示す情報及び前記記憶手段に記憶している情報の変更内容を、自身が管理するセッションに参加している各電子音楽装置に通知する手段を設けたことを特徴とする電子音楽装置。
JP2005088450A 2005-03-25 2005-03-25 電子音楽装置 Expired - Fee Related JP4211750B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2005088450A JP4211750B2 (ja) 2005-03-25 2005-03-25 電子音楽装置
EP06111446A EP1705641B1 (en) 2005-03-25 2006-03-21 Electronic musical apparatus
DE602006000407T DE602006000407T2 (de) 2005-03-25 2006-03-21 Elektronische Musikvorrichtung
AT06111446T ATE383637T1 (de) 2005-03-25 2006-03-21 Elektronische musikvorrichtung
CN2006100717931A CN1838233B (zh) 2005-03-25 2006-03-22 电子音乐装置
US11/389,577 US20060218239A1 (en) 2005-03-25 2006-03-24 Electronic musical apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005088450A JP4211750B2 (ja) 2005-03-25 2005-03-25 電子音楽装置

Publications (2)

Publication Number Publication Date
JP2006267850A JP2006267850A (ja) 2006-10-05
JP4211750B2 true JP4211750B2 (ja) 2009-01-21

Family

ID=36644908

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005088450A Expired - Fee Related JP4211750B2 (ja) 2005-03-25 2005-03-25 電子音楽装置

Country Status (6)

Country Link
US (1) US20060218239A1 (ja)
EP (1) EP1705641B1 (ja)
JP (1) JP4211750B2 (ja)
CN (1) CN1838233B (ja)
AT (1) ATE383637T1 (ja)
DE (1) DE602006000407T2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015537402A (ja) * 2012-09-21 2015-12-24 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 動的アドレス割り当てのための方法及び装置

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
JP5109127B2 (ja) * 2007-06-01 2012-12-26 株式会社メガチップス 合奏システム
US20090075711A1 (en) 2007-06-14 2009-03-19 Eric Brosius Systems and methods for providing a vocal experience for a player of a rhythm action game
US8678896B2 (en) 2007-06-14 2014-03-25 Harmonix Music Systems, Inc. Systems and methods for asynchronous band interaction in a rhythm action game
US8209728B2 (en) 2007-08-31 2012-06-26 At&T Intellectual Property I, L.P. System and method of delivering video content
US8449360B2 (en) 2009-05-29 2013-05-28 Harmonix Music Systems, Inc. Displaying song lyrics and vocal cues
US8465366B2 (en) 2009-05-29 2013-06-18 Harmonix Music Systems, Inc. Biasing a musical performance input to a part
US9981193B2 (en) 2009-10-27 2018-05-29 Harmonix Music Systems, Inc. Movement based recognition and evaluation
EP2494432B1 (en) 2009-10-27 2019-05-29 Harmonix Music Systems, Inc. Gesture-based user interface
US8550908B2 (en) 2010-03-16 2013-10-08 Harmonix Music Systems, Inc. Simulating musical instruments
JP2011242560A (ja) * 2010-05-18 2011-12-01 Yamaha Corp セッション端末及びネットワークセッションシステム
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
KR101747700B1 (ko) * 2011-01-11 2017-06-15 삼성전자주식회사 통신망을 이용한 원격 합주 방법 및 시스템
CN104427141B (zh) * 2013-08-28 2016-12-28 华为技术有限公司 一种子母话机实现、接听、呼叫和对讲方法及ip终端
JP7472092B2 (ja) * 2021-11-16 2024-04-22 キヤノン株式会社 プログラム、設定方法、及び情報処理装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3493737B2 (ja) * 1994-08-12 2004-02-03 ヤマハ株式会社 送信ノードおよび受信ノード
JP3277875B2 (ja) * 1998-01-29 2002-04-22 ヤマハ株式会社 演奏装置、サーバ装置、演奏方法および演奏制御方法
US6353174B1 (en) * 1999-12-10 2002-03-05 Harmonix Music Systems, Inc. Method and apparatus for facilitating group musical interaction over a network
JP3584873B2 (ja) * 2000-10-31 2004-11-04 ヤマハ株式会社 通信制御装置及び通信システム
JP2003256552A (ja) * 2002-03-05 2003-09-12 Yamaha Corp 演奏者情報提供方法、サーバ、プログラムおよび記録媒体
JP4131678B2 (ja) 2003-03-31 2008-08-13 株式会社河合楽器製作所 演奏データ通信システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015537402A (ja) * 2012-09-21 2015-12-24 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 動的アドレス割り当てのための方法及び装置

Also Published As

Publication number Publication date
CN1838233B (zh) 2010-12-08
EP1705641A1 (en) 2006-09-27
EP1705641B1 (en) 2008-01-09
JP2006267850A (ja) 2006-10-05
ATE383637T1 (de) 2008-01-15
DE602006000407T2 (de) 2009-01-08
CN1838233A (zh) 2006-09-27
DE602006000407D1 (de) 2008-02-21
US20060218239A1 (en) 2006-09-28

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
JP2007058597A (ja) 情報配信システム、情報配信方法、情報配信システムに含まれるノード装置および情報処理プログラム
JP5136585B2 (ja) 情報通信システム、ノード装置、情報処理方法、及び情報処理プログラム
JP2008262290A (ja) 通信装置、ネットワークシステム、通信方法、及びプログラム
JP2007121470A (ja) 音楽セッションシステム、音楽セッションシステム用サーバおよび該サーバを制御する制御方法を実現するためのプログラム
JP2011182329A (ja) リモート制御システム
JP5359728B2 (ja) カラオケシステム、カラオケ装置、ノード装置、カラオケプログラム、ノードプログラム、及びカラオケデータ送信方法
JP4131678B2 (ja) 演奏データ通信システム
JP5212435B2 (ja) カラオケシステム、カラオケ装置、リモコン端末
JP2004129159A (ja) パケット変換方法、パケット通信システム、パケット変換装置、パケット変換プログラムおよび記録媒体
JP5673268B2 (ja) 通信装置、およびプログラム
JP5370316B2 (ja) ノード装置、情報通信システム、情報通信方法及びプログラム
JP6295675B2 (ja) 音楽セッションシステム、方法及び端末装置
JP4207972B2 (ja) 楽音発生システムにおける処理装置
JP4207970B2 (ja) 楽音発生システムにおける処理装置
JP2010081471A (ja) ネットワークシステム
JP4207971B2 (ja) 楽音発生システムにおける処理装置
JP2011064975A (ja) カラオケシステム、カラオケ装置、カラオケプログラム、及びカラオケデータ送信方法
JP2007006321A (ja) Vpnトンネル接続トポロジを決定する管理サーバ及びプログラム
JP5347876B2 (ja) 情報通信システム、ノード装置、コンテンツ取得方法及びプログラム

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080508

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080603

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080804

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

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

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

Free format text: PAYMENT UNTIL: 20111107

Year of fee payment: 3

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121107

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20131107

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees