説明

入出力制御装置および電子楽器

【課題】 USBコネクタの引き抜きや再接続の手順を要さず、電子楽器とPCなどホスト機器との間で、異なるUSBクラスにしたがったデータ通信を実現する。
【解決手段】 入出力I/F28は、USB端子中、D+端子からの信号線と電源線40との間に配置されたプルアップ抵抗38と、プルアップ抵抗38を介したD+端子からの信号線と電源線40との間の接続の有効・無効を制御するスイッチ制御部37を備える。スイッチ制御部37は、CPU21からの、第1のUSBクラスにしたがった第1の状態から、第1のUSBクラスと異なる第2のUSBクラスにしたがった第2の状態への切替指示にしたがって、プルアップ抵抗によるプルアップを無効としてD+端子からの信号線と電源線との間を遮断し、第2のUSBクラスにしたがった第2の状態への切替が完了すると、プルアップを再度有効として、D+端子からの信号線と電源線40との間を再度接続する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パーソナルコンピュータなどの外部機器との間のデータ入出力を制御する入出力制御装置、および、当該入出力制御装置を備えた電子楽器に関する。
【背景技術】
【0002】
従来、電子楽器には、5ピンのDINコネクタを、2つ或いは3つ備え、MIDI(Musical Instrument Digital Interface)規格に準拠して、他の電子楽器、パーソナルコンピュータ(PC)を含む他の機器との間でデータ通信を行なっていた。近年、情報機器のデータ通信のためにUSB(Universal Serial Bus)が提案され、汎用インタフェースとして普及している。現段階で普及しているUSB(USB2.0)では、USB端子は、VBUS、D+、D−およびGNDのという4つの端子を有し、PCなどのホスト機器から、USBケーブルを介して接続された機器に、VBUS端子を利用して給電するとともに、D+端子およびD−端子を介してデータを送受信することができる。
【0003】
USBの普及により、USB端子を備え、USBケーブルを介して、PCなどホスト機器とのデータ通信を行なえる電子楽器も実現されている。たとえば、特許文献1には、MIDI端子とUSB端子の双方を備えた電子楽器において、USB端子およびUSBケーブルを介してPCに接続されていない場合には、MIDI端子およびMIDIケーブルを介して接続された機器とのデータ通信を有効とする技術が開示されている。この電子楽器は、さらに、USB端子およびUSBケーブルを介してPCに接続されている場合には、MIDI端子から接続される他の機器から入力されるデータ(MIDIデータ)をUSB端子およびUSBケーブルを介してPCに送信し、また、USB端子において受信したPCからのデータを、MIDI端子を介して他の機器に送信し、かつ、USB端子およびUSBケーブルを介したPCからのデータを電子楽器においても受信し、また、電子楽器におけるデータを、USB端子およびUSBケーブルを介してPCに送信するように構成されている。
【0004】
また、たとえば、非特許文献1に開示されているように、USB端子を利用して、MIDIに準拠したデータを送受信することができるUSBケーブルおよびMIDIインタフェースが実用化されている。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−151749号公報
【非特許文献】
【0006】
【非特許文献1】ローランド株式会社、“UM−1G USB MIDI Interface”、[online]、[平成21年6月4日検索]、インターネット<URL:http://www.roland.co.jp/products/jp/UM−1G/index.html>
【発明の概要】
【発明が解決しようとする課題】
【0007】
しかしながら、非特許文献1に開示されたUSBケーブルを利用してMIDIに準拠したデータ通信をする場合、ノートオン、ノートオフ、プログラムチェンジなど通常のMIDI規格にしたがったメッセージ以外のデータを送信する場合には、機器においてデータをMIDIメッセージに変換した上で送信する必要があるため、効率が悪いという問題点があった。
【0008】
たとえば、PCをホスト機器として、PCと電子楽器との間で比較的大量のデータを送受信するには、電子楽器をマスストレージクラスのデバイスとして、データ通信をすることが望ましい。したがって、電子楽器において、MIDIに準拠したデータ通信、および、他のUSBクラス(たとえば、マスストレージクラス)に従ったデータ通信の双方が実現できるのが望ましい。
【0009】
電子楽器のスイッチ操作によりマスストレージクラスのデバイスとして機能する状態として、USBケーブルを介したデータ通信を実現することが考えられる。しかしながら、従来の電子楽器においては、いったん、USBコネクタを、PC或いは電子楽器から引き抜き、電子楽器の状態を、マスストレージクラスのデバイスに切替えた上で、再度、USBコネクタを機器に接続するという手順が必要であった。
【0010】
本発明は、USBコネクタの引き抜きや再接続の手順を要さず、電子楽器とPCなどホスト機器との間で、異なるUSBにしたがったデータ通信を実現できる、入出力制御装置および入出力制御装置を備えた電子楽器を提供することを目的とする。
【課題を解決するための手段】
【0011】
本発明の目的は、USB端子と接続され、USB端子およびUSBケーブルを介してホスト機器との間でデータ通信を行なう入出力制御装置であって
USB端子中、プラス側の信号線と電源線との間に配置されたプルアップ抵抗と、前記プルアップ抵抗を介した前記プラス側の信号線と電源線との間の接続の有効・無効を制御する制御手段と、を備え、
前記制御手段は、第1のUSBクラスにしたがった第1の状態から、前記第1のUSBクラスと異なる第2のUSBクラスにしたがった第2の状態への、USBクラスの切替指示にしたがって、前記プルアップ抵抗によるプルアップを無効として前記信号線と電源線との間を遮断し、前記第2のUSBクラスにしたがった第2の状態への切替が完了すると、前記プルアップを再度有効として、前記信号線と電源線との間を再度接続するように構成されたことを特徴とする入出力制御装置により達成される。
【0012】
好ましい実施態様においては、前記制御手段は、前記信号線と電源線との間を接続或いは遮断するスイッチを有し、前記USBクラスの切替指示にしたがって、前記スイッチをオフとして、前記信号線と電源線との間を遮断し、前記切替が完了すると、前記スイッチを再度オンとして、前記信号線と電源線との間を再度接続するように構成される。
【0013】
また、好ましい実施態様においては、前記制御手段は、前記プルアップを再度有効とした後、前記ホスト機器からのディスクリプタ送信要求の受信に応答して、前記第2のUSBクラスのディスクリプタを、前記ホスト機器に対して送信するように構成されている。
【0014】
別の好ましい実施態様においては、前記信号線に接続され、信号線を介して受信した信号から、現在のUSBクラスにしたがってデータを復号し、かつ、データを符号化して送信すべき信号を生成するデータ生成手段と、
前記復号化されたデータ、および、符号化すべきデータを一時的に記憶するデータ記憶手段と、を備えている。
【0015】
また、本発明の目的は、前記第1のUSBクラスおよび第2のUSBクラスの何れか一方が、MIDIに準拠したMIDIデバイスとして動作するUSBクラスであり、何れか他方が、マスストレージデバイスとして動作するUSBクラスであり、
請求項1ないし5の何れか一項に記載の入出力制御装置と、
前記第1のUSBクラスにしたがったデータ送受信、および、前記第2のUSBクラスにしたがったデータ送受信を実行するデータ送受信手段と、
前記第1のUSBクラスにしたがった第1の状態、および、前記第2のUSBクラスにしたがった第2の状態の切替操作を受け入れる操作子と、
を備えたことを特徴とする電子楽器により達成される。
【発明の効果】
【0016】
本発明によれば、USBコネクタの引き抜きや再接続の手順を要さず、電子楽器とPCなどホスト機器との間で、異なるUSBにしたがったデータ通信を実現できる、入出力制御装置および入出力制御装置を備えた電子楽器を提供することが可能となる。
【図面の簡単な説明】
【0017】
【図1】図1は、本実施の形態にかかる電子楽器およびパーソナルコンピュータの概略を示す図である。
【図2】図2は、本実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。
【図3】図3は、本実施の形態にかかる入出力I/Fの構成を示すブロックダイヤグラムである。
【図4】図4は、本実施の形態にかかる電子楽器において実行される処理の例を概略的に示すフローチャートである。
【図5】図5は、本実施の形態にかかるステータス切替処理の例を示すフローチャートである。
【図6】図6は、本実施の形態にかかるステータス切替処理の例を示すフローチャートである。
【図7】図7は、本実施の形態にかかるステータス切替処理の例を示すフローチャートである。
【図8】図8は、本実施の形態にかかる外部データ通信処理の例を示すフローチャートである。
【図9】図9は、本実施の形態にかかる鍵盤処理の例を示すフローチャートである。
【図10】図10は、本実施の形態にかかる発音処理の例を示すフローチャートである。
【発明を実施するための形態】
【0018】
以下、添付図面を参照して、本発明の実施の形態について説明する。図1は、本実施の形態にかかる電子楽器およびパーソナルコンピュータの概略を示す図である。図1に示す電子楽器10は、鍵盤26や表示部27を有している。また、後述するスイッチ部25(図2参照)を構成する種々のスイッチを備える。電子楽器10には、USB端子16が設けられ、USB端子16にて、USBケーブル14と接続される。図1においては、USBケーブル14の他端は、パーソナルコンピュータ(PC)12のUSB端子18に接続される。
【0019】
PC12は、USBケーブル14を介して、電子楽器10と接続されたときに、ホスト機器として動作する。PC12には、マスストレージクラスのデバイスとデータ通信することができる第1のホストコントローラ(図示せず)、および、USBに準拠したMIDIデバイスとの間でデータ通信することができる第2のホストコントローラ(図示せず)を備えている。
【0020】
図2は、本実施の形態にかかる電子楽器の構成を示すブロックダイヤグラムである。図2に示すように、本実施の形態にかかる電子楽器10は、CPU21、ROM22、RAM23、サウンドシステム24、スイッチ部25、鍵盤26、表示部27および入出力インタフェース(I/F)28を備える。入出力I/Fには、上述したUSB端子18のほか、MIDI規格に準拠する5ピンのDINコネクタを備えたMIDI端子30が接続される。
【0021】
CPU21は、電子楽器10全体の制御、鍵盤26の鍵の押鍵やスイッチ部25を構成するスイッチの操作の検出、鍵やスイッチの操作にしたがったサウンドシステム24の制御など種々の処理を実行する。また、本実施の形態において、CPU21は、入出力I/F28と協働して、電子楽器10を複数のUSBクラスのうち何れかのクラスに属するデバイスとして動作するように、電子楽器10を制御する。後に詳述するが、本実施の形態において、電子楽器10は、外部のホスト機器(本実施の形態ではPC14)との間でデータ通信をするときに、USBに準拠したMIDIデバイス、或いは、USBに準拠したマスストレージクラスのデバイスの何れかのデバイスとして動作することができる。以下、本明細書においては、USBに準拠したMIDIデバイスとして動作するときの電子楽器の状態(現在ステータス)を、MIDIデバイス、マスストレージクラスのデバイスとして動作するときの状態(現在ステータス)を、マスストレージデバイスと称する。また、本明細書において、USBに準拠したMIDIデバイスとして動作するときのUSBクラスを「MIDIクラス」、マスストレージデバイスとして動作するときのUSBクラスを「マスストレージクラス」と称する。
【0022】
ROM22は、CPU21に実行させる種々の処理、たとえば、鍵盤の鍵のオン(押鍵)・オフ(離鍵)、スイッチの操作、押鍵に応じた楽音の発音、電子楽器10のステータスの切り替え、ステータスにしたがった外部機器との間のデータ通信などプログラムを格納する。また、ROM22は、ピアノ、ギター、バスドラム、スネアドラム、シンバルなどの楽音を生成するための波形データを格納した波形データエリアを有する。RAM23は、ROM22から読み出されたプログラムや、処理の過程で生成されたデータを記憶する。
【0023】
サウンドシステム24は、音源部31、オーディオ回路32およびスピーカ33を有する。音源部31は、たとえば、押鍵された鍵に関するノートオンイベントをCPU21から受信すると、ROM22の波形データエリアから所定の波形データを読み出して、所定の音高の楽音データを生成して出力する。また、音源部31は、波形データ、特に、スネアドラム、バスドラム、シンバルなど打楽器の音色の波形データを、そのまま楽音データとして出力することもできる。オーディオ回路32は、楽音データをD/A変換して増幅する。これによりスピーカ33から音響信号が出力される。
【0024】
図3は、本実施の形態にかかる入出力I/Fの構成を示すブロックダイヤグラムである。図3に示すように、本実施の形態にかかる入出力I/F28は、USB端子16から受け入れた信号に基づいて、受信データを生成するとともに、USB端子16から出力すべき信号を生成するデータ生成部35と、データ生成部35において生成されたデータや、データ生成部35において読み込まれるべきデータを一時的に記憶するバッファメモリ36と、プルアップ抵抗38と、電源線40との間のスイッチ39を制御するスイッチ制御部37と、を有する。
【0025】
図3に示すように、USB端子16は、USB2.0の規格にしたがって、電源端子(VBUS)、2つの差動対端子(D+端子およびD−端子)、グラウンド端子(GND)という4つの端子を有する。差動対端子(D+端子およびD−端子)からの信号線は、データ生成部35に接続される。また、プラス側の差動対端子D+からの信号線は、プルアップ抵抗38の一方に接続される。
【0026】
プルアップ抵抗38の他方は、スイッチ39に接続される。スイッチ制御部37は、スイッチ39のオン・オフを制御することができる。スイッチ制御部37がスイッチ39をオン状態にすることにより、D+端子からの信号線は、プルアップ抵抗38を介して電源線40と接続されることになるため、基本的には、信号線がハイレベルの状態となる。その一方、スイッチ制御部37が、スイッチ39をオフ状態にすることにより、信号線のレベルが不定の状態となる。本実施の形態においては、入出力I/F28およびCPU21により、入出力制御装置が構成される。
【0027】
次に、上述したような構成の電子楽器において実行される処理について説明する。図4は、本実施の形態にかかる電子楽器10において実行される処理の例を概略的に示すフローチャートである。図4に示すように、電子楽器10の電源が投入されると、CPU21は、RAM23中のデータ、入出力I/F28のバッファメモリ36に一時的に記憶されたデータ、表示部27の画面に表示された画像のクリアを含むイニシャライズを実行する(ステップ401)。なお、イニシャライズ処理が終了した状態では、入出力I/F
28のスイッチ39はオン状態であり、プルアップ抵抗38と電源線40とが接続され、プルアップが有効となっている。イニシャライズが終了すると、電子楽器10のCPU21は、スイッチ処理を実行する(ステップ402)。
【0028】
スイッチ処理においては、CPU21は、スイッチ部26を構成するスイッチの操作を検出し、検出されたスイッチの状態をRAM23に格納し、また、必要に応じてスイッチの操作にしたがった処理を実行する。本実施の形態にかかるスイッチ処理においては、ステータス切替スイッチ(図示せず)がオンされたときにも、ステータス切替スイッチがオンされたことを示す情報がRAM23に格納される。
【0029】
スイッチ処理(ステップ402)が終了すると、CPU21は、USB端子16に、USBコネクタが挿入され、USBコネクタおよびUSBケーブルを介して、ホスト機器(本実施の形態ではPC14)との接続を検出し、ホスト機器とのデータ送信を可能にするステータス切替処理を実行する(ステップ403)。図5ないし図7は、本実施の形態にかかるステータス切替処理の例を示すフローチャートである。図5に示すように、CPU21は、USB端子16に、USBケーブルを介したホスト機器の接続があるかを判断する(ステップ501)。ステップ501でNoと判断された場合には、接続ステータスが、接続中であるかを判断する(ステップ502)。
【0030】
本実施の形態においては、接続ステータスは、「接続中」および「接続なし」の何れか一方に対応する値をとりうる。たとえば、接続ステータスが「接続中」であるときには、「接続ステータス=1」であり、接続ステータスが「接続なし」であるときには、「接続ステータス=0」とすれば良い。電子楽器10においては、入出力I/F28が、VBUSの電圧を定期的に調べ、所定の電圧値を検出することにより、USB端子およびUSBケーブルを介してホスト機器との接続を検出することができる。
【0031】
また、本実施の形態においては、接続されているホスト機器との間のデータ通信を規定するためのステータス(現在ステータス)は、「MIDIデバイス」或いは「マスストレージデバイス」の何れかの一方に対応する値をとり得る。たとえば、現在ステータスが「MIDIデバイス」であるときには、「現在ステータス=1」であり、現在ステータスが「マスストレージデバイス」であるときには、「現在ステータス=0」とすれば良い。接続ステータスおよび現在ステータスの値は、CPU21によりRAM23に格納される。
【0032】
ステップ502でNoと判断された場合には、処理を終了する。ステップ501およびステップ502の双方でNoと判断される場合は、電子楽器10においても「接続なし」という接続スタータスであり、かつ、その状態で新たにUSB端子16へのUSBコネクタの接続が無かった状態を意味している。その一方、ステップ502でYesと判断された場合には、CPU21は、接続ステータスに「接続なし」に対応する値をセットする(ステップ503)。ステップ501でNoかつステップ502でYesと判断される場合は、USB端子16からUSBコネクタが引き抜かれたときを意味している。
【0033】
ステップ501でYesと判断された場合には、CPU21は、接続スタータスが「接続中」であるかを判断する(ステップ504)。ステップ501でYesで、かつ、ステップ504でNoと判断された場合は、新たにUSB端子16にUSBコネクタが接続されたことを意味している。この場合には、「現在ステータス」にしたがって、所定の処理が実行される。ステップ504でNoと判断された場合には、CPU21は、現在ステータスが「MIDIデバイス」を示す値であるかを判断する(ステップ701)。
【0034】
ステップ701でYesと判断され、USB端子16を介して入出力I/F28がディスクリプタ要求を受信したことを検出すると、これに応答して、CPU21は、入出力I/F28にMIDIクラスのディスクリプタの送信を指示する。入出力I/F28は、送信指示にしたがって、USB端子16を介して、接続されたホスト機器にMIDIクラスのディスクリプタを送信する(ステップ702)。これにより、USBケーブルにより接続されたホスト機器(本実施の形態においては、PC14)は、USBケーブルを介して接続されたデバイス(本実施の形態にかかる電子楽器10)が、MIDIデバイスであると認識する。
【0035】
その一方、ステップ701でNoと判断された場合に、USB端子16を介して入出力I/F28がディスクリプタ要求を受信したことを検出すると、これに応答して、CPU21は、入出力I/F28にマスストレージクラスのディスクリプタの送信を指示する。入出力I/F28は、送信指示にしたがって、USB端子16を介して、接続されたホスト機器(本実施の形態においてはPC14)にマスストレージクラスのディスクリプタを送信する(ステップ702)。これにより、USBケーブルにより接続されたホスト機器(本実施の形態においては、PC14)は、USBケーブルを介して接続されたデバイス(本実施の形態にかかる電子楽器10)が、マスストレージデバイスであると認識する。ステップ702或いはステップ703の後、CPU21は、接続ステータスを「接続中」に対応する値にセットする。接続ステータスを示す値はRAM23に格納される。
【0036】
次に、ステップ504でYesと判断された場合について説明する。ステップ504でYesと判断された場合には、CPU21は、ステータス切替スイッチがオンされているかを判断する(ステップ505)。なお、ステータス切替スイッチの状態は、先のスイッチ処理(ステップ204)において検出され、その状態はRAM23に格納されている。ステップ505でNoと判断された場合には、処理を終了する。
【0037】
ステップ505でYesと判断された場合には、CPU21は、現在ステータスが、「MIDIデバイス」を示す値であるかを判断する(ステップ506)。ステップ506でYesと判断された場合には、CPU21は、入出力I/F28のスイッチ制御部37に対して、プルアップの無効、すなわち、スイッチ39のオフを指示する(ステップ507)。スイッチ制御部37は、指示にしたがってスイッチ39をオフにする。これにより、D+端子からの信号線が不定の状態となる。
【0038】
USBケーブルを介して接続されたPC14においても、D+端子からの信号線が不定となったことが検出される。ホストコントローラとして機能するPC14においては、D+端子からの信号線が不定となったことで、電子楽器10、PC14の何れの機器においても、USB端子からUSBコネクタが引き抜かれていないにもかかわらず、PC14は、USBコネクタが引き抜かれたと判断することになる。
【0039】
ステップ507の後、CPU21は、電子楽器10がマスストレージクラスのデバイスとして動作するように、内部状態を変更する(ステップ508)。ステップ508においては、たとえば、マスストレージクラスのデバイスドライバ(図示せず)が起動される。ついで、CPU21は、所定時間(たとえば、1秒)だけ待機した(ステップ509)後、入出力I/F28のスイッチ制御部37に対して、プルアップの有効、すなわち、スイッチ39のオンを指示する(ステップ510)。これにより、D+端子からの信号線が、プルアップされ、基本的にハイレベルの状態に維持される。D+端子からの信号線が不定からハイレベルとなったことで、電子楽器10、PC14の何れの機器においても、USB端子からUSBコネクタが新たに差し込まれてはいないにもかかわらず、PC14は、USBコネクタが差し込まれたと判断し得る。
【0040】
USB端子16を介して入出力I/F28がディスクリプタ要求を受信したことを検出すると、これに応答して、CPU21は、マスストレージクラスのディスクリプタの送信を指示する。入出力I/F28は、送信指示にしたがって、USB端子16を介して、PC14にマスストレージクラスのディスクリプタを送信する(ステップ511)。この結果、PC14は、USBケーブルを介して接続された電子楽器10が、マスストレージデバイスであると認識する。CPU21は、現在ステータスに、「マスストレージデバイス」を示す値をセットする(ステップ512)。
【0041】
ステップ506でNoと判断された場合には、ステッ507と同様に、CPU21は、入出力I/F28のスイッチ制御部37に対して、プルアップの無効、すなわち、スイッチ39のオフを指示する(ステップ601)。スイッチ制御部37は、指示にしたがってスイッチ39をオフにする。これにより、D+端子からの信号線が不定の状態となる。USBケーブルを介して接続されたPC14においても、D+端子からの信号線が不定となったことが検出される。ホストコントローラとして機能するPC14においては、D+端子からの信号線が不定となったことで、電子楽器10、PC14の何れの機器においても、USB端子からUSBコネクタが引き抜かれていないにもかかわらず、PC14は、USBコネクタが引き抜かれたと判断することになる。
【0042】
ステップ601の後、CPU21は、電子楽器10がMIDIクラスのデバイスとして動作するように、内部状態を変更する(ステップ602)。ステップ602においては、たとえば、MIDIに対応したデバイスドライバ(図示せず)が起動される。ついで、CPU21は、所定時間(たとえば、1秒)だけ待機した(ステップ603)後、入出力I/F28のスイッチ制御部37に対して、プルアップの有効、すなわち、スイッチ39のオンを指示する(ステップ604)。これにより、D+端子からの信号線が、プルアップされ、基本的にハイレベルの状態に維持される。D+端子からの信号線が不定からハイレベルとなったことで、電子楽器10、PC14の何れの機器においても、USB端子からUSBコネクタが新たに差し込まれてはいないにもかかわらず、PC14は、USBコネクタが差し込まれたと判断し得る。
【0043】
USB端子16を介して入出力I/F28がディスクリプタ要求を受信したことを検出すると、これに応答して、CPU21は、MIDIクラスのディスクリプタの送信を指示する。入出力I/F28は、送信指示にしたがって、USB端子16を介して、接続されたホスト機器にMIDIクラスのディスクリプタを送信する(ステップ605)。この結果、PC14は、USBケーブルを介して接続された電子楽器10が、MIDIデバイスであると認識する。CPU21は、現在ステータスに、「MIDIデバイス」を示す値をセットする(ステップ606)。
【0044】
このように、本実施の形態においては、ステータス切替スイッチがオンされたときに、USB端子におけるD+端子の信号線を不定の状態にすることで、USBコネクタがUSB端子から引き抜かれていないにもかかわらず、接続されたホスト機器(PC14)において、USBコネクタが引き抜かれたと判断される。この状態で、電子楽器10の内部状態を変更して、その後D+端子の信号線をハイレベルに戻すことで、接続されたホスト機器(PC14)において、USBコネクタが再度差し込まれたと判断される。したがって、本実施の形態によれば、実際のUSBコネクタの引き抜き、差し込みを行なうことなく、USBケーブルを介してデータ送信する電子楽器の内部状態を変化させ、異なるUSBのデバイスとしてデータ通信を実現することができる。
【0045】
ステータス切替処理(ステップ403)の後、外部データ通信処理が実行される(ステップ404)。図8は、本実施の形態にかかる外部データ通信処理の例を示すフローチャートである。図8に示すように、CPU21は、RAM23に格納された接続ステータスを参照して、接続ステータスが「接続中」であるかを判断する(ステップ801)。ステップ801でYesと判断された場合には、CPU21は、現在ステータスが「MIDIデバイス」であるかを判断する(ステップ802)。
【0046】
ステップ802でYesと判断された場合には、CPU21は、入出力I/F28においてデータ受信があったかを判断する(ステップ803)。ステップ803でYesと判断された場合に、CPU21は、MIDIデバイスとして、データを受信し、符号化するよう入出力I/F28に指示し、入出力I/F28は指示にしたがって動作する(ステップ804)。得られたデータはバッファメモリ36に一時的に記憶され、CPU21により読み出され、RAM23の所定の領域に格納される。
【0047】
CPU21は、データバッファ36に送信すべきデータがあるかを判断する(ステップ805)。ステップ805でYesと判断された場合には、CPU21は、MIDIデバイスとしてデータ送信することを入出力I/F28に指示する。入出力I/F28は、MIDI規格にしたがって、バッファメモリ36からデータを読み出し、データを符号化し、USB端子16から送信する(ステップ806)。
【0048】
ステップ802でNoと判断された場合には、CPU21は、入出力I/F28においてデータ受信があったかを判断する(ステップ807)。ステップ807でYesと判断された場合に、CPU21は、マスストレージデバイスとして、データを受信し、符号化するよう入出力I/F28に指示し、入出力I/F28は指示にしたがって動作する(ステップ808)。得られたデータはバッファメモリ36に一時的に記憶され、CPU21により読み出され、RAM23の所定の領域に格納される。
【0049】
CPU21は、データバッファ36に送信すべきデータがあるかを判断する(ステップ809)。ステップ809でYesと判断された場合には、CPU21は、マスストレージデバイスとしてデータ送信することを入出力I/F28に指示する。入出力I/F28は、指示にしたがってマスストレージデバイスの規格にしたがって、バッファメモリ36からデータを読み出し、データを符号化し、USB端子16から送信する(ステップ810)。
【0050】
外部データ通信処理(ステップ404)の後、CPU21は鍵盤処理を実行する(ステップ405)。図9は、本実施の形態にかかる鍵盤処理の例を示すフローチャートである。図9に示すように、CPU21は、鍵盤26の鍵を所定の順で(たとえば、音高の低い鍵から)走査して(ステップ901)、処理対象となる鍵の状態に変化があったか否かを判断する(ステップ902)。ステップ902で鍵がオン状態となった場合には、CPU21は、当該鍵の押鍵に基づき、鍵に対応する音高の楽音を発音することを示すノートオンイベントを生成する(ステップ903)。また、処理対象となる鍵がオフ状態となった場合には、CPU21は、離鍵された鍵に対応する音高の楽音を消音することを示すノートオフイベントを生成する(ステップ904)。ノートオンイベントおよびノートオフイベントは、RAM23の所定の領域(イベントエリア)に格納される。
【0051】
ステップ903、904が実行された後、或いは、ステップ902で鍵の状態に変化がないと判断された場合には、CPU21は、すべての鍵について処理が終了したかを判断する(ステップ905)。ステップ905でNoと判断された場合には、ステップ901に戻る。その一方、ステップ905でYesと判断された場合には処理を終了する。
【0052】
鍵盤処理(ステップ405)の後、発音処理(ステップ406)が実行される。図10は、本実施の形態にかかる発音処理の例を示すフローチャートである。CPU21は、RAM23のイベントエリアを参照して(ステップ1001)、未処理のイベントが存在するかを判断する(ステップ1002)。ステップ1002でNoと判断された場合には処理を終了する。ステップ1002でYesと判断された場合には、CPU21は、イベントがノートオンイベントであるかを判断する(ステップ1003)。ステップ1003でYesと判断された場合には、CPU21は、音源部31に対して、ノートオンイベントが示す音高の楽音を、所定の音色で発音するように指示を与える(ステップ1004)。音源部31は、指示に応答して、ROM22から、指定された音色の波形データを指定された音高に基づいて読み出して、かつ、読み出された波形データに、エンベロープに基づく乗算値を乗算して楽音データを生成し、オーディオ回路32に出力する。
【0053】
ステップ1003でNoと判断された場合、つまり、イベントがノートオフイベントであった場合には、CPU21は、ノートオフイベントが示す音高の楽音を消音するように音源部31に指示を与える(ステップ1005)。音源部31は、指示に応答して、読み出された波形データに、徐々に減少するリリースのエンベロープを乗算して楽音データを生成してオーディオ回路32に出力する。
【0054】
その後、CPU21は、表示部27の画面に表示すべき画像の更新を含む、他の必要な処理を実行して(ステップ407)、ステップ402に戻る。なお、ステップ407における処理には、画像の更新のほか、MIDI端子30およびMIDIケーブル(図示せず)を介して接続された電子楽器を含む他の機器との間の、MIDIに準拠したデータ通信、受信したMIDIデータに基づく処理も含まれる。
【0055】
本実施の形態においては、入出力I/F28は、USB端子中、プラス側のD+端子からの信号線と電源線40との間に配置されたプルアップ抵抗38と、プルアップ抵抗38を介したD+端子からの信号線と電源線40との間の接続の有効・無効を制御するスイッチ制御部37を備える。スイッチ制御部37は、CPU21からの、第1のUSBクラスにしたがった第1の状態から、第1のUSBクラスと異なる第2のUSBクラスにしたがった第2の状態への、USBクラスの切替指示にしたがって、プルアップ抵抗によるプルアップを無効としてD+端子からの信号線と電源線との間を遮断し、第2のUSBクラスにしたがった第2の状態への切替が完了すると、プルアップを再度有効として、D+端子からの信号線と電源線との間を再度接続する。
【0056】
したがって、本実施の形態では、プルアップが無効となるため、USBケーブルを介して接続されたホスト機器は、USBコネクタが引き抜かれたと認識する。また、プルアップを再度有効とすることにより、ホスト機器は、USBコネクタが入出力制御装置に差し込まれて、USB端子に再度接続されたと認識する。これにより、実際のUSBケーブルの引き抜き、および、差し込みを要することなく、USBクラスの切替を実現できる。
【0057】
本実施の形態では、入出力I/F28は、D+端子からの信号線と電源線との間を接続或いは遮断するスイッチ39を有し、スイッチ制御部37によるスイッチ39のオン・オフによりプルアップの有効・無効を制御している。したがって簡単な構成で、プルアップの有効・無効を実現することができる。
【0058】
また、本実施の形態においては、プルアップを再度有効とした後、USBケーブルを介して接続されたホスト機器からのディスクリプタ送信要求の受信に応答して、第2のUSBクラスのディスクリプタを、ホスト機器に対して送信することで、実際のUSBケーブルの引き抜き、および、差し込みをせずに、USBクラスを切り替え、以後、第2のUSBクラスにしたがった第2の状態でのデータ通信が可能となる。
【0059】
また、本実施の形態において、入出力I/F28は、D+端子からの信号線およびD−端子からの信号線に接続され、現在のUSBクラスにしたがってデータを復号し、かつ、データを符号化して送信すべき信号を生成するデータ生成部35と、データ生成部35により生成されたデータ、或いは、データ生成部35において処理されるべきデータを一時的に記憶するバッファメモリ36を備える。これにより、入出力I/F28を含む電子楽器などの機器からのデータを受け入れ、また、機器に適切なデータを与えることが可能となる。
【0060】
また、本実施の形態にかかる電子楽器は、現在ステータスが「MIDIデバイス」を示す値である場合には、CPU21および入出力I/F28により、MIDIデバイスとして、ホスト機器との間でデータ送受信が可能であり、また、現在ステータスが「マスストレージデバイス」を示す値である場合には、CPU21および入出力I/F28により、マスストレージデバイスとして、ホスト機器との間でデータ送受信が可能である。
【0061】
本発明は、以上の実施の形態に限定されることなく、特許請求の範囲に記載された発明の範囲内で、種々の変更が可能であり、それらも本発明の範囲内に包含されるものであることは言うまでもない。
【0062】
たとえば、本実施の形態において、電子楽器10は、MIDIデバイスおよびマスストレージデバイスの何れかとして動作し、USB端子およびUSBケーブルを介して、ホスト機器(PC14)との間でデータ通信を行なっている。しかしながら、電子楽器10が、他のUSBクラスのデバイスとして動作可能であっても良い。
【0063】
また、本実施の形態において、入出力制御装置を含む電子楽器は鍵盤を含むものであったが、これに限定されるものではなく、いわゆるDTM(Dest Top Music)用の音源モジュールの形態をとっていても良い。
【符号の説明】
【0064】
10 電子楽器
12 PC
14 USBケーブル
16、18 USB端子
21 CPU
22 ROM
23 RAM
24 サウンドシステム
25 スイッチ部
26 鍵盤
27 表示部
28 入出力I/F
35 データ生成部
36 バッファメモリ
37 スイッチ制御部
38 プルアップ抵抗
39 スイッチ
40 電源線

【特許請求の範囲】
【請求項1】
USB端子と接続され、USB端子およびUSBケーブルを介してホスト機器との間でデータ通信を行なう入出力制御装置であって
USB端子中、プラス側の信号線と電源線との間に配置されたプルアップ抵抗と、前記プルアップ抵抗を介した前記プラス側の信号線と電源線との間の接続の有効・無効を制御する制御手段と、を備え、
前記制御手段は、第1のUSBクラスにしたがった第1の状態から、前記第1のUSBクラスと異なる第2のUSBクラスにしたがった第2の状態への、USBクラスの切替指示にしたがって、前記プルアップ抵抗によるプルアップを無効として前記信号線と電源線との間を遮断し、前記第2のUSBクラスにしたがった第2の状態への切替が完了すると、前記プルアップを再度有効として、前記信号線と電源線との間を再度接続するように構成されたことを特徴とする入出力制御装置。
【請求項2】
前記制御手段は、前記信号線と電源線との間を接続或いは遮断するスイッチを有し、前記USBクラスの切替指示にしたがって、前記スイッチをオフとして、前記信号線と電源線との間を遮断し、前記切替が完了すると、前記スイッチを再度オンとして、前記信号線と電源線との間を再度接続するように構成されたことを特徴とする請求項1に記載の入出力制御装置。
【請求項3】
前記制御手段は、前記プルアップを再度有効とした後、前記ホスト機器からのディスクリプタ送信要求の受信に応答して、前記第2のUSBクラスのディスクリプタを、前記ホスト機器に対して送信するように構成されたことを特徴とする請求項1または2に記載の入出力制御装置。
【請求項4】
前記信号線に接続され、前記信号線を介して受信した信号から、現在のUSBクラスにしたがってデータを復号し、かつ、データを符号化して送信すべき信号を生成するデータ生成手段と、
前記復号化されたデータ、および、符号化すべきデータを一時的に記憶するデータ記憶手段と、を備えたことを特徴とする請求項1ないし3の何れか一項に記載の入出力制御装置。
【請求項5】
前記第1のUSBクラスおよび第2のUSBクラスの何れか一方が、MIDIに準拠したMIDIデバイスとして動作するUSBクラスであり、何れか他方が、マスストレージデバイスとして動作するUSBクラスであり、
請求項1ないし5の何れか一項に記載の入出力制御装置と、
前記第1のUSBクラスにしたがったデータ送受信、および、前記第2のUSBクラスにしたがったデータ送受信を実行するデータ送受信手段と、
前記第1のUSBクラスにしたがった第1の状態、および、前記第2のUSBクラスにしたがった第2の状態の切替操作を受け入れる操作子と、
を備えたことを特徴とする電子楽器。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate