JP3149329B2 - Midiデータの送信装置および受信装置 - Google Patents

Midiデータの送信装置および受信装置

Info

Publication number
JP3149329B2
JP3149329B2 JP02123495A JP2123495A JP3149329B2 JP 3149329 B2 JP3149329 B2 JP 3149329B2 JP 02123495 A JP02123495 A JP 02123495A JP 2123495 A JP2123495 A JP 2123495A JP 3149329 B2 JP3149329 B2 JP 3149329B2
Authority
JP
Japan
Prior art keywords
data
transmission
reception
midi data
note
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
JP02123495A
Other languages
English (en)
Other versions
JPH08194476A (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.)
Kawai Musical Instrument Manufacturing Co Ltd
Original Assignee
Kawai Musical Instrument Manufacturing Co Ltd
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 Kawai Musical Instrument Manufacturing Co Ltd filed Critical Kawai Musical Instrument Manufacturing Co Ltd
Priority to JP02123495A priority Critical patent/JP3149329B2/ja
Priority to US08/452,173 priority patent/US5670732A/en
Publication of JPH08194476A publication Critical patent/JPH08194476A/ja
Application granted granted Critical
Publication of JP3149329B2 publication Critical patent/JP3149329B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、ピッチ情報、ベロシテ
ィー情報、音色情報およびコントロール情報などを含ん
だ演奏情報の伝達に用いられるMIDI(Musical Inst
rument Digital Interface)信号を、キーボードやMI
DIギター等の演奏装置、音源装置およびシーケンサな
どのMIDI楽器の相互間で送信または受信するMID
Iデータの送信装置および受信装置に関するものであ
る。
【0002】
【従来の技術】この種のMIDIデータの送信装置およ
び受信装置として、出願人は、演奏装置(例えば、キー
ボード)に接続され、MIDIデータを送信する送信装
置と、発音装置に接続され、MIDIデータを受信する
受信装置とを既に提案している(特願平6−7246
3)。
【0003】送信装置は、MIDIデータを記憶する伝
送データ一時記憶部と、伝送記憶部に記憶されたMID
Iデータを送信する送信部とを備えている。この送信装
置では、演奏装置からMIDIデータが出力されると、
MIDIデータは、伝送データ一時記憶部に一時的に記
憶された後、いわゆるFIFO方式(先入れ先出し方
式)によって送信部に出力され、送信部から無線信号に
よって送信される。一方、受信装置は、無線信号によっ
て送信されてきたMIDIデータを受信する受信部を備
えており、受信したMIDIデータを、音源装置に出力
する。これにより、演奏装置から音源装置にMIDIデ
ータが伝達され、例えば、演奏装置からノートオンデー
タが出力されると、音源装置は、そのノートナンバーの
楽音を発音し、そのノートナンバーのノートオフデータ
が演奏装置から出力されたときに、その楽音をノートオ
フしている。
【0004】この場合、MIDIデータは、MIDI規
格によって規定されている31.25KHzの伝送速度
で送信装置に入力されてくるが、送信部は、法規制の関
係上、送信周波数帯域によっては、それよりもはるかに
低い伝送速度(例えば、4.8KHz)でしか送信する
ことができない。したがって、MIDIデータが連続し
て入力されてくるときには、そのすべてのMIDIデー
タを送信することができない。しかし、MIDIデータ
は、演奏装置から連続して出力されてくるのではなく、
ノートオンやノートオフされたときなどにのみ断続的に
出力される。このため、ある程度の記憶容量を持った伝
送データ一時記憶部に一時的に記憶させ、MIDIデー
タが入力されていない時間にも送信することによって、
すべてのMIDIデータを送信できるようにしている。
【0005】
【発明が解決しようとする課題】ところが、このような
従来のMIDI楽器システムには、以下のような改善点
があった。すなわち、通常の演奏では、MIDIデータ
の入力時との間に多少の時間差が生じるだけで、すべて
のMIDIデータを送信することができるが、速いビー
トの曲で、ノートオン/ノートオフが短時間で繰り返さ
れるような場合には、すべてのMIDIデータを送信す
ることができない場合がある。これは、送信装置の伝送
速度よりも、送信装置に入力されてくる伝送速度の方が
速いため、伝送データ一時記憶部に蓄積記憶されるMI
DIデータの量が徐々に増加し、ついには、伝送データ
一時記憶部の記憶容量をオーバーしてしまうことがある
からである。この場合には、例えば、ノートオンしてい
るノートナンバーをノートオフすることができなくな
り、音源装置で、楽音が発音されっ放しになってしま
う。
【0006】本発明は、かかる改善点に鑑みてなされた
ものであり、MIDIデータの伝送速度よりも遅い速度
でMIDIデータを送受信する場合において、ノートオ
ンデータの出しっ放しを確実に防止できるMIDIデー
タの送信装置および受信装置を提供することを目的とし
ている。
【0007】
【課題を解決するための手段】上記目的を達成すべく請
求項1記載のMIDIデータの送信装置は、MIDIデ
ータ出力装置から出力された、演奏情報を伝達するため
のMIDIデータを記憶するMIDIデータ記憶部と、
記憶されているMIDIデータを無線信号によって送信
する送信部とを備えるMIDIデータの送信装置であっ
て、MIDIデータ記憶部の空容量をチェックする空容
量チェック部と、空容量チェック部によってMIDIデ
ータ記憶部の空容量が所定量以下になったとチェックさ
れたときに、すべてのノートをノートオフさせるための
オールノートオフデータを送信部から送信させるオール
ノートオフデータ出力部とを備えていることを特徴とす
る。
【0008】請求項2記載のMIDIデータの受信装置
は、請求項1に記載のMIDIデータの送信装置から
線信号によって送信された、演奏情報を伝達するための
MIDIデータを受信し、受信したMIDIデータを、
MIDIデータに基づいて信号処理を行うMIDIデー
タ処理装置に出力するMIDIデータの受信装置であっ
て、受信したMIDIデータのうちノートオンしている
ノートナンバーを記憶するノートオンナンバー記憶部
と、MIDIデータの送信装置から送信されたオールノ
ートオフデータを受信したときに、ノートオンナンバー
記憶部に記憶されているすべてのノートナンバーに対応
するノートオフデータをMIDIデータ処理装置に出力
するノートオフ制御部とを備えていることを特徴とす
る。
【0009】
【作用】請求項1記載のMIDIデータの送信装置によ
れば、MIDIデータ出力装置からMIDIデータが出
力されると、MIDIデータは、MIDIデータ記憶部
によって記憶され、送信部が、記憶されているMIDI
データを無線信号によって送信する。この場合、空容量
チェック部が、MIDIデータ記憶部の空容量をチェッ
クし、空容量が所定量以下になったとチェックされたと
きに、オールノートオフデータ出力部が、すべてのノー
トをノートオフさせるためのオールノートオフデータを
送信部に送信させる。この結果、MIDIデータ記憶部
の空容量がなくなり、例えば、ノートオフデータをMI
DIデータ記憶部を介して送信することができなくなっ
た場合でも、受信側での楽音の鳴りっ放しが防止され
る。
【0010】請求項2記載のMIDIデータの受信装置
によれば、ノートオンナンバー記憶部が、受信したMI
DIデータのうちノートオンしているノートナンバーを
記憶し、請求項1に記載のMIDIデータの送信装置か
ら無線信号によって送信されたオールノートオフデータ
を受信したときに、ノートオフ制御部が、ノートオンデ
ータ記憶部に記憶されているすべてのノートナンバーに
対応するノートオフデータをMIDIデータ処理装置に
出力する。この結果、ノートオフデータが送信されてこ
ない場合であっても、音源装置などのMIDIデータ処
理装置に対してノートオフデータを出力することができ
るので、音源装置などでの楽音の鳴りっ放しが防止され
る。
【0011】
【実施例】以下、添付図面を参照して、本発明の実施例
に係るMIDIデータの送信装置および受信装置につい
て説明する。
【0012】図1は、本実施例に係るMIDIデータの
送信装置および受信装置を適用したMIDI楽器システ
ム1の構成図である。同図に示すように、このMIDI
楽器システム1は、4台のキーボード(MIDIデータ
出力装置)2a,2b,2c,2d(以下、キーボード
を区別しない場合には、「キーボード2」とする)を備
えている。各キーボード2は、音源装置(MIDIデー
タ処理装置、図示せず)と送受信装置3を備えており、
各送受信装置3には、無線信号の送受信のためのアンテ
ナ4が取り付けられている。
【0013】このMIDI楽器システム1では、各キー
ボード2は、他の複数のキーボード2に無線信号を送信
することにより、その複数のキーボード2の発音を制御
できるように構成されている。この結果、例えば、演奏
にアンサンブル効果を持たせたり、キーボード2毎に異
なる音色や音質を予め設定しておき、希望するキーボー
ド2に演奏させたりすることができる。具体的には、同
図に示すように、キーボード2aが送信する無線信号の
送信周波数をf1(Ch. 1)に設定し、キーボード2
b,2cが受信する無線信号の受信周波数をf1(C
h. 1)に設定しておくことにより、キーボード2aで
演奏を行えば、キーボード2aが、MIDIデータに基
づいて変調した無線信号を送信し、キーボード2b,2
cが、この無線信号を受信すると共にMIDIデータに
復調し、復調したMIDIデータに基づいて発音を行
う。また、キーボード2dの送信周波数、およびキーボ
ード2cの受信周波数をそれぞれf2(Ch. 2)に設
定することにより、キーボード2aがキーボード2b
を、および、キーボード2dがキーボード2cをそれぞ
れ別個に発音制御することもできる。
【0014】前述した音源装置は、これを内蔵している
キーボード2の押鍵に対応した楽音や、他のキーボード
2から送信されるMIDIデータに対応した楽音を生成
する。送受信装置3は、送信モードまたは受信モードの
いずれか一方のモードに切り替え設定できるようになっ
ており、送信モードでは、キーボード2から出力され
る、ノートオンデータやノートオフデータなどの演奏デ
ータに対応したMIDIデータで変調した無線信号を他
のキーボード2に送信する一方、受信モードでは、他の
キーボード2から送信された無線信号を受信すると共
に、受信した無線信号からMIDIデータを復調する。
【0015】次に、図2に示す送受信装置3のブロック
図を参照して、送受信装置3の構成について説明する。
同図に示すように、送受信装置3は、CPU(空容量チ
ェック部、オールノートオフデータ出力部、ノートオフ
制御部)11、制御データ記憶部12、スイッチ部1
3、MIDIデータ受信部14、伝送データ一時記憶部
(MIDIデータ記憶部)15、制御信号出力部16、
送信データ出力部17、送受信部(送信部)18、受信
データ入力部19、MIDIデータ送信部20、アサイ
ナ(ノートオンナンバー記憶部)21、第1クロック発
生部22、および第2クロック発生部23を備えてい
る。
【0016】CPU11は、送受信装置3のすべての動
作を制御するものであり、具体的には、スイッチ部13
のスイッチのオン/オフの検出、キーボード2との間で
送受されるMIDIデータの入出力制御、入力されたM
IDIデータに基づくMIDIデータの伝送データ一時
記憶部15への書込みおよび読出し、伝送データ一時記
憶部15のFIFOの空容量チェック、オールノートオ
フデータの出力制御、ならびに、送受信部18に対して
の、送受信切替制御、送受信周波数制御および送受信デ
ータの伝送制御などを行う。
【0017】制御データ記憶部12は、CPU11の動
作プログラムや、複数のチャンネルを有する送受信部1
8の各チャンネルナンバー毎の送信および受信のチャン
ネル周波数制御データを記憶する。
【0018】スイッチ部13は、送信モードスイッチ、
受信モードスイッチ、自動切替モードスイッチ、演奏モ
ードスイッチ、およびチャンネルスイッチ(いずれも図
示せず)を備えている。
【0019】送信モードスイッチおよび受信モードスイ
ッチは、送受信装置3を、送信モード(送信状態)およ
び受信モード(受信状態)にそれぞれ設定するためのス
イッチであり、いずれかのスイッチがオンされていると
きに、送受信装置3はマニュアルモードとなる。自動切
替モードスイッチは、送受信装置3を、自動切替モード
に設定するためのスイッチであり、自動切替モードで
は、送受信装置3は、送信モードまたは受信モードに自
動的に切り替えられる。なお、上記送信モードスイッチ
および受信モードスイッチは、自動切替モードスイッチ
に優先して適用されるようになっており、自動切替モー
ドスイッチがオンされて自動切替モードになっている場
合であっても、送信モードスイッチまたは受信モードス
イッチがオンされると、送受信装置3は、優先してマニ
ュアルモードに設定され、送信モードまたは受信モード
になる。演奏モードスイッチは、送受信部18をキーボ
ード2から切り離して、キーボード2を単独のMIDI
楽器として動作させるときにオンされるスイッチであ
り、以上3つのスイッチに優先して適用される。
【0020】チャンネルスイッチは、送受信部18の送
受信チャンネル(Ch.)として複数のチャンネルのうち
のいずれかを選択する場合に使用される。
【0021】MIDIデータ受信部14は、インターフ
ェース回路であって、キーボード2から出力されたシリ
アルデータのMIDIデータをパラレルのMIDIデー
タに変換する。
【0022】伝送データ一時記憶部15は、例えば、4
KバイトのいわゆるFIFO(First-in First-out)メ
モリで構成されており、送受信装置3が送信モードのと
きには、MIDIデータ受信部14を介してキーボード
2本体から出力されたMIDIデータが、伝送データ一
時記憶部15に順次書き込まれる。書き込まれたMID
Iデータは、CPU11により書込み順に読み出され、
送受信部18から無線信号によって、他のキーボード2
へ送信される。一方、送受信装置3が受信モードのとき
には、送受信部18および受信データ入力部19を介し
て、他のキーボード2から送信されたMIDIデータ
が、同じく伝送データ一時記憶部15に順次書き込まれ
る。書き込まれたMIDIデータは、CPU11により
書込み順に読み出され、MIDIデータ送信部20から
キーボード2へ出力される。なお、この伝送データ一時
記憶部15では、次にMIDIデータを書き込むべきF
IFOのアドレスが書込みポインタで示され、次に読み
出すべきMIDIデータのFIFOのアドレスが読出し
ポインタで示されるようになっている。また、FIFO
に何等MIDIデータが書き込まれていないときには、
CPU11は、内蔵のFIFOエンプティフラグをセッ
トするようになっている。
【0023】この伝送データ一時記憶部15では、送信
時には、読み出す速度よりも書き込まれる速度の方が速
いため、一度に大量のMIDIデータがMIDIデータ
受信部14を介して入力された場合には、空容量がなく
なり、記憶することができなくなってしまうことがあ
る。また、記憶することができても、読み出し速度が遅
いため、送信する相手方の音源装置などで演奏に遅れが
生じてしまうことがある。このため、FIFOメモリの
空容量が、CPU11によって常にチェックされてお
り、空容量が所定量以下になったとチェックされたとき
には、CPU11が、FIFOメモリに記憶されている
すべてのMIDIデータをクリアし、代わりにすべての
ノートをノートオフさせるためのオールノートオフデー
タ(FEh)をFIFOメモリに書き込む。そして、オ
ールノートオフデータは、CPU11によって読み出さ
れ、送受信部18から無線信号で送信される。
【0024】制御信号出力部16は、CPU11から出
力された、送信制御信号(プレス信号)、送信チャンネ
ル制御データ、および受信チャンネル制御データを送受
信部18に出力する。
【0025】送信データ出力部17は、伝送データ一時
記憶部15から読み出されたMIDIデータに基づくパ
ラレルのMIDIデータを、シリアルのMIDIデータ
に変換する。
【0026】送受信部18は、無線信号を送信する送信
部(送信装置)と、無線信号を受信する受信部(受信装
置)とを備えている。送信部は、送受信装置3に入力さ
れたMIDIデータに基づいて、高周波信号(被変調信
号)を周波数変調して無線信号を生成すると共にアンテ
ナ4から出力する。受信部は、アンテナ4を介して他の
キーボード2から送信された無線信号を受信すると共
に、無線信号をMIDIデータに復調して受信データ入
力部19に出力する。
【0027】受信データ入力部19は、送受信部18の
受信部から出力されるシリアルのMIDIデータをパラ
レルのMIDIデータに変換する。
【0028】MIDIデータ送信部20は、伝送データ
一時記憶部15から読み出されたMIDIデータに基づ
くパラレルのMIDIデータを、シリアルのMIDIデ
ータに変換し、キーボード2へ出力する。
【0029】アサイナ21は、メモリであって、MID
Iデータ受信部14および受信データ入力部19に入力
された、すべてのMIDIチャンネル毎のすべてのノー
トナンバーに対して、オン/オフの状態を記憶する。こ
のため、MIDIチャンネルのすべてのキーは、アサイ
ナ21のアドレス値とビット値により決定される記憶領
域に予め対応させてあり、あるキーナンバーのノートオ
ンデータが、MIDIデータ受信部14または受信デー
タ入力部19を介して送受信装置3に入力されると、C
PU11によって、アサイナ21の所定の記憶領域にデ
ータ「1」が書き込まれるようになっている。
【0030】第1クロック発生部22は、MIDIデー
タ受信部14の読み込み用サンプリングクロック、およ
びMIDIデータ送信部20の出力用同期クロックを生
成する。また、第2クロック発生部23は、送信データ
出力部17へMIDIデータを出力するための同期用ク
ロック、および受信データ入力部19の読み込み用サン
プリングクロックを生成する。
【0031】次いで、上述した送受信部18の構成につ
いて、図3を参照して説明する。
【0032】送受信部18は、FM送受信機であって、
送受信周波数が430MHz帯、送信出力が10mW、
変調速度が約4.8KHz、送受信チャンネルが40チ
ャンネルに構成され、同図に示すように、ローパスフィ
ルタ31、アンテナスイッチ32、受信部33、送信部
34、および第1局部発振部35を有している。
【0033】ローパスフィルタ31は、受信モード時に
おいては、妨害波の受信を防止し、送信モード時におい
ては、不要波の送信を防止する。アンテナスイッチ32
は、アンテナ4の送受信切替えを行う。つまり、ローパ
スフィルタ31およびアンテナスイッチ32を介して、
アンテナ4を、受信モード時には受信部33に、送信モ
ード時には送信部34にそれぞれ接続する。
【0034】受信部33は、受信RFアンプ36、第1
ミキサー37、第1IFフィルタ38、第1IFアンプ
39、受信用IC40、ローパスフィルタ41、および
コンパレータ42から構成されている。このうち、受信
RFアンプ36は、入力した無線信号を所定の利得で増
幅する。第1ミキサー37は、無線信号と後述するVC
O(Variable Voltage Control)44からの第1局部発
振信号とをミキシングして中間周波信号(IF信号)を
生成する。第1IFフィルタ38は、クリスタルフィル
タで構成され、受信IF回路の選択度を向上させる。第
1IFアンプ39は、IF信号を所定利得で増幅する。
受信用IC40は、内蔵の第2IFフィルタによりIF
回路の選択度を向上させると共に、内蔵アンプによりI
F信号を増幅した後、内蔵の第2局部発振部の第2局部
発振信号とIF信号をミキシングし、クォドラチャ検波
により低周波信号に復調する。ローパスフィルタ41
は、受信用IC40から出力された低周波信号をろ波
し、コンパレータ42は、ろ波された低周波信号を波形
成形したMIDIデータを生成する。
【0035】送信部34は、送信データ出力部17から
出力される送信データ信号の周波数帯域幅を制限するロ
ーパスフィルタ43と、第1局部発振部35を構成する
と共に変調部として機能するVCO44と、VCO44
により変調された無線信号を増幅する送信RFアンプ4
5とを有して構成されている。
【0036】第1局部発振部35は、受信部33と送信
部34のチャンネル発振器として共通して用いられるも
のであって、送信部上述したVCO44と、VCO44
の発振を制御するPLL(Phse Locked Loop)用IC4
6と、PLL用IC46から出力される発振制御電圧を
平滑するループフィルタ47とから構成されている。P
LL用IC46は、制御信号出力部16から出力される
送信チャンネル制御信号および受信チャンネル制御信号
に基づいて、送信時および受信時におけるチャンネル周
波数でVCO44を発振させる。
【0037】次に、送受信装置3の動作概要について、
前述した自動切替モードおよびマニュアルモードに分け
て説明する。
【0038】自動切替モードでは、通常、送受信装置3
は、送受信部18を含めて受信モードに設定することに
より、MIDIデータ受信部14を介してのキーボード
2からのMIDIデータの入力、および、送受信部18
を介しての他のキーボード2からのMIDIデータの入
力のいずれも受付け可能な待機状態になっている。この
待機状態で、MIDIデータ受信部14を介してキーボ
ード2からMIDIデータが入力されると、送受信部1
8も含めて送受信装置3全体を自動的に送信モードに設
定し、入力したMIDIデータを、送信データ出力部1
7および送受信部18を介して他のキーボード2に送信
する。一方、送受信部18および受信データ入力部19
を介して、他のキーボード2からMIDIデータが入力
されると、送受信部18を含めて送受信装置3全体を自
動的に受信モードに設定し、入力したMIDIデータを
MIDIデータ送信部20を介してキーボード2に出力
する。
【0039】マニュアルモードでは、送信モードおよび
受信モードのいずれかを択一的に選択可能になってい
る。つまり、マニュアルモードにおいては、キーボード
2を演奏装置または音源装置のいずれかに固定して使用
することができる。マニュアルモード時に、送信モード
スイッチがオンされているときには、送受信装置3が送
信モードに設定され、この後に、MIDIデータ受信部
14を介してキーボード2からMIDIデータが出力さ
れると、送信データ出力部17および送受信部18を介
して、他のキーボード2にMIDIデータを送信する。
一方、受信モードスイッチがオンされているときには、
送受信装置3が受信モードに設定され、この後に、送受
信部18および受信データ入力部19を介して、他のキ
ーボード2からMIDIデータが入力されると、入力し
たMIDIデータをMIDIデータ送信部20を介して
キーボード2に出力する。
【0040】次に、図4〜15のフローチャートを参照
して、送受信装置3の動作について具体的に説明する。
なお、以下に説明する処理は、特にことわりがない限
り、すべてCPU11によって行われる。また、これら
の処理には、次に掲げる種々のフラグが用いられる。こ
れらの左欄のフラグは、CPU11によってセットされ
ているときに、送受信装置3が、右欄の状態になってい
ることをそれぞれ示すものである。 送受信フラグ:送信モード状態 自動切替モードフラグ:自動切替モード状態 FIFOエンプティフラグ:FIFOの記憶データが空
の状態 切替可能フラグ:自動切替モードになった直後の状態、
または、自動切替モード時において、受信または送信が
一旦終了してから、次の送信または受信が開始されるま
での間の待機状態
【0041】最初に、図4に示すメインルーチンについ
て説明する。
【0042】メインルーチンは、常時、繰り返し行われ
るルーチンである。このルーチンでは、最初に、送受信
フラグがセットされているか否かをチェックする(ステ
ップS1)。送受信フラグがセットされている場合、つ
まり、マニュアルモード時において送信モードスイッチ
がオンされている場合や、自動切替モード時において送
信モードになっている場合には、後述する送信データ出
力処理を行い(ステップS2)、セットされていない場
合、つまり、マニュアルモード時において、送信スイッ
チが押されていない場合や、自動切替モード時において
送信モードになっていない場合には、後述するMIDI
データ出力処理を行う(ステップS3)。
【0043】両処理のいずれかを行った後に、アサイナ
書込み処理(ステップS4)を行った後、自動切替モー
ドフラグがセットされているか否かをチェックする(ス
テップS5)。自動切替モードフラグがセットされてい
る場合、つまり、送受信装置3が自動切替モードになっ
ている場合には、アサイナチェック処理を行った(ステ
ップS6)後、ステップS1に戻って、再びメインルー
チンを繰り返す。上記ステップS5において、自動切替
モードフラグがセットされていない場合、つまり、マニ
ュアルモードになっている場合には、ステップS1に戻
って、再びメインルーチンを繰り返す。
【0044】次に、上述したステップS2の送信データ
出力処理(ステップS2)について、図5(a)を参照
して説明する。この処理は、キーボード2から送られて
きたMIDIデータを他のキーボード2に送信する処理
である。最初に、FIFOエンプティフラグがセットさ
れているか否かをチェックする(ステップS11)。F
IFOエンプティフラグがセットされている場合、つま
り、FIFOに記憶されているMIDIデータが空の場
合には、このルーチンを終了してメインルーチンに戻
る。
【0045】ステップS11において、FIFOエンプ
ティフラグがセットされていない場合、つまり、FIF
OにMIDIデータが入っている場合には、FIFOの
読出しポインタ値を読み出し(ステップS12)、読出
しポインタ値で示されるFIFOのアドレスに記憶され
ているMIDIデータを読み出す(ステップS13)。
次に、読み出したMIDIデータを送信データ出力部1
7に出力する(ステップS14)と共に、読出しポイン
タの値を更新する(ステップS15)。次いで、更新し
た値が書込みポインタ値と一致するか否かをチェックす
る(ステップS16)。一致した場合には、FIFOに
は、MIDIデータが残っていないと判別して、FIF
Oエンプティフラグをセットした(ステップS17)
後、メインルーチンに戻る。また、一致しない場合に
は、FIFOにMIDIデータが残っていると判別し
て、FIFOエンプティフラグをセットせずにメインル
ーチンに戻る(ステップS16)。
【0046】次に、前述したメインルーチンのMIDI
データ出力処理(ステップS3)について、図5(b)
を参照して説明する。この処理は、他のキーボード2か
ら送信されてきたMIDIデータをキーボード2に出力
する処理である。この処理は、前述した送信データ出力
処理とほぼ同じ処理であり、送信データ出力処理と異な
るのは、送信データ出力処理のステップS14において
FIFOから読み出したMIDIデータを、送信データ
出力部17ではなく、MIDIデータ送信部20に出力
する点にある。つまり、この処理においては、読み出し
たMIDIデータは、MIDIデータ送信部20に出力
する(ステップS18)ことにより、キーボード2へM
IDIデータを出力する。
【0047】次に、自動切替モードの設定ルーチンにつ
いて、図6を参照して説明する。このルーチンは、自動
切替モードスイッチが押されたときに割込み処理により
送受信装置3を自動切替モードに設定する処理であっ
て、FIFOエンプティフラグを除く他のすべてのフラ
グを所定の状態にセットまたはリセットする。
【0048】最初に、チャンネルスイッチにより指定さ
れたチャンネルナンバーを読み出し(ステップS2
1)、このチャンネルナンバーに対応する受信チャンネ
ル制御データ(受信モード時におけるVCO44の第1
局部発振周波数データ)を制御データ記憶部12から読
み出す(ステップS22)。次いで、読み出した受信チ
ャンネル制御データに基づく受信チャンネル制御信号
を、制御信号出力部16を介して送受信部18に出力す
る(ステップS23)。この状態では、受信データ入力
部19は受信データの入力が可能になっており、受信デ
ータ入力部19からの受信データ入力部受信割込みが許
可される(ステップS24)。
【0049】また、この状態では、MIDIデータ受信
部14もMIDIデータの受信が可能になっており、M
IDIデータ受信部14からのMIDIデータ受信部受
信割込みも許可される(ステップS25)。
【0050】次いで、送受信フラグをリセットして(ス
テップS26)送受信装置3を受信モードにすると共
に、自動切替モードフラグのセット(ステップS2
7)、および、切替可能フラグのセット(ステップS2
8)を行う。以上により、この自動切替モード設定ルー
チンを終了して、メインルーチンに戻る。
【0051】次に、自動切替モード設定ルーチンにおい
て許可した、受信データ入力部受信割込み処理およびM
IDIデータ入力部受信割込み処理について、図7、8
を参照して説明する。なお、これらの割込み処理は、マ
ニュアルモード時における後述する受信切替処理および
送信切替処理(図14(a),(b)参照)においても
行われる。
【0052】最初に、受信データ入力部受信割込み処理
について説明する。この処理は、受信モード時におい
て、他のキーボード2から送受信部18および受信デー
タ入力部19を介してMIDIデータが入力されたとき
に、そのMIDIデータを自動的にキーボード2に出力
するための処理である。この処理では、最初に、切替可
能フラグがセットされているか否かをチェックする(ス
テップS31)。切替可能フラグセットされている場
合、つまり、送受信装置3が待機状態の場合には、MI
DIデータ受信部14の受信を停止し(ステップS3
2)、切替可能フラグをリセットする(ステップS3
3)。
【0053】リセット後、または、ステップS31にお
いて切替可能フラグがセットされていなかった場合、つ
まり、受信データ入力部割込みが既に行われている場合
には、MIDIデータがオールノートオフデータ(FE
h)か否かを判別する(ステップS34)。オールノー
トオフデータでないと判別したときは、FIFOの書込
みポインタ値を読み出し(ステップS35)、書込みポ
インタ値で示されるFIFOのアドレスに、受信データ
入力部19を介して入力したMIDIデータを書き込む
(ステップS36)。次いで、書込みポインタ値を更新
した(ステップS37)後、FIFOエンプティフラグ
をリセットする(ステップS38)。ステップS34に
おいて、オールノートオフデータであると判別したとき
は、現在発音されているすべてのノートをノートオフす
るオールノートオフ処理を行い(ステップS39)、ス
テップS38にジャンプする。以上により、この受信デ
ータ入力部受信割込み処理を終了し、メインルーチンに
戻る。
【0054】次に、MIDIデータ受信部受信割込み処
理について、図8を参照して説明する。この処理は、送
信モード時において、キーボード2からMIDIデータ
受信部14を介してMIDIデータが入力されたとき
に、そのMIDIデータを自動的に他のキーボード2に
送信するための処理である。この処理では、最初に、切
替可能フラグがセットされているか否かをチェックする
(ステップS41)。セットされている場合、つまり、
送受信装置3が待機状態の場合には、チャンネルスイッ
チにより指定されているチャンネルナンバーを読み出し
(ステップS42)、チャンネルナンバーに対応する送
信チャンネル制御データ(送信モード時におけるVCO
44の第1局部発振周波数データ)を、制御データ記憶
部12から読み出す(ステップS43)。次いで、読み
出した送信チャンネル制御データに基づく送信チャンネ
ル制御信号を、制御信号出力部16を介して送受信部1
8に出力する(ステップS44)と共に、送信制御信号
を、制御信号出力部16を介して送受信部18に出力す
る(ステップS45)。この後、送受信フラグをセット
し(ステップS46)、受信データ入力部19の受信を
停止させる(ステップS47)と共に、切替可能フラグ
をリセットする(ステップS48)。
【0055】このフラグのリセット後、または、ステッ
プS41において切替可能フラグがセットされていなか
った場合、つまり、MIDIデータ受信部受信割込みが
既に行われている場合には、MIDIデータがアクテブ
センシングデータ(MIDI規格でのFEh)か否かを
判別する(ステップS49)。アクテブセンシングデー
タであると判別したときは、この割込みルーチンを終了
する。
【0056】一方、ステップS49において、アクテブ
センシングデータでない判別したときは、伝送データ一
時記憶部15のFIFOに記憶されているデータ量をチ
ェックする(ステップS50)この場合、FIFOの書
込みポインタ値と読出しポインタ値の差によって、デー
タ量を演算する。なお、この場合、FIFOの最大書込
み量と書込みポインタ値の差、つまり空容量を演算して
もよい。次に、FIFOのデータ量が設定値になってい
るか否か、つまりFIFOの空容量が所定量以下になっ
ているか否かを判別する(ステップS51)。所定量以
下と判別したときは、読出しポインタ値を書込みポイン
タ値に設定する(ステップS52)。つまり、これによ
って、既に書き込まれているMIDIデータを無効にす
る。
【0057】次いで、書込みポインタ値で示されるFI
FOのアドレスに書き込むデータを「FEh」とする
(ステップS53)。つまり、次に書き込むデータを、
既にノートオンさせているすべてのノートをノートオフ
させるためのオールノートオフデータとする。一方、ス
テップS51において、FIFOの空き容量が所定値を
上回っていると判別したときは、現在の書込みポインタ
値で示されるFIFOのアドレスに書き込むデータを、
入力されたMIDIデータとする(ステップS54)。
【0058】書き込むデータを「FEh」またはMID
Iデータとした後、FIFOの書込みポインタ値で示さ
れるFIFOのアドレスに、「FEh」またはMIDI
データ受信部14を介して入力されたMIDIデータを
書き込む(ステップS55)。次いで、書込みポインタ
値を更新する(ステップS56)と共に、FIFOエン
プティフラグをリセットする(ステップS57)。以上
により、このMIDIデータ受信部受信割込み処理を終
了し、メインルーチンに戻る。
【0059】次に、メインルーチンのアサイナ書込み処
理(ステップS4)について、図9〜11を参照して説
明する。この処理は、キーボード2側で、すべてのMI
DIチャンネルについて、ノートオンしたキーのデータ
をアサイナ21に書き込む処理であり、MIDIデータ
に基づくMIDIデータの1バイトに対して送信データ
出力処理(ステップS2)またはMIDIデータ出力処
理(ステップS3)を行った後に実行される。
【0060】最初に、MIDIデータ受信部14、また
は、受信データ入力部19を介して入力されてきたMI
DIデータのMSB(Most Significant bit)が
「H]、つまり、「1」であるか否かをチェックする
(ステップS61)。「H]でない場合(MIDIデー
タがデータバイトの場合)には、Aのルーチン(図1
0)に進み、「H]の場合(ステータスバイトの場合)
には、MIDIデータの上位4ビットが「9n」か否
か、つまり、「1001」であるか否かをチェックする
(ステップS62)。「9n」の場合には、ノートオン
ステータスと判別し、MIDIチャンネルのナンバーを
記憶し(ステップS63)、ノートオンステータスフラ
グをセットする(ステップS64)と共に、ノートオフ
ステータスフラグをリセットして(ステップS65)、
ノートオンステータスフラグおよびノートオフステータ
スフラグの両者が同時にセットされることがないように
し、この後、メインルーチンに戻る。
【0061】前述したステップS62において、「9
n」でない場合には、「8n」、つまり、「1000」
であるか否かをチェックする(ステップS66)。「8
n」の場合、つまり、ノートオフステータスの場合に
は、MIDIチャンネルナンバーを記憶し(ステップS
67)、ノートオフステータスフラグをセットする(ス
テップS68)と共に、ノートオンステータスフラグを
リセットする(ステップS69)。この場合において
も、両フラグが同時にセットされることがないようにし
てからメインルーチンに戻る。前述したステップS66
において、「8n」でない場合は、ノートオンステータ
スでもノートオフステータスでもないので、ノートオン
ステータスフラグおよびノートオフステータスフラグを
リセットし(ステップS70)、メインルーチンに戻
る。
【0062】次いで、図10を参照して、前述したステ
ップS61において、MSBが「H」でない場合の処理
について説明する。このルーチンは、入力したMIDI
データがデータバイトの場合に行われる。最初に、ノー
トオンステータスフラグがセットされているか否か、つ
まり、前述したステップS64においてノートオンステ
ータスフラグをセットしたか否かをチェックする(ステ
ップS71)。
【0063】セットしていないと判別した場合、つま
り、入力したMIDIデータがノートオンデータでない
場合には、同図に示すBのルーチン(図11参照)に進
み、ノートオンステータスフラグがセットされていると
判別した場合には、2バイト目フラグがセットしてある
か否かをチェックする(ステップS72)。つまり、入
力したMIDIデータが2バイト目のデータか否かをチ
ェックする。2バイト目フラグがセットされていない場
合、つまり、MIDIデータの2バイト目のデータの場
合には、ノートナンバーを記憶し(ステップS73)、
2バイト目フラグをセットする(ステップS74)。次
いで、前述したステップS63において記憶したMID
IチャンネルナンバーおよびステップS73で記憶した
ノートナンバーからアサイナ21のアドレス値およびビ
ット値を作成する(ステップS75)と共に、作成した
アドレス値およびビット値を記憶する(ステップS7
6)。これにより、次に入力される3バイト目のデータ
がどのMIDIチャンネルのどのキーにするデータかを
チェックすることができる。
【0064】一方、上述したステップS72において、
2バイト目フラグがセットしてある場合、つまり、入力
したMIDIデータの3バイト目のデータであると判別
した場合には、アサイナ21のアドレス値およびビット
値を読み出す(ステップS77)。次いで、データが
「00(音量0)」か否か、つまりノートオフか否かを
判別する(ステップS78)。「00」でない場合に
は、対応するアサイナ21のビット(記憶領域)をセッ
ト、つまり、「1」を書き込んでノートオンの状態にす
る(ステップS79)。「00」の場合には、アサイナ
21の対応するビットをリセット、つまり、「0」を書
き込んでノートオフの状態にする(ステップS80)。
次いで、2バイト目フラグをリセットした(ステップS
81)後、メインルーチンに戻る。
【0065】次に、前述したステップS71において、
ノートオンステータスフラグがセットされていない場
合、つまり、入力したMIDIデータがノートオンデー
タでない場合の処理について、図11を参照して説明す
る。ノートオンでないデータが入力した場合には、ノー
トオフステータスフラグがセットされているか否かをチ
ェックする(ステップS91)。ノートオフステータス
フラグがセットされていない場合、つまり、ノートオン
データでもなく、ノートオフデータでもないデータ、つ
まり、ノートデータでない演奏データが入力したものと
判別して、メインルーチンに戻る(ステップS91)。
【0066】次いで、2バイト目フラグがセットされて
いるか否かをチェックする(ステップS92)。2バイ
ト目フラグがセットされていない場合には、ノートナン
バーを記憶する(ステップS93)と共に、2バイト目
フラグをセットする(ステップS94)。次いで、前述
したステップS63において記憶したMIDIチャンネ
ルナンバーおよびステップS93で記憶したノートナン
バーからアサイナ21のアドレス値およびビット値を作
成する(ステップS95)と共に、作成したアドレス値
およびビット値を記憶する(ステップS96)。これに
より、次に入力される3バイト目のデータがどのMID
Iチャンネルのどのキーに対するデータかをチェックす
ることができる。
【0067】ステップS92において、2バイト目フラ
グがセットされていると判別した場合には、アサイナア
ドレス値およびビット値を読み出し(ステップS9
7)、アサイナ21の対応ビットをリセットする
(「0」を書き込む)(ステップS98)と共に、2バ
イト目フラグをリセットする(ステップS99)。つま
り、ここでは、ノートオンしたキーがノートオフしたも
のとして処理を行っている。以上により、このアサイナ
処理を終了し、メインルーチンに戻る。
【0068】次に、メインルーチンにおけるアサイナチ
ェック処理(ステップS6)について、図12を参照し
て説明する。
【0069】アサイナ書込み処理(ステップS4)が終
了し、自動切替モードフラグがセットされているとき
は、アサイナ21内のデータがすべて「0」か否かをチ
ェックする(ステップS101)。このチェックは、M
IDIデータ受信部14を介して入力されたMIDIデ
ータまたは受信データ入力部19を介して受信されたM
IDIデータのすべてを、それぞれMIDIデータ送信
部20を介してキーボード2、または、送受信部18を
介して他のキーボード2へ送信した結果、すべてのMI
DIチャンネルのすべてのキーがオフになっているか否
かを判別するためのものである。アサイナ21内のデー
タのすべてが「0」になっている場合には、CPU11
の内部タイマによるタイムカウントを開始する(ステッ
プS102)。このカウント値が所定の数になると(所
定の時間、例えば、1〜2秒を経過すると)、後述する
タイマ割込みが行われる。
【0070】次いで、前述したアサイナチェック処理の
ステップS102において、タイマがタイムアップした
ときになされるタイマ割込み処理について、図13を参
照して説明する。
【0071】このタイマ割込み処理は、自動切替モード
時において、受信データ入力部受信割込みまたはMID
Iデータ受信部受信割込みのいずれかが発生し、その処
理を終了した後に、自動切替モードの最初の状態にリセ
ットする処理である。つまり、アサイナ21にMIDI
データが所定時間記憶されていない場合に、自動的に、
受信データ入力部受信割込み処理およびMIDIデータ
受信部受信割込み処理のいずれもが行える状態に送受信
装置3をセットするための処理である。
【0072】この処理では、送受信フラグがセットされ
ているか否かをチェックする(ステップS111)。セ
ットされている場合には、送信制御信号の出力をオフに
して(ステップS112)、つまり、送受信部18を受
信状態にした後、チャンネルスイッチにより指定されて
いるチャンネルナンバーを読み出し(ステップS11
3)、チャンネルナンバーに対応する受信チャンネル制
御データを、制御データ記憶部12から読み出す(ステ
ップS114)。次に、読み出した受信チャンネル制御
データを、制御信号出力部16を介して送受信部18に
出力する(ステップS115)。その後、送受信フラグ
をリセットし(ステップS116)、受信データ入力部
を受信可能な状態にし(ステップS116)、受信デー
タ入力部受信割込みを許可する(ステップS117)。
次いで、アサイナチェック処理(ステップS6)におけ
るタイマカウント処理(ステップS102)でのタイマ
のカウントをストップし、カウント値をイニシャライズ
する(ステップS119)。
【0073】前述したステップS111において、送受
信フラグがセットされていない場合、つまり、MIDI
データ受信部が、既に受信可能な状態になっている場合
には、MIDIデータ受信部受信割込みを許可する(ス
テップS121)。次いで、ステップS118と同様に
して、タイマをストップし、カウント値をイニシャライ
ズする(ステップS122)と共に、切替可能フラグを
セットする(ステップS123)。以上により、このタ
イマ割込み処理を終了し、メインルーチンに戻る。
【0074】以上のように、このタイマ割込み処理で
は、アサイナ21にノートオンデータが記憶されていな
いと検出したときに、送信部34の作動を停止(送信モ
ードの解除)させると共に、受信部33を作動状態にし
(受信モードの設定、ステップS112)、受信データ
部受信割込みの許可(ステップS117)およびMID
Iデータ受信部受信割込みの許可(ステップS121)
を行う。これにより、自動的に、キーボード2からMI
DIデータを入力し、このMIDIデータを送信部34
を介して他のキーボード2に送信できると共に、受信部
33を介して入力したMIDIデータをキーボード2に
出力することができる。
【0075】また、タイマカウントの処理を行うことに
より、アサイナ21内のデータのすべてが「0」になっ
た場合に、キーボード2または他のキーボード2がMI
DIデータの出力をすぐに再開しても、時間的な余裕を
持つことができ、キーボード2から出力されたMIDI
データおよび他のキーボード2から送信されたMIDI
データのすべてを、確実に、他のキーボード2およびキ
ーボード2にそれぞれ伝送することができる。
【0076】次に、マニュアルモード時における、受信
切替処理および送信切替処理について、図14(a),
14(b)を参照して説明する。
【0077】最初に、受信切替処理について、図14
(a)を参照して説明する。この処理は、自動切替モー
ドスイッチをオフにすることによりマニュアルモードに
設定変更すると共に、受信モードスイッチをオンにする
ことにより受信モードに設定し、例えば、キーボード2
を音源装置として専用的に使用するような場合、つま
り、他のキーボード2からのMIDIデータに基づいて
キーボード2を演奏させるように送受信装置3を設定す
る場合に行われる処理である。
【0078】この処理では、最初に、受信モードスイッ
チのオンを検出すると、送信制御信号の出力をオフし
(ステップS131)、送受信部18を受信状態に設定
すると共に、チャンネルスイッチにより指定されている
チャンネルナンバーを読み出し(ステップS132)、
チャンネルナンバーに対応する受信チャンネル制御デー
タを、制御データ記憶部12から読み出す(ステップS
133)。次に、読み出した受信チャンネル制御データ
に基づく受信チャンネル制御信号を、制御信号出力部1
6を介して、送受信部18に出力する(ステップS13
4)。次いで、送受信フラグをリセットして(ステップ
S135)、送受信部18の受信を可能にすると共に、
MIDIデータ受信部14の受信を停止する(ステップ
S136)。この状態では、受信データ入力部の受信の
みが可能になっており、受信データ入力部受信割込みを
許可する(ステップS137)。次いで、自動切替モー
ドフラグをリセットして(ステップS138)マニュア
ルモードにすると共に、切替可能フラグもリセットした
(ステップS139)後、メインルーチンに戻る。
【0079】次に、送信切替処理について、図14
(b)を参照して説明すると、この処理は、自動切替モ
ードスイッチをオフにすることによりマニュアルモード
に設定変更すると共に、送信モードスイッチをオンにす
ることにより送信モードに設定し、例えば、他のキーボ
ード2に、キーボード2からのMIDIデータに基づく
演奏を行わせるような場合に、送受信装置3を所定の状
態に設定する処理である。また、この処理は、前述した
受信切替処理とほぼ同じであり、異なるのは、送受信部
18を受信状態に設定するのではなく、送信状態に設定
する点にある。つまり、制御信号出力部16を介して送
信制御信号を出力するにおいて異なる。
【0080】この送信切替処理について説明すると、チ
ャンネルナンバーを読み出す(ステップS141)と共
に、対応する送信チャンネル制御データを読み出し(ス
テップS142)、これに基づく送信チャンネル制御信
号を送受信部18に出力する(ステップS143)。そ
の後、送受信フラグをセットする(ステップS144)
と共に、送信制御信号を出力して(ステップS14
5)、受信データ入力部19の受信を停止する(ステッ
プS146)。この状態では、MIDIデータ受信部1
4の受信のみが可能になっており、MIDIデータ受信
部受信割込みを許可する(ステップS147)。次い
で、自動切替モードフラグをリセットする(ステップS
148)と共に、切替可能フラグをリセットする(ステ
ップS149)。以上により、この送信切替処理を終了
する。
【0081】このように、マニュアルモードのときに
は、送信モードスイッチおよび受信モードスイッチの切
替えにより、送受信装置3の動作を送信モードおよび受
信モードのいずれか一方に簡単に設定することができ
る。したがって、キーボード2を、単独の演奏用MID
I楽器として使用したり、他のキーボード2の制御によ
る音源装置として使用したり、または、他のキーボード
2の音源装置の発音を制御する発音制御装置として使用
したりすることができる。この場合、MIDIケーブル
や送受信装置3をつなぎ替えるという煩わしい作業がま
ったく不要である。
【0082】次に、送信チャンネル更新処理および受信
チャンネル更新処理について、図15(a),(b)を
参照して説明する。この両チャンネル更新処理は、チャ
ンネルスイッチが押された場合に、割込みにより実行さ
れる。
【0083】最初に、送信チャンネル更新処理につい
て、同図(a)を参照して説明する。送信チャンネルナ
ンバーがN1からN2に更新されると(ステップS15
1)、、送信チャンネルN2に対応する送信チャンネル
制御データを、制御データ記憶部12から読み出す(ス
テップS152)。次いで、読み出した送信チャンネル
制御データに基づいた送信チャンネル制御信号を、制御
信号出力部16を介して送受信部18に出力する(ステ
ップS153)。これにより、送受信部18の第1局部
発振周波数が設定され、送信準備状態になる。以上によ
り、この処理を終了してメインルーチンに戻る。
【0084】次に、受信チャンネル更新処理について、
同図(b)を参照して説明する。この処理は、送信チャ
ンネル更新処理と異なるのは、受信モード時において、
チャンネルスイッチにより指定された受信チャンネル制
御データを出力する点である。受信チャンネルナンバー
がN1からN2に変更されると(ステップS161)、
受信チャンネルN2に対応する受信チャンネル制御デー
タを読み出し(ステップS162)、受信チャンネル制
御信号を送受信部18に出力する。以上により、受信モ
ード時における送受信部18の第1局部発振周波数が設
定され、この処理を終了してメインルーチンに戻る。
【0085】次に、前述した受信データ入力部受信割込
み処理におけるオールノートオフ処理(ステップS3
9)について、図16を参照して説明する。この処理で
は、アサイナ21に書き込まれているデータのうちノー
トオンになっているMIDIチャンネルのノートナンバ
ーを探し出す。最初に、アサイナ読出しポインタ値をア
サイナ21の先頭アドレス値に設定する(ステップS1
71)。次いで、読出しポインタ値で示されるアドレス
のデータが値0であるか否かを判別する(ステップS1
72)。値0と判別したときは、ステップS180にジ
ャンプし、値0でないと判別したときは、ビットカウン
タを値0に設定する。ここでビットカウンタは、アサイ
ナ21のすべてのデータ領域において値1が書き込まれ
ているか否かをビット単位でチェックするためのもので
あり、読出しポインタ値で示されるバイト単位のアドレ
スの中のビットアドレス値を示している。
【0086】次に、読出しポインタ値で示されるアドレ
スのデータを1つシフトし(ステップS174)、キャ
リアCがセットされているか否か、つまりノートオンに
なっているか否かを判別する(ステップS175)。キ
ャリアCがセットされているときは、ノートオンデータ
であるとして、アドレスポインタの値とビットカウンタ
のカウント値から、MIDIデータのチャンネルナンバ
ーと、そのチャンネルの中でノートオンしているノート
ナンバーを演算する(ステップS176)。次に、伝送
データ一時記憶部15のFIFOの書込みポインタ値を
読み出し、そのポインタ値で示されるFIFOのアドレ
スに、そのMIDIチャンネルおよびノートナンバーに
対するノートオフメッセージ(3バイトデータ)を書き
込み、書込みポインタ値を更新する(ステップS17
7)。これにより、MIDIデータ出力部20を介して
音源装置に出力されるノートオフデータが書き込まれた
ことになる。
【0087】次いで、ビットカウンタのカウント値に値
1を加え(ステップS178)、ビットカウンタのカウ
ント値が値8になったか否かを判別する(ステップS1
79)。値8になっていないと判別したときは、ステッ
プS174にジャンプし、ステップS179までの処理
を繰り返す。値8になったと判別したときは、1バイト
分のビット(ノートナンバー)をチェックしたことにな
り、アサイナ21の読出しポインタ値が最終アドレスと
一致しているか否かを判別する(ステップS180)。
一致しないと判別したときは、読出しポインタ値を更新
し(ステップS181)、ステップS172にジャンプ
し、アサイナ21の読出しポインタ値が最終アドレスと
一致するまで、この処理を継続する。ステップS180
において、判別結果が肯定のときは、この処理を終了す
る(ステップS182)。以上により、アサイナ21に
書き込まれているすべてのノートオンデータに対応する
ノートオフデータが伝送データ一時記憶部15のFIF
Oに書き込まれ、MIDIデータ送信部20を介して、
このすべてのノートオフデータが音源装置に順に出力さ
れる。
【0088】以上のように、伝送データ一時記憶部15
にMIDIデータが書き込まれる速度の方が、MIDI
データを読み出す速度よりも速い場合であって、短時間
で連続してノートオン/ノートオフデータがキーボード
2から入力され、FIFOの空き容量が所定量以下にな
ったときには、CPU11が、伝送データ一時記憶部1
5のFIFOにオールノートオフデータ(「FEh」)
を書き込み、そのオールノートオフデータが送受信部1
8を介して、他のキーボード2に送信される。そして、
オールノートオフデータを受信した他のキーボード2
は、アサイナ21に書き込まれているすべてのノートオ
ンデータを探し出し、そのノートナンバーに対応するノ
ートオフデータを伝送データ一時記憶部15に書き込ん
だ後に音源装置に出力することによって、音源装置でノ
ートオンになっているすべての楽音をノートオフにす
る。この結果、楽音が鳴りっ放しになるという事態を防
止することができる。
【0089】なお、本実施例では、各送受信装置3の間
で、アクテブセンシングデータ(MIDI規格でのFE
h)を送受信していないが、スケルチ信号によって、ア
クテブセンシングデータの代用をすることができる。つ
まり、無線信号によってノートオンデータを受信した他
の送受信装置3は、送受信部18が所定時間(例えば、
300mSec)内にスケルチ信号を出力しないとき、
言い替えれば、送受信部18が受信信号を所定時間内に
受信しないときには、無線回線の不通があったものと
し、接続されているキーボード2でノートオンしている
すべてのノートをオフさせることができる。
【0090】なお、実施例の送受信部18は、赤外線に
よる送受信が可能に構成してもよい。
【0091】また、本実施例においては、キーボード2
と他のキーボード2相互間での送受信について説明した
が、これに限定されず、キーボード2やMIDIギター
などの演奏装置、音源装置およびシーケンサなどのすべ
てのMIDI楽器相互間での送受信が可能である。
【0092】また、本実施例においては、送受信部18
は、FM変調した無線信号の送受信をするように構成さ
れているが、これに限定されず、高周波搬送波のオン/
オフ変調、AM変調、PM変調およびパルス変調などの
他の変調方式でもよいのは勿論である。さらに、送受信
部18は、本実施例においては、単信方式の送受信が可
能に構成されているが、それぞれ独立して作動する送信
装置および受信装置を使用して復信方式の送受信を可能
に構成してもよい。
【0093】
【発明の効果】以上のように本発明のMIDIデータの
送信装置によれば、空容量チェック部が、MIDIデー
タ記憶部の空容量をチェックし、空容量が所定量に達し
たとチェックされたときに、オールノートオフデータ出
力部が、オールノートオフデータを送信部に送信させる
結果、MIDIデータ記憶部の空容量がなくなり、例え
ば、ノートオフデータをMIDIデータ記憶部を介して
送信することができなくなった場合でも、受信側での楽
音の鳴りっ放しを防止することができる。
【0094】また、本発明のMIDIデータの受信装置
によれば、ノートオンナンバー記憶部が、受信したMI
DIデータのうちノートオフされていないノートオンデ
ータを記憶し、ノートオフ制御部が、オールノートオフ
データが無線信号によって送信されてきたときに、ノー
トオンデータ記憶部に記憶されているすべてのノートナ
ンバーに対応するノートオフデータをMIDIデータ処
理装置に出力するため、ノートオフデータが送信されて
こない場合であっても、音源装置などのMIDIデータ
処理装置に対してノートオフデータを出力することがで
きるので、音源装置などでの楽音の鳴り放しを防止する
ことができる。
【図面の簡単な説明】
【図1】本発明の実施例に係る送受信装置の構成図であ
る。
【図2】本発明の実施例に係る送受信装置のブロック図
である。
【図3】本発明の実施例に係る送受信装置の送受信部の
ブロック図である。
【図4】メインルーチンのフローチャートである。
【図5】送信データ出力処理およびMIDIデータ出力
処理のフローチャートである。
【図6】自動切替モード設定処理のフローチャートであ
る。
【図7】受信データ入力部受信割込み処理のフローチャ
ートである。
【図8】MIDIデータ受信部受信割込み処理のフロー
チャートである。
【図9】アサイナ書込み処理のフローチャートである。
【図10】アサイナ書込み処理のフローチャートであ
る。
【図11】アサイナ書込み処理のフローチャートであ
る。。
【図12】アサイナチェック処理のフローチャートであ
る。
【図13】タイマ割込みのフローチャートである。
【図14】受信割込み処理および送信割込み処理のフロ
ーチャートである。
【図15】送信チャンネル更新処理および受信チャンネ
ル更新処理のフローチャートである。
【図16】オールノートオフ処理のフローチャートであ
る。
【符号の説明】
2 キーボード 3 送受信装置 11 CPU 15 伝送データ一時記憶部 21 アサイナ 33 受信部 34 送信部
フロントページの続き (72)発明者 松井 はるひこ 静岡県浜松市寺島町200番地 株式会社 河合楽器製作所内 (56)参考文献 特開 平4−86897(JP,A) (58)調査した分野(Int.Cl.7,DB名) G10H 1/00

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 MIDIデータ出力装置から出力され
    た、演奏情報を伝達するためのMIDIデータを記憶す
    るMIDIデータ記憶部と、当該記憶されているMID
    Iデータを無線信号によって送信する送信部とを備える
    MIDIデータの送信装置であって、 前記MIDIデータ記憶部の空容量をチェックする空容
    量チェック部と、 当該空容量チェック部によって前記MIDIデータ記憶
    部の空容量が所定量以下になったとチェックされたとき
    に、すべてのノートをノートオフさせるためのオールノ
    ートオフデータを前記送信部から送信させるオールノー
    トオフデータ出力部とを備えていることを特徴とするM
    IDIデータの送信装置。
  2. 【請求項2】 請求項1に記載のMIDIデータの送信
    装置から無線信号によって送信された、演奏情報を伝達
    するためのMIDIデータを受信し、当該受信したMI
    DIデータを、MIDIデータに基づいて信号処理を行
    うMIDIデータ処理装置に出力するMIDIデータの
    受信装置であって、 前記受信したMIDIデータのうちノートオンしている
    ノートナンバーを記憶するノートオンナンバー記憶部
    と、前記MIDIデータの送信装置から送信されたオールノ
    ートオフデータを受信した ときに、前記ノートオンナン
    バー記憶部に記憶されているすべてのノートナンバーに
    対応するノートオフデータを前記MIDIデータ処理装
    置に出力するノートオフ制御部とを備えていることを特
    徴とするMIDIデータの受信装置。
