米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 楽器;音響 -> ヤマハ株式会社

発明の名称 MIDIデータ送信装置及びプログラム
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−25410(P2007−25410A)
公開日 平成19年2月1日(2007.2.1)
出願番号 特願2005−209402(P2005−209402)
出願日 平成17年7月20日(2005.7.20)
代理人 【識別番号】100080931
【弁理士】
【氏名又は名称】大澤 敬
発明者 櫻田 信弥 / 安渡 武志 / 杉本 龍太郎 / 阿部 征治
要約 課題
MIDIデータの無線送信を行う場合において、高いリアルタイム性を得られるようにする。

解決手段
MIDIデータを無線送信する場合において、生成したMIDIデータを生成順に送信バッファに記録し、そのデータを1バイト毎にパケット化して送信するようにした(S32〜S34)。さらに、生成するMIDIデータの内容に従って、発音状態の現状を表わすチェックデータを作成すると共に、送信バッファにそのチェックデータを記録できるだけの空き容量がある場合に、そのチェックデータを送信バッファに記録するようにするとよい。
特許請求の範囲
【請求項1】
MIDI形式のデータを生成するMIDIデータ生成手段と、
該手段が生成したデータを生成順に送信バッファに記録する記録手段と、
前記送信バッファに記録されているデータを1バイト毎にパケット化して無線送信する送信手段とを設けたことを特徴とするMIDIデータ送信装置。
【請求項2】
請求項1記載のMIDIデータ送信装置であって、
発音状態の現状を表わすチェックデータを作成するチェックデータ作成手段と、
前記送信バッファに前記チェックデータを記録できるだけの空き容量があるか否か判定する判定手段と、
該手段が空き容量があると判定した場合に前記チェックデータを前記送信バッファに記録する第2の記録手段とを設けたことを特徴とするMIDIデータ送信装置。
【請求項3】
コンピュータを、
MIDI形式のデータを生成するMIDIデータ生成手段と、
該手段が生成したデータを生成順に送信バッファに記録する記録手段と、
前記送信バッファに記録されているデータを1バイト毎にパケット化して無線送信手段により無線送信する送信手段として機能させるためのプログラム。
【請求項4】
請求項3記載のプログラムであって、
前記コンピュータを、
発音状態の現状を表わすチェックデータを作成するチェックデータ作成手段と、
前記送信バッファに前記チェックデータを記録できるだけの空き容量があるか否か判定する判定手段と、
該手段が空き容量があると判定した場合に前記チェックデータを前記送信バッファに記録する第2の記録手段として機能させるためのプログラムをさらに含むプログラム。
発明の詳細な説明
【技術分野】
【0001】
この発明は、MIDI(Musical Instruments Digital Interface:登録商標)形式のデータを他の装置に無線送信するMIDIデータ送信装置及び、コンピュータをこのようなMIDIデータ送信装置として機能させるためのプログラムに関する。
【背景技術】
【0002】
従来から、演奏操作等に従ってMIDI形式のデータ(以下「MIDIデータ」という)を生成する装置と、そのMIDIデータに基づく発音を行う装置との間で、有線又は無線の通信によりMIDIデータを送受信できるようにし、MIDIデータの生成と発音とを別々の装置に行わせるようにすることが行われている。
このような技術としては、例えば特許文献1に、MIDIデータを生成するキーボードに送受信装置を接続し、1台のキーボードの演奏操作に応じて生成したMIDIデータをその送受信装置によって無線送信させ、送信先装置において、受信したMIDIデータに基づく発音を行わせる技術が記載されている。
また、この場合において、送受信装置が、キーボードから渡されるMIDIデータを伝送データ一時記憶部に記憶しておき、これを書き込み順に読み出して送信を行うことも記載されている。
【特許文献1】特開平7−261752号公報
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、送信先の装置に対し、送信したMIDIデータに基づく発音を行わせることを考える場合、MIDIデータの送受信には高いリアルタイム性が要求される。送信するMIDIデータが演奏操作に応じて生成したMIDIデータである場合には、特にこの要求が強い。
しかしながら、上記の特許文献1に記載のものも含め、従来の方式では、リアルタイム性が十分でないという問題があった。
この発明は、このような問題を解決し、MIDIデータの無線送信を行う場合において、高いリアルタイム性を得られるようにすることを目的とする。
【課題を解決するための手段】
【0004】
上記の目的を達成するため、この発明は、MIDI形式のデータを生成するMIDIデータ生成手段と、その手段が生成したデータを生成順に送信バッファに記録する記録手段と、上記送信バッファに記録されているデータを1バイト毎にパケット化して無線送信する送信手段とを設けたMIDIデータ送信装置を提供する。
このようなMIDIデータ送信装置において、発音状態の現状を表わすチェックデータを作成するチェックデータ作成手段と、上記送信バッファに上記チェックデータを記録できるだけの空き容量があるか否か判定する判定手段と、その手段が空き容量があると判定した場合に上記チェックデータを上記送信バッファに記録する第2の記録手段とを設けるとよい。
【0005】
また、この発明のプログラムは、コンピュータを、MIDI形式のデータを生成するMIDIデータ生成手段と、その手段が生成したデータを生成順に送信バッファに記録する記録手段と、上記送信バッファに記録されているデータを1バイト毎にパケット化して無線送信手段により無線送信する送信手段として機能させるためのプログラムである。
このようなプログラムにおいて、上記コンピュータを、発音状態の現状を表わすチェックデータを作成するチェックデータ作成手段と、上記送信バッファに上記チェックデータを記録できるだけの空き容量があるか否か判定する判定手段と、その手段が空き容量があると判定した場合に上記チェックデータを上記送信バッファに記録する第2の記録手段として機能させるためのプログラムをさらに含めるとよい。
【発明の効果】
【0006】
以上のようなこの発明のMIDIデータ送信装置によれば、MIDIデータの無線送信を行う場合において、高いリアルタイム性を得られるようにすることができる。
また、この発明のプログラムによれば、コンピュータを上記の制御装置として機能させてその特徴を実現し、同様な効果を得ることができる。
【発明を実施するための最良の形態】
【0007】
以下、この発明を実施するための最良の形態を図面に基づいて具体的に説明する。
まず、図1に、この発明のMIDIデータ送信装置の実施形態と、そのMIDIデータ送信装置から送信されるMIDIデータを受信して処理するMIDIデータ処理装置とを備えた通信システムの構成例を示す。
なお、より具体的な例としては、MIDIデータ送信装置10はシンセサイザやキーボート等の電子楽器、MIDIデータ処理装置20はその電子楽器の奏者が座る椅子に音源とスピーカの機能を設けた装置等として構成することができる。電子楽器と椅子は、通常近接して配置されるため、このような構成とすると、MIDIデータ送信装置10とMIDIデータ処理装置20の間の通信障害を避けることが容易であり、この点で好ましいと言えるが、この構成に限られないことは、もちろんである。
【0008】
そして、図1に示すように、MIDIデータ送信装置10は、CPU11,ROM12,RAM13,検出回路14,無線通信部15を備え、これらがシステムバス17によって接続されている。
そして、CPU11は、このMIDIデータ送信装置10の動作を統括制御する制御手段であり、ROM12に記憶された所要のプログラムを実行することにより、検出回路14による操作子16の操作内容検出、その内容に従ったMIDIデータの生成、無線通信部15におけるMIDIデータの送信等の動作を制御するための処理を行うことができる。
【0009】
ROM12は、CPU11が実行する制御プログラム等を記憶する不揮発性記憶手段である。ROM12を、フラッシュメモリのような書き換え可能な記憶手段により構成し、制御プログラムをアップデートできるようにしてもよい。
RAM13は、一時的に記憶すべきデータを記憶したり、CPU11のワークメモリとして使用したりする記憶手段である。
【0010】
検出回路14は、操作子16により受け付けた操作内容を検出し、CPU11にその内容を通知する機能を有する。そして、操作子16は、MIDIデータ送信装置10に対する操作を受け付けるためのものであり、モード設定等を行うためのキーやボタン等の他、演奏操作を行うための鍵盤やフットペダル等も含む。電子楽器の種類によっては、演奏操作子が弦、パッド、マウスピース等であってもよい。
無線通信部15は、後述する送信バッファに記録されているデータを外部装置に対して無線送信する機能を有する。ハードウェアとしては、発振器、変調器、フィルタ、アンプ、アンテナ等を有する公知の電波による無線通信手段を用いることができるが、これに限られることはない。また、無線信号を受信する機能は必須ではない。
【0011】
以上のようなMIDIデータ送信装置10は、操作子16、特にその中の演奏操作子により受け付けた操作内容に従って、ノートオンやノートオフを始めとする演奏内容に係るMIDIデータを生成し、外部装置に無線で送信することができる。
この場合において、MIDIデータに基づく発音を行う装置(ここではMIDIデータ処理装置20)の側で音色等の必要な設定が可能であれば、MIDIデータ送信装置10から送信するMIDIデータは、ノートオンとノートオフ、あるいは楽器の種類によってはピッチベンド等を含め、演奏内容に関するMIDIデータのみでよい。これに限られることはないが、このようにMIDIデータ送信装置10が送信するデータを限定しておけば、MIDIデータ処理装置20における処理を簡略化することができる。
また、MIDIデータ送信装置10には、音源部やサウンドシステムを設けていないので、必要な構成要素を最低限に抑え、デザインの自由度を高めることができる。ただ、MIDIデータ送信装置10に音源部やサウンドシステムを設けることは妨げられない。
【0012】
一方、MIDIデータ処理装置20は、CPU21,ROM22,RAM23,無線通信部24,表示回路25,音源部26を備え、これらがシステムバス29によって接続されている。
そして、CPU21は、このMIDIデータ処理装置20の動作を統括制御する制御手段であり、ROM22に記憶された所要のプログラムを実行することにより、表示回路25による表示部27の表示制御、音源部26によるMIDIデータに基づく波形データの生成及びサウンドシステム28への出力、無線通信部24におけるMIDIデータの受信等の動作を制御するための処理を行うことができる。
【0013】
ROM22及びRAM23の機能は、上述のROM12及びRAM13と同様なものである。
無線通信部24は、外部装置からの無線信号を受信し、この信号から送信されてきたデジタルデータを取り出して後述する受信バッファに記録する機能を有する。ハードウェアとしては、発振器、コンパレータ、フィルタ、アンプ、アンテナ等を有する公知の電波による無線通信手段を用いることができるが、これに限られることはない。また、無線信号を送信する機能は必須ではない。
【0014】
表示回路25は、CPU21からの指示に従って表示部27における表示を制御する回路である。また、表示部27は、液晶ディスプレイ(LCD)や発光ダイオード(LED)ランプ等によって構成され、MIDIデータ処理装置20の動作状態や設定内容等を表示するための表示手段である。
音源部26は、無線通信部24で受信したMIDIデータを基に、複数の発音チャンネルでデジタル音響信号である波形データを生成する音源手段である。また、生成した波形データを、スピーカ等の発音手段によるサウンドシステム28に供給し、その波形データに基づく発音を行わせる機能も有する。さらに、生成した波形データに対してミキシングやイコライジング等の処理を行う手段を設けてもよい。
以上のようなMIDIデータ処理装置20によれば、通信に使用する周波数帯域等の通信に係る設定を適切に行っておけば、MIDIデータ送信装置10が送信したMIDIデータを受信し、そのMIDIデータに基づく発音を行うことができる。
【0015】
ところで、図1に示したMIDIデータ送信装置10は、MIDIデータ処理装置20へのMIDIデータの送信に高いリアルタイム性を得られるよう、生成したMIDIデータを1バイト毎にパケット化してMIDIデータ処理装置20に送信するようにしている。この点がこの実施形態の特徴である。そこで、次に、MIDIデータ送信装置10(送信側)及びMIDIデータ処理装置20(受信側)においてCPU11,CPU21がそれぞれ実行する処理について、この点に関連する部分を中心に説明する。
【0016】
まず、図2に、送信側のMIDIデータ記録処理のフローチャートを示す。
MIDIデータ送信装置10のCPU11は、MIDIデータの生成のトリガとなる操作子16の操作を検出すると、図2のフローチャートに示す処理を開始する。
そして、まず操作子16の操作内容に応じたMIDIデータを生成し(S11)、そのMIDIデータを送信バッファに追加記録する(S12)。この追加記録とは、以前に記録したものが残っていればその後に記録すること、すなわち、生成順に記録することをいう。この記録時には、MIDIデータの発生タイミングを記録する必要はない。また、送信バッファは、無線通信部15により送信すべきデータを一時的に蓄積するためのバッファであり、RAM13、あるいは無線通信部15に備えるRAM等の、書き換え可能な記憶手段に設けることができる。そして、コスト低減のため、ここでは容量を64バイトとしている。
以上のステップS11及びS12の処理において、CPU11がそれぞれMIDIデータ生成手段及び記録手段として機能する。そして、ここまでの処理により、操作子16の操作内容に応じたMIDIデータを無線通信部15による送信の対象にすることができる。また、ここまでの処理は、MIDIデータ送信装置10の内部のバスを介したデータ転送であり、データの遅延や損失はほとんど問題にならないため、データの転送形式には特にこだわらなくてよい。
【0017】
また、ステップS12の後は、生成したMIDIデータがオンデータであれば、チェックデータ中の、生成したMIDIデータと対応するノートナンバのフラグを「1」にセットして処理を終了する(S13,S14)。一方、生成したMIDIデータがオフデータであれば、チェックデータ中の、生成したMIDIデータと対応するノートナンバのフラグを「0」にセットして処理を終了する(S15,S16)。どちらでもなければ、そのまま処理を終了する。以上のステップS13乃至S16の処理において、CPU11がチェックデータ作成手段として機能する。
【0018】
なお、オンデータとは、何らかの操作のオンを示すデータのことであり、ここでは、ノートオンデータ及び、コントロールチェンジデータのうち、ホールド(Hold)、ポルタメント(Pol)、ソステヌート(Sos)、ソフトペダル(Sof)のオンを示すデータとしている。また、オフデータは、逆に何らかの操作のオフを示すデータのことであり、ここでは、ノートオフデータ及び、コントロールチェンジデータのうち、上記のホールド等のオフを示すデータとしている。このどちらにも含まれないデータとしては、例えば音色変更のためのコントロールチェンジデータが挙げられる。
【0019】
また、図3に、上記のチェックデータの例を示す。
チェックデータは、操作子16の操作に応じた発音や効果の現状を示すデータであり、ここでは、この図に示すように、ノートナンバ毎にチェックデータの1ビットずつを順に割り当てて、そのノートナンバが発音中又は操作中か、そうでないかを、2値のフラグで示すデータとしている。またここでは、MIDIデータ送信装置10に88鍵の鍵盤を設けており、これら各鍵に対応する0〜87のノートナンバと、上記のホールド等のオン/オフを示す88〜91のノートナンバを用意している。また、1バイト(8ビット)単位でのデータ送信に好適なよう、92〜95までのダミーのノートナンバを用意し、データビット長が8の倍数になるようにしている。
【0020】
そして、図2のステップS14及びS16の処理で、ステップS11で生成したMIDIデータのうち、ノートオン/オフデータに含まれるノートナンバや、コントロールチェンジデータに含まれるコントロールチェンジナンバを参照して、対応するフラグのオン/オフを設定して、チェックデータを、処理時点の状態に合った内容に随時更新することができる。ただし、このようなチェックデータを用意することは必須ではないし、項目も、図3に示したものに限られない。音色等、必ずしも1ビットで表わせないデータをチェックデータに含めることも考えられる。しかし、このような場合でもチェックデータのビット長は8の倍数になるようにする。
【0021】
次に、図4に、送信側のチェックデータ記録処理のフローチャートを示す。
MIDIデータ送信装置10のCPU11は、適当な周期、例えば1秒毎に、図4のフローチャートに示す処理を開始する。そして、送信バッファに、チェックデータを記録できるだけの空き容量があるか否か確認し(S21)、あれば、その時点のチェックデータを含むMIDIエクスクルーシブデータを送信バッファに追加記録して(S22)、処理を終了する。なければ、記録は行わずに処理を終了する。
以上の処理において、ステップS21及びS22で、CPU11はそれぞれ判定手段及び第2の記録手段として機能する。そして、以上の処理により、定期的にチェックデータを無線通信部15による送信の対象にすることができる。ここでの処理も、内部のバスを介したデータ転送であり、図2の場合と同様、データの転送形式には特にこだわらなくてよい。
【0022】
なお、チェックデータ自体はMIDIデータではないが、MIDIエクスクルーシブデータのステータスバイトとエンドオブエクスクルーシブの間にはどのようなデータでも記載できるので、ここに記載することにより、MIDIデータとして送信できる。ここでは、受信側の処理を簡略化できるため、このようにしているが、チェックデータを他の形式で送信することも可能である。また、チェックデータ記録処理の起動タイミングは、データの送信に渋滞が生じない程度であれば、任意でよい。
【0023】
次に、図5に、送信側のデータ送信処理のフローチャートを示す。
MIDIデータ送信装置10のCPU11は、無線通信部15の無線通信に係る通信周期毎に、図5のフローチャートに示す処理を開始する。この無線周期の間隔は、1回のパケット送信に要する時間と同じかそれよりやや長い程度にするとよく、例えば0.1ミリ秒とすることができる。
そして、この処理においては、送信バッファに未送信のデータがあれば(S31)、ステップS32以下に進み、まず送信バッファに記録されているデータのうち最も古い1バイト分のデータを読み出し、送信バッファから削除する(S32)。送信バッファをFIFO(First In First Out)バッファとしておけば、単に送信バッファから1バイトのデータを読み出すだけでよい。
【0024】
その後、読み出した1バイトのデータにヘッダとフッタを付してパケットを生成する(S33)。ヘッダには、パケットの先頭を表わすデータと送信相手を特定するためのデータを含め、フッタには、パケットの末尾を表わすデータとデータのエラーを検出するためのCRC(Cyclic Redundancy Check)データ等のデータを含めるとよい。そして、作成したパケットを無線通信部15に渡して無線送信させて(S34)、処理を終了する。
なお、このパケットの送信に使用する手法は、適宜公知のものを採用できる。また、双方向通信を可能とすることは、必須ではなく、むしろ、1方向通信でも高速にパケットを転送可能な手法が好ましい。
【0025】
また、ステップS31で未送信のデータがなければ、そのまま処理を終了する。
以上の処理により、送信バッファに記録されているデータを、1バイト毎にパケット化して無線送信することができる。そして、以上の処理においては、CPU11及び無線通信部15が送信手段として機能する。また、この処理は、CPU11に代えて無線通信部15に設けた通信用のICチップに行わせるようにしてもよい。
【0026】
次に、図6に、受信側のデータ受信処理のフローチャートを示す
MIDIデータ処理装置20は、無線通信部24に備える受信用チップにより、起動中は常に図6の処理を行い、データの受信を監視するようにしている。
そして、この処理においては、自分宛のパケットが送信されてくるまでは待機し(S41)、送信されてくるとそのパケットを受信する(S42)と共に、受信したパケット中の、ヘッダ及びフッタ以外の1バイトのデータを受信バッファに追加記録して(S43)、ステップS41に戻って処理を繰り返す。
【0027】
以上の処理により、MIDIデータ処理装置20は、MIDIデータ送信装置10から送信されてくるMIDIデータを、受信順に受信バッファに記録することができる。
なお、パケットが自分宛か否かは、そのヘッダに含まれる送信相手の情報により判断することができる。また、受信バッファは、無線通信部24により受信したデータを一時的に蓄積するためのバッファであり、RAM23あるいは無線通信部24に備えるRAM等の書き換え可能な記憶手段に設けることができる。容量は、受信したデータを処理しきれずにオーバーフローする事態が起こらない程度とすればよい。
【0028】
次に、図7に、受信側のMIDI再生処理のフローチャートを示す。
MIDIデータ処理装置20において、CPU21は、MIDIクロックのタイミング毎に図7に示す処理を開始し、それまでに受信され受信バッファに蓄積されたMIDIデータ応じた発音等の処理を行うようにしている。MIDIクロックの周期は、例えばテンポが120のとき、5ミリ秒である。
【0029】
そして、この処理においては、受信バッファに未処理のデータが記録されていなければそのまま処理を終了するが(S51)、未処理のデータが記録されていた場合、未処理データの各バイトの最上位ビットの値を参照し、ステータスバイトとデータバイトの整合性を確認する(S52)。ここでは、MIDIデータ送信装置10が送信してくるデータはMIDIデータのみであるので、この確認も、受信バッファに記録されるデータはMIDIデータであるという前提で行ってよい。また、1イベント分のデータについて行えばよい。
【0030】
そして、問題なければ(S53)、受信バッファから、MIDIの規格においてステータスバイトとデータバイトから構成される1イベント分のデータ(複数バイト分のデータ)を読み出し、受信バッファからそのデータを削除する(S54)。そして、読み出したデータがMIDIエクスクルーシブデータ(ここでのMIDIエクスクルーシブデータとはチェックデータを表わしている)でなければ(S55)、読み出したMIDIイベントに基づいて音源部26に発音を制御させて(S56)、ステップS51に戻って処理を繰り返す。なお、発音制御の内容は、MIDIイベントがノートオンイベントであれば発音開始、ノートオフイベントであれば発音停止、コントロールチェンジイベントであればその内容に応じた発音処理のパラメータの変更等である。
【0031】
一方、読み出したデータがMIDIエクスクルーシブデータであれば(S55)、そのデータ長が適切か否か判断する(S57)。適切なデータ長は、MIDIデータの送信元となるMIDIデータ送信装置10の機種等に対応させて、予め定めたり、ユーザが設定できるようにしたりしておけばよい。
そして、データ長が適切であれば、そのデータからチェックデータを取り出し、音源部26における発音の状態をそのチェックデータの内容に合わせ(S58)、ステップS51に戻って処理を繰り返す。この処理には、音源部26において発音中の音のノートナンバが、発音のON/OFFを示すフラグが「1」のノートナンバと食い違っている場合に発音のON/OFFを変更したり、音源部26に設定されている発音処理のパラメータの値がチェックデータが示す値と食い違っている場合にパラメータの値を変更する処理等を含む。
【0032】
ステップS57でデータ長が適切でなかった場合には、チェックデータの一部が通信中にロストしている可能性があるので、音源部26の状態には反映させず、そのままステップS51に戻って処理を繰り返す。MIDIエクスクルーシブデータの場合には、形式の制約がゆるく、途中が抜けても整合性は問題ないと認識されることもあるので、このような処理を設けたものである。
【0033】
また、ステップS53で整合性が確認できなかった場合には、エラー処理を行った後(S59)、ステップS51に戻って処理を繰り返す。このエラー処理は、MIDIの標準機能として用意されているものでよく、受信バッファから不整合が生じたデータを削除する機能を含む。また、受信バッファの末尾でMIDIメッセージの受信が完了していないと思われる場合には、受信バッファのデータをそのまま残して図7に示す処理を終了するようにすることも考えられる。
【0034】
以上のような処理を行うことにより、MIDIデータ処理装置20は、MIDIクロックのタイミング毎に、それまでに受信して受信バッファに蓄積されているMIDIデータに従った発音を行うことができる。また、受信したチェックデータに従い、音源部26の発音の状態を修正することができる。
【0035】
また、MIDIデータ送信装置10及びMIDIデータ処理装置20においては、それぞれが図2乃至図7を用いて説明したような各処理を実行することにより、MIDIデータ送信装置10が操作子16により受け付けた操作内容に従った発音を、MIDIデータ処理装置の音源部26及びサウンドシステム28に行わせることができる。
【0036】
この場合において、これら装置間の通信周期や、MIDIデータ処理装置20におけるMIDIデータ処理の周期は、MIDIクロックの周期に対して十分短くすることができる。従って、CPU11がMIDIクロックの同一周期内に生成し、送信バッファに記録したMIDIデータは、概ね次のクロックタイミングまでにMIDIデータ処理装置20に送信され、次のクロックタイミングで音源部26による発音処理に供される。従って、MIDIデータにタイミングデータを付してタイミング管理を行わなくても、結果的に適切なタイミング管理が行われるようにすることができる。また、必要な処理ステップ数を低減できるので、リアルタイム性実現の観点から好ましいと言える。
【0037】
また、データの送信は、常にデータを1バイト毎にパケット化して行うようにしているので、データ長の異なるMIDIメッセージを送信する場合でも、パケットの生成や解析の際に、データ長の管理を行う必要がなく、処理を簡略化して高速化を図ることができる。さらに、処理を定型化し、送信するデータの内容に応じて所要時間が変わり、発音タイミングがずれてしまうような事態を防止できる。さらにまた、MIDIデータは必ず1バイトの倍数のデータ長であるので、パケットのデータ部分に空きが生じることもなく、効率的な転送が可能である。そして、これらのことにより、MIDIデータ送信装置10とMIDIデータ処理装置20との間の通信について、高いリアルタイム性を実現することができる。
【0038】
さらに、1バイト毎にパケット化を行うようにすれば、1つのパケットに複数のMIDIデータが含まれることがないため、1回のパケットロストで複数のMIDIデータが失われてしまうことを防止でき、このことにより、音源部26による発音に重大な欠陥が生じることを防止できる。
【0039】
また、定期的にMIDIデータ送信装置10からMIDIデータ処理装置20にチェックデータを送信し、そのチェックデータに基づいて音源部26の発音の状態を修正させるようにしているので、通信異常等により一部のパケットがロストし、そのパケットを含むMIDIデータを発音に反映させられなかった場合でも、MIDIデータ送信装置10側での操作内容とMIDIデータ処理装置20側での発音の食い違いを速やかに修正することができる。
またこの際、MIDIデータ送信装置10において、送信バッファにチェックデータを記録できるだけの空き容量がある場合のみ、これを送信バッファに記録するようにしているため、チェックデータの送信のためにMIDIデータの送信が滞るような事態を防止できる。
【0040】
以上でこの実施形態の説明を終了するが、装置の構成や具体的な処理内容、データの形式等が上述の実施形態で説明したものに限られないことはもちろんである。
例えば、MIDIデータ処理装置20において、ステータスバイトとデータバイトの整合性の確認は、受信したパケットに含まれるデータを受信バッファに記憶させる前に行い、整合性に問題がある場合には、受信バッファにデータを記録しないようにしたり、既に記録してあるデータを削除したりするようにしてもよい。
また、MIDIデータ処理装置20にも操作子を設け、その操作子の操作に従ってMIDIデータを生成し、音源部26に渡して音色やテンポ等を設定できるようにしてもよい。
【0041】
また、MIDIデータ送信装置10から送信されてくるMIDIデータを受信するMIDIデータ処理装置20を、複数設けてもよい。この場合各MIDIデータ処理装置20は基本的には同じ音を発音することになるが、MIDIデータ処理装置20側で設定が可能な項目については内容を変更することも可能であり、例えば装置毎に音色を変えることが考えられる。
さらに、MIDIデータ送信装置10が送信するMIDIデータが、操作子16の操作に応じて生成するもの以外であってもよい。例えば、自動伴奏やアルペジオ、あるいは自動演奏といった機能により、CPU11が、予め用意されたプログラムに従って生成したり、予め用意されたデータを読み出して出力したりするものであってもよい。また、これらと、操作子16の操作に応じて生成したものとの混合あるいは組み合わせであってもよい。
【0042】
また、MIDIデータ送信装置10は、電子楽器以外にも、MIDIデータを生成する機能を備えた電子音楽装置であればどのようなものにも適用可能である。例えば、MIDIシーケンサやカラオケ装置等に適用可能であるし、適当なアプリケーションを備えたゲーム装置、携帯電話、PC等の装置にも適用することが考えられる。
また、MIDIデータ処理装置20についても、MIDIデータを受信して処理可能な装置であればどのような装置にも適用可能である。例えば、スピーカに通信機能と音源機能を設けたような装置としてもよいし、発音機能も必須ではなく、受信したMIDIデータを単に記録するような装置でも良い。また、MIDIデータ送信装置10を、MIDIデータ処理装置20としても機能させられるように構成し、スイッチ等によりこれらの機能を切り替えることができるようにしてもよい。
また、これらの装置に備える無線通信手段も、電波を利用するものに限られず、例えば、赤外線等の光線を利用するものであってもよい。
また、これらの変形及び実施例の説明において述べた変形は、矛盾しない範囲で任意に組み合わせて適用可能である。
【0043】
また、この発明のプログラムは、コンピュータにハードウェアを制御させて上述したようなMIDIデータ送信装置として機能させるためのプログラムであり、予めROMやHDD等に記憶させておくほか、CD−ROMあるいはフレキシブルディスク等の不揮発性記録媒体(メモリ)に記録して提供し、そのメモリからこのプログラムをRAMに読み出させてCPUに実行させたり、プログラムを記録した記録媒体を備える外部機器あるいはプログラムをHDD等の記憶手段に記憶した外部機器からダウンロードして実行させたりしても、同様の効果を得ることができる。
【産業上の利用可能性】
【0044】
以上の説明から明らかなように、この発明のMIDIデータ送信装置又はプログラムによれば、MIDIデータの無線送信を行う場合において、高いリアルタイム性を得られるようにすることができる。
従って、この発明を適用することにより、生成したMIDIデータに基づく処理を、送信先の装置において高い精度で行わせることができるようなMIDIデータ送信装置を実現することができる。
【図面の簡単な説明】
【0045】
【図1】この発明のMIDIデータ送信装置の実施形態と、そのMIDIデータ送信装置から送信されるMIDIデータを受信して処理するMIDIデータ処理装置とを備えた通信システムの構成例を示すブロック図である。
【図2】図1に示した通信システムにおいて送信側で実行するMIDIデータ記録処理のフローチャートである。
【図3】図1に示した通信システムにおいて使用するチェックデータの例を示す図である。
【図4】図1に示した通信システムにおいて送信側で実行するチェックデータ記録処理のフローチャートである。
【図5】同じくデータ送信処理のフローチャートである。
【図6】図1に示した通信システムにおいて受信側で実行するデータ受信処理のフローチャートである。
【図7】同じくMIDI再生処理のフローチャートである。
【符号の説明】
【0046】
10…MIDIデータ送信装置、11,21…CPU、12,22…ROM、13,23…RAM、14…検出回路、15,24…無線通信部、16…操作子、20…MIDIデータ処理装置、25…表示回路、26…音源部、27…表示部、28…サウンドシステム




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013