JP3518647B2 - 電子機器用ネットワークにおける通信方法 - Google Patents

電子機器用ネットワークにおける通信方法

Info

Publication number
JP3518647B2
JP3518647B2 JP08688296A JP8688296A JP3518647B2 JP 3518647 B2 JP3518647 B2 JP 3518647B2 JP 08688296 A JP08688296 A JP 08688296A JP 8688296 A JP8688296 A JP 8688296A JP 3518647 B2 JP3518647 B2 JP 3518647B2
Authority
JP
Japan
Prior art keywords
data
node
key
communication
information
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
JP08688296A
Other languages
English (en)
Other versions
JPH09281961A (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 JP08688296A priority Critical patent/JP3518647B2/ja
Publication of JPH09281961A publication Critical patent/JPH09281961A/ja
Application granted granted Critical
Publication of JP3518647B2 publication Critical patent/JP3518647B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)
  • Communication Control (AREA)

Description

【発明の詳細な説明】 【0001】 【発明の属する技術分野】本発明は、複数の電子機器を
相互に接続するネットワークにおける通信方法に関す
る。 【0002】 【従来の技術】電子楽器の分野においては、一般的に、
MIDI(musical instrument digital interface)規
格に基づいて複数の電子楽器またはそれらの付属装置を
接続し、ネットワークを構築している。MIDIは、主
要楽器メーカの協議の下に定められた統一規格である。
MIDIでは、データ形式、通信プロトコルおよびケー
ブル端子等が定められている。 【0003】しかし、MIDIは、単方向通信であるこ
と、および通信速度が現在の技術水準から言えば比較的
低速となってしまったこと等の欠点がある。そこで、新
しいネットワークシステムを用いた通信方法が、特開平
8−54875号公報で示されている。 【0004】当該公報は、通信エラーを検出するため、
以下に示す方法で通信を行うことを示している。送信側
は、受信側に向けてデータを送信する。受信側は、送信
側からのデータを受信し、そのデータを受信することに
よって生じた状態の変化を送信側に返送する。送信側
は、受信側から返送された状態変化を受信し、自己の送
信したデータと比べて当該状態変化の妥当性を判断し、
必要に応じて受信側にデータを再送する。 【0005】 【発明が解決しようとする課題】上記のように、受信側
は、データを受信したとき、そのデータに誤りがあるか
否かにかかわらず、常に自己の状態変化を送信側に通知
する。受信側は、常に自己の状態変化を送信側に通知す
るので、必要なデータのみを送受信する場合に比べ、通
信量は2倍近くに増えてしまう。 【0006】通信量の増大は、一般的に通信速度の低下
または通信条件の制限を招き、通信帯域幅を広く確保で
きない状況においては通信不能になることもあり得る。
本発明の目的は、通信量を大幅に増加させることなく、
通信の信頼性を向上させることができる電子機器用ネッ
トワークにおける通信方法を提供することである。 【0007】 【課題を解決するための手段】 本発明の一観点によれ
ば、情報を送信するための送信ノードと、送信された情
報を受信して発音指示情報に応じて楽音信号を形成する
受信ノードとを接続する電子機器用ネットワークにおけ
る通信方法は、(a)前記受信ノードが前記送信ノード
から発音指示情報と前記送信ノードにおいて発音指示中
の楽音の個数に関する情報とを含むMIDIデータをそ
れぞれ同期方式のプロトコルにより受信する工程と、
(b)前記受信した楽音の個数に関する情報と当該受信
ノードにおいて形成されている楽音信号の個数とが一致
しない場合に、前記受信したMIDIデータの内容が妥
当性にかけ有意性がないと判断する工程と、(c)前記
判断する工程(b)が、前記受信したMIDIデータの
内容について妥当性に欠け有意性がないと判断した場合
には非同期方式のプロトコルにより送信ノードに当該受
信ノードにおいて形成されている楽音信号の音高列に関
する情報を通知する工程と、(d)送信ノードが前記通
知に応じて、当該送信ノードにおいて形成されている楽
音信号の音高列とを比較し、受信ノードにおいてのみ存
在する音高の楽音信号の消音を指示する情報または送信
ノードにおいてのみ存在する音高の楽音信号の形成を指
示する発音指示情報を前記受信ノードに送信する工程と
を含む。 【0008】受信ノードが受信した情報に誤りがある可
能性が高いと判断したときには、非同期方式のプロトコ
ルにより誤りがある可能性が高い旨を通知するので、通
常の情報の通信の信頼性を確保することができる。ま
た、受信ノードは、情報を受信する毎に毎回送信ノード
に通知するのではなく、受信したデータに誤りがある可
能性が高いと判断したときのみ誤りがある可能性が高い
旨を通知するので、通信情報量は比較的少なくてすむ。 【0009】 【0010】 【発明の実施の形態】図1は、本発明の実施例による電
子機器用ネットワークの構成を示すブロック図である。
電子機器の一例として、電子楽器の場合を説明する。ま
た、ネットワークの例として、IEEE1394規格に
よるものを説明する。IEEE1394は、デジタル通
信の代表的な規格である。 【0011】音源1と5、シーケンサ2、ミキサ3、テ
ープレコーダ4は、それぞれが1つのノードを構成す
る。各ノードは、例えばネットワーク接続用の3つのポ
ートを有し、どのポートも同じ役割を果たす。したがっ
て、各ノードは、最大3つの他のノードと接続すること
ができる。上記の5つのノードは、バス接続によりネッ
トワークを構成する。 【0012】ネットワークを構成する際、物理的なツリ
ー構造(木構造)は任意である。ノードの接続により、
各ノードには、ノードID(識別子)が自動的に設定さ
れる。このノードIDが一番大きなノードがルートノー
ドとして設定され、論理的なツリー構造が自動的に構成
される。つまり、論理的ツリー構造と物理的ツリー構造
とは異なる。ルートノードは、各ノードに対して通信の
開始を許可するためのサイクルスタートパケット等をバ
スに発行する役割を有する。 【0013】IEEE1394では、2種類の通信方法
が規定されている。1つは、アイソクロナス(同期)通
信であり、もう1つは非同期パケット通信である。アイ
ソクロナス通信は、125μs毎に一定の通信帯域が確
保されている通信であり、送信ノードはブロードキャス
トで通信先を特定せずにチャンネルを指定してデータを
送信する。他の全てのノードは、チャンネルに基づく判
断によってデータを取り込むので、1つの送信データを
複数の受信ノードが受け取ることができる。送信ノード
は、データを送りっぱなしで受信側からの応答がないの
で、原則として、正常な通信が行われたか否かを確認す
ることができない。そこで、本実施例では、アイソクロ
ナス通信で行った通信のエラーチェックを、非同期パケ
ット通信を用いて行う。 【0014】非同期パケット通信は、一定の通信帯域が
確保されておらず、アイソクロナス通信の合間を縫って
行われる。アイソクロナス通信は125μs毎に行われ
るので、非同期パケット通信は約125μs毎に通信の
機会が与えられる。非同期パケット通信は、通信相手を
特定してデータを送信することができる。受信ノード
は、アイソクロナス通信で受信したデータの信頼性が低
い(誤りがある可能性が高い)場合、同じデータを再送
するように非同期パケット通信で送信ノードに知らせ
る。 【0015】IEEE1394規格においては、ネット
ワークに新たなノードが追加された場合、バスリセット
の信号が発行され、接続されているノードのネットワー
クが再構成される。再構成が行われた後は、ノード間の
通信は復旧するが、バスリセットには200μs程度の
時間がかかるので、その間に通信していたデータに関し
ては、消滅してしまうことが考えられる。アイソクロナ
ス通信のサイクルは125μsであるので、2サイクル
分のデータが消滅する可能性がある。このようにして消
滅したデータについても、救済する必要がある。 【0016】次に、IEEE1394方式でMIDIデ
ータまたはオーディオデータを通信する場合において、
通信データの信頼性を保証(エラーチェックおよび回
復)する方法を3つ概略的に説明する。各方法の詳細
は、後にフローチャートを参照しながら説明する。 【0017】(1)受信ノードは、送信ノードからMI
DIデータを受け取った際に常に返答するのではなく、
受け取ったMIDIデータの信頼性が欠けるときのみ返
答し、必要であれば送信ノードが受信ノードにMIDI
データを再送する。常に返答するのではなく、データの
信頼性が欠けるときのみ返答することにより、通信量を
それほど増加させることなく通信の信頼性を向上させる
ことができる。 【0018】具体的には、受信ノードは、受け取ったM
IDIデータが非妥当性を有するか否かを判断する。例
えば、MIDIデータの規則によれば、必ずキーオン
(押鍵)があってからその後にキーオフ(離鍵)があ
る。そこで、キーオフのデータを受信したが、それに対
応するキーオンを未だに受信していないときには、キー
オフすべき対象がないのでキーオフの受信データが誤り
ではないかとの判断を行う。また、シーケンサ停止のデ
ータを受信したが、シーケンサが既に停止しているとき
にも、シーケンサ停止の受信データが誤りではないかと
の判断を行う。 【0019】(2)送信ノードは、例えば5秒に1回現
在キーオン中のキーの数を受信ノードに知らせる。受信
ノードは、受け取ったキーオンの数と自己においてキー
オン中のキーの数を比較する。両者の数が一致するとき
には正常な通信が行われていると推定することができ
る。両者の数が一致しないときには、受信ノードがキー
オンのリストを送信ノードに送信する。送信ノードは、
受け取ったキーオンリストには含まれているが、自己の
キーオンリストには含まれていないものをキーオフする
ように指示し、いつまでもキーオンの状態で発音しっぱ
なしのキーの存在をなくす。 【0020】キーオンまたはキーオフの受信を誤ったに
もかかわらず、キーオン数が偶然一致してしまうことも
あるが、そのような場合でも、後にはキーオンリストが
変化して行くので、将来的にはいつかエラーを検出する
ことができる。 【0021】なお、例えば音源がMIDIデータを鍵盤
とシーケンサの両方から受信する場合には、鍵盤による
キーオンリストとシーケンサによるキーオンリストを別
々に作成するため、MIDIデータがどこから送信され
てきたのかを判断する必要がある。 【0022】また、キーオフが送信されてこなくても、
発音チャンネルが足りないために強制的なトランケート
によりキーオフしてしまう場合がある。そのような場合
は、トランケートによりキーオン状態が解除されている
ので、送信側および受信側の双方のキーオンリストから
削除する必要がある。 【0023】(3)オーディオデータを送信する場合、
送信ノードは、オーディオデータにシリアル番号とタイ
ムスタンプを付して送信する。受信ノードは、オーディ
オデータを受け取る際にシリアル番号が前に受信したオ
ーディオデータのものに対して非連続か否かをチェック
する。途中の番号が抜けてシリアル番号がとんでいれ
ば、途中のオーディオデータが抜けたことを意味するの
で、受信ノードは抜けたシリアル番号に対応するオーデ
ィオデータの再送を送信ノードに依頼する。送信ノード
は、所定時間だけ送信済データを保存しているので、抜
けたシリアル番号のオーディオデータを再送することが
できる。 【0024】受信ノードのバッファには、オーディオデ
ータが到着順に記憶される。途中で抜けたオーディオデ
ータは当該バッファの最後に記憶されるので、順番を正
すため、受信ノードは、オーディオデータに付されたタ
イムスタンプの順番に読み出し発音処理を行う。ビデオ
データも同様に扱うことができる。 【0025】なお、オーディオデータやビデオデータだ
けでなく、MIDIデータにもシリアル番号を付けるこ
とができる。MIDIデータは、オーディオデータなど
と異なり、データの時間順序を守ることが必要な場合
と、厳密には必要であるが重要ではない場合とが存在す
る。よってMIDIデータの伝送時にシリアル番号によ
りデータの抜けが検出された場合は、処理の簡略化のた
めに基本的にはデータを再送することにより対処し、時
間順序を守ることが必要なデータについては、処理を異
ならせる。 【0026】例えば、キーオン(KON)、ピッチベン
ド(PitchBend)、音色を示すプログラムチェ
ンジ(PC)、キーオフ(KOFF)を含むMIDIデ
ータに、1045、1046、1047のシリアル番号
を以下のように付して送信する場合を考える。 【0027】シリアル番号1045:KON(64),PitchBen
d(45),KON(43),PC(34) シリアル番号1046:PitchBend(50) シリアル番号1047:KOFF(43),PC(35) 【0028】ここで、シリアル番号1045が抜けたと
する。シリアル番号の抜けが受信側によって検出され、
抜けたことが送信側に通知された場合は、シリアル番号
1046と1047のデータを参照して、「KON(64) 」
のみを再送する。PitchBend(45) とKON(43) とPC(34)
は、以下の理由により再送しない。 【0029】シリアル番号1047においてKOFF(43)が
既に送信されているので、この後にシリアル番号104
5におけるKON(43) を再送すると、発音が終了しなくな
るので、KON(43) は再送する必要がない。 【0030】また、PitchBend(45) とPC(34)を再送して
しまうと、それぞれシリアル番号1046のPichBend(5
0)とシリアル番号1047のPC(35)と前後関係が逆にな
り、実際の操作内容と対応しなくなってしまうので、再
送する必要がない。 【0031】図2は、図1に示す複数のノードのうちの
1つのノードの例を示す。ここでは、ノードが音源であ
る場合を例に説明する。ノードは、CPU11とROM
12とRAM13と通信インターフェース(I/F)1
4と楽音合成回路16とサウンドシステム17を有し、
それぞれはバス18を介して接続されている。 【0032】通信インターフェース14は、3つのポー
ト15を有する。ポート15を介して他のノードと接続
することにより、ネットワークを構成することができ
る。RAM13は、送信データと受信データをそれぞれ
バッファリングするための送信バッファと受信バッファ
と、各種レジスタおよびバッファ等を含むCPU11の
ワーキングエリアとを有する。 【0033】ROM12は、各種パラメータおよびコン
ピュータプログラムを記憶する。CPU11は、ROM
12に記憶されているコンピュータプログラムに従って
演算または制御を行う。 【0034】楽音合成回路16は、CPU11の制御に
より供給される楽音パラメータに応じて楽音信号を生成
する。サウンドシステム17は、楽音合成回路16で生
成された楽音信号を発音可能な信号に変換する。 【0035】サウンドシステム17で生成された楽音信
号は、例えばRAM13中の送信バッファを介して、通
信インターフェース14から外部に送信される。楽音信
号は、その後、ミキサによりミキシングされたり、スピ
ーカから発音されたりする。 【0036】また、外部から通信インターフェース14
に供給されるMIDIデータは、RAM13中の受信バ
ッファを介して、楽音合成回路16に供給される。楽音
合成回路16は、当該MIDIデータに応じて楽音信号
を生成する。 【0037】図3は、ネットワークを構成する電子楽器
システムの全体的な処理を説明するためのフローチャー
トである。パネルを有するノードと鍵盤を有するノード
がネットワークに含まれているものとする。例えば、音
源1と5が、パネル、鍵盤を有する電子楽器であるとす
る。 【0038】ステップSA1では、全てのノードが独自
の初期設定を行う。ステップSA2では、パネル処理を
行う。パネル処理は、音色を設定するためのスイッチを
含む各種操作用スイッチを有するパネルスイッチと、音
色番号を含む各種情報を表示するためのパネルディスプ
レイに関連する処理を行う。 【0039】ステップSA3では、鍵盤処理を行う。鍵
盤処理は、演奏者が行う鍵盤操作を検出する。例えば、
押鍵、離鍵、ピッチベンドホイール操作等を検出し、キ
ーオン/オフ、キーコード等のMIDIデータを生成す
る。 【0040】ステップSA4では、音源処理を行う。音
源処理は、上記のパネル処理および鍵盤処理により生成
されたMIDIデータに応じて、楽音信号を生成する。
ステップSA5では、各種機能処理を行う。例えば、シ
ーケンサ処理やオートリズム処理である。その後、ステ
ップSA2へ戻り、処理を繰り返す。 【0041】図4は、ネットワーク割り込み処理を示す
フローチャートである。この割り込み処理は、アイソク
ロナス通信のサイクル(125μs)で割り込み実行さ
れる。 【0042】ステップSB1では、ネットワーク処理を
行い、処理を終了すると割り込み前の処理に戻る。ネッ
トワーク処理は、ネットワーク送信処理およびネットワ
ーク受信処理を含む。ネットワーク送信処理は、送信バ
ッファに蓄積されたデータを外部に送信する処理であ
る。ネットワーク受信処理は、受信により受信バッファ
に蓄積されたデータを取り出す処理である。それぞれの
処理の詳細は、後に別のフローチャートを参照しながら
説明する。 【0043】図5は、図4のステップSB1のネットワ
ーク送信処理の詳細を示すフローチャートである。ステ
ップSC1では、RAM中の送信バッファより送信デー
タを取り出す。 【0044】ステップSC2では、ポート情報テーブル
より送信ポートに対応する情報を取り出す。図6に、ポ
ート情報テーブルの例を示す。ポート(port)番号
が1であれば、プロトコル(protocol)がアイ
ソクロナス(isochronous)通信であり、送
信データがMIDIデータである。ポート番号が2であ
れば、プロトコルが非同期パケット(packet)通
信であり、送信データがデータ確認または再送のための
情報である。ポート番号が3であれば、プロトコルがア
イソクロナス通信であり、送信データがオーディオ(a
udio)データである。ポート番号が4であれば、プ
ロトコルがアイソクロナス通信であり、送信データがビ
デオ(video)データである。 【0045】ポート情報テーブルは、各ノードのRAM
に記憶されるテーブルであり、それらの内容は同一であ
る。また、ポート情報テーブルには、アイソクロナス通
信においては、アイソクロナスチャンネル番号も記録さ
れている。パケット通信における受信ノードのアドレス
については、別途用意されるテーブルにより設定され
る。例えば、MIDIデータを送信しようとする場合
は、ポート番号として1を指定しておけば、データを作
成するプログラムは、通信プロトコルや、受信側のアド
レスなどを知る必要はなく、データを作成するプログラ
ムに共通に利用されるネットワーク送信処理のみが、そ
れらの情報をまとめて管理することになり、データを作
成するプログラムの簡略化を図ることができる。例え
ば、ノードがシーケンサの場合、ポート番号1を指定し
たMIDIデータを送信バッファに記録するのみで、シ
ーケンサプログラムは、ネットワークについて関知する
必要がない。 【0046】ステップSC3では、当該取り出したデー
タを送信バッファより消去する。消去することにより、
送信バッファ中の次の送信データを取り出す準備をす
る。ステップSC4では、上記のポート情報テーブルの
プロトコル(protocol)が非同期パケット(p
acket)通信であるか否かをチェックする。非同期
パケット(packet)通信でなければ、アイソクロ
ナス(isochronous)通信であるので、ステ
ップSC5へ進む。 【0047】ステップSC5では、指定されたアイソク
ロナスチャンネルにシリアル番号を付したデータを送信
する。アイソクロナスチャンネルは、例えば64チャン
ネルあり、1つのアイソクロナスチャンネルには、MI
DIの16チャンネル分の帯域を確保することができ
る。シリアル番号は、受信ノードがデータを抜けなく受
信したか否かを判断する際に用いられるものであり、M
IDIデータ、オーディオデータ等を区別するため、ア
イソクロナスチャンネル毎に別個に付される。 【0048】ステップSC6では、RAM中の送信済バ
ッファにシリアル番号とデータと現在時刻とを記憶す
る。これらの情報は、受信ノードから確認要求/再送要
求がきたときに参照され、データの再送などの制御に利
用される。 【0049】ステップSC7では、送信済バッファ中の
データのうち所定時間経過した物を消去し、図4の処理
に戻る。所定時間とは、受信ノードが再送要求すること
を許容する時間である。例えば、通信ネットワークの端
から端までの通信時間が500μsであるとすれば、往
復の通信時間(1ms)に受信ノードの処理時間を加え
た時間を考慮して、所定時間を1.5msとすればよ
い。 【0050】ステップSC4において、プロトコル(p
rotocol)が非同期パケット(packet)通
信であると判断されたときには、ステップSC8へ進
む。ステップSC8では、指定されたノードにデータを
送信し、図4の処理に戻る。図6のポート情報テーブル
に示すように、例えば送信データがデータ確認または再
送を指示するものであれば、送信先ノードを指定して非
同期パケット通信を行う。 【0051】以上は、ノードが送信バッファ中の送信デ
ータを送信する処理を示した。次に、上記の処理を行う
前に、送信バッファ中に送信データを生成する例を示
す。特に、ノードがシーケンサの場合を例に説明する。 【0052】図7は、シーケンサが送信バッファ中に送
信データを生成する処理を示すフローチャートである。
ステップSD1では、シーケンサが動作中であるか否か
をチェックする。シーケンサが動作中でなければ、何も
処理せずに終了する。シーケンサが動作中であるときに
は、ステップSD2へ進む。 【0053】ステップSD2では、時間情報に応じてメ
モリ(RAM)よりシーケンスデータを読み出すための
動作を指示する。このメモリは、シーケンスデータを記
憶するためのメモリであり、送信バッファとは別であ
る。 【0054】ステップSD3では、メモリから読み出し
た情報中にその時間に対応するイベントがあるか否かを
チェックする。対応するイベントがないときには、処理
を終了する。対応するイベントがあるときには、ステッ
プSD4へ進む。 【0055】ステップSD4では、ポート(port)
番号=1を指定して、読み出されたイベント(MIDI
データ)を送信バッファに書き込み、処理を終了する。
図6のポート情報テーブルに示すように、送信データが
MIDIデータの場合はポート番号が1である。 【0056】以上は、ネットワーク送信処理について説
明した。次に、ネットワーク受信処理について説明す
る。図8は、図4のステップSB1のネットワーク受信
処理の詳細を示すフローチャートである。大きく分け
て、ステップSE1〜SE5がアイソクロナス通信によ
る受信処理であり、ステップSE6〜SE10が非同期
パケット通信による受信処理である。RAM中の受信バ
ッファは、アイソクロナス受信バッファと非同期パケッ
ト受信バッファとに別れている。 【0057】まず、アイソクロナス通信による受信処理
を行う。ステップSE1では、RAM中のアイソクロナ
ス受信バッファからのデータ取り出しを指示し、受信テ
ーブルを作成する。受信テーブルは、後の処理を行いや
すいように受信データを再構成したものである。 【0058】ステップSE2では、受信バッファにデー
タがあるか否かをチェックする。受信バッファからのデ
ータ読み出し動作を行っても、データがなければ受信テ
ーブルにデータはないことになる。受信バッファにデー
タがある場合には、ステップSE3へ進む。 【0059】ステップSE3では、データに付されてい
るシリアル番号が以前に受信したデータのシリアル番号
に連続しているか否かをチェックする。シリアル番号が
連続していなければ、あるデータを抜かしてデータを受
信したことを意味するので、ステップSE5へ進む。 【0060】ステップSE5では、抜けたシリアル番号
を送信側に通知し、ステップSE6へ進む。この後、送
信側は、当該通知を受けて、抜けたシリアル番号のデー
タを再送する。 【0061】ステップSE3において、シリアル番号が
連続していると判断されたときは、受信データが抜けて
いないことを意味するので、ステップSE4へ進む。 【0062】ステップSE4では、受信データ処理を行
う。受信データ処理は、例えば現在キーオン中でないキ
ーコードのキーオフを受信したことに対して通信エラー
ではないかとの予測を行う処理である。詳細は、後に図
9を参照しながら説明する。その後、ステップSE6へ
進む。 【0063】ステップSE2において、受信バッファに
データがなかったと判断したときには、上記の処理を行
わずに、ステップSE6へ進む。以上がアイソクロナス
通信による受信処理である。次に、非同期パケット通信
による受信処理を示す。ネットワーク受信処理は、各ノ
ードに共通して用意され、そのプログラムも共通であ
る。情報を送信するノードと受信するノードとを考えた
場合、そのそれぞれのノードでネットワーク受信処理が
実行されている。本実施例でMIDI信号が誤って送信
され、受信側が確認要求を返答するような場合では、ま
ず、受信側においてネットワーク受信処理が起動され、
ステップSE4にて誤りの可能性が検出され、送信側に
それが通知される。送信側では、その通知を受けてネッ
トワーク受信処理が起動され、以下に説明する非同期パ
ケット通信による受信処理の部分で通知内容が処理され
る。このように図8のフローチャートは、異なるノード
の処理を共通に説明している。 【0064】ステップSE6では、非同期パケット受信
バッファより受信データの取り出しを指示する。非同期
パケット通信は、図6に示すように、例えばデータ確認
または再送を指示するためのデータを通信する際に行わ
れる。 【0065】ステップSE7において、受信バッファに
データがあるか否かをチェックする。データがなければ
処理を終了する。データがあるときには、ステップSE
8へ進む。 【0066】ステップSE8では、データがデータ確認
またはデータ再送を指示するためのものであるか否かを
チェックする。データがデータ確認または再送のための
ものであれば、ステップSE9へ進む。 【0067】ステップSE9では、送付されたデータお
よび送信済バッファ中のデータに基づき新たなデータを
生成し、送信バッファに記録し、処理を終了する。例え
ば、キーオン中でないキーコードのキーオフがノード2
からノード1へ送信されてきたときには、ノード1から
ノード2へ本当に当該キーオフを送信したか否かのデー
タ確認が送付される。その送付されてきたデータと送信
済バッファとの間で照合を行い、必要に応じて新たなデ
ータを生成し送信バッファに記録する。 【0068】または、送付されたデータのみに基づき新
たなデータを生成し、送信バッファに記録し、処理を終
了することもできる。例えば、オーディオデータを受信
する際にあるシリアル番号が抜けて受信したので、その
抜けたシリアル番号のデータ再送を要求する旨が送信さ
れてきたときには、送付されたデータ(シリアル番号)
に基づき新たなデータを送信バッファに記録する。CD
やシーケンサ等がデータの供給源である場合は、データ
時間的な位置を指定しての再作成(再読み出し)が比較
的容易であるので、データ再送要求を受けた時点で、デ
ータを再作成し返送することができ、送信済データを記
憶するためのバッファを省略することもできる。ただ
し、これらの場合においても処理の共通化と、データの
再作成の高速化を図るために、前述のように送信済バッ
ファを利用するようにしてもよい。 【0069】ステップSE8において、受信バッファよ
り取り出したデータがデータ確認または再送のためのも
のでなければ、ステップSE10へ進む。ステップSE
10では、その他のパケット処理を行い、処理を終了す
る。例えば、音色の問い合わせに対して返答する処理を
行う。また、その他のパケット処理は、アイソクロナス
受信を行った受信側がその後に非同期パケット受信した
ときのパケット処理も含む。 【0070】図9は、図8のステップSE4における受
信データ処理の詳細を示すフローチャートである。ステ
ップSF1では、受信テーブルをスキャンする。受信テ
ーブルは、図8のステップSE1にて生成されたもので
ある。 【0071】ステップSF2では、スキャンされたデー
タがMIDIデータか否かをチェックする。MIDIデ
ータであるときには、ステップSF3へ進む。ステップ
SF3では、受信テーブル中のデータをMIDIコマン
ドとして取り出し、対応するデータを消去する。 【0072】ステップSF4では、MIDIコマンドに
応じてMIDIコマンド解釈テーブルを参照し、MID
Iコマンドの有意性を判断する。有意性がないときに
は、ステップSF6において、MIDIコマンド解釈テ
ーブルを参照し、当該MIDIコマンドに応じた対応処
理を実行し、その後ステップSF9へ進む。 【0073】図10に、MIDIコマンド解釈テーブル
の例を示す。図10(A)は、MIDIコマンド解釈テ
ーブル(1)を示す。受信したMIDIコマンドがキー
オフ(KOFF)であれば、キーオンバッファに対応す
るキーオン(KON)があるか否かをチェックする。対
応するキーオンがなければ、妥当なコマンドとは考えら
れず、有意性なしと判断し、キーオン中のキーコード列
を返送する。 【0074】また、受信したMIDIコマンドがシーケ
ンサ停止(Sequencer Stop)であれば、シーケンサが動
作中であるか否かをチェックする。動作中でなければ、
妥当なコマンドとは考えられず、有意性なしと判断し、
シーケンサが停止中であることを送信側に通知する。 【0075】また、受信したMIDIコマンドがダンパ
オン(Dumper On )であれば、ダンパが既にオンされて
いるか否かをチェックする。既にオンされていれば、妥
当なコマンドとは考えられず、有意性なしと判断し、受
信したMIDIコマンドを返送する。 【0076】また、受信したMIDIコマンドがダンパ
オフ(Dumper Off)であれば、ダンパが既にオフされて
いるか否かをチェックする。既にオフされていれば、妥
当なコマンドとは考えられず、有意性なしと判断し、受
信したMIDIコマンドを返送する。 【0077】また、受信したMIDIコマンドが拡張コ
マンドでありキーオン数の確認を要求するものであれ
ば、受信側のキーオン数と異なるか否かをチェックす
る。キーオン数が異なるときには、有意性なしと判断
し、キーオン中のキーコード列を返送する。この処理に
関連する処理は、後に図12および図13を参照しなが
ら説明する。 【0078】以上のように、受信したMIDIコマンド
を実行するための制御対象がない場合や、既にその制御
後の状態になっている場合や、キーオン数等のチェック
コードが一致しない場合に、当該MIDIコマンドの有
意性がない(誤りの可能性が高い)と判断することがで
きる。 【0079】図10(B)に、MIDIコマンド解釈テ
ーブル(2)を示す。受信したMIDIコマンドがキー
オン(KON)であれば、設定されている音色では通常
演奏しない範囲の音高であるか否かをチェックする。キ
ーオンは、音高の情報を含む。当該範囲の音高でなけれ
ば、妥当なコマンドとは考えられず、有意性なしと判断
し、送信側に通常発音しない範囲の音高であることを通
知する。例えば、トランペットの音色が指定された場合
には、トランペットの音域が制限されている性質を利用
して、その音域を外れる音高は通信エラーである可能性
があると判断する。 【0080】また、受信したMIDIコマンドがキーオ
ン(KON)であれば、指定されているベロシティがあ
るレベル以上であるか否かをチェックする。キーオン
は、ベロシティの情報を含む。ベロシティがあるレベル
以上でなければ、演奏情報としての妥当性に欠けると考
えられ、有意性なしと判断し、送信側に指定されている
ベロシティが小さすぎることを通知する。 【0081】その他、キーオンに対応するキーコードを
受信することにより、その楽曲の調を判断することがで
きる。例えば、ハ長調であれば、ドとミとソの出現頻度
が高く、ド♯とミ♭の出現頻度が低い。出現頻度が低い
キーコードを受信したときには、通信エラーの可能性が
あると判断することができる。 【0082】また、極端に低い音または高い音の場合、
極端にイニシャルタッチやアフタタッチが大きい場合や
小さい場合、または和音の構成音が突飛な場合は、通信
エラーの可能性があると判断することができる。 【0083】以上のように、受信したMIDIコマンド
による制御の対象は存在するが、指定された制御が妥当
でない場合に、当該MIDIコマンドの有意性がないと
判断することができる。 【0084】上記の判断は、個々の判断結果に応じて対
応処理を行ってもよいし、それぞれの判断に通信エラー
の可能性の大きさを点数付けし、総合点に応じて処理を
行ってもよい。 【0085】受信側が、有意性なしと判断したときには
それぞれの受信MIDIコマンドに応じた処理を行う。
テーブル右欄に示した情報を返送する。送信側は、返送
されてきた情報が送信したものと異なる場合には、伝送
路の途中で信号誤りを生じたと判断し、正しい情報を再
度送信する。返送されてきた情報が送信した情報と同種
類である場合は、(1)再度送信する、(2)値を変更
して再度送信する、(3)送信を取り止める、等の処理
を行えばよい。 【0086】(2)と(3)の場合、受信側は特別の処
理を必要としない。(1)の場合、受信側は、有意性判
断条件に、「有意性がないと判断した場合でも、複数回
同じ判断が続く場合は、そのMIDIコマンドを無視す
る(送信側に返送しない)」等の条件を加えておけばよ
い。 【0087】図9に戻り、ステップSF5において、M
IDIコマンドに有意性ありと判断されたときには、当
該MIDIデータが正常に受信したものであるとして、
ステップSF7へ進み、MIDIコマンドの実行を行
い、ステップSF9へ進む。 【0088】ステップSF2において、受信テーブルを
スキャンしたデータがMIDIデータでないと判断され
たときには、ステップSF8へ進み、その他データ処理
を行い、ステップSF9へ進む。その他データ処理と
は、例えばオーディオデータ処理やビデオデータ処理で
ある。 【0089】ステップSF9では、全データの処理が終
了したか否かをチェックする。全データの処理が終了し
ていないときには、ステップSF1に戻り、上記の処理
を繰り返す。全データの処理が終了したときには、図8
の処理へ戻る。 【0090】図11は、図9のステップSF8における
オーディオ処理の詳細を示すフローチャートである。ス
テップSG1では、受信したデータをRAM中のオーデ
ィオデータバッファに記録する。オーディオデータバッ
ファは、例えば20フレーム分のデータをバッファリン
グする。 【0091】ステップSG2では、オーディオデータバ
ッファから各オーディオデータに付されているタイムス
タンプを参照して、必要なデータを読み出す。オーディ
オデータを受信する際にデータ抜けがあり当該データを
再送してもらったときには、オーディオデータバッファ
にはオーディオデータがシリアル番号順に記録されてい
ない。そこで、タイムスタンプに基づいた順番で読み出
すことにより、正常な順番でオーディオデータを読み出
すことができる。 【0092】ステップSG3では、読み出したデータを
利用し、図9の処理へ戻る。例えば、読み出したデータ
をD/A変換したり、ミキシングしたりする。図12
は、キーオン確認用のタイマ割り込み処理を示すフロー
チャートである。この割り込み処理は、約5〜10秒間
隔の低頻度の割り込み処理であり、MIDIデータの送
信側の処理である。割り込みを低頻度にすることによ
り、処理負担を軽減することができる。また、この処理
は、通信エラーにより永久にキーオンのままになってし
まうことを防止するための処理である。誤ったキーオン
により連続して発音しっぱなしの時間が5〜10秒程度
までであれば、許容できるとの判断によるものである。
もちろん、より頻繁に行ってもよい。 【0093】ステップSH1では、RAM中のキーオン
バッファより現時点でのキーオン数を得る。このキーオ
ン数は、送信側のキーオン数である。ステップSH2で
は、上記のキーオン数を記載したMIDIのエクスクル
ーシブメッセージを作成する。エクスクルーシブメッセ
ージは、MIDIの拡張用コマンドであり、MIDI規
格で既に決められている以外の信号を定義可能である。
ここでは、キーオン数の確認を要求するために用いる。 【0094】ステップSH3では、ポート番号=1を指
定して、作成したMIDIデータ(エクスクルーシブメ
ッセージ)を送信バッファに書き込み、割り込み処理を
終了する。図6のテーブルに示すように、MIDIデー
タを送信するには、ポート番号=1を指定する必要があ
る。 【0095】図10(A)のテーブルに示すように、受
信側が上記のエクスクルーシブメッセージを受信したと
きには、キーオン数の確認の要求に応えるため、送信側
のキーオン数と受信側のキーオン数が同じか否かをチェ
ックする。ここにおいて、送信側から受信側に直接キー
オン中のキーコード列をエクスクルーシブメッセージと
して送らないのは、不要にデータ量を増加させないため
である。そして、キーオン数が異なるときには、受信側
のキーオン中のキーコード列を返送する。このキーコー
ド列を送信側が受け取ったときの処理を、次に示す。 【0096】図13は、送信側が受信側のキーコード列
を受信したときの処理を示すフローチャートである。ス
テップSI1では、受信側のキーオン中のキーコード列
と送信側のキーオン中のキーコード列とを比較し、受信
側のキーコード列にのみ存在するキーコードを探す。ス
テップSI2では、受信側のキーコード列にのみ存在す
るキーコードに対し、キーオフ(KOFF)のMIDI
データを作成する。 【0097】ステップSI3では、ポート番号=1を指
定して作成したイベント(MIDIデータ)を送信バッ
ファに書き込み、処理を終了する。送信バッファに書き
込まれたキーオフのMIDIデータは、受信側に送信さ
れる。受信側は、当該MIDIデータを受けて、キーオ
フの処理を行う。KOFFを送信することより、KON
だけを受け付けて発音しっぱなしになっている楽音を発
音停止させることができる。 【0098】なお、受信側のキーコード列にのみ存在す
るキーコードに対してKOFFを送るようにしたが、送
信側のキーコード列にのみ存在するキーコードを再送す
るようにしてもよい。これらの場合、発音のタイミング
は、元々の楽音が発音されるべきタイミングと全く異な
ってしまうので、音量情報を小さく補正するのが望まし
い。 【0099】本実施例によれば、(1)データの妥当性
を判断、(2)キーオン数等のチェックコードを判断、
(3)データに付するシリアル番号を判断することによ
り、通信データの有意性の判断を行い、それに対する救
済を行うことができる。 【0100】データの有意性がない場合のみに返答を行
ったり、5秒に1回だけキーオン数を確認するので、通
信量をそれほど増加させることなく、通信の信頼性を向
上させることができる。 【0101】なお、本実施例では、電子機器の例として
電子楽器について説明したが、その他の電子機器を接続
するネットワークに適用することもできる。 【0102】以上実施例に沿って本発明を説明したが、
本発明はこれらに制限されるものではない。例えば、種
々の変更、改良、組み合わせ等が可能なことは当業者に
自明であろう。 【0103】 【発明の効果】以上説明したように、本発明によれば、
受信ノードが受信した情報に誤りがある可能性が高いと
判断したときには、非同期方式のプロトコルにより誤り
がある可能性が高い旨を通知するので、同期方式のプロ
トコルによる通常の情報の通信の信頼性を確保すること
ができる。 【0104】また、受信ノードは、情報を受信する毎に
毎回送信ノードに通知するのではなく、受信したデータ
に誤りがある可能性が高いと判断したときのみ誤りがあ
る可能性が高い旨を通知するので、通信情報量は比較的
少なくてすむ。
【図面の簡単な説明】 【図1】 本発明の実施例による電子機器用ネットワー
クの構成を示すブロック図である。 【図2】 図1に示す複数のノードのうちの1つのノー
ドの例を示すブロック図である。 【図3】 ネットワークを構成する電子楽器システムの
全体的な処理を説明するためのフローチャートである。 【図4】 ネットワーク割り込み処理を示すフローチャ
ートである。 【図5】 図4のステップSB1のネットワーク送信処
理の詳細を示すフローチャートである。 【図6】 ポート情報テーブルの例を示す図である。 【図7】 シーケンサが送信バッファ中に送信データを
生成する処理を示すフローチャートである。 【図8】 図4のステップSB1のネットワーク受信処
理の詳細を示すフローチャートである。 【図9】 図8のステップSE4における受信データ処
理の詳細を示すフローチャートである。 【図10】 MIDIコマンド解釈テーブルの例を示す
図である。 【図11】 図9のステップSF8におけるオーディオ
処理の詳細を示すフローチャートである。 【図12】 キーオン確認用のタイマ割り込み処理を示
すフローチャートである。 【図13】 送信側が受信側のキーコード列を受信した
ときの処理を示すフローチャートである。 【符号の説明】 1、5 音源、 2 シーケンサ、 3 ミキサ、
4 テープレコーダ、 11 CPU、 12
ROM、 13 RAM、 14 通信インター
フェース(I/F)、 16 楽音合成回路、 1
7 サウンドシステム、 18 バス
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平7−250084(JP,A) 特開 平8−54875(JP,A) 木下篤著,10年目で変わるSCSIシ リアルの台頭始まる,日経バイト,日 本,日経BP社,1995年3月1日,第 136号,p198−209 シリアルSCSIがいよいよ市場へ, 日経エレクトロニクス,日本,日経BP 社,1995年7月3日,第639号,p95− 105