JP02123495A 1994-05-26 1995-01-13 Midiデータの送信装置および受信装置 Expired - Fee Related JP3149329B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP02123495A JP3149329B2 (ja) 1995-01-13 1995-01-13 Midiデータの送信装置および受信装置
US08/452,173 US5670732A (en) 1994-05-26 1995-05-26 Midi data transmitter, receiver, transmitter/receiver, and midi data processor, including control blocks for various operating conditions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP02123495A JP3149329B2 (ja) 1995-01-13 1995-01-13 Midiデータの送信装置および受信装置

Publications (2)

Publication Number Publication Date
JPH08194476A JPH08194476A (ja) 1996-07-30
JP3149329B2 true JP3149329B2 (ja) 2001-03-26

Family

ID=12049353

Family Applications (1)

Application Number Title Priority Date Filing Date
JP02123495A Expired - Fee Related JP3149329B2 (ja) 1994-05-26 1995-01-13 Midiデータの送信装置および受信装置

Country Status (1)

Country Link
JP (1) JP3149329B2 (ja)

Also Published As

Publication number Publication date
JPH08194476A (ja) 1996-07-30

Similar Documents

Publication Publication Date Title
US5970390A (en) Transmitter and automobile audio apparatus using the same
US6775246B1 (en) Method of determining master and slaves by communication capability of network nodes
US5637822A (en) MIDI signal transmitter/receiver operating in transmitter and receiver modes for radio signals between MIDI instrument devices
JP3563326B2 (ja) ワイヤレスマイク通信システム
EP0370797A2 (en) Radio receiver
JP3149329B2 (ja) Midiデータの送信装置および受信装置
JP3037866B2 (ja) Midi信号の送受信装置
JP3390590B2 (ja) Midiデータの送信装置
JPH07261752A (ja) Midi信号の送信装置および受信装置
US5587547A (en) Musical sound producing device with pitch change circuit for changing only pitch variable data of pitch variable/invariable data
RU2158060C1 (ru) Устройство генерирования звука игры и способ, использующий генерирование звука устройства отображения изображения
JPH07261754A (ja) Midi信号の送受信装置
JPH07261755A (ja) Midi信号の送受信装置
EP0786758A2 (en) Electronic musical system controlling chain of sound sources
JPH08241077A (ja) Midiデータの送信装置および受信装置
JP2948101B2 (ja) Midiデータの送信装置および受信装置
CN113728377A (zh) 调音装置
JP2003167578A (ja) 通信設定装置及び通信設定プログラム
JP3728810B2 (ja) 通信装置
JPH0199089A (ja) キースプリット機能付電子楽器
JPH09266433A (ja) 信号処理装置
JP3197620B2 (ja) 演奏情報通信装置
JPH08263080A (ja) カラオケ集中管理システム
JPH10161681A (ja) 楽音発生装置
JPH07319462A (ja) Midiデータ伝送用無線装置

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001128

LAPS Cancellation because of no payment of annual fees