説明

電子楽器用バスシステム

【課題】 電子楽器を構成する複数種類のデバイスの間で行う通信を、バスを通じて行う。
【解決手段】 メインコントローラデバイス10が鍵盤デバイス14と通信を行う場合は、標準プロトコルで通信が行われる。この場合、メインコントローラデバイス10がマスターとなって、スレーブアドレスである鍵盤デバイス14に固有のアドレスを送信先アドレスとし、メインコントローラデバイス10の標準プロトコル用のアドレスを送信元アドレスとしてヘッダ部を構成し、データ部と共にEバス11上に送信する。鍵盤デバイス14は、送信先アドレスが自機のアドレスと一致することから、その後に続く送信元アドレスおよびデータ部を受信する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電子楽器に内蔵されるに適している電子楽器用バスシステムに関する。
【背景技術】
【0002】
従来の電子楽器において、1つのCPU(Central Processing Unit)だけを有している電子楽器においては、鍵盤における各鍵の操作を検出する鍵盤スイッチや音色設定等の各種設定を行うパネルスイッチ等のパネル操作子は、パラレルI/O(Input-output)に接続されている。そして、パラレルI/Oを介して鍵盤スイッチやパネル操作子の操作情報をCPUが取り込んで、取り込まれた操作情報に基づく音源パラメータを生成し、発音タイミングに対応させてその音源パラメータを音源に転送することにより発音するようにしている。
【0003】
また、従来の電子楽器において、複数のCPUを備えている電子楽器も知られている。このように複数のCPUを備えている電子楽器においては、複数のCPUで機能を分担するようにしている。例えば、鍵盤CPUは、鍵盤スイッチのスキャンを行い各鍵の操作情報を検出して出力するようにしており、パネルCPUは、パネル操作子のスキャンを行い各パネル操作子の操作情報を検出して出力したり、パネル表示器の表示制御等を行っている。また、メインCPUは、鍵盤CPUから鍵盤の操作信号を、パネルCPUからパネル操作子の操作情報を受けて、操作情報に基づく音源パラメータを生成し、発音タイミングに対応させてその音源パラメータを音源に転送することにより発音するようにしている。この場合、メインCPUは、鍵盤CPUおよびパネルCPUとそれぞれ独立してシリアル通信路により接続されており、このシリアル通信路を介して相互に通信を行っている。
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来のCPUを1つだけ備える電子楽器においては、製品毎に機能や形状が異なることから電子楽器に内蔵される基板をその都度設計して搭載しなければならず、既に開発された製品や他の製品に搭載した基板を流用することができないという問題点があった。
【0005】
また、従来の複数のCPUを備える電子楽器においては、各製品毎にメインCPUと鍵盤CPUとの通信仕様、および、メインCPUとパネルCPUとの通信仕様を決定するようにしていたため、既に開発された製品や他の製品に搭載した各種基板間においては相互に接続することができない場合があり、それらの基板を流用することができないという問題点があった。さらに、例えば複数の鍵盤が必要とされる場合は、鍵盤CPUを搭載した新たな鍵盤基板をメインCPUが搭載されたメイン基板に接続しなければならない。すると、新たな接続ハードウェアをメイン基板に追加しなければならず、メイン基板を開発し直さなければならないという問題点があった。
【0006】
そこで、本発明は、電子楽器を構成する複数種類のデバイスの間で行う通信を、バスにデバイスを接続することでバスを通じて通信を行うことのできる電子楽器用バスシステムを提供することを目的としている。
【課題を解決するための手段】
【0007】
上記目的を達成するために、本発明は、双方向シリアルバスに接続されているホストデバイスと、操作入力デバイスと、MIDIデバイスとを接続して電子楽器を構成することを最も主要な特徴としている。
【発明の効果】
【0008】
このような発明によれば、ホストデバイスが接続されているバスに、鍵盤やパネルの操作入力デバイスや、MIDIデバイスを任意に接続して電子楽器を構成することができるようになる。
【図面の簡単な説明】
【0009】
【図1】本発明の電子楽器用バスシステムが適用されている電子楽器の実施例におけるハードウェア構成を示すブロック図である。
【図2】本発明の実施例にかかる電子楽器用バスシステムの結線の概要を示す構成図である。
【図3】本発明の実施例にかかるEバスシステムの具体的構成を示す図である。
【図4】本発明の実施例にかかるEバスシステムにおけるSCLラインとSDAラインにおけるデータ転送時の波形タイミング図を示す図である。
【図5】本発明の実施例にかかるEバスシステムにおけるカテゴリーID、サブアドレス範囲、カテゴリー名および適応される通信プロトコルを示すテーブルである。
【図6】本発明の実施例にかかるEバスシステムにおけるデータフォーマットを示す図である。
【図7】本発明の実施例にかかるEバスシステムにおける共通プロトコルのホスト送信およびホスト受信のコマンドを示す図表である。
【図8】本発明の実施例にかかるEバスシステムにおける標準プロトコルのホスト送信およびホスト受信のコマンドを示す図表である。
【図9】本発明の実施例にかかるEバスシステムにおけるMIDIプロトコルのホスト送受信のコマンドを示す図表である。
【図10】本発明の実施例にかかるEバスシステムにおけるEバス起動手順を示すフローチャートである。
【図11】本発明の実施例にかかるEバスシステムにおけるホスト受信処理のフローチャートである。
【図12】本発明の実施例にかかるEバスシステムにおけるホスト送信処理のフローチャートである。
【図13】本発明の実施例にかかるEバスシステムにおける鍵盤送信/受信処理のフローチャートである。
【図14】本発明の実施例にかかるEバスシステムにおけるMIDI送信/受信処理のフローチャートである。
【発明を実施するための形態】
【0010】
本発明の電子楽器用バスシステムが適用されている電子楽器における実施例のハードウェア構成をブロック図で図1に示し、本発明の電子楽器用バスシステムの結線の概要を図2に示す。
本発明の電子楽器用バスシステムは、図1に示す電子楽器1に内蔵されているEバス11からなるEバスシステム、および図2に示すEバス11からなるEバスシステムとして示されている。このEバスシステムにおけるEバス11には、メインCPU(Central Processing Unit)やメインROM(Read Only Memory)、メインRAM(Random Access Memory)等が搭載されているメイン基板10aを備えるメインコントローラデバイス10(ホストデバイス)と、パネルCPUやパネルROM、パネルRAM等が搭載されているパネル基板12a、13aをそれぞれ備えるパネルデバイス12,13と、鍵盤CPUや鍵盤ROM、鍵盤RAM等が搭載されている鍵盤基板14a、15aをそれぞれ備える鍵盤デバイス14,15と、MIDICPUやMIDIROM、MIDIRAM等が搭載されているMIDI基板16aを備えるMIDIデバイス16とが接続されている。
【0011】
メインコントローラデバイス10は、電子楽器1の全体の動作を制御することにより、鍵盤デバイス14,15やパネルデバイス12,13から取り込んだ鍵盤スイッチやパネル操作子の操作情報に基づく楽音を発生するための制御処理や、MIDIデバイス16から受信したMIDI(Musical Instrument Digital Interface)メッセージに応じた楽音を発生するための制御処理を行っている。また、メインコントローラデバイス10におけるメイン基板10aに搭載されているメインROMには、メインCPUが実行する制御プログラムや、音色データ、伴奏パターン、楽曲データ等のプリセットデータが格納されている。さらに、メイン基板10aに搭載されているRAMには、メインCPUが制御プログラム等を実行する際に使用するワーキングメモリ領域、音色データや伴奏パターン等のユーザ領域等が設定される。
【0012】
また、パネルデバイス12,13には、音色設定やエフェクト設定用のパネルスイッチや、ボリュームやホイール等のコンティニュアスコントローラ、JOGコントローラ等のパネル操作子が設けられており、音色の選択や音色パラメータを変更することができるようにされている。パネルCPUは、パネルデバイス12,13に設けられているパネル操作子をスキャンしてその操作イベントや操作量を検出している。この場合、パネル操作子によっては操作量を相対値で検出するようにする。パネルデバイス12,13におけるパネル基板12a、13aにそれぞれ搭載されているパネルROMには、パネルCPUが実行するスキャンプログラム等が格納されている。さらに、パネル基板12a、13aにそれぞれ搭載されているパネルRAMには、パネルCPUがスキャンプログラム等を実行する際に使用するワーキングメモリ領域等の領域が設定される。
【0013】
さらにまた、鍵盤デバイス14,15には、複数の鍵と各鍵の操作に応じてオン/オフする鍵盤スイッチが設けられている。鍵盤CPUは、鍵盤デバイス14,15に設けられている鍵盤スイッチをスキャンして、ノートオン/ノートオフのキーイベントやベロシティおよびアフタータッチの値を検出している。鍵盤デバイス14,15における鍵盤基板14a、15aにそれぞれ搭載されている鍵盤ROMには、鍵盤CPUが実行するスキャンプログラム等が格納されている。さらに、鍵盤基板14a、15aにそれぞれ搭載されている鍵盤RAMには、鍵盤CPUがスキャンプログラム等を実行する際に使用するワーキングメモリ領域等が設定される。
【0014】
さらにまた、MIDIデバイス16は、MIDI端子やTo Host端子を備えたMIDI入出力デバイス、自動演奏が可能なMIDIシーケンスデバイス、MIDI鍵盤等のMIDI対応のデバイスであり、ホストコンピュータに接続するためのTo Host端子を備えることができる。Eバスシステムにおいては、MIDIデバイス16は、演奏データや演奏関連データをMIDIのフォーマットのままで送受信することができるようにされている。MIDICPUは、MIDIデバイス16の動作を制御しており、MIDIデバイス16におけるMIDI基板16aに搭載されているMIDIROMには、MIDICPUが実行するMIDI制御プログラムやMIDI制御データが格納されている。さらに、MIDI基板16aに搭載されているMIDIRAMには、MIDICPUがMIDI制御プログラム等を実行する際に使用するワーキングメモリ領域等が設定される。なお、MIDIデバイス16にTo Host端子を設けると、電子楽器1をTo Host端子付きモデルとすることができる。
【0015】
図1および図2に示す電子楽器1において、メインコントローラデバイス10は、メインコントローラデバイス10とパネルデバイス12,13、鍵盤デバイス14,15およびMIDIデバイス16との間を接続しているEバス11を介して、演奏イベントデータや音色等に関する演奏関連データを受け取り、イベント開始時刻に達した際にバス21を介して音源ユニット22,23,24に音源制御データを送り楽音の生成を開始させる。音源ユニット22,23,24で生成された楽音はバス31を介してサウンドシステム32に供給されて、サウンドシステム32から放音されるようになる。バス21には、I/Oユニット25,26を介して他のユニットを接続することができる。
【0016】
ところで、本発明の実施例にかかるEバスシステムに、メインコントローラデバイス10、パネルデバイス12,13、鍵盤デバイス14,15およびMIDIデバイス16を接続する場合には、図2に示すようにそれぞれのデバイスにおける基板のバス端子に、Eバス11を構成しているワイヤーの一端に設けられているコネクタを装着する。このワイヤーの他端は、分岐基板17におけるEバス11を構成している信号線および電源線にそれぞれ接続されている。このように、それぞれのデバイスの基板にEバス11のコネクタを装着することにより、そのデバイスをEバスシステムに接続することができる。このため、必要に応じてデバイスをEバス11のコネクタから脱着することにより、Eバスシステムからデバイスの追加/取り外しを可能とすることができる。なお、Eバスシステムに接続されたデバイスにはEバス11から電源が供給されるようになる。図2に示す構成の場合は、分岐基板17に図示しない電源部から電源が供給されている。そして、Eバス11のコネクタは例えば7ピンとされ、そのうち3ピンが信号線用として使用され、残る4ピンが電源用として使用される。
【0017】
本発明の実施例にかかるEバスシステムを電子楽器1に用いるようにすると、例えば電子楽器1をオルガン型の2段鍵盤電子楽器モデルとしたい場合には、図2に示すように鍵盤デバイス14と鍵盤デバイス15とをそれぞれメイン基板、パネル基板等の接続されたEバスのコネクタに装着すればよいようになる。また、3段鍵盤電子楽器モデルとしたい場合は、さらに鍵盤デバイスをEバス11のコネクタに装着すればよい。さらに、メイン基板、パネル基板、鍵盤基板をEバスに接続した電子楽器において、鍵盤デバイスのみを交換することにより、例えば61鍵電子楽器モデルから76鍵電子楽器モデルとすることができる。さらにまた、パネルデバイスを交換することにより、パネルスイッチの多いモデルや少ないモデルに対応させることができる。このように、電子楽器を構成する複数基板のうちの一部の基板を、自由に追加、削除、あるいは変更することが可能である。
【0018】
本発明にかかる電子楽器用バスシステムであるEバスシステムについて、以下に詳細に説明する。
Eバスシステムは、双方向シリアルバスとされており、信号線はシリアルクロックライン(以下、「SCLライン」という)と、シリアルデータライン(以下、「SDAライン」という)と、イニシャルクリアラインの3本とされている。この場合、SDAラインにはSCLラインに送出されるクロックに同期したデータ信号が送出される。そして、イニシャルクリアラインには、Eバスシステムの立ち上げ時やリセット時にリセット信号が送出される。Eバスシステムの電源ラインは4本とされており、この電源ラインからEバスシステムに接続されているデバイスに電源が供給されている。Eバスシステムの通信速度は、100kbps、400kbsまたは3.4Mbpsのいずれかとすることができる。
【0019】
また、Eバスシステムには、複数のデバイスを順次接続(バス型接続)することができ、接続されたデバイスは、唯一無二の固有のアドレスを持つようにされている。この固有のアドレスは、例えば7ビットとされる。この固有のアドレスのテーブルを図5に示すが、固有のアドレスは4ビットのカテゴリーIDと3ビットのサブアドレスから構成される。カテゴリーIDは、デバイスのカテゴリーの種類を示しており、サブアドレスは同種のカテゴリーのデバイスの内の自デバイスを示すアドレスである。カテゴリー種類を示す上位アドレスであるカテゴリーIDは、そのデバイスの基板の作成時においてデバイスのカテゴリー種類に応じて予め設定されており、サブアドレスは電子楽器1に組み込まれる際に他の同種のデバイスのサブアドレスと重複しないようにジャンパピンやディップスイッチにより設定される。なお、カテゴリーの種類は、メインコントローラデバイス10が属するホスト系、鍵盤デバイス14,15が属する鍵盤系、パネルデバイス12,13が属するパネル系、MIDIデバイスが属するMIDI系、鍵盤/パネルが複合されている鍵盤/パネル複合系とされる。
【0020】
Eバスシステム上のデバイス間の通信は、マスター・スレーブ動作による通信とされ、マルチ・マスター可能とされている。なお、マスターとはEバスシステム上でデータ転送を開始すると共に、転送を可能にするクロックパルスを生成してSCLラインに送出し、さらにデータ転送を終了することのできるデバイスである。また、スレーブはマスターによってアドレス指定される送信先のデバイスである。なお、マルチ・マスターとはメッセージを失うことなく、複数のマスターが同時にEバスシステムをコントロールすることができることをいう。
【0021】
さらに、Eバスシステムにおいて、複数のマスターが同時にEバスシステム上にデータを転送しようとした際には、データ破壊を防止するためにデータの衝突検出機能およびアービトレーション(調停)の機能が備えられている。Eバスシステムでは、送信先のデバイスにおけるカテゴリー名の優先順位に従うアービトレーションが行われる。カテゴリー名は、カテゴリーの種類を拡張したものであり、図5に固有のアドレスとカテゴリー名とのテーブルが示されている。その優先順位は、カテゴリー名が全てのデバイスが送信先とされるゼネラルコールの優先順位が最も高くされ、カテゴリー名がホスト系の優先順位が2番目とされ、カテゴリー名が鍵盤系の優先順位が3番目とされ、カテゴリー名が鍵盤/パネル複合系の優先順位が4番目とされ、カテゴリー名がパネル系の優先順位が5番目とされ、カテゴリー名がMIDI系の優先順位が最後とされている。これらの優先順位は、重要度およびリアルタイム性を勘案して決められている。
【0022】
さらにEバスシステムでは、送信元アドレスおよび送信先アドレスにおいて、該アドレスの属するカテゴリー名に対応する通信プロトコルを使用して通信するようにしている。図5に、カテゴリー名と通信プロトコルとのテーブルを示している。図5に示すように、鍵盤デバイス14,15が属する鍵盤系あるいはパネルデバイス12,13が属するパネル系と、メインコントローラデバイス10が属するホスト系との間で通信を行う場合は、マンマシンインタフェース用プロトコルである後述する標準プロトコルを使用して通信が行われる。また、MIDIデバイス16が属するMIDI系とメインコントローラデバイス10が属するホスト系との間で通信を行う場合は、演奏情報伝達用プロトコルである後述するMIDIプロトコルを使用して通信が行われる。また、カテゴリー名がゼネラルコールの場合は、制御用プロトコルである後述する共通プロトコルを使用して、ホスト系は、鍵盤系、パネル系、MIDI系と通信を行う。共通プロトコルは、標準プロトコルおよびMIDIプロトコルの共通部分から構成されている。なお、ゼネラルコールのアドレス「0000 000」に送信を行なえるのはホスト系のみであり、他の鍵盤系、パネル系、MIDI系のデバイスが共通プロトコルによる送信を行ないたい場合は各自の固有のアドレスを使用する。
【0023】
このように、ホスト系のメインコントローラデバイス10は、カテゴリー名に適応する通信プロトコルで通信を行うことができるようにされている。ホスト系が他のカテゴリー名のデバイスと通信を行う際には、通信プロトコルを決定する必要があるが、通信に先立ってホスト系は送信先アドレスをアドレス指定する。この送信先アドレスは、デバイスにおける固有のアドレスであり、固有のアドレスの上位4ビットはカテゴリーIDとなっている。そこで、ホスト系は送信先アドレスから通信相手であるデバイスのカテゴリー名および使用する通信プロトコルを図5のテーブルを参照して知ることができる。なお、図5に示すようにホストには、ホスト系の2つの通信プロトコルに対応する2つの固有アドレスが与えられており、通信相手とされるデバイスのカテゴリー名に適応する通信プロトコルのアドレスを用いて通信を行うようにしている。それ以外に、ホスト系のデバイスは標準プロトコルによる通信を行うことができるが、そこでは該2つの固有アドレスとゼネラルコールのアドレスの内の何れかを使用する。
【0024】
次に、本発明にかかるEバスシステムの具体的構成を図3に示す。ただし、図3においてはEバスシステムを構成する7本のワイヤーのうちのSCLラインとSDAラインとの2本の信号線だけを示している。なお、図示していない信号線はイニシャルクリアライン(E−IC)であり、残る4本のワイヤーは電源ラインとされている。
図3に示すように、デバイス1(Device1)、デバイス2(Device2)、デバイス3(Device3)はSCLラインおよびSDAラインにそれぞれバス接続されている。それぞれのデバイスとSCLラインおよびSDAラインとの結線構成は同様とされているので、デバイス1についてのみ説明する。デバイス1において、クロックが転送されるSCLラインにはクロック入力部(SCL IN)とされるバッファB2が接続されており、バッファB2を介してクロックパルスがデバイス1に取り込まれる。また、SCLラインにはクロック出力部(SCL OUT)とされるオープンドレインとされた電界効果トランジスタ(以下、「トランジスタ」という)TR2のドレインが接続され、トランジスタTR2をオン/オフすることによりクロックパルスをSCLラインに送出することができる。さらに、データ信号が転送されるSDAラインにはデータ入力部(SDA IN)とされるバッファB1が接続されており、バッファB1を介してデータ信号がデバイス1に取り込まれる。また、SDAラインにはデータ出力部(SDA OUT)とされるオープンドレインとされたトランジスタTR1のドレインが接続され、トランジスタTR1をオン/オフすることによりデータ信号をSDAラインに送出することができる。
【0025】
デバイス2およびデバイス3においても同様の回路構成でSCLラインおよびSDAラインに接続されている。なお、図3に示すデバイス1〜デバイス3においては、トランジスタTR1ないしトランジスタTR6は電界効果トランジスタとしたが、オープンコレクタとされたバイポーラトランジスタとしてもよい。また、SCLラインおよびSDAラインはプルアップ抵抗Rpによりそれぞれプルアップされている。すなわち、SCLラインおよびSDAラインは開放状態ではハイ(H)レベルとなっており、デバイスにおけるデータ出力部のいずれかのトランジスタTR1,TR3,TR5・・・がオンされることによりSDAラインはロー(L)レベルとなる。すなわち、SDAラインにデバイス1〜デバイス3のデータ出力部がワイヤードアンド接続されている。SCLラインも同様に開放状態ではHレベルとなり、デバイスにおけるクロック出力部のいずれかのトランジスタTR2,TR4,TR6・・・がオンすることによりSCLラインはLレベルとなる。すなわち、SCLラインにデバイス1〜デバイス3のクロック出力部がワイヤードアンド接続されている。
【0026】
このようなEバスシステムにおけるSCLラインとSDAラインにおけるデータ転送時の波形タイミング図を図4に示す。Eバスシステムにおいては、バスが開放状態(Hレベル)の時のみにデータ転送を開始することができ、データの転送開始時には、マスターはスタートビット(Start Bit)を転送する。この場合、SCLラインがHレベル(開放状態)とされている際に、SDAラインをLレベルに反転することによりスタートビットが図示するように送出される。このスタートビットをEバスシステムに接続されているデバイスが検出することにより、デバイスはデータ転送が開始されることを知る。次いで、データ部に前置して置かれたヘッダ部が転送される。データ部は複数バイト(1バイト=8ビット)で構成されており、ヘッダ部も複数バイトで構成されている。このヘッダ部では、7ビットの送信先アドレス(スレーブアドレス)と、データの読込/書込(R/W)を指示する1ビットとで最初の1バイトが構成され、7ビットの送信元アドレス(マスターアドレス)と“0”のダミービットの1ビットとで次の1バイトが構成されている。ヘッダ部に続いて、1バイト単位のデータが後述するように3バイトあるいは15バイト連続しているデータ部が転送される。また、ヘッダ部およびデータ部の各ビットに同期してSCLラインにクロックパルスが送出される。この場合、ヘッダ部およびデータ部は1バイト単位のデータで構成されていることから、ヘッダ部およびデータ部の1バイト毎に、図示するように各ビットに同期したクロックパルスが1,2,3・・・,8の8発送出される。なお、ヘッダ部およびデータ部における各ビットのレベルを反転できるタイミングは、クロックパルスがLレベルとされている期間とされ、各ビットのデータが有効となるようにクロックパルスがHレベルの期間においては、SDAラインのレベルを安定させて転送しなければならない。
【0027】
Eバスシステムにおいてはマスターから送出されるクロックパルスやヘッダ部およびデータ部は、SCLラインおよびSDAラインを介して全てのデバイスに到達する。そこで、各デバイスは最初に受信されるヘッダ部におけるスレーブアドレスと自機に固有のアドレスとを1ビットずつ対比していく。そして、7ビットのスレーブアドレスと自機のアドレスとが一致した場合は、自機がスレーブとしてアドレス指定されたと知り以後に続くデータを受信する。また、SDAラインのレベルがL(orH)であるのに、対応する自機のアドレスのビットが“1”(or”0”)であった場合は、自機のアドレスがスレーブアドレスとしてアドレス指定されておらず、自機はデータ転送先でないと判断して以後に続く受信データは捨てるようにする。これにより、アドレス指定したデバイスだけがデータを受信することができる。
なお、ヘッダ部においてはそれぞれのバイトにおける8ビット目が、データの読込/書込を指示するビットとされているが、Eバスシステムにおいてはこのビットは常にL(=“0”)とされて、書き込みしか存在しないデータフォーマットとされている。電子楽器では鍵盤、パネル等の操作に対するリアルタイムな応答が求められているが、このように、鍵盤系、パネル系における操作イベントを書き込みによりホスト系へ送信することによりそのレスポンスを高めている。
【0028】
ところで、マスターはSDAラインに送出したヘッダ部あるいはデータ部における1バイト毎の信号が正常に受信されたことを知った後に、次の1バイトの信号を送出するようにしている。そこで、1バイトの信号が送出された後に、1バイトの信号が有効な信号として受信されたか否かを示すアクノリッジ用の9番目のクロックパルス(ACK)を、マスターはSCLラインに送出している。同時に、マスターはSDAラインを開放してHレベルの状態にしている。そして、ヘッダ部のスレーブアドレスでアドレス指定された送信先のデバイスは、1バイトの信号が有効な信号として受信された際に、データ出力部のトランジスタをオンさせて、SDAラインをLレベルに保持する。マスターは、9番目のACK用クロックがHレベルとなった期間においてSDAラインのレベルを取り込んで、アクノリッジがLレベルならば正常に送信先のデバイスが1バイトの信号を受信したことを知る。これにより、マスターは次の1バイトをSDAラインに送出可能となる。この際に、送信先のデバイスは受信準備できるまでSCLラインをLレベルに保持する。マスターは、所定の時間の後に、次の1バイトを最初のビットよりSDAラインに順次送出開始すると共に、同期するクロックパルスをSCLラインに送出開始する。ここで、送信先のデバイスの受信準備ができている場合、SCLラインのクロックパルスが順次立ち上がり、送信先のデバイスではそのクロックパルスに応じて、次の1バイトのデータを取り込むことができる。一方、その時点で送信先のデバイスの準備ができていない場合、該送信先のデバイスによりSCLラインはLレベルに保持されている。従って、マスターが送出しようとしたクロックパルスはSCLラインに現れず、マスターはSCLラインが立ち上がるのを待つ。送信先のデバイスの受信準備が完了すると、SCLラインは解放されるのでクロックパルスがSCLラインにおいて立ち上がり、次の1バイトの送信が行われる。
なお、送信先のデバイスが有効な1バイトの信号を受信することができなかった場合は、Hレベルのアクノリッジが生成されて、このアクノリッジをマスターが受け取るようになる。この場合、マスターはSCLラインをHレベルに保持した状態でSDAラインをHレベルに反転させることによりストップビット(Stop Bit)を送出し、データ転送を中止するようにする。このストップビットは、通信を終了する際においても、マスターによりEバス11上に送信される。
【0029】
次に、アービトレーションについて説明する。Eバスシステムにおいては、バスが開放状態(Hレベル)の時のみにデータ転送を開始することができるが、複数のデバイスがマスターとしてほぼ同時にデータ転送を開始することがある。この場合は、いずれかのマスターに通信を許可するアービトレーションが行われる。このアービトレーションでは、SDAラインに各デバイスのデータ出力部のトランジスタがワイヤードアンド接続されていることを利用している。具体的に説明すると、データ転送開始した際には、図4に示すようにスタートビットに続いてスレーブアドレスがSDAラインに送出されるので、複数のマスターにおいてこのSDAラインから受信したアドレスと自機がアドレス指定したスレーブアドレスとを1ビットずつ対比する。この場合、同時に複数のデバイスからデータがSDAラインに送出された場合には、ワイヤードアンドされていることからいずれかのデバイスがLレベルを送出した際にSDAラインはLレベルに保持されるようになる。
【0030】
すると、デバイスによっては自機が指定したスレーブアドレスの対比するビットが“1”であるのに対して、SDAラインから取り込まれたビットが“0”(=Lレベル)となる。このようにアドレスが不一致となった場合は、他のマスターの優先順位が高いと判断してデータ出力部をオフする。この処理を続けると、最終的に優先順位の最も高いマスターに通信が許可されるようになる。この場合の優先順位は、上述したように、SDAラインのレベルはLレベルが優先とされていることから、スレーブアドレスとして最上位ビット(MSB)から多く“0”が続くアドレスの優先順位が高いことになる。アービトレーションにおける優先順位はカテゴリー名により決定されており、前述したようにゼネラルコールの順位が最も高くされ、2番目の順位はホスト系(メインコントローラ)のデバイスが送信先の場合とされ、3番目の順位は鍵盤系のデバイスが送信先の場合とされ、4番目の順位はパネル系のデバイスが送信先の場合とされ、5番目の順位はMIDI系のデバイスが送信先の場合とされている。なお、鍵盤系の順位が高くされているのは、鍵盤ではリアルタイム性が重要となるからである。
【0031】
このような理由から、図5に示すようにカテゴリーIDをカテゴリー名の優先順位に応じて各カテゴリーに付与している。図5は、カテゴリーID、サブアドレス範囲、カテゴリー名および使用される通信プロトコルの種類を示すテーブルである。図5に示すテーブルにおいてカテゴリーIDを参照すると、全てのデバイスに転送するゼネラルコールのカテゴリーIDは”0000”とされ、“0”が最も長く続くようにされている。また、ホスト系(メインコントローラ)のカテゴリーIDは”0001”とされ、鍵盤系のカテゴリーIDは”0010”とされ、パネル系のカテゴリーIDは”0011”とされ、鍵盤/パネル複合系のカテゴリーIDは”0100”とされ、MIDI系のカテゴリーIDは”0101”とされている。これにより、上述した優先順位でアービトレーションを行えるようになる。なお、カテゴリーIDが同一であり、カテゴリーIDだけを対比しただけではマスターが決定されない場合は、サブアドレスも対比してマスターを決定する。これでも決定できない場合は、送信元アドレスも対比してマスターを決定する。送信先アドレスと送信元アドレスの両方が一致することはないので、送信元アドレスまでで必ずアービトレーションが完了する。(特別な通信であるゼネラルコールを除いた中で、最も優先度の高い)ホスト系のデバイスを送信先とした通信では、送信元が鍵盤系、送信元がパネル系、送信元が鍵盤/パネル複合系、MIDI系の順番で通信が優先されるが、これもリアルタイム性の要請により決められている。
【0032】
サブアドレスについて述べると、ホスト系には、通信相手のデバイスのカテゴリー名が鍵盤・パネル系(鍵盤系、パネル系、または鍵盤/パネル複合系)の時に使用するサブアドレス“000”と、MIDI系の時に使用するサブアドレス“001”とが用意されている。すなわち、鍵盤・パネル系のカテゴリー名のデバイスをアドレス指定した際にMIDI系より優先して通信を行えるようになる。なお、サブアドレス“010”〜“111”は異なるバス・フォーマット用あるいは将来の使用に備えて予約されている。さらに、アドレス指定した送信先であるスレーブアドレスが一致してマスターが決定されない場合は、次に送出されるマスターアドレスも対比してマスターを決定するようにする。
また、鍵盤系、パネル系、鍵盤/パネル複合系、MIDI系のサブアドレスには“000”ないし“111”の8つのサブアドレス範囲が与えられている。このため、これらのカテゴリー名のデバイスは、それぞれ8つまでの同種のカテゴリーのデバイスをEバスシステムに接続することができるようになる。
【0033】
ところで、Eバスシステムにおいてはデバイス間で通信を行う際には、デバイスのカテゴリーに適応する通信プロトコルで通信を行うようにしているが、全てのカテゴリーのデバイスと通信するゼネラルコールの通信プロトコルは、共通プロトコルとされている。図5に示すように、具体的には、ホスト系と通信するカテゴリー名が鍵盤系、パネル系、鍵盤/パネル複合系とされている場合は標準プロトコルで通信される。また、ホスト系と通信するカテゴリー名がMIDI系とされている場合はMIDIプロトコルで通信される。この場合、デバイスにはそのカテゴリー名に対応するカテゴリーIDが与えられていることから、アドレス指定されたスレーブアドレスのカテゴリーIDから通信プロトコルを決定することができる。なお、ホスト系(メインコントローラ)は通信相手のデバイスが属するカテゴリー名に適応している通信プロトコルを使用して通信を行う必要があることから、図5に示すように標準プロトコル用のアドレスと、MIDIプロトコル用のアドレスとを備えている。例えば、ホスト系のデバイスとMIDI系のデバイスとが通信する際には、ホスト系のデバイスは自機のアドレスとして“0001 001”を使用し、MIDI系のデバイスがマスターとなった際には、アドレス指定するスレーブアドレスを“0001 001”とする。これにより、ホスト系のデバイスとMIDI系のデバイスとはMIDIプロトコルを使用して通信を行えるようになる。また、ホスト系のデバイスと鍵盤系(パネル系あるいは鍵盤/パネル複合系)のデバイスとが通信する際には、ホスト系のデバイスは自機のアドレスとして“0001 000”を使用し、鍵盤系(パネル系あるいは鍵盤/パネル複合系)のデバイスがマスターとなった際には、アドレス指定するスレーブアドレスを“0001 000”とする。これにより、ホスト系のデバイスと鍵盤系(パネル系あるいは鍵盤/パネル複合系)のデバイスとが標準プロトコルを使用して通信を行えるようになる。
【0034】
次に、本発明にかかるEバスシステムにおけるパケットのデータフォーマットを図6に示す。
図6に示すように、Eバスシステムにおけるデータフォーマットには全体の長さが5バイト長とされる標準データのデータフォーマットと、全体の長さが17バイト長とされる拡張データのデータフォーマットとが定義されている。標準データのデータフォーマットにおいては、アドレス指定する1バイトの送信先アドレス(スレーブアドレス)と、1バイトの送信元アドレス(マスターアドレス)と、それぞれ1バイトのデータ1,データ2,データ3の合計5バイトで構成されている。また、拡張データのデータフォーマットにおいては、アドレス指定する1バイトの送信先アドレス(スレーブアドレス)と、1バイトの送信元アドレス(マスターアドレス)と、それぞれ1バイトのデータ1〜データ15の合計17バイトから構成されている。この場合の送信元アドレスにはダミービット“0”が1ビット、送信先アドレスにはR/Wの1ビットがそれぞれ含まれている。標準データのデータフォーマットは、共通プロトコル、標準プロトコルおよびMIDIプロトコルにおいて用いられ、拡張データのデータフォーマットはMIDIプロトコルにおいてシステムエクスクルーシブメッセージ等を転送する際に用いられる。なお、送信先アドレスと送信元アドレスとで図4に示すヘッダ部が構成され、続く3バイトのデータあるいは15バイトのデータによりデータ部が構成されている。なお、標準データおよび拡張データにおけるデータ1は、転送されるデータの種別を示すインデックスとされている。具体的にはインデックスは、各通信プロトコルにおけるコマンドを示している。このように、パケットの長さ(あるいは、データバイトの長さ)を2通りに統一することにより、通信を行う各デバイスでの処理を簡略化することができる。電子楽器において、エクスクルーシブを除く通常のコマンドをやりとりするのに、データバイトが3バイトのパケットは最適である。また、その通常のコマンドのパケット長を5バイト程度(10バイト以下)の短い長さにすることにより、一つ一つのパケットのバスにおける占有時間が短縮され、電子楽器の鍵盤やパネルからの入力に対する応答時間を短縮することができる。
【0035】
次に、共通プロトコルのコマンドについて説明する。共通プロトコルは、通信を行うデバイスのカテゴリーを問わず使用することのできる通信プロトコルとされているため、各デバイスはそれが共通プロトコルであることを判別することなく、自分の属するカテゴリの処理の中で共通プロトコルを扱うことができる。前述したように、本発明の電子楽器用バスシステムにかかるEバスシステムにおいてはメインコントローラデバイス10であるホスト系のデバイスと、他のデバイスとの間で通信を行うことを前提としている。そこで、ホスト受信とホスト送信のコマンドについて図7に示す。共通プロトコルにおけるコマンドはいずれも標準データのデータフォーマットとされており、図示する順と逆になるがホスト送信欄のコマンドにはカテゴリーID・サブアドレスリクエストがある。このコマンドは、ホスト系のデバイスがEバスシステムに接続されているデバイスのアドレスを検出するためのコマンドであり、ゼネラルコールすることができる。このコマンドにおけるインデックスであるデータ1は“00h”(hは16進表記を示す:00h=0000 0000)とされ、データ2およびデータ3も“00h”とされている。
【0036】
カテゴリーID・サブアドレスリクエストのコマンドをホスト系のデバイスからゼネラルコールする際には、“0000 000”を送信先アドレス、“0001 000”を送信元アドレス(図5参照)、“00h”とされたデータ1ないしデータ3からなる標準データのコマンドを発行する。ゼネラルコールされたカテゴリーID・サブアドレスリクエストコマンドは、Eバスシステムに接続されている全てのカテゴリのデバイスが受信するようになり、各デバイスはホスト受信欄に示されているカテゴリーID・サブアドレスリプライのコマンドをホストに返す。このカテゴリーID・サブアドレスリプライは、自機に固有のアドレスをホスト系のデバイスに知らせるコマンドである。カテゴリーID・サブアドレスリプライコマンドを発行するには、アドレス指定する送信先アドレスを“0001 000”、送信元アドレスを自機の7ビットのアドレス、インデックスであるデータ1を“00h”、データ2が自機のカテゴリーID、データ3が自機のサブアドレスの標準データを送信する。これにより、ホストはEバスシステムに接続されているデバイスと、そのアドレスを知ることができる。なお、カテゴリーID・サブアドレスリクエストのコマンドはEバスシステムの動作開始時にホスト系のデバイスがゼネラルコールするようにされており、このコマンドによりEバスシステムに接続されているデバイスと、そのアドレスを知り、知ったアドレスからカテゴリー名と使用する通信プロトコルを知ることができる。このようにして、ホスト系のデバイスは図5に示すテーブルを作成でき、以降の通信は作成されたテーブルにおけるアドレスを設定して通信することができる。また、ホスト系以外のデバイスはホスト系のデバイスとの通信を行うことを原則としており、ホスト系に割り当てられている複数のアドレスはEバスシステムで予め定められたアドレスとされている。したがって、ホスト系以外のデバイスは通信する際に設定するアドレスを予め知っているので図5に示すテーブルを作成する必要はない。ゼネラルコールはホスト以外の各デバイスも受信する通信であるので、仮に、各デバイスからのカテゴリーID・サブアドレスリプライ時にゼネラルコールを使用すると、それを受信するホスト以外の各デバイスでそれを無視するための処理が必要になってしまう。そこで、本発明にかかるEバスシステムでは、該リプライ時に、ゼネラルコールではなく送信先をホストの標準アドレスとした通信を行ない、ホスト以外の各デバイスでの処理を簡略化するようになっている。
【0037】
また、ホスト送信欄のEバススタートのコマンドは原則的にメインコントローラデバイス10からゼネラルコールされるコマンドであり、Eバスシステムの立ち上げ時にEバスシステムを動作可能にするためのコマンドである。Eバススタートのコマンドをゼネラルコールする際は、“0000 000”が送信先アドレス、“0001 000”が送信元アドレス、インデックスであるデータ1が“01h”、データ2が“00h”、データ3が“00h”の標準データを送信する。
【0038】
次に、図8に示す標準プロトコルのホスト受信およびホスト送信のコマンドについて説明する。標準プロトコルは、ホスト系のデバイス(メインコントローラ)と、鍵盤系、パネル系、鍵盤/パネル複合系のカテゴリーのデバイスとが通信を行う場合に使用することのできる通信プロトコルとされている。標準プロトコルにおけるコマンドはいずれも標準データのデータフォーマットとされている。
標準プロトコルにおけるホスト受信欄のコマンドのうちの共通プロトコルのコマンドは、図7に示す共通プロトコルと同様であるのでその説明は省略するが、この部分が同じになっているために、当該デバイスでは動作を標準プロトコルと共通プロトコルの間で切り換えることなく、共通プロトコルを送受信することができる。次のSW OFFコマンドおよびSW ONコマンドは、パネルデバイスに設けられているパネルスイッチのOFFイベントおよびONイベントをホストに転送するコマンドである。例えば、パネルデバイスにおけるパネルスイッチのスイッチ番号nのスイッチがOFFされた場合は、送信先アドレスがホストを示す“0001 000”とされ、送信元アドレスがそのパネルデバイスのアドレス“0011 aaa”(“aaa”は当該パネルデバイスのサブアドレス)とされ、インデックスであるデータ1が“6xh”、データ2がオフされたスイッチ番号n(8ビット)、データ3がダミーの“00h”とされたSW OFFコマンドが発行される。
【0039】
また、パネルデバイスにおけるパネルスイッチのスイッチ番号mのスイッチがONされた場合は、送信先アドレスがホストを示す“0001 000”とされ、送信元アドレスがそのパネルデバイスのアドレス“0011 bbb”(“bbb”は当該パネルデバイスのサブアドレス)とされ、インデックスとされるデータ1が”7xh”、データ2がオンされたスイッチ番号m(8ビット)、データ3がダミーの“00h”とされたSW ONコマンドが発行される。なお、いずれのコマンドにおいても“xh”はポート番号を示しており、スイッチ番号が8ビットとされることから、16ポート×256個のパネルスイッチのSW OFFコマンドおよびSW ONコマンドを発行することができる。
【0040】
標準プロトコルにおけるホスト受信欄の鍵盤 OFFコマンドおよび鍵盤 ONコマンドは、鍵盤デバイスにおける各鍵のノートオンイベントおよびノートオフイベントをホストに転送するコマンドである。ここで、鍵盤デバイスにおけるノート番号nに対応する鍵がノートオフされた場合は、送信先アドレスがホストを示す“0001 000”とされ、送信元アドレスがその鍵盤デバイスのアドレス“0010 aaa”(“aaa”は当該鍵盤デバイスのサブアドレス)とされ、インデックスとされるデータ1が”8vh”、データ2がノートオフされたノート番号n(8ビット)、データ3がベロシティの上位8ビットとされた鍵盤 OFFコマンドが発行される。なお、”vh”はベロシティの下位4ビットとされており、合計12ビットとされたベロシティ情報が転送され、そのうちの上位7ビットはMIDI互換とされている。
【0041】
また、鍵盤デバイスにおけるノート番号mに対応する鍵がノートオンされた場合は、送信先アドレスがホストを示す“0001 000”とされ、送信元アドレスがその鍵盤デバイスのアドレス“0010 bbb”(“bbb”は当該鍵盤デバイスのサブアドレス)とされ、インデックスとされるデータ1が”9vh”、データ2がノートオンされたノート番号m(8ビット)、データ3がベロシティの上位8ビットとされた鍵盤 ONコマンドが発行される。このコマンドでは、鍵盤 OFFコマンドと同様に合計12ビットとされたベロシティ情報が転送され、そのうちの上位7ビットがMIDI互換とされている。また、いずれのコマンドでもノート番号が8ビットとされることから、256個のノートに対応する鍵盤 OFFコマンドおよび鍵盤 ONコマンドを発行することができる。ここで、鍵盤 OFFコマンド、および鍵盤 ONコマンドにおいて、ポート番号を削ってベロシティ情報を12ビットとしているのは、鍵盤演奏の取り込みにおいては、タッチカーブ等の処理のため、MIDIのベロシティより高分解能の12ビットのベロシティ分解能が必要であるためである。
【0042】
標準プロトコルにおけるホスト受信欄の鍵盤デバイスにおけるポリフォニックアフタータッチ(各鍵毎のアフタータッチ)の値を転送するポリフォニックアフタータッチコマンドは、送信先アドレスがホストを示す“0001 000”とされ、送信元アドレスがその鍵盤デバイスのアドレス“0010 aaa”(“aaa”は当該鍵盤デバイスのサブアドレス)とされ、インデックスとされるデータ1が“Axh”、データ2がアフタータッチをかけるノートのノート番号n(8ビット)、データ3が8ビットのアフター値とされている。“xh”はポート番号とされているので、16ポートのポリフォニックアフタータッチコマンドを発行することができる。
【0043】
また、標準プロトコルにおけるホスト受信欄のパネルデバイスにおけるボリュームやホイール等の操作された操作値を転送するコンティニュアスコントローラコマンドは、送信先アドレスがホストを示す“0001 000”とされ、送信元アドレスがそのパネルデバイスのアドレス“0011 aaa”(“aaa”は当該パネルデバイスのサブアドレス)とされ、インデックスとされるデータ1が“Bxh”、データ2がボリュームやホイール等のコントローラの種別(8ビット)、データ3が8ビットのコントローラの操作値とされている。“xh”はポート番号とされており、種別は8ビットとされているので、16ポート×256個のコンティニュアスコントローラコマンドを発行することができる。
【0044】
また、標準プロトコルにおけるホスト受信欄のパネルデバイスにおけるロータリエンコーダ等のジョグコントローラにおける操作された操作値を転送するJOGコントローラコマンドは、送信先アドレスがホストを示す“0001 000”とされ、送信元アドレスがそのパネルデバイスのアドレス“0011 aaa”(“aaa”は当該パネルデバイスのサブアドレス)とされ、インデックスとされるデータ1が“Cxh”、データ2がジョグコントローラの種別(8ビット)、データ3がコントローラにおける操作値の2の補数の相対値(8ビット)とされている。“xh”はポート番号とされており、種別は8ビットとされているので、16ポート×256個のJOGコントローラコマンドを発行することができる。
【0045】
標準プロトコルにおけるホスト受信欄の鍵盤デバイスにおけるアフタータッチ(1つの鍵盤の複数鍵に共通のアフタータッチ)の値を転送するアフタータッチコマンドは、送信先アドレスがホストを示す“0001 000”とされ、送信元アドレスがその鍵盤デバイスのアドレス“0010 aaa”(“aaa”は当該鍵盤デバイスのサブアドレス)とされ、インデックスとされるデータ1が“Dxh”、データ2がタッチ値の上位8ビット、データ3がタッチ値の下位8ビットとされている。“xh”はポート番号とされているので、16ポートのアフタータッチコマンドを発行することができる。このアフタータッチコマンドで転送されるタッチ値は、マスター(送信元)とされている鍵盤デバイスにおいて複数ノートオンされているノートの全てにかけられているタッチ値である。
【0046】
また、標準プロトコルにおけるホスト受信欄のパネルデバイスにおけるボリュームやホイール等の操作された操作値を転送する16ビットのコンティニュアスコントローラコマンドは、送信先アドレスがホストを示す“0001 000”とされ、送信元アドレスがそのパネルデバイスのアドレス“0011 aaa”(“aaa”は当該パネルデバイスのサブアドレス)とされ、インデックスとされるデータ1が“Exh”、データ2がコントローラの操作値の上位8ビット、データ3がコントローラの操作値の下位8ビットとされている。“xh”はポート番号とされているので、16ポートの16ビットのコンティニュアスコントローラコマンドを発行することができる。なお、鍵盤/パネル複合系のデバイスでは、鍵盤デバイスとパネルデバイスの両方のコマンドを送信可能である。また、コンティニュアスコントローラコマンド、ジョグコントローラコマンドについては、鍵盤デバイスから送信できるようにしてもよい。
【0047】
次に、標準プロトコルにおけるホスト送信欄のコマンドについて説明する。まず、ホスト送信欄の共通プロトコルのコマンドは、図7に示す共通プロトコルと同様であるのでその説明は省略する。
ホスト送信欄のLEDコントロールのコマンドは、パネルデバイスに設けられているLED(Light Emitting Diode)が属するとされたグループの輝度を、ホストがコントロールするコマンドである。LEDコントロールコマンドは、送信先アドレスが輝度コントロールされるパネルデバイスのアドレス“0011 aaa”(“aaa”は当該パネルデバイスのサブアドレス)とされ、送信元アドレスがホストを示す“0001 000”とされ、インデックスとされるデータ1が“6xh”、データ2が輝度をコントロールするグループ番号(8ビット)、データ3が輝度コントロール値である8ビットのLED輝度値とされている。“xh”はポート番号とされているので、16ポートのLEDコントロールコマンドを発行することができる。ただし、グループ“00h”の輝度は最小(オフ相当)とされ、グループ“FFh”の輝度は最大(オン相当)とされているため、そのグループの輝度は変更することができないようにされている。
【0048】
ホスト送信欄のLEDコマンドは、パネルデバイスに設けられているLEDをホストがグループに振り分けるコマンドである。LEDコマンドは、送信先アドレスがコントロールされるパネルデバイスのアドレス“0011 aaa”(“aaa”は当該パネルデバイスのサブアドレス)とされ、送信元アドレスがホストを示す“0001 000”とされ、インデックスとされるデータ1が“7xh”、データ2がグループに振り分ける8ビットのLED番号、データ3が振り分けられる8ビットのグループ番号とされている。“xh”はポート番号とされており、LED番号は8ビットとされているので、16ポート×256個のLEDコマンドを発行することができる。
【0049】
ここで、LEDコントロールコマンドとLEDコマンドの使い方を説明すると、ホストがパネルデバイスへLED“i”をグループ“FFh”に振り分けるLEDコマンドを送信すると、このLEDコマンドを受信したパネルデバイスではLED番号“i”のLEDを点灯するようになる。また、LED“j”をグループ“00h”に振り分けるLEDコマンドを送信すると、このLEDコマンドを受信したパネルデバイスではLED番号“j”のLEDを消灯するようになる。
また、ホストからパネルデバイスへ、まず、グループ“01h”の輝度を“00h”(最小値)に設定するLEDコントロールを送信すると共に、所望の複数LEDのLED番号をそれぞれグループ“01h”に振り分ける複数のLEDコマンドを送信し、最後に、グループ“01h”の輝度を“FFh”(最大値)に設定するLEDコントロールを送信することで、該パネルデバイスの該複数LEDを同時に点灯することができるようになる。
【0050】
ホスト送信欄の鍵盤LEDコントロールのコマンドは、鍵盤デバイスの各鍵に設けられているLED(演奏ガイド用LED)が属するグループの輝度をホストがコントロールするコマンドである。鍵盤LEDコントロールコマンドは、送信先アドレスが輝度コントロールされる鍵盤デバイスのアドレス“0010 aaa”(“aaa”は当該鍵盤デバイスのサブアドレス)とされ、送信元アドレスがホストを示す“0001 000”とされ、インデックスとされるデータ1が“8xh”、データ2が輝度コントロールされるグループ番号(8ビット)、データ3が輝度コントロール値である8ビットのLED輝度値とされている。“xh”はポート番号とされているので、16ポートの鍵盤LEDコントロールコマンドを発行することができる。ただし、グループ“00h”の輝度は最小(オフ相当)とされ、グループ“FFh”の輝度は最大(オン相当)とされているため、その輝度を変更することができないようにされている。
【0051】
ホスト送信欄の鍵盤LEDコマンドは、鍵盤デバイスに設けられているLEDをホストがグループに振り分けるコマンドである。鍵盤LEDコマンドは、送信先アドレスがコントロールされる鍵盤デバイスのアドレス“0010 aaa”(“aaa”は当該鍵盤デバイスのサブアドレス)とされ、送信元アドレスがホストを示す“0001 000”とされ、インデックスとされるデータ1が“9xh”、データ2がグループに振り分けるLEDが設けられている鍵のノート番号(8ビット)、データ3が振り分けられる8ビットのグループ番号とされている。“xh”はポート番号とされており、ノート番号は8ビットとされているので、16ポート×256個の鍵盤LEDコマンドを発行することができる。鍵盤LEDコントロールコマンドと鍵盤LEDコマンドによる鍵盤LEDの制御の態様は、LEDコントロールコマンドとLEDコマンドによるパネルデバイスのLEDの制御の態様と同様である。なお、鍵盤 OFFコマンド、鍵盤 ONコマンドによれば各鍵盤デバイスの鍵は最大256個とされているので、鍵盤LEDコントロールコマンドと鍵盤LEDコマンドにおけるポート番号は、例えば、各鍵に複数色の複数LEDを用意して色の制御を行うために使用したり、あるいは、各鍵の複数個所にLEDを用意して光る位置の制御を行うために使用することができる。
【0052】
また、標準プロトコルにおけるホスト送信欄のパネルデバイスにおける電動ボリュームや電動ホイール等の操作値をホストから制御するコンティニュアスコントローラコマンドは、送信先アドレスがコントロールされるパネルデバイスのアドレス“0011 aaa”(“aaa”は当該パネルデバイスのサブアドレス)とされ、送信元アドレスがホストを示す“0001 000”とされ、インデックスとされるデータ1が“Bxh”、データ2が電動ボリュームや電動ホイール等のコントローラの種別(8ビット)、データ3が8ビットの電動コントローラの制御値とされている。“xh”はポート番号とされており、種別は8ビットとされているので、16ポート×256個のコンティニュアスコントローラコマンドを発行することができる。
【0053】
また、標準プロトコルにおけるホスト送信欄のパネルデバイスにおけるロータリエンコーダ等の電動ジョグコントローラの操作値をホストから制御するJOGコントローラコマンドは、送信先アドレスがコントロールされるパネルデバイスのアドレス“0011 aaa”(“aaa”は当該パネルデバイスのサブアドレス)とされ、送信元アドレスがホストを示す“0001 000”とされ、インデックスとされるデータ1が“Cxh”、データ2が電動ジョグコントローラの種別(8ビット)、データ3が電動コントローラを制御する2の補数の相対値(8ビット)とされている。“xh”はポート番号とされており、種別は8ビットとされているので、16ポート×256個のJOGコントローラコマンドを発行することができる。
【0054】
また、標準プロトコルにおけるホスト送信欄のパネルデバイスにおける電動ボリュームや電動ホイール等の操作値をホストから制御する16ビットのコンティニュアスコントローラコマンドは、送信先アドレスがコントロールされるパネルデバイスのアドレス“0011 aaa”(“aaa”は当該パネルデバイスのサブアドレス)とされ、送信元アドレスがホストを示す“0001 000”とされ、インデックスとされるデータ1が“Exh”、データ2が電動コントローラの制御値の上位8ビット、データ3が電動コントローラの制御値の下位8ビットとされている。“xh”はポート番号とされているので、16ポートの16ビットのコンティニュアスコントローラコマンドを発行することができる。
【0055】
次に、図9に示すMIDIプロトコルのコマンドについて説明する。MIDIプロトコルは、ホスト系のデバイス(メインコントローラ)とMIDI系のデバイスとが通信を行う場合に使用することのできる通信プロトコルとされている。MIDIプロトコルにおけるコマンドは標準データおよび拡張データのデータフォーマットとが用いられる。なお、MIDIプロトコルではホスト送信とホスト受信とのコマンドが共通とされており、ホスト受信とホスト送信では、送信先アドレスと送信元アドレスだけが異なるようになる。すなわち、ホスト受信のコマンドの場合は、送信先アドレスがホストのMIDIプロトコル用のアドレスである”0001 001”とされ、送信元アドレスが送信するMIDIデバイスのアドレスとされる。また、ホスト送信のコマンドの場合は、送信先アドレスがMIDIデバイスのアドレスとされ、送信元アドレスがホストのMIDIプロトコル用のアドレスである”0001 001”とされる。図9に示すMIDIプロトコルの各コマンドでは上述のように、送信先アドレスおよび送信元アドレスが設定され、以下のコマンドの説明では、各コマンドのデータ形式およびデータ部についてだけ説明するものとする。
【0056】
MIDIプロトコルにおける共通プロトコルのコマンドは、図7に示す共通プロトコルと同様であるのでその説明は省略する。
システムエクスクルーシブ(Sys EX)の開始および続きコマンドおよびシステムエクスクルーシブ(Sys EX)の終了または1パケットコマンドは、データフォーマットが共に拡張モードとされ17バイト長とされている。システムエクスクルーシブ(Sys EX)の開始および続きコマンドは、システムエクスクルーシブの開始および続きを示すインデックスとされる”4ih”がデータ1とされ、データ2ないしデータ15における1バイトずつのデータにより音色パラメータやシーケンス・データ等が転送される。システムエクスクルーシブ(Sys EX)の終了または1パケットコマンドは、システムエクスクルーシブの終了または1パケットを示すインデックスとされる”5ih”がデータ1とされ、1パケットの場合にデータ2ないしデータ15において1パケットのデータが1バイトずつ転送される。
なお、MIDIにおいてはシステムエクスクルーシブの開始は“F0h”終了は“F7h”で示されるが、Eバスシステムではこれに替えて上記のようにシステムエクスクルーシブの開始は“4ih”終了は“5ih”とし、“F0h”、“F7h”は使用しないこととしている。また、“ih”は、当該システムエクスクルーシブを送信するMIDIのポート番号を示す。
【0057】
ソングポジション(Song Pos)コマンドは演奏を開始する位置を知らせるコマンドであり、標準データのデータフォーマットとされている。ソングポジションコマンドは、そのインデックスとされる“6ih”がデータ1とされ、データ2が演奏開始位置のポインターのLSBとされ、データ3が演奏開始位置のポインターのMSBとされる。なお、MIDIではソングポジションポインターのメッセージは“F2h”で示され、データ2およびデータ3はこのメッセージと互換とされている。
MIDIポートセレクトコマンドは、カレントのMIDIポート番号(ノートオンメッセージ、ノートオフメッセージが授受されるMIDIポートの番号)を選択するコマンドであり、標準データのデータフォーマットとされている。MIDIポートセレクトコマンドは、そのインデックスとされる“7ih”がデータ1とされ、データ2が“00h”とされ、データ3が“00h”とされる。例えば、MIDIポートセレクトコマンドがホストからMIDIデバイスに送信された場合、受取ったMIDIデバイスではカレントのMIDIポート番号を上記インデックスに含まれる値“ih”に設定する。なお、MIDIスタンダードではポートセレクトのメッセージは規定されていない(実装では“F5h”が使われる場合もある)。なお、MIDIポートセレクトコマンドはMIDIにおけるMIDIタイムピースメッセージの機能に相当する。
【0058】
2つのMIDI互換(note,vel)コマンドは、MIDIにおけるノートオンメッセージおよびノートオフメッセージと互換とされており、標準データのデータフォーマットとされている。これらのコマンドにおいて、データ1がMIDIにおけるノートオフのインデックスとされる“8nh”とされ、データ2がMIDI互換の8ビットのノートオフされたノート番号、データ3がMIDI互換の8ビットのオフベロシティとされると、ノートオフコマンドとなる。また、データ1がMIDIにおけるノートオンのインデックスとされる“9nh”とされ、データ2がMIDI互換の8ビットのノートオンされたノート番号、データ3がMIDI互換の8ビットのベロシティとされると、ノートオンコマンドとなる。なお、データ1がMIDIにおけるノートオンのインデックスとされる“9nh”とされ、データ2がMIDI互換の8ビットのノートオフされたノート番号、データ3が“00h”(ベロシティがゼロ)とされたものをノートオフコマンドとして使用してもよい。なお、“nh”はMIDIチャンネル番号である。
【0059】
MIDI互換(note,Aft)コマンドは、MIDIにおけるポリフォニック・キー・プレッシャーメッセージと互換とされており、鍵ごとに独立したアフター・タッチ情報を送ることができるコマンドとされている。このコマンドは、標準データのデータフォーマットとされている。このコマンドでは、データ1がMIDIにおけるポリフォニック・キー・プレッシャーのインデックスとされる“Anh”とされ、データ2がMIDI互換の8ビットのアフター・タッチ情報を送るノート番号、データ3がMIDI互換の8ビットのタッチ値とされる。なお、“nh”はMIDIチャンネル番号である。
MIDI互換(CtnNo. ,Value)コマンドは、MIDIにおけるコントロール・チェンジメッセージと互換とされており、ダンパー・ペダル、ボリューム、モジュレーション、ホイールなどのコントローラの情報を送ることのできるコマンドとされている。このコマンドは、標準データのデータフォーマットとされている。このコマンドでは、データ1がMIDIにおけるコントロール・チェンジのインデックスとされる“Bnh”とされ、データ2がコントロール機能を示すMIDI互換の8ビットのコントロール番号、データ3がMIDI互換の8ビットのコントロール値とされる。なお、“nh”はMIDIチャンネル番号である。
【0060】
MIDI互換(PrgNo. ,00)コマンドは、MIDIにおけるプログラム・チェンジメッセージと互換とされており、音色を切り替えるコマンドとされている。このコマンドは、標準データのデータフォーマットとされている。このコマンドでは、データ1がMIDIにおけるプログラム・チェンジのインデックスとされる“Cnh”とされ、データ2がMIDI互換の8ビットのプログラム番号、データ3はMIDIにおけるプログラム・チェンジメッセージでは必要とされていないので“00h”とされる。なお、“nh”はMIDIチャンネル番号である。
MIDI互換(Aft,00)コマンドは、MIDIにおけるチャンネル・プレッシャーと互換とされており、音色を切り替えるコマンドとされている。このコマンドは、標準データのデータフォーマットとされている。このコマンドでは、データ1がMIDIにおけるチャンネル・プレッシャーのインデックスとされる“Dnh”とされ、データ2がMIDI互換の8ビットのアフター・タッチ値、データ3はMIDIにおけるプログラム・チェンジメッセージでは必要とされていないので“00h”とされる。なお、“nh”はMIDIチャンネル番号である。このコマンドは、代表とされるアフター・タッチ情報を送るコマンドであるので、複数ノートオンされていた場合は、全てのノートオンのアフター・タッチ情報となる。
【0061】
MIDI互換(BendL,H)コマンドは、MIDIにおけるピッチ・ベンドメッセージと互換とされており、ホイールやジョイスティックなどから構成されるピッチ・ベンダーの情報を送るコマンドとされている。このコマンドは、標準データのデータフォーマットとされている。このコマンドでは、データ1がMIDIにおけるピッチ・ベンドのインデックスとされる“Enh”とされ、データ2がMIDI互換の8ビットのピッチ・ベンド値のLSB、データ3がMIDI互換の8ビットのピッチ・ベンド値のMSBとされる。なお、“nh”はMIDIチャンネル番号である。
【0062】
MIDIにおいては、ステータス“F0h”〜“F7h”が定義されている。ただし、ステータス“F4h”、“F5h”は未定義である。また、上述したようにMIDIにおけるシステム・エクスクルーシブの開始および終了のステータス“F0h”、“F7h”は、Eバスシステムのインデックス“4ih”、“5ih”に変換して使用しない。同様に、MIDIにおけるステータス“F2h”は、Eバスシステムのインデックス“6xh”に変換し、MIDIにおけるステータス“F5h”がMIDI Time Pieceとして定義されている場合は、Eバスシステムのインデックス“7xh”に変換する。このように、“F0h”〜“F7h”の一部のステータスを変換しているが、これは、標準データのフォーマットの中で、その一部のステータスについてバイト数を1バイト増やすため、あるいは、その増えたバイトでMIDIポート番号を指定できるようにするためである。また、MIDIスタンダードでは、メッセージの各バイトの最上位ビットにより、そのバイトがステータスバイトであるかデータバイトであるかを判定するようになっているが、上述したMIDIプロトコルでは標準データのデータ1が必ずコマンドであるので、同様の目的で最上位ビットを使う必要がない。そこで、上述したMIDIプロトコルでは、MIDIのステータスバイトから外れる“00h”〜“7Fh”を、共通プロトコルのコマンドやMIDIを拡張するコマンドとして使用するようにしている。
【0063】
さらに、F1(MIDI Timecode Quater Frame)コマンドは、MIDIタイムコードにおける時/分/秒の情報を送るコマンドとされている。このコマンドは、標準データのデータフォーマットとされている。このコマンドでは、データ1がインデックスとされる“Fih”とされ、データ2がMIDIタイムコード・クォーター・フレームのステータスである“F1h”、データ3がMIDI互換の8ビットの時/分/秒の値とされる。
さらにまた、F3(Song Select)コマンドは、ソング・メモリや記憶媒体に記憶されている曲を選択するコマンドとされている。このコマンドは、標準データのデータフォーマットとされている。このコマンドでは、データ1がインデックスとされる“Fih”とされ、データ2がMIDIにおけるソング・セレクトのステータスである“F3h”、データ3がMIDI互換の8ビットのソング番号とされる。
【0064】
さらにまた、F6(Tune Request)コマンドは、オート・チューニング機能のあるMIDIデバイスをチューニングするコマンドとされている。このコマンドは、標準データのデータフォーマットとされている。このコマンドでは、データ1がインデックスとされる“Fih”とされ、データ2がMIDIにおけるチューン・リクエストのステータスである“F6h”、データ3はMIDIにおいて必要とされていないため“00h”とされる。
【0065】
さらにまた、システムリアルタイムメッセージコマンドは、リアルタイムで処理される必要のあるメッセージを送るコマンドである。このコマンドは、標準データのデータフォーマットとされている。このコマンドでは、データ1がインデックスとされる“Fih”とされ、データ2がMIDIにおけるシステムリアルタイムメッセージのステータスである“F8h”〜“FFh”のいずれか、データ3はMIDIにおいて必要とされていないため“00h”とされる。なお、データ2は次のようになる。
機能がタイミング・クロックとされている場合は、ステータス“F8h”
機能がスタートとされている場合は、ステータス“FAh”
機能がコンティニューとされている場合は、ステータス“FBh”
機能がストップとされている場合は、ステータス“FCh”
機能がシステム・リセットとされている場合は、ステータス“FFh”
なお、ステータス“F9h”“FDh”は未定義であり、ステータス“FEh”はアクティブ・センシングとして定義されているが、本発明にかかるEバスシステムにおいてはアクティブ・センシング(“FEh”)は使用しない。なお、以上のデータ1が“Fih”となっているコマンドでは、“ih”は当該コマンドを送出するMIDIポート番号を示している。
【0066】
次に、本発明にかかるEバスシステムのEバス起動手順を図10に示すフローチャートに示す。
Eバスシステムにおいて電源を投入する(ステップS1)と、Eバス11の4本の電源ラインを介して、Eバスシステムに接続されているデバイスの全てに電源が供給される。ここで、ホスト(メインコントローラデバイス10)はEバス11におけるイニシャルクリアラインをLレベルにする。これにより、Eバスシステムに接続されているデバイスが機能を停止してリセットされ、デバイスのハードウェア初期化が行われる(ステップS2)。次いで、ホスト(メインコントローラデバイス10)はEバス11におけるイニシャルクリアラインをHレベルにして、Eバスシステムに接続されているデバイスを起動する。これにより、Eバスシステムに接続されているデバイスにおいてソフトウェアが初期化される(ステップS3)。ここで、図7に示す「Eバススタート」コマンドをホスト(メインコントローラデバイス10)がゼネラルコールで送信する(ステップS4)。Eバスシステムに接続されている各デバイスは、この「Eバススタート」コマンドを受信して動作開始し、これにより、Eバスシステムが動作開始するようになる。なお、前述したホスト系におけるカテゴリーID・サブアドレスリクエストのコマンドを使用したテーブルの作成は、この「Eバススタート」コマンドが送出された直後に行われる。
【0067】
次に、本発明にかかるEバスシステムにおけるホスト受信処理のフローチャートを図11に示す。
図11に示すホスト受信処理において、ホスト(メインコントローラデバイス10)がEバス11から信号を受信すると、ステップS10において受信した送信先アドレスが“10h”か“12h”かが判定される。この場合の送信先アドレスは、ホスト受信であることからアドレス指定されたホストのアドレスとなる。ただし、ステップS10において判定されるホストのアドレスには、常時“0”とされるR/W用の1ビットが含まれている。そして、受信した送信先アドレスが“10h”(=“0001 0000”)と判定された場合は、標準プロトコルのホストのアドレスが指定されていることから、ステップS11に進み送信元アドレスの受信およびデータ1〜データ3からなるデータ部を受信する標準プロトコル受信処理が行われる。また、有効な信号を受信できた場合は1バイト毎にアクノリッジを返す。この標準プロトコル受信処理では、ホストは、例えば鍵盤デバイスからの鍵盤 OFFや鍵盤 ON等のコマンドを受信したり、パネルデバイスからのSW ONやコンティニュアスコントローラ等のコマンドを受信したりする。
【0068】
さらに、受信した送信先アドレスが“12h”(=“0001 0010”)と判定された場合は、MIDIプロトコルのホストのアドレスが指定されていることから、ステップS12に分岐し送信元アドレスの受信およびデータ1〜データ3、あるいはデータ1〜データ15からなるデータ部を受信するMIDIプロトコル受信処理が行われる。さらにまた、有効な信号を受信できた場合は1バイト毎にアクノリッジを返す。ステップS11あるいはステップS12の受信処理が終了すると、ホスト受信処理も終了する。このMIDIプロトコル受信処理では、ホストは、例えばMIDI入出力デバイスからノートオンやノートオフ等のMIDIメッセージのコマンドを受信する。
【0069】
次に、本発明にかかるEバスシステムにおけるホスト送信処理のフローチャートを図12に示す。
図12に示すホスト送信処理において、ホスト(メインコントローラデバイス10)がEバス11に送信する際には、ステップS20においてアドレス指定した送信する送信先アドレスの上位4ビットが“2h”〜“4h”か“5h”かが判定される。この場合の送信先アドレスの上位4ビットは、ホスト送信であることからホストがアドレス指定した送信先のデバイスのカテゴリーIDとなる。そして、送信する送信先アドレスの上位4ビットが“2h”〜“4h”(=“0001”〜“0100”)と判定された場合は、鍵盤系、パネル系あるいは鍵盤/パネル複合系のデバイスが送信先のデバイスとされていることになる。これらのカテゴリーのデバイスは図5に示すように通信プロトコルが標準プロトコルとされていることから、ステップS21に進み標準プロトコルにおけるホストのアドレスである“0001 000”の送信元アドレスが付加され、次いでデータ1〜データ3からなるデータ部が送信される標準プロトコル送信処理が行われる。この標準プロトコル送信処理では、ホストは、例えばパネルデバイスに対してLED番号iのLEDを点灯させるLEDコマンド(LED“i”をグループ“FFh”に振り分けるコマンド)を送信する。
【0070】
また、送信する送信先アドレスの上位4ビットが“5h”(=“0101”)と判定された場合は、MIDI系のデバイスが送信先のデバイスとされていることになる。MIDI系のカテゴリーのデバイスは図5に示すように通信プロトコルがMIDIプロトコルとされていることから、ステップS22に分岐しMIDIプロトコルにおけるホストのアドレスである“0001 001”の送信元アドレスが付加され、次いでデータ1〜データ3、あるいはデータ1〜データ15からなるデータ部が送信されるMIDIプロトコル送信処理が行われる。ステップS21あるいはステップS22の送信処理が終了すると、ホスト送信処理も終了する。このMIDIプロトコル送信処理では、ホストは、例えばMIDIシーケンサデバイスに対しノートオンやノートオフ等のMIDIメッセージのコマンドを送信する。
【0071】
次に、本発明にかかるEバスシステムにおける鍵盤デバイスの送信/受信処理のフローチャートを図13に示す。
図13に示す鍵盤送信/受信処理においては、通信プロトコルが標準プロトコルとされていることから、ステップS30において標準プロトコル送信/受信処理が行われる。この標準プロトコル送信処理では、アドレス指定する送信先アドレスとして、ホストにおける標準プロトコルのアドレスである“0001 000”を指定して送信し、送信元アドレスとして自機のアドレスを指定して送信する。自機のアドレスは、カテゴリーIDが“0010”とされサブアドレスは自機に設定されている3ビットのアドレスとなる。これらのアドレスに続いてデータ1〜データ3からなるデータ部を送信する。
また、標準プロトコル受信処理では、アドレス指定された送信先アドレスが自機のアドレスと一致した場合に、後続する送信元アドレスおよびデータ1〜データ3からなるデータ部を受信する。この場合の送信元アドレスには、ホストにおける標準プロトコルのアドレスである“0001 000”が指定されている。
標準プロトコルではパネル系および鍵盤/パネル複合系のデバイスも通信を行うが、この際の送信/受信処理はカテゴリーIDが異なるだけで上記した鍵盤送信/受信処理と同様の処理が行われる。
【0072】
次に、本発明にかかるEバスシステムにおけるMIDIデバイスの送信/受信処理のフローチャートを図14に示す。
図14に示すMIDI送信/受信処理においては、通信プロトコルがMIDIプロトコルとされていることから、ステップS40においてMIDIプロトコル送信/受信処理が行われる。このMIDIプロトコル送信処理では、アドレス指定する送信先アドレスとして、ホストにおけるMIDIプロトコルのアドレスである“0001 001”を指定して送信し、送信元アドレスとして自機のアドレスを指定して送信する。自機のアドレスは、カテゴリーIDが“0101”とされサブアドレスは自機に設定されている3ビットのアドレスとなる。これらのアドレスに続いてデータ1〜データ3、あるいはデータ1〜データ15からなるデータ部を送信する。
また、MIDIプロトコル受信処理では、アドレス指定された送信先アドレスが自機のアドレスと一致した場合に、後続する送信元アドレスおよびデータ1〜データ3、あるいはデータ1〜データ15からなるデータ部を受信する。この場合の送信元アドレスには、ホストにおけるMIDIプロトコルのアドレスである“0001 001”が指定されている。
【0073】
ところで、ホストは、鍵盤からの鍵盤 ONコマンドに応じて、MIDIのノートオンメッセージを生成し、該ノートオンメッセージに応じて音源ユニットにおける楽音生成を制御したり、Eバスを介して該ノートオンメッセージをMIDIデバイスに送出したりする。また、パネルからのSW ONコマンドを受信した場合、そのSW ONコマンドの種類に応じて、発音用の音色データの選択、音色データの編集、自動演奏用の楽曲データの録音/再生、楽曲データの編集、自デバイスの設定変更、Eバスに接続された各デバイスの設定変更、等の処理を行なう。さらに、音色データの選択時は、例えば、パネルデバイスに対してLEDコマンドを送信して選択された音色データに対応したLEDを点灯させるとともに、MIDIデバイスに当該選択に対応したプログラムチェンジのメッセージを送出する。さらにまた、ホストにおいて楽曲データの再生をしている時(自動演奏時)は、順次再生されるMIDIメッセージに応じて音源ユニットの楽音生成を制御するとともに、Eバスを介して同MIDIメッセージをMIDIデバイスに送出する。
【0074】
以上説明した本発明によれば、電子楽器を構成するデバイス間の通信をバスシステムを通じて行えるようになる。この場合、マスターから送出されるデータ信号に送信先とされるデバイスに固有のアドレスが付与されており、該アドレスはデバイスのカテゴリーを表すカテゴリー情報と、同種のカテゴリーのデバイスの内のいずれか1つのデバイスを特定するサブアドレスとから構成されている。これにより、バスシステムを通じて種々のカテゴリーのデバイス間で通信を行うことができるようになる。従って、電子楽器において、例えばデバイスとして鍵盤を新たに開発した際には、その鍵盤を電子楽器用バスシステムに接続するだけで新規開発した鍵盤を備える電子楽器を構成することができる。この場合、他のカテゴリーのデバイス、例えばパネル系やホスト系のデバイスはそのまま流用して使用することができるようになる。
さらに、機能の追加に伴ってデバイスを追加する場合には、追加するデバイスを電子楽器用バスシステムに接続するだけで、新たなデバイスを追加した電子楽器を構成できるようになる。これにより、製品開発コストを著しく低下させることができるようになる。また、機能の追加を短時間で行うことができるようになる。
このように本発明においては、各デバイスを他の製品に流用することができると共に、デバイス毎に分けて開発することを可能とすることができる。
【0075】
さらに、鍵盤やパネルの操作入力デバイスとMIDIデバイスとで主要なパケット長を第1所定長に統一することにより、各デバイスにおける受信処理を単純化することができる。さらにまた、バイト長が長くなりがちなシステムエクスクルーシブのみ第1所定長より長い第2所定長で通信を行なうようにすることにより、システムエクスクルーシブの通信効率が落ちないようになる。さらにまた、複数の表示要素を同時に制御することが可能であり、同時に制御すべき表示要素の組に変更があまりない場合は、表示制御のためのコマンドの発行回数を少なくすることができる。さらにまた、MIDIメッセージに影響を与えずに、電子楽器用バスシステムにおいてMIDIメッセージを送受信することができるようになる。
【産業上の利用可能性】
【0076】
上記の説明では、鍵盤デバイスやパネルデバイスに備えられている各LEDはいずれか1つのグループに属するようになっていたが、1つのLEDを複数のグループに所属させることができるようにしてもよい。その場合、そのLEDの制御値は、そのLEDが所属するグループの制御値の最大値、最小値、あるいは合成値とすればよい。また、上記の説明ではEバスに接続されるデバイスとして「ホスト系」「鍵盤系」「パネル系」「MIDI系」を示したが、さらにこれ以外の種類のデバイスを接続するようにしてもよい。さらに、上記の説明ではEバス上のデータのプロトコルとして「共通プロトコル」「標準プロトコル」「MIDIプロトコル」の3つを示したが、さらにこれ以外のプロトコルを使用するようにしてもよい。
以上説明した本発明にかかるEバスシステムは、アイ・スケア・シー(I2C)バスをベースとしている。そして、Eバスシステムにおいて言及しなかった点についてはI2Cバスに準拠している。
【符号の説明】
【0077】
1 電子楽器、10 メインコントローラデバイス、10a メイン基板、11 Eバス、12,13 パネルデバイス、12a パネル基板、14,15 鍵盤デバイス、14a 鍵盤基板、16 MIDIデバイス、16a 基板、17 分岐基板、21 バス、22,23,24 音源ユニット、25,26 I/Oユニット、31 バス、32 サウンドシステム、B1〜B6 バッファ、Rp プルアップ抵抗、TR1〜TR6 トランジスタ

【特許請求の範囲】
【請求項1】
クロックが転送されるシリアルクロックラインと、該シリアルクロックラインのクロック信号に同期したデータ信号が転送されるシリアルデータラインとを少なくとも備える電子楽器に内蔵されるバスシステムであって、
前記バスシステムに接続されている複数種類のデバイス間においては前記バスシステムを通じてデータの送受信が行われ、
前記デバイスはそれぞれ固有のアドレスを有し、
前記デバイスは、ホストデバイスと、前記バスシステムに対して着脱可能な任意の1ないし複数の鍵盤やパネル等とされる操作入力デバイスと、前記バスシステムに対して着脱可能な任意の1ないし複数のMIDIデバイスとを含み、
前記アドレスは、デバイスのカテゴリーを表すカテゴリー情報と、同種のカテゴリーのデバイスの内のいずれか1つのデバイスを特定するサブアドレスとでなり、
前記データの送受信は、少なくとも送信先アドレスを含むヘッダ部と送信されるデータの種別を示すインデックス情報とがデータに付加された固定長パケットによりなされ、
前記ホストデバイスは、前記アドレスのカテゴリー情報に基づき、前記データの送受信を行う他のデバイスが、前記操作入力デバイスであるか前記MIDIデバイスであるかを識別し、
前記ホストデバイスと前記操作入力デバイスの間においては、第1プロトコルにて、送信しようとする制御・操作内容に対応するコントロールコマンドの種別を示すインデックス情報を含む前記固定長パケットが前記バスシステムに送信され、
前記ホストデバイスとMIDIデバイスとの間においては、第2プロトコルにて、送信しようとするMIDIメッセージのステータスバイトに対応した該MIDIメッセージの種別を示すインデックス情報を含むとともに該MIDIメッセージのデータバイトを前記パケットのデータとし、前記MIDIメッセージが前記固定長パケットに変換されて前記バスシステムに送信されることを特徴とする電子楽器用バスシステム。
【請求項2】
クロックが転送されるシリアルクロックラインと、該シリアルクロックラインのクロック信号に同期したデータ信号が転送されるシリアルデータラインとを少なくとも備える電子楽器に内蔵されるバスシステムであって、
前記バスシステムに接続されている複数種類のデバイス間においては前記バスシステムを通じてデータの送受信が行われ、
前記デバイスはそれぞれ固有のアドレスを有し、
前記デバイスは、ホストデバイスと、前記バスシステムに対して着脱可能な任意の1ないし複数の鍵盤やパネル等とされる操作入力デバイスと、前記バスシステムに対して着脱可能な任意の1ないし複数のMIDIデバイスとを含み、
前記アドレスは、デバイスのカテゴリーを表すカテゴリー情報と、同種のカテゴリーのデバイスの内のいずれか1つのデバイスを特定するサブアドレスとでなり、
前記データの送受信は、少なくとも送信先アドレスを含むヘッダ部と送信されるデータの種別を示すインデックス情報とがデータに付加された固定長パケットによりなされ、
前記ホストデバイスは、前記アドレスのカテゴリー情報に基づき、前記データの送受信を行う他のデバイスが、前記操作入力デバイスであるか前記MIDIデバイスであるかを識別し、
前記ホストデバイスと前記操作入力デバイスの間においては、第1プロトコルにて、制御・操作内容に対応するコントロールコマンドの種別を示すインデックス情報を含む前記固定長パケットが前記バスシステムから受信され、
前記ホストデバイスとMIDIデバイスとの間においては、第2プロトコルにて、MIDIメッセージの種別を示すインデックス情報を含む前記固定長パケットが前記バスシステムから受信され、該受信した固定長パケットを、前記受信した固定長パケットのインデックス情報に対応するステータスバイトとし、前記受信した固定長パケットのデータをデータバイトとしたMIDIメッセージに変換することを特徴とする電子楽器用バスシステム。

【図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

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate


【公開番号】特開2010−176147(P2010−176147A)
【公開日】平成22年8月12日(2010.8.12)
【国際特許分類】
【出願番号】特願2010−86869(P2010−86869)
【出願日】平成22年4月5日(2010.4.5)
【分割の表示】特願2005−364410(P2005−364410)の分割
【原出願日】平成13年2月27日(2001.2.27)
【出願人】(000004075)ヤマハ株式会社 (5,930)
【Fターム(参考)】