Claims (1)

  1. (57)【特許請求の範囲】 【請求項1】 情報を送信するための送信ノードと、送
    信された情報を受信するための受信ノードとを接続する
    電子機器用ネットワークにおける通信方法であって、 前記受信ノードは受信した発音指示情報に応じて楽音信
    号を形成し、 (a)前記受信ノードが前記送信ノードから発音指示情
    報と前記送信ノードにおいて発音指示中の楽音の個数に
    関する情報とを含むMIDIデータをそれぞれ同期方式
    のプロトコルにより受信する工程と、 (b)前記受信した楽音の個数に関する情報と当該受信
    ノードにおいて形成されている楽音信号の個数とが一致
    しない場合に、前記受信したMIDIデータの内容が妥
    当性にかけ有意性がないと判断する工程と、 (c)前記判断する工程(b)が、前記受信したMID
    Iデータの内容について妥当性に欠け有意性がないと判
    断した場合には非同期方式のプロトコルにより送信ノー
    ドに当該受信ノードにおいて形成されている楽音信号の
    音高列に関する情報を通知する工程と、 (d)送信ノードが前記通知に応じて、当該送信ノード
    において形成されている楽音信号の音高列とを比較し、
    受信ノードにおいてのみ存在する音高の楽音信号の消音
    を指示する情報または送信ノードにおいてのみ存在する
    音高の楽音信号の形成を指示する発音指示情報を前記受
    信ノードに送信する工程とを含む通信方法。
JP08688296A 1996-04-09 1996-04-09 電子機器用ネットワークにおける通信方法 Expired - Fee Related JP3518647B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP08688296A JP3518647B2 (ja) 1996-04-09 1996-04-09 電子機器用ネットワークにおける通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08688296A JP3518647B2 (ja) 1996-04-09 1996-04-09 電子機器用ネットワークにおける通信方法

Publications (2)

Publication Number Publication Date
JPH09281961A JPH09281961A (ja) 1997-10-31
JP3518647B2 true JP3518647B2 (ja) 2004-04-12

Family

ID=13899212

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08688296A Expired - Fee Related JP3518647B2 (ja) 1996-04-09 1996-04-09 電子機器用ネットワークにおける通信方法

Country Status (1)

Country Link
JP (1) JP3518647B2 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100316650B1 (ko) 1998-08-29 2002-01-12 윤종용 상위 계층 데이터 전송을 위한 상위 프로토콜과 ieee 1394버스 정합 방법
US6751228B1 (en) 1999-03-23 2004-06-15 Yamaha Corporation Packet handler of audio data by isochronous mode
US6462264B1 (en) * 1999-07-26 2002-10-08 Carl Elam Method and apparatus for audio broadcast of enhanced musical instrument digital interface (MIDI) data formats for control of a sound generator to create music, lyrics, and speech
US7181555B2 (en) 2001-03-08 2007-02-20 Yamaha Corporation Data communication apparatus, data communication method, and program
JP3870843B2 (ja) 2002-05-27 2007-01-24 ヤマハ株式会社 楽音発生システムおよび音源モジュール
US7847174B2 (en) 2005-10-19 2010-12-07 Yamaha Corporation Tone generation system controlling the music system
JP2007306459A (ja) * 2006-05-15 2007-11-22 Matsushita Electric Ind Co Ltd ミキサーシステム
JP5198093B2 (ja) * 2008-03-06 2013-05-15 株式会社河合楽器製作所 電子楽音発生器

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
シリアルSCSIがいよいよ市場へ,日経エレクトロニクス,日本,日経BP社,1995年7月3日,第639号,p95−105
木下篤著,10年目で変わるSCSIシリアルの台頭始まる,日経バイト,日本,日経BP社,1995年3月1日,第136号,p198−209

Also Published As

Publication number Publication date
JPH09281961A (ja) 1997-10-31

Similar Documents

Publication Publication Date Title
EP0855697B1 (en) Real time transmission of musical tone information
JP3518647B2 (ja) 電子機器用ネットワークにおける通信方法
US20020014147A1 (en) Communications apparatus for tone generator setting information
US6069311A (en) Electronic musical instrument having mother board communicable with plug-in board
JP2001013961A (ja) データ送信装置、データ受信装置、及び同各装置に適用されるプログラムを記録したコンピュータ読取り可能な記録媒体
JPS624719B2 (ja)
JPH06259065A (ja) 電子楽器
KR100303277B1 (ko) 전자 뮤직시스템,뮤직시스템의 가동방법 및 기계적 판독가능한 기록매체
JP2844533B2 (ja) 音楽放送システム
JP2002023746A (ja) 電子楽器のデモ曲演奏装置及びデモ曲演奏方法
JP2003345350A (ja) 楽音発生システム、通信端末および音源モジュール
KR100324997B1 (ko) 통신 네트워크 가요반주 시스템.
JP4626429B2 (ja) Midiデータ送信装置及びプログラム
JPH08110777A (ja) 音楽情報通信方式
JP4206613B2 (ja) 音楽データ送信装置
JP2003066973A (ja) 演奏情報再生装置、方法及びプログラム
JPS61292691A (ja) 自動伴奏情報を送出する鍵盤装置
JP3312546B2 (ja) 拡張ボードの認証装置及び方法
JP3467941B2 (ja) マルチポートmidiメッセージ変換装置および方法
JP2751772B2 (ja) データ記憶装置
JP3399273B2 (ja) 電子楽器システムおよび音源装置
KR100247176B1 (ko) 무인경비 시스템에서 세대기기 아이디 중복시 자체 경보 및 통보 방법
JPH05260563A (ja) 集中自動検針装置
JPH10240242A (ja) 楽音情報の通信方法、通信装置及びプログラムを記録した媒体
JP3013804B2 (ja) 通信速度変換装置および方法ならびにその装置を用いたデータ通信システム

Legal Events

Date Code Title Description
A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20021008

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20040121

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20080206

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20090206

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20090206

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100206

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20110206

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20120206

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20130206

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees