(57)【特許請求の範囲】
【請求項１】
サンプル値を表す所定数のビット列であるサンプルデータを時系列的に複数配列してなるオーディオデータを受信するオーディオデータ受信過程と、
楽音の発音を指示する演奏データを受信する演奏データ受信過程と、
前記オーディオデータに含まれる複数のサンプルデータの各々に含まれる未使用ビットまたは最下位ビットを含む所定数のビットを、前記演奏データを示すビット列を構成するビットで置き換えることにより、演奏データの埋め込まれたオーディオデータを生成するオーディオデータ生成過程と
を具備することを特徴とするデータ生成方法。
【請求項２】
請求項１記載のデータ生成方法であって、
前記演奏データ受信過程において受け取った演奏データを示すビット列に同期ビットを付加する同期ビット付加過程を具備し、
前記オーディオデータ生成過程において、前記同期ビットの付加された演奏データを示すビット列を構成するビットにより前記置き換えの処理が行われる
ことを特徴とするデータ生成方法。
【請求項３】
音のサンプル値を示す所定数のビット列であって、当該ビット列に含まれる未使用ビットまたは最下位ビットを含む所定数のビットが楽音の発音を指示する演奏データを示すビット列の一部を構成するビットであるサンプルデータを時系列的に複数配列してなるオーディオデータを受信する受信過程と、
前記受信過程によって受信されるオーディオデータに含まれる複数のサンプルデータの各々から未使用ビットまたは最下位ビットを含む所定数のビットを抽出し、抽出したビットを結合することにより、前記演奏データを生成する演奏データ生成過程と
を具備することを特徴とするデータ生成方法。
【請求項４】
サンプル値を表す所定数のビット列であるサンプルデータを時系列的に複数配列してなるオーディオデータを受信するオーディオデータ受信過程と、
楽音の発音を指示する演奏データを受信する演奏データ受信過程と、
前記オーディオデータに含まれる複数のサンプルデータの各々に含まれる未使用ビットまたは最下位ビットを含む所定数のビットを、前記演奏データを示すビット列を構成するビットで置き換えることにより、演奏データの埋め込まれたオーディオデータを生成するオーディオデータ生成過程と
をコンピュータに実行させるプログラム。
【請求項５】
音のサンプル値を示す所定数のビット列であって、当該ビット列に含まれる未使用ビットまたは最下位ビットを含む所定数のビットが楽音の発音を指示する演奏データを示すビット列の一部を構成するビットであるサンプルデータを時系列的に複数配列してなるオーディオデータを受信する受信過程と、
前記受信過程によって受信されるオーディオデータに含まれる複数のサンプルデータの各々から未使用ビットまたは最下位ビットを含む所定数のビットを抽出し、抽出したビットを結合することにより、前記演奏データを生成する演奏データ生成過程と
をコンピュータに実行させるプログラム。
【請求項６】
サンプル値を表す所定数のビット列であるサンプルデータを時系列的に複数配列してなるオーディオデータを受信するオーディオデータ受信過程と、
楽音の発音を指示する演奏データを受信する演奏データ受信過程と、
前記オーディオデータに含まれる複数のサンプルデータの各々に含まれる未使用ビットまたは最下位ビットを含む所定数のビットを、前記演奏データを示すビット列を構成するビットで置き換えることにより、演奏データの埋め込まれたオーディオデータを生成するオーディオデータ生成過程と
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
音のサンプル値を示す所定数のビット列であって、当該ビット列に含まれる未使用ビットまたは最下位ビットを含む所定数のビットが楽音の発音を指示する演奏データを示すビット列の一部を構成するビットであるサンプルデータを時系列的に複数配列してなるオーディオデータを受信する受信過程と、
前記受信過程によって受信されるオーディオデータに含まれる複数のサンプルデータの各々から未使用ビットまたは最下位ビットを含む所定数のビットを抽出し、抽出したビットを結合することにより、前記演奏データを生成する演奏データ生成過程と
をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項８】
サンプル値を表す所定数のビット列であるサンプルデータを時系列的に複数配列してなるオーディオデータを受信するオーディオデータ受信手段と、
楽音の発音を指示する演奏データを受信する演奏データ受信手段と、
前記オーディオデータに含まれる複数のサンプルデータの各々に含まれる未使用ビットまたは最下位ビットを含む所定数のビットを、前記演奏データを示すビット列を構成するビットで置き換えることにより、演奏データの埋め込まれたオーディオデータを生成するオーディオデータ生成手段と
を具備することを特徴とするデータ生成装置。
【請求項９】
音のサンプル値を示す所定数のビット列であって、当該ビット列に含まれる未使用ビットまたは最下位ビットを含む所定数のビットが楽音の発音を指示する演奏データを示すビット列の一部を構成するビットであるサンプルデータを時系列的に複数配列してなるオーディオデータを受信する受信手段と、
前記受信手段によって受信されるオーディオデータに含まれる複数のサンプルデータの各々から未使用ビットまたは最下位ビットを含む所定数のビットを抽出し、抽出したビットを結合することにより、前記演奏データを生成する演奏データ生成手段と
を具備することを特徴とするデータ生成装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、デジタルデータのデータ重畳技術に係り、特にデジタルオーディオデータとＭＩＤＩデータを同時に記録もしくは伝送するためのデータ生成方法、プログラム、記録媒体、およびデータ生成装置と、デジタルデータに重畳されたデータの生成方法、プログラム、記録媒体、およびデータ生成装置に関するものである。
【０００２】
【従来の技術】
［１］背景
同時に複数の電子楽器（以下、電子ピアノ、シンセサイザ、サンプリングマシン、ハードディスクレコーダ、シーケンサ、それらと同様の機能を実現可能なコンピュータ等を広く含む言葉として「電子楽器」を用いる）を用いた演奏および電子楽器を用いた演奏情報の記録の目的で、ＭＩＤＩ（Ｍｕｓｉｃａｌ  Ｉｎｓｔｒｕｍｅｎｔ  Ｄｉｇｉｔａｌ  Ｉｎｔｅｒｆａｃｅ）データが広く利用されている。一方、デジタルデータ処理技術の進歩に伴い、音声情報を記録する目的で、デジタルオーディオデータもまた、広く利用されるようになってきている。
【０００３】
その結果、ＭＩＤＩデータとデジタルオーディオデータとを関連づけて利用するケースが増えている。以下にその例を挙げる。
ａ）ＭＩＤＩデータを用いた電子楽器の演奏に合わせて、記憶媒体からデジタルオーディオデータを読み出し、楽曲のフレーズを再生する。
ｂ）記憶媒体からデジタルオーディオデータを読み出して楽曲を再生し、その再生音を伴奏として電子楽器を演奏し、その演奏において生成されるＭＩＤＩデータを記録する。
【０００４】
（１）インタフェース数およびケーブル数の増加
上記のような状況において、ＭＩＤＩデータと同時にデジタルオーディオデータも利用可能な電子楽器に対するニーズが増している。
【０００５】
しかしながら、単に従来の電子楽器にデジタルオーディオデータ用のインタフェースを追加すれば、追加されるインタフェースそのもののコストが新たに必要となることに加え、以下のような問題が発生する。
ａ）電子楽器内部における入出力信号用の経路が増えることから、ＥＭＩ（Ｅｌｅｃｔｒｏｍａｇｎｅｔｉｃ  Ｉｎｔｅｒｆｅｒｅｎｃｅ）対策のために開発コストが増加する。
ｂ）電子楽器内部における入出力信号用の経路が増えることから、問題発生時の原因解明が困難となる。
ｃ）電子楽器に接続されるケーブルの種類が増えることから、ユーザがケーブル接続を誤る可能性が高まる。
ｄ）電子楽器に接続されるケーブルの数が増えることから、ユーザが接続および接続の取り外しを行うにあたり、より多くの時間がかかると同時に、電子楽器の外観が損なわれる。
ｅ）電子楽器の外面に入出力端子のためのスペースをより多く必要とするため、電子楽器の小型化が難しくなる。
【０００６】
上記のような問題は、元来インタフェース数およびそれらインタフェース間のケーブル数が多い電子楽器においては深刻である。
【０００７】
（２）データ数の増加
一方で、前述のようにＭＩＤＩデータとデジタルオーディオデータが混在した状態で利用される状況において、データ管理上の困難が発生している。すなわち、互いに関連するＭＩＤＩデータとデジタルオーディオデータは同じ記録媒体に記録する等の管理が必要であるが、通常それらのデータは別のファイルとして記録されるため、その管理が煩雑となっている。ましてや、それら複数のデータを同期させて再生する必要がある場合には、別途再生のタイミングを管理するための情報を記録したデータが必要となり、データ管理の煩雑さはより深刻である。
【０００８】
［２］従来技術
これに対し、以下のような技術的対応がなされてきた。
【０００９】
（１）インタフェース数およびケーブル数の増加に対する対応
（１−１）複数の電子楽器の統合
電子楽器のあるものは、複数の電子楽器の機能を統合している。これにより、電子楽器が要するインタフェース数および複数楽器間のケーブル数が減少する。ＣＤプレーヤを内蔵した電子ピアノや、ミキサ機能を持ち、外部から受け取る音声信号と内部で生成される音声信号とをミキシングして出力可能なシンセサイザ等がその例である。
【００１０】
（１−２）デジタルオーディオデータ用インタフェースのＭＩＤＩデータ伝送への利用
電子楽器のあるものは、ＭＩＤＩデータを伝送可能なデジタルオーディオデータ用インタフェースを備えている。そのような電子楽器は、例えばＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）端子やＩＥＥＥ１３９４端子を介して、１本のケーブルでＭＩＤＩデータとデジタルオーディオデータとを送受信することができる。その結果、電子楽器が要するインタフェース数および電子楽器間のケーブル数が減少する。
【００１１】
（２）データ数の増加に対する対応
（２−１）シーケンサにおけるデータの統合
ＭＩＤＩデータを用いて電子楽器に自動演奏を行わせるシーケンサおよびコンピュータに同等の機能を実現させるシーケンサ・ソフトウェア（以下、単に「シーケンサ」と呼ぶ）のあるものは、ＭＩＤＩデータだけでなくデジタルオーディオデータも扱うことができる。そのようなシーケンサを用いると、ユーザは一つの時間軸上にＭＩＤＩデータとデジタルオーディオデータを配置することにより、希望するタイミングでＭＩＤＩデータを用いた電子楽器の演奏とデジタルオーディオデータの再生を同時に行うことができる。なお、そのようなシーケンサの多くは、ＭＩＤＩデータとデジタルオーディオデータを一つのファイルとして記録することもできる。従って、それらのシーケンサを用いることにより、互いに関連するＭＩＤＩデータ、デジタルオーディオデータ、およびそれらの同期情報の一元的な管理が可能となる。
【００１２】
（２−２）ＣＤ−ＭＩＤＩの利用
音楽用のＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）の規格を拡張したＣＤ−ＭＩＤＩと呼ばれる規格を用いると、音楽ＣＤ内のサブコードと呼ばれる領域の未使用部分にＭＩＤＩデータを記録することができる。これにより、ユーザは関連するデジタルオーディオデータとＭＩＤＩデータを１つのＣＤメディア上で管理することができる。
【００１３】
【発明が解決しようとする課題】
しかしながら、上述した従来の技術による技術的対応策は、以下のようにそれぞれ問題点を持っている。
【００１４】
複数の機能を合わせ持つ電子楽器を用いる場合、その電子楽器が持っていない機能を利用する必要が生じた際には、ユーザは従来と同様、複数のケーブルを用いて必要な機能を持つ他の電子楽器との煩雑な接続を行わねばならない。
【００１５】
ＵＳＢやＩＥＥＥ１３９４のインタフェースを用いる場合、相互に接続される電子楽器の一方もしくは両方が通信のために高水準な処理能力を備えている必要がある。これはＵＳＢやＩＥＥＥ１３９４が主としてコンピュータとその周辺機器とを接続することを目的に作られた規格であることに由来している。従って、例えば電子ピアノやシンセサイザ等のコンピュータではない電子楽器どうしをこれらの規格を用いて自由に接続するには、それらの両方にインタフェース用の高性能なマイクロプロセッサを導入しなければならず、高コストとなる。
【００１６】
ＭＩＤＩデータとデジタルオーディオデータの両方を一元管理可能なシーケンサを用いる場合、それらのシーケンサが作成するファイルに汎用性がないため、複数のユーザ間でデータのやりとりを行う場合に不便である。
【００１７】
ＣＤ−ＭＩＤＩを用いる方法によれば、デジタルオーディオデータとＭＩＤＩデータを１枚のＣＤメディアで管理ができるが、その仕様の範囲は記録に限られ、また利用可能な媒体はＣＤに限られている。従って、ＣＤ−ＭＩＤＩの規格に従ってデジタルオーディオデータとＭＩＤＩデータを単一の媒体で伝送することはできないし、ハードディスク等の他の記録媒体に、そのままではそれらのデータを記録することもできない。また、ＭＩＤＩデータをサブコードと呼ばれる特殊な領域に記録するので、一般的なＣＤ機器では取り扱う事が出来ない。
【００１８】
上記のような状況に鑑み、本発明は、ＭＩＤＩデータとデジタルオーディオデータの両方を利用可能な電子楽器において、安価かつ容易な方法でそれらデータの伝送に要するインタフェース数およびケーブル数を減少させる手段を提供することを目的としている。同時に、本発明はＭＩＤＩデータとデジタルオーディオデータの両方を単一のデータとして扱うことにより、それらのデータの管理を容易にする手段を提供することを目的としている。
【００１９】
【課題を解決するための手段】
かかる目的を達成するため、この発明は、サンプル値を表す所定数のビット列であるサンプルデータを時系列的に複数配列してなるオーディオデータを受信するオーディオデータ受信過程と、楽音の発音を指示する演奏データを受信する演奏データ受信過程と、前記オーディオデータに含まれる複数のサンプルデータの各々に含まれる未使用ビットまたは最下位ビットを含む所定数のビットを、前記演奏データを示すビット列を構成するビットで置き換えることにより、演奏データの埋め込まれたオーディオデータを生成するオーディオデータ生成過程とを具備することを特徴とするデータ生成方法を提供する。
【００２３】
さらに別の好ましい態様では、前記演奏データ受信過程において受け取った演奏データを示すビット列に同期ビットを付加する同期ビット付加過程を具備し、前記オーディオデータ生成過程において、前記同期ビットの付加された演奏データを示すビット列を構成するビットにより前記置き換えの処理が行われることを特徴とする。
【００２５】
また、この発明は、音のサンプル値を示す所定数のビット列であって、当該ビット列に含まれる未使用ビットまたは最下位ビットを含む所定数のビットが楽音の発音を指示する演奏データを示すビット列の一部を構成するビットであるサンプルデータを時系列的に複数配列してなるオーディオデータを受信する受信過程と、前記受信過程によって受信されるオーディオデータに含まれる複数のサンプルデータの各々から未使用ビットまたは最下位ビットを含む所定数のビットを抽出し、抽出したビットを結合することにより、前記演奏データを生成する演奏データ生成過程とを具備することを特徴とするデータ生成方法を提供する。
【００２７】
この発明によれば、上記データ生成方法によってデジタルオーディオデータに演奏データを重畳して伝送を行い、また、伝送されたデジタルオーディオデータから演奏データを抽出することができる。従って、デジタルオーディオデータおよび演奏データを１本のケーブルで高速伝送することができる。また、この発明によれば、デジタルオーディオデータおよび演奏データの記録再生を行う場合にも、記憶容量を節約できると同時にデータ管理が容易になるという利点がある。
【００２８】
この発明は、以上説明したデータ生成方法を使用するという態様の他、これらの方法を実施するためのプログラムを電気通信回線を介してユーザに配布する、もしくはそのようなプログラムをコンピュータ読み取り可能な記録媒体に記録させて配布するという態様でも実施され得る。
【００２９】
また、別の観点から、この発明は、サンプル値を表す所定数のビット列であるサンプルデータを時系列的に複数配列してなるオーディオデータを受信するオーディオデータ受信手段と、楽音の発音を指示する演奏データを受信する演奏データ受信手段と、前記オーディオデータに含まれる複数のサンプルデータの各々に含まれる未使用ビットまたは最下位ビットを含む所定数のビットを、前記演奏データを示すビット列を構成するビットで置き換えることにより、演奏データの埋め込まれたオーディオデータを生成するオーディオデータ生成手段とを具備することを特徴とするデータ生成装置を提供する。
【００３０】
さらにこの発明は、音のサンプル値を示す所定数のビット列であって、当該ビット列に含まれる未使用ビットまたは最下位ビットを含む所定数のビットが楽音の発音を指示する演奏データを示すビット列の一部を構成するビットであるサンプルデータを時系列的に複数配列してなるオーディオデータを受信する受信手段と、前記受信手段によって受信されるオーディオデータに含まれる複数のサンプルデータの各々から未使用ビットまたは最下位ビットを含む所定数のビットを抽出し、抽出したビットを結合することにより、前記演奏データを生成する演奏データ生成手段とを具備することを特徴とするデータ生成装置を提供する。
【００３１】
【発明の実施の形態】
次に、本発明の技術的思想の理解を容易にするため、本発明の望ましい実施形態を説明する。なお、この実施形態は本発明の一態様を示すものであってこの発明を限定するものではなく、本発明はその技術的思想の範囲内で任意に変更が可能である。
【００３２】
［１］本実施形態の構成
［１．１］全体構成
図１はこの発明の一実施形態である演奏システム全体の構成を示すブロック図である。この演奏システムは、コントローラ１１と、音源モジュール１２とを有している。ここで、コントローラ１１と音源モジュール１２は、デジタルオーディオケーブルにより接続されている。コントローラ１１は、デジタルオーディオ信号を発生する手段と、演奏データであるＭＩＤＩデータを発生する手段と、デジタルオーディオデータにＭＩＤＩデータを重畳する手段を有している。コントローラ１１は、デジタルオーディオケーブルを介してデジタルオーディオデータを音源モジュール１２に送ることができる。音源モジュール１２は、デジタルオーディオケーブルを介して受信されるデジタルオーディオデータを音として再生するためのモジュールである。コントローラ１１から送られてくるデジタルオーディオデータには、ＭＩＤＩデータが重畳されている場合がある。音源モジュール１２には、このデジタルオーディオデータからＭＩＤＩデータを抽出する手段が設けられている。また、音源モジュール１２には、この抽出されたＭＩＤＩデータに従って、楽音を表すデジタルオーディオデータを生成する手段も設けられている。
【００３３】
音源モジュール１２にはアナログオーディオケーブルを介してアンプ１３が接続されている。音源モジュール１２は、その内部において発生したデジタルオーディオデータをアナログ音声信号に変換し、アナログオーディオケーブルを介して外部に出力することができる。アンプ１３は、このアナログオーディオケーブルを介して出力されるアナログ音声信号を受け取り、受け取ったアナログ音声信号をラインレベルからスピーカレベルに増幅し、増幅したアナログ音声信号をスピーカＬ１４およびスピーカＲ１５に出力する。スピーカＬ１４およびスピーカＲ１５はアンプ１３からアナログ音声信号を受け取り、受け取ったアナログ音声信号を人間が聴くことのできる音声に変換する。
【００３４】
［１．２］コントローラ１１の構成
図２はコントローラ１１の構成を示すブロック図である。図２に示すように、コントローラ１１は、制御部２１、操作部２２、表示部２３、鍵盤部２４、ＣＤプレーヤ部２５、音源部２６、ミキサ部２７、ＭＩＤＩデータ重畳部２８、Ｓ／Ｐ  ＤＩＦ出力部２９、および発振器３０を有している。
【００３５】
ここで、操作部２２、表示部２３、鍵盤部２４、ＣＤプレーヤ部２５、音源部２６、ミキサ部２７およびＭＩＤＩデータ重畳部２８はコントロール用バスにより制御部２１と接続されている。制御部２１は、コントロール用バスを介してこれらの各部とコントロール用の信号を授受し、各部の制御を行う。
【００３６】
発振器３０は、２種類のクロックＳＣＫおよびＷＳを出力する。これらのクロックは、ＭＩＤＩデータまたはデジタルオーディオデータの送受信のタイミング制御に用いられる。
【００３７】
クロックＳＣＫおよびＷＳのクロック周期は以下の通りである。
（ＳＣＫ）
（１／４４１００）／（２４×２）×１００００００＝約０．４７２４（マイクロ秒）
（ＷＳ）
約０．４７２４×（２４×２）＝約２２．６８（マイクロ秒）
【００３８】
鍵盤部２４と音源部２６間、鍵盤部２４とＭＩＤＩデータ重畳部２８間は、ＭＩＤＩデータ用バスにより接続されている。ここで、鍵盤部２４は、ＭＩＤＩデータ用バスを介してＭＩＤＩデータを送信するＭＩＤＩ送信部を有している。また、音源部２６およびＭＩＤＩデータ重畳部２８は、ＭＩＤＩデータ用バスを介してＭＩＤＩデータを受信するＭＩＤＩ受信部を有している。ＭＩＤＩ送信部は、マイクロプロセッサ、ＭＩＤＩデータ送信用メモリ、主記憶、ＥＰＲＯＭ（Ｅｒａｓａｂｌｅ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、不揮発性メモリ等を有する。また、ＭＩＤＩ受信部は、マイクロプロセッサ、ＭＩＤＩデータ受信用メモリ、主記憶、ＥＰＲＯＭ、不揮発性メモリ等を有する。なお、ＭＩＤＩ送信部およびＭＩＤＩ受信部の機能の詳細については、本実施形態の動作説明において明らかにする。
【００３９】
ＣＤプレーヤ部２５とミキサ部２７間、音源部２６とミキサ部２７間、ミキサ部２７とＭＩＤＩデータ重畳部２８間、ＭＩＤＩデータ重畳部２８とＳ／Ｐ  ＤＩＦ出力部２９間は、Ｉ2Ｓバス（Ｉｎｔｅｒ−ＩＣ  Ｓｏｕｎｄ  Ｂｕｓ）により相互に接続されている。ここで、Ｉ2Ｓバスは、マイクロプロセッサ間で左右２チャネルのデジタルオーディオデータを伝送するための伝送規格である。また、その伝送規格に従った伝送経路もＩ2Ｓバスと呼ばれる。
【００４０】
ＣＤプレーヤ部２５は、音楽ＣＤに記録されたデジタルオーディオデータの再生を行う装置である。このデジタルオーディオデータは、Ｉ2Ｓバスを介してミキサ部２７に伝送される。図３は、このデジタルオーディオデータを例示している。このデジタルオーディオデータは、音声情報を所定のサンプリング周波数でサンプリングすることにより得られた一連のサンプルを表すＰＣＭ（ＰｕｌｓｅＣｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）形式のデジタルデータである。各サンプルは、左チャネルの音声を表すワードと右チャネルの音声を表すワードとからなる。左チャネルの音声を表すワードは、１６個のビットｌ（１５）、ｌ（１４）、・・・、ｌ（０）により構成され、また右チャネルの音声を表すワードも１６個のビットｒ（１５）、ｒ（１４）、・・・、ｒ（０）により構成されている。各ワードにおいて、ｌ（１５）およびｒ（１５）はＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）であり、ｌ（０）およびｒ（０）はＬＳＢ（ＬｅａｓｔＳｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）である。これらのデータは、サンプル（ｎ）を表す各ビットが左チャネルワードのＭＳＢから順に１ビットずつ伝送され、これが終わると、次のサンプル（ｎ＋１）を表す各ビットが１ビットずつ伝送され、という具合に、シリアル伝送される。その伝送速度は音声情報の量子化時のサンプリング周波数に依存し、例えばサンプリング周波数が４４．１ｋＨｚであった場合、通常１／４４１００秒の間に１サンプル分のデータが伝送される。
【００４１】
ところで、サンプリングおよび量子化により得られたデータは必ずしもそのままのビット長で伝送されるとは限らない。データの伝送用フォーマットは、多くの場合、量子化ビット数の大きいデータや将来の伝送規格の拡張に対応できるように、データ伝送用のビット長に余裕を持たせている。従って、１６ビットで量子化されたデジタルオーディオデータが例えば図４に示すようなフォーマットで出力される場合もある。図４は左右それぞれのデータ伝送用のビット長が２４であるフォーマットを用いて図３におけるデータ例を伝送する場合の例である。図３における左チャネル用ワードの構成ビットｌ（１５）、ｌ（１４）、・・・は図４における２４ビットの伝送データの上位１６ビットＬ（２３）、Ｌ（２２）、・・・に入り、同様に右チャネル用ワードの構成ビットｒ（１５）、ｒ（１４）、・・・も伝送データの上位１６ビットＲ（２３）、Ｒ（２２）、・・・に入る。また、伝送データにおける下位８ビットＬ（７）からＬ（０）およびＲ（７）からＲ（０）のビット列には、対応するデータが存在しないので、“０”が入れられる。
【００４２】
鍵盤部２４は、ユーザの演奏に基づきＭＩＤＩデータを生成する装置である。このＭＩＤＩデータは、ＭＩＤＩデータ用バスを介して、音源部２６およびＭＩＤＩデータ重畳部２８に伝送される。ここで、ＭＩＤＩデータについて説明する。ＭＩＤＩ規格においては、１つのまとまった演奏情報もしくはパラメータを表すデータをＭＩＤＩメッセージと呼び、１つのＭＩＤＩメッセージは１または複数のＭＩＤＩバイトにより構成される。図５は発音を指示するＭＩＤＩメッセージ（ノートオンメッセージ）の例を示している。この例において、ステータスバイトの上位４ビット“１００１”はこのＭＩＤＩメッセージがノートオンメッセージであることを示し、下位４ビット“０００１”は発音の対象がＭＩＤＩチャネル２に設定された機器であることを示す。続くデータバイト１は発音すべき音の高さを示すノートナンバが「５３」、さらに続くデータバイト２は発音の強さを示すベロシティが「１００」であることを表している。上述した鍵盤部２４は、ＭＩＤＩ規格に従い、このようなＭＩＤＩメッセージをＬＳＢから順にＭＩＤＩバイト単位で非同期に送信する。このように非同期に送られるＭＩＤＩバイトに受信側装置（図２では音源部２６とＭＩＤＩデータ重畳部２８）の受信動作を同期させるために、送信側装置である鍵盤部２４は、ＭＩＤＩバイトのＬＳＢの前にスタートビット（常に“０”）を、またＭＩＤＩバイトのＭＳＢの後にストップビット（常に“１”）を付加して送信する。図６は図５に示したＭＩＤＩメッセージが伝送される際のフォーマットである。以下、スタートビットおよびストップビットを付加されて１０ビットとなったＭＩＤＩバイトをＭＩＤＩワードと呼び、また各ＭＩＤＩワードの各ビットを各々が伝送される順にｍ（０）、ｍ（１）、・・・、ｍ（９）と呼ぶ。
【００４３】
音源部２６は、ＭＩＤＩデータ用バスを介して鍵盤部２４からＭＩＤＩデータを受け取り、このＭＩＤＩデータによって発音が指示された楽音のデジタルオーディオデータを生成する装置である。
【００４４】
ミキサ部２７は、ＣＤプレーヤ部２５によって再生されらデジタルオーディオデータと、音源部２６によって生成されたデジタルオーディオデータとをミキシングして出力する装置である。
【００４５】
音源部２６およびミキサ部２７から出力されるデジタルオーディオデータのフォーマットは、既に図３および図４を参照して説明した通りであり、各サンプルにおいては１ワード２４ビットに対し、実データ１６ビットが入っている。
【００４６】
ＭＩＤＩデータ重畳部２８は、ミキサ部２７から出力されるデジタルオーディオデータに対し、鍵盤部２４から出力されるＭＩＤＩデータを構成する各ビットを重畳する装置である。
【００４７】
本実施形態において、ユーザはＣＤ再生音とコントローラ１１の音源部を用いた鍵盤演奏音との両方の情報を含んだデジタルオーディオデータを得ることができる。すなわち、上述のように音源部２６により鍵盤部２４の鍵盤演奏を表すデジタルオーディオデータが生成され、これとＣＤプレーヤ部２５から得られるデジタルオーディオデータとがミキサ部２７によりミキシングされる。また、ユーザは音源モジュール１２の音源部を用いた鍵盤演奏音も得ることができる。すなわち、このＭＩＤＩデータ重畳部２８を利用し、ＭＩＤＩデータを音源モジュール１２に伝送することにより、音源モジュール１２の音源部より鍵盤部２４の鍵盤演奏を表すデジタルオーディオデータが生成される。
【００４８】
図７および図８は、各々、ＭＩＤＩデータ重畳部２８の出力データを例示している。図４に例示したように、ＭＩＤＩデータ重畳部２８に伝送されるデジタルオーディオデータが未使用のビット列を有しているような態様では、ＭＩＤＩデータ重畳部２８は、この未使用のビット列にＭＩＤＩデータの構成ビットを埋め込む。１サンプル分のデジタルオーディオデータにおける未使用なビット列は、ビット数が限られているため伝送速度が問題となるが、ＭＩＤＩデータはデジタルオーディオデータと比べてサイズが極めて小さく、要求される伝送速度も遅いため、未使用のビット列を利用してＭＩＤＩデータの伝送を行っても実用上問題はない。
図７は図４の例において、未使用の最下位ビットＬ（０）の列にＭＩＤＩデータを入れた例である。図７において、ｍ（０）〜ｍ（９）がＭＩＤＩデータ本体であり、サンプル（ｎ＋２）以降のＬ（０）にＭＩＤＩデータが重畳されている。伝送すべきＭＩＤＩデータ本体がない場合、Ｌ（０）列には“１”が入れられる。これはＭＩＤＩデータの受信側が、スタートビットｍ（０）の値“０”を検出可能とするためである。
なお、ＭＩＤＩデータを入れるビット列はＬ（０）に限られず、音質への影響が少ない他の未使用のビット列にＭＩＤＩデータを入れてもよいし、複数の未使用のビット列にＭＩＤＩデータを入れてもよい。複数のビット列をＭＩＤＩデータ用に用いる場合、図４におけるフォーマットにおいて、１系列のＭＩＤＩデータを横方向に順次記録してもよいし、縦方向に複数系列のＭＩＤＩデータを記録してもよい。
【００４９】
一方、図３に例示したように、伝送される各デジタルオーディオデータの全ビットが音を表すデータに使用され、未使用のビットがないような態様も考えられる。しかしながら、そのような場合においても、伝送される各ビットのうち音質への影響が少ないＬＳＢ側のビット列を利用することが可能である。
図８は図３に示したフォーマットのデジタルオーディオデータが入力される場合にＭＩＤＩデータ重畳部２８から出力されるデジタルオーディオデータを例示している。この例では、デジタルオーディオデータの最下位ビットｌ（０）およびｒ（０）の２列において、サンプル（ｎ＋２）以降に図６のＭＩＤＩデータが横方向に順次埋め込まれている。すなわち、サンプル（ｎ＋２）のｌ（０）、サンプル（ｎ＋２）のｒ（０）、サンプル（ｎ＋３）のｌ（０）、サンプル（ｎ＋３）のｒ（０）、・・・の順に、ＭＩＤＩデータのｍ（０）、ｍ（１）、ｍ（２）、ｍ（４）、・・・が埋め込まれている。
この場合、量子化ビット数は１６ビットであるため、各ワードはそれぞれ−３２７６８（１０進数）から３２７６７（１０進数）の範囲の整数値のいずれか１つをとる。従って、各ワードのＬＳＢがＭＩＤＩデータにより置き換えられたとしても、その影響は６５５３６段階における１段階の変化であり、無視できる。なお、以下の説明においては、図７に示した１ワード２４ビットを例として用いる。
【００５０】
Ｓ／Ｐ  ＤＩＦ出力部２９は、Ｉ2Ｓバスデータ受信用メモリ、ＢＭＣ変調回路等を有し、ＭＩＤＩデータ重畳部２８から送信されるデジタルオーディオデータを、デジタルオーディオケーブルを介して外部の機器、図１に示す例では音源モジュール１２に送信する。より具体的には、まずＳ／Ｐ  ＤＩＦ出力部２９は、ＭＩＤＩデータ重畳部２８よりＩ2Ｓバスを介してデジタルオーディオデータを受信し、受信したデジタルオーディオデータをＩ2Ｓバスデータ受信用メモリに書き込む。その一方で、Ｓ／Ｐ  ＤＩＦ出力部２９は、Ｉ2Ｓバスデータ受信用メモリからデジタルオーディオデータを１サンプル分読み出し、読み出したデータを逆順に並び替え、その前後にＰｒｅａｍｂｌｅ等の情報を付加し、左右２サブフレーム６４ビットのデータを作成する。続いてＢＭＣ変調回路はこの６４ビットのデータをＢＭＣ変調してデジタルオーディオケーブルに出力する。なお、ＢＭＣ変調回路は発振器３０より得られるクロック信号ＳＣＫを用いてＳ／ＰＤＩＦ送信に用いる約０．３５４３マイクロ秒周期のクロック信号を生成しており、ＢＭＣ変調回路はデータの変調にそのクロック信号を用いる。
【００５１】
［１．３］音源モジュール１２の構成
図９は音源モジュール１２の構成を示すブロック図である。図９に示すように、音源モジュール１２は、制御部４１、操作部４２、表示部４３、Ｓ／Ｐ  ＤＩＦ入力部４４、ＭＩＤＩデータ抽出部４５、音源部４６、ＭＩＤＩデータ出力部４７、ミキサ部４８、記憶部４９、ライン出力部５０および発振器５１を有している。
【００５２】
操作部４２、表示部４３、ＭＩＤＩデータ抽出部４５、音源部４６、ミキサ部４８および記憶部４９はコントロール用バスにより制御部４１と接続されている。制御部４１は、コントロール用バスを介してこれらの各部とコントロール用の信号を授受し、各部の制御を行う。
【００５３】
ＭＩＤＩデータ抽出部４５と音源部４６間、ＭＩＤＩデータ抽出部４５とＭＩＤＩデータ出力部４７間は、ＭＩＤＩデータ用バスにより相互に接続されている。ＭＩＤＩデータ抽出部４５は、ＭＩＤＩデータ用バスを介してＭＩＤＩデータを送信するためのＭＩＤＩ送信部を有している。また、音源部４６およびＭＩＤＩデータ出力部４７は、ＭＩＤＩデータ用バスを介してＭＩＤＩデータを受信するためのＭＩＤＩ受信部を有している。
【００５４】
Ｓ／Ｐ  ＤＩＦ入力部４４とＭＩＤＩデータ抽出部４５間、Ｓ／Ｐ  ＤＩＦ入力部４４とミキサ部４８間、音源部４６とミキサ部４８間、ミキサ部４８と記憶部４９間、ミキサ部４８とライン出力部５０間、記憶部４９とＭＩＤＩデータ抽出部４５間は、Ｉ2Ｓバスにより相互に接続されている。
【００５５】
Ｓ／Ｐ  ＤＩＦ入力部４４、ＭＩＤＩデータ抽出部４５、音源部４６、ＭＩＤＩデータ出力部４７、ミキサ部４８、ライン出力部５０、および記憶部４９は発振器５１と接続されており、発振器５１からはＭＩＤＩデータ抽出部４５およびＭＩＤＩデータ出力部４７に対しクロック信号ＳＣＫが、またその他の構成部に対してはクロック信号ＳＣＫおよびＷＳが送信される。
【００５６】
Ｓ／Ｐ  ＤＩＦ入力部４４は、Ｓ／Ｐ  ＤＩＦデータ受信用メモリ、ＢＭＣ復調回路等を有し、デジタルオーディオケーブルを介して外部の機器、例えば図１に示すシステムではコントローラ１１からデジタルオーディオデータを受信する。このデジタルオーディオデータには、ＭＩＤＩデータが重畳されている場合がある。ＢＭＣ復調回路は、デジタルオーディオケーブルを介して受信される信号から約０．３５４３マイクロ秒周期のクロックを生成し、そのクロックを用いて受信信号からデータの復調を行う。復調されたデータは、Ｓ／Ｐ  ＤＩＦデータ受信用メモリに書き込まれる。Ｓ／Ｐ  ＤＩＦ入力部４４では、Ｓ／Ｐ  ＤＩＦデータ受信用メモリから１サンプル分の６４ビットのデータが読み出され、そのデータからＰｒｅａｍｂｌｅ等が除かれ、さらにデジタルオーディオデータ部分が逆順に並び替えられた後、そのデジタルオーディオデータがＩ2Ｓバスを介してＭＩＤＩデータ抽出部４５およびミキサ部４８に送信される。
【００５７】
ＭＩＤＩデータ抽出部４５は、ＭＩＤＩデータの重畳されたデジタルオーディオデータからＭＩＤＩデータを抽出する装置である。ＭＩＤＩデータの重畳されたデジタルオーディオデータは、Ｓ／Ｐ  ＤＩＦ入力部４４あるいは記憶部４９からＩ2Ｓバスを介して与えられる。ＭＩＤＩデータ抽出部４５によって抽出されたＭＩＤＩデータは、ＭＩＤＩデータ出力部４７およびミキサ部４８に送信される。また、ＭＩＤＩデータ抽出部４５は、抽出されたＭＩＤＩデータが制御用のＭＩＤＩメッセージ（システムエクスクルーシブメッセージ等）である場合には、それらのＭＩＤＩデータをコントロール用バスを介して制御部４１に送信する。
【００５８】
ＭＩＤＩデータ出力部４７は、ＭＩＤＩデータ抽出部４５からＭＩＤＩデータを受信し、受信したＭＩＤＩデータをＭＩＤＩケーブルにより外部の機器に送信する。なお、ＭＩＤＩデータ出力部４７におけるＭＩＤＩデータ受信動作には発振器５１から受信するＳＣＫ（周期：約０．４７２４マイクロ秒）が用いられるが、ＭＩＤＩデータ送信動作においては、マイクロプロセッサはＭＩＤＩデータ送信用のクロック（周期：３２．００マイクロ秒）を生成し、そのクロックをＳＣＫの代わりに用いる。これにより、音源モジュール１２は外部の機器に対してＭＩＤＩ規格に従った伝送速度によりＭＩＤＩデータの送信を行う。
【００５９】
記憶部４９は、大容量不揮発性メモリもしくはディスクからなり、ミキサ部４８からＩ2Ｓバスを介して、ＭＩＤＩデータの重畳されたデジタルオーディオデータを受信し、受信したデータを記録する。また、記憶部４９は、大容量不揮発性メモリもしくはディスクに記録されたデータをＩ2Ｓバスを介してＭＩＤＩデータ抽出部４５に送信する。デジタルオーディオデータの記録の形式は、例えば図７のフォーマットに対し、量子化ビット数、１ワードのビット数、チャネル数、ＭＩＤＩデータの含まれるビット列の位置および方向を示す情報を加えればよい。
【００６０】
ライン出力部５０はマイクロプロセッサおよびその周辺部品、Ｉ2Ｓバスデータ受信用メモリ、Ｄ／Ａコンバータ、増幅器等を有し、Ｉ2Ｓバスを介してミキサ部４８よりデジタルオーディオデータを受信し、そのＬ（２３）、Ｌ（２２）、・・・、Ｌ（８）およびＲ（２３）、Ｒ（２２）、・・・、Ｒ（８）のデータを取り出す。さらにライン出力部５０は、取り出したデータをＤ／Ａコンバータによりアナログ音声信号に変換し、そのアナログ音声信号を増幅器によりラインレベルに増幅して、アナログオーディオケーブルを介して外部の機器、すなわち、図１に示す例ではアンプ１３に出力する。
【００６１】
［２］実施形態の動作
［２．１］コントローラ１１の伝送すべきＭＩＤＩデータがない状態における動作
ユーザがコントローラ１１のＣＤプレーヤ部２５に所望の音楽ＣＤを装着し、操作部２２にＣＤ再生の指示を与えると、この再生指示は制御部２１を介してＣＤプレーヤ部２５に与えられる。この結果、ＣＤプレーヤ部２５による再生動作が開始される。この再生動作では、音楽を表す時系列的なデジタルオーディオデータがＣＤから順次読み取られ、Ｉ2Ｓバスを介してミキサ部２７に送られる。ここで、鍵盤部２４が操作されない場合には、音源部２６によるデジタルオーディオデータの生成は行われない。この場合、デジタルオーディオデータは、ミキサ部２７を通過し、ＭＩＤＩデータ重畳部２８に送られる。鍵盤部２４によってＭＩＤＩデータが生成されない場合、ＭＩＤＩデータ重畳部２８に対するＭＩＤＩデータの供給はない。この場合、ミキサ部２７を通過したデジタルオーディオデータは、ＭＩＤＩデータ重畳部２８で各サンプルのＬ（０）にＭＩＤＩデータがないことを示す“１”を重畳され、そこを通過する。このデジタルオーディオデータは、Ｓ／Ｐ  ＤＩＦ出力部２９およびデジタルオーディオケーブルを介して音源モジュール１２に送信される。
【００６２】
［２．２］鍵盤部２４のＭＩＤＩデータ送信動作
このようにして音楽ＣＤからのデジタルオーディオデータの再生およびその音源モジュール１２への送信が行われているとき、ユーザは、鍵盤部２４の演奏を行ってＭＩＤＩデータを生成し、音源モジュール１２に送られるデジタルオーディオデータにこのＭＩＤＩデータを重畳させることができる。以下、その動作を説明する。
【００６３】
既に説明したように、鍵盤部２４は、ＭＩＤＩ送信部を有している。このＭＩＤＩ送信部のマイクロプロセッサは、その起動時に、主記憶およびＭＩＤＩデータ送信用メモリに以下の変数を設定する。
【００６４】
（主記憶）
ａ）ＭＩＤＩ送信用コンテナ：送信するＭＩＤＩワードを一時的に保管するコンテナである。
ｂ）ＭＩＤＩ送信用レジスタ：送信するＭＩＤＩワードの１ビット分のデータを一時的に保管するレジスタである。
ｃ）ＭＩＤＩ送信用ステータス：ＭＩＤＩ送信用コンテナにおいて送信すべきビットの位置を特定するためのカウンタである。このＭＩＤＩ送信用ステータスは「０」から「９」までの整数値のいずれかをとり、「０」は送信途中のＭＩＤＩワードがないことを意味し、「１」、「２」、・・・、「９」は、送信すべきワードがそれぞれＭＩＤＩ送信用コンテナ内のｍ（１）、ｍ（２）、・・・、ｍ（９）であることを示す。初期設定状態において、ＭＩＤＩ送信用ステータスの値は「０」となっている。
【００６５】
（ＭＩＤＩデータ送信用メモリ）
ａ）ＭＩＤＩ送信用バッファ：ＭＩＤＩデータをＭＩＤＩワード単位で順次記録可能なバッファである。
ｂ）ＭＩＤＩ送信用カウンタ：ＭＩＤＩ送信用バッファ内のＭＩＤＩワード数をカウントするカウンタである。初期設定状態において、ＭＩＤＩ送信用カウンタの値は「０」となっている。
【００６６】
ＭＩＤＩ送信部は、発振器から約０．４７２４マイクロ秒周期で“０”と“１”の値を交互にとるクロックＳＣＫを常時受信している。ＭＩＤＩ送信部は、クロックＳＣＫに応じて図１０に示す処理ルーチンを実行する。
【００６７】
まず、クロックＳＣＫが“０”から“１”に変化すると（ステップＳ１０１）、マイクロプロセッサは、送信途中のＭＩＤＩワードの有無を確認するためにＭＩＤＩ送信用ステータスの値を判定する（ステップＳ１０２）。
【００６８】
ステップＳ１０２においてＭＩＤＩ送信用ステータスの値が「０」である場合、送信途中のＭＩＤＩワードはないので、マイクロプロセッサはＭＩＤＩ送信用バッファ内のＭＩＤＩワードの有無を確認するために、ＭＩＤＩ送信用カウンタの値を判定する（ステップＳ１０３）。
【００６９】
ステップＳ１０３においてＭＩＤＩ送信用カウンタの値が「０」場合、送信待ちのＭＩＤＩワードがないので、マイクロプロセッサはＭＩＤＩ送信用レジスタに“１”を代入し（ステップＳ１０４）、クロックＳＣＫが“１”から“０”に変化するまで待機する。
【００７０】
クロックＳＣＫが“１”から“０”に変化すると（ステップＳ１１３）、マイクロプロセッサはＭＩＤＩ送信用レジスタの値をＭＩＤＩデータ用バスを介して音源部２６およびＭＩＤＩデータ重畳部２８に送信する（ステップＳ１１４）。ここで、送信待ちのＭＩＤＩワードがない場合には常にＭＩＤＩ送信用レジスタに“１”が格納されている。従って、送信待ちのＭＩＤＩワードがない間は、クロックＳＣＫが“１”から“０”に変化する度に“１”がＭＩＤＩデータ用バスに出力される。
【００７１】
鍵盤部２４の押鍵が行われ、これに対応したＭＩＤＩデータが発生すると、ＭＩＤＩ送信部のマイクロプロセッサは、このＭＩＤＩデータを１または複数のＭＩＤＩバイトに分け、各ＭＩＤＩバイトにスタートビットとストップビットを付加してＭＩＤＩワードを生成し、各ＭＩＤＩワードをＭＩＤＩ送信用バッファに格納する。またマイクロプロセッサは、ＭＩＤＩ送信用バッファに格納したＭＩＤＩワードのワード数だけＭＩＤＩ送信用カウンタの値を増加させる。例えば、図６に示すような３ワードからなるＭＩＤＩデータが生成された場合、マイクロプロセッサはそのワード数である「３」だけＭＩＤＩ送信用カウンタの値を増加することになる。
【００７２】
この後、クロックＳＣＫが“０”から“１”に変化すると、マイクロプロセッサの処理はステップＳ１０１を介してステップＳ１０３に進む。この場合、ＭＩＤＩ送信用カウンタの値が「０」ではないので、ステップＳ１０３の判定に従い、マイクロプロセッサはＭＩＤＩ送信用バッファの先頭からＭＩＤＩワードを１ワード読み出し、主記憶のＭＩＤＩ送信用コンテナに書き込む（ステップＳ１０５）。次にこのＭＩＤＩワードをＭＩＤＩ送信用バッファから削除し（ステップＳ１０６）、ＭＩＤＩ送信用カウンタの値を「１」減少させる（ステップＳ１０７）。次にＭＩＤＩ送信用レジスタにＭＩＤＩ送信用コンテナのｍ（０）の値、すなわちスタートビットである「０」を代入し（ステップＳ１０８）、その制御をステップＳ１１０に移す。
【００７３】
ステップＳ１１０に進むと、マイクロプロセッサはＭＩＤＩ送信用ステータスの値を「１」だけ増加させる。この例の場合、ＭＩＤＩ送信用ステータスの値は「０」から「１」になる。そして、マイクロプロセッサはクロックＳＣＫが“１”から“０”になるのを待つ。
【００７４】
クロックＳＣＫが“１”から“０”になると（ステップＳ１１３）、マイクロプロセッサは、その時点における送信用レジスタの値、すなわち、スタートビット“０”をＭＩＤＩデータ用バスを介して音源部２６およびＭＩＤＩデータ重畳部２８に送信する（ステップＳ１１４）。それまで連続して“１”を受信していた音源部２６およびＭＩＤＩデータ重畳部２８は、このスタートビット“０”を受信することにより、スタートビット“０”に続いてＭＩＤＩバイトが送られてくることを検知することができる。ステップＳ１１４の処理が終了すると、マイクロプロセッサはクロックＳＣＫが“０”から“１”になるまで待機する。
【００７５】
その後、クロックＳＣＫが“０”から“１”になると（ステップＳ１０１）、そのときのＭＩＤＩ送信用ステータスが「１」であるため、マイクロプロセッサの処理はステップＳ１０２を介してステップＳ１０９に進む。このステップＳ１０９において、マイクロプロセッサは次の処理を行う。すなわち、ＭＩＤＩ送信用ステータスの値をｋとした場合に、ＭＩＤＩ送信用コンテナ内のＭＩＤＩワードのうちｋ番目のビットｍ（ｋ）をＭＩＤＩ送信用レジスタに格納する。
【００７６】
この処理を終えると、マイクロプロセッサは、ＭＩＤＩ送信用ステータスを「１」増加させ（ステップＳ１１０）、クロックＳＣＫが“１”から“０”に変化するまで待機する。そして、クロックＳＣＫが“１”から“０”になると（ステップＳ１１３）、マイクロプロセッサは、その時点における送信用レジスタの値、すなわち、ビットｍ（ｋ）をＭＩＤＩデータ用バスを介して音源部２６およびＭＩＤＩデータ重畳部２８に送信する（ステップＳ１１４）。
【００７７】
ＭＩＤＩ送信用ステータスが「１」〜「８」のいずれかである間は、以上と同様の動作が繰り返される。この結果、クロックＳＣＫが“１”から“０”になるのに同期して、ＭＩＤＩ送信用コンテナ内のＭＩＤＩバイトを構成する各ビットｍ（ｋ）（ｋ＝１〜８）が順次送信される。
【００７８】
そして、ＭＩＤＩ送信用ステータスが「９」になると、その後、クロックＳＣＫが“０”から“１”になったとき（ステップＳ１０１）、マイクロプロセッサの処理はステップＳ１０２を介してステップＳ１１１に進む。このステップＳ１１１において、マイクロプロセッサは、ＭＩＤＩ送信用レジスタにストップビット“１”を格納する。次にマイクロプロセッサは、ＭＩＤＩ送信用ステータスを「０」とし（ステップＳ１１２）、クロックＳＣＫが“１”から“０”になるまで待機する。そして、クロックＳＣＫが“１”から“０”になると（ステップＳ１１３）、マイクロプロセッサは、その時点における送信用レジスタの値、すなわち、ストップビット“１”をＭＩＤＩデータ用バスを介して音源部２６およびＭＩＤＩデータ重畳部２８に送信する（ステップＳ１１４）。
【００７９】
その後、クロックＳＣＫが“０”から“１”になると（ステップＳ１０１）、ＭＩＤＩ送信用ステータスが「０」になっていることから、マイクロプロセッサの処理は、ステップＳ１０２を介してステップＳ１０３に進む。そして、ＭＩＤＩ送信用カウンタの値が「０」でない場合には、上述と同様に、ＭＩＤＩ送信用バッファ内の先頭のＭＩＤＩワードがＭＩＤＩ送信用コンテナに移され（ステップＳ１０５およびＳ１０６）、ＭＩＤＩ送信用カウンタのカウント値を「１」だけ減少させる処理（ステップＳ１０７）とスタートビットの送信が行われる（ステップＳ１０８、Ｓ１１０、Ｓ１１３およびＳ１１４）。
【００８０】
その後の８個の連続したクロックＳＣＫに同期して、ＭＩＤＩ送信用コンテナ内のビットｍ（ｋ）（ｋ＝１〜８）が送信され（ステップＳ１０１、Ｓ１０２、Ｓ１０９、Ｓ１１０、Ｓ１１３およびＳ１１４）、さらにその後のクロックＳＣＫに同期して、ストップビットが送信される（ステップＳ１０１、Ｓ１０２、Ｓ１１１、Ｓ１１２、Ｓ１１３およびＳ１１４）。
【００８１】
ＭＩＤＩ送信用カウンタの値が「０」でない間は、以上のような動作が繰り返される。そして、ＭＩＤＩ送信用バッファが空になり、ＭＩＤＩ送信用カウンタの値が「０」になると、ビット“１”を送信し続ける状態に戻る（ステップＳ１０１、Ｓ１０２、Ｓ１０３、Ｓ１０４、Ｓ１１３およびＳ１１４）。
以上が鍵盤部２４におけるＭＩＤＩ送信部のＭＩＤＩデータ送信動作である。
【００８２】
図１１は図６に示したＭＩＤＩデータがＭＩＤＩデータ用バスを介して伝送される様子を示すタイミングチャートである。このタイミングチャートにおいて、ＭＤはＭＩＤＩデータ用バスに出力されている信号の値である。
【００８３】
［２．３］ＭＩＤＩデータ重畳部２８のＭＩＤＩデータ受信動作
次に、鍵盤部２４のＭＩＤＩ送信部から送られてくるＭＩＤＩデータを受信して、受信したＭＩＤＩデータをデジタルオーディオデータに重畳する、ＭＩＤＩデータ重畳部２８の動作について説明する。
【００８４】
既に説明したように、ＭＩＤＩデータ重畳部２８はＭＩＤＩ受信部を有している。このＭＩＤＩ受信部のマイクロプロセッサは、その起動時に、主記憶およびＭＩＤＩデータ受信用メモリに以下の変数を設定する。
【００８５】
（主記憶）
ａ）ＭＩＤＩ受信用レジスタ：ＭＩＤＩデータ用バスに出力されている信号ＭＤを一時的に保管するレジスタである。
ｂ）ＭＩＤＩ受信用コンテナ：受信したＭＩＤＩワードを一時的に保管するコンテナである。
ｃ）ＭＩＤＩ受信用ステータス：ＭＩＤＩ受信用コンテナのどのビットに受信したデータを記録すべきかをカウントするカウンタである。このＭＩＤＩ受信用ステータスは「０」から「９」までの整数値のいずれかをとり、「０」は受信途中のＭＩＤＩワードがない状態を意味し、「１」、「２」、・・・、「９」はそれぞれ受信するデータをＭＩＤＩ受信用コンテナのｍ（１）、ｍ（２）、・・・、ｍ（９）に記録すべきことを意味する。マイクロプロセッサは起動時に、このＭＩＤＩ受信用ステータスに初期値「０」を設定する。
【００８６】
（ＭＩＤＩデータ受信用メモリ）
ａ）ＭＩＤＩ受信用バッファ：ＭＩＤＩデータをＭＩＤＩワード単位で順次記録するためのバッファである。
ｂ）ＭＩＤＩ受信用カウンタ：ＭＩＤＩ受信用バッファ内のＭＩＤＩワード数をカウントするためのカウンタである。マイクロプロセッサは、起動時に、このＭＩＤＩ受信用カウンタに初期値「０」を設定する。
【００８７】
ＭＩＤＩ受信部は、ＭＩＤＩ送信部と同様、発振器３０からクロックＳＣＫを常時受信しており、マイクロプロセッサはこのクロックＳＣＫに応じて、図１２に示す処理ルーチンを実行する
【００８８】
まず、クロックＳＣＫが“０”から“１”に変化すると（ステップＳ２０１）、マイクロプロセッサは、ＭＩＤＩデータ用バスに出力されている信号値ＭＤを読み取り、この値ＭＤをＭＩＤＩ受信用レジスタに代入し（ステップＳ２０２）、ＭＩＤＩ受信用レジスタの値を判定する（ステップＳ２０３）。
【００８９】
ステップＳ２０３においてＭＩＤＩ受信用レジスタの値が“１”である場合、マイクロプロセッサはＭＩＤＩ受信用ステータスの値を判定する（ステップＳ２０４）。
【００９０】
ステップＳ２０４において、ＭＩＤＩ受信用ステータスの値が「０」である場合、受信途中のＭＩＤＩワードがない状態で信号ＭＤとして“１”を受信していることになる。この場合、マイクロプロセッサは新たなＭＩＤＩデータはないと判断し、何もせずに待機状態を継続する。
【００９１】
既に説明したように、鍵盤部２４のＭＩＤＩ送信部は、送信すべきＭＩＤＩデータがない場合に、信号“１”を送信し続ける。この場合、ＭＩＤＩデータ重畳部２８におけるＭＩＤＩ受信部では、クロックＳＣＫが“０”から“１”に変化する（ステップＳ２０１）たびに、以上説明したステップＳ２０１、Ｓ２０２、Ｓ２０３およびＳ２０４が繰り返される。
【００９２】
鍵盤部２４のＭＩＤＩ送信部は、送信すべきＭＩＤＩワードがあるとき、ＭＩＤＩワードを構成する各ビットをクロックＳＣＫの立ち下がりに同期してＭＩＤＩデータ用バスに順次出力する。
【００９３】
ＭＩＤＩデータ用バスにＭＩＤＩワードの先頭のスタートビット“０”が出力されると、ＭＩＤＩデータ重畳部２８におけるＭＩＤＩ受信部では、その後、クロックＳＣＫが“０”から“１”に変化したとき（ステップＳ２０１）、マイクロプロセッサが信号ＭＤとしてスタートビット“０”を読み取り、ＭＩＤＩ受信レジスタにこれを格納する（ステップＳ２０２）。次にマイクロプロセッサはＭＩＤＩ受信レジスタの内容を判定する（ステップＳ２０３）。この場合、ＭＩＤＩ受信レジスタには“０”が格納さているので、マイクロプロセッサはフローを図１２における右にとり、ＭＩＤＩ受信ステータスを判定する（ステップＳ２０９）。そして、ＭＩＤＩ受信ステータスが「０」〜「８」のいずれかである場合、マイクロプロセッサの処理はステップＳ２１０へ進む。この例の場合、ＭＩＤＩ受信ステータスは「０」であるので、処理はステップＳ２１０へ進むこととなる。
【００９４】
ステップＳ２１０に進むと、マイクロプロセッサは、次の処理を行う。すなわち、ＭＩＤＩ受信用ステータスをｋとした場合に、ＭＩＤＩ受信用レジスタに記憶された信号値を、受信中のＭＩＤＩバイトにおけるｋ番目のビットｍ（ｋ）としてＭＩＤＩ受信用コンテナに格納する。この例の場合、ＭＩＤＩ受信用ステータスが「０」であることから、ＭＩＤＩ受信用レジスタに格納されたスタートビット“０”が、ＭＩＤＩワードにおけるビットｍ（０）としてＭＩＤＩ受信用コンテナに格納されることとなる。
【００９５】
ステップＳ２１０の処理が終了すると、マイクロプロセッサは、ＭＩＤＩ受信用ステータスを「１」だけ増加させ（ステップＳ２１１）、クロックＳＣＫが再び“０”から  “１”に変化するまで待機する。
【００９６】
その後、クロックＳＣＫが“０”から“１”に変化すると（ステップＳ２０１）、マイクロプロセッサは、ＭＩＤＩデータ用バスに出力されている信号値ＭＤをＭＩＤＩ受信用レジスタに格納する（ステップＳ２０２）。次にマイクロプロセッサは、ＭＩＤＩ受信用レジスタの値が“１”であるか“０”であるかを判定する（ステップＳ２０３）。
【００９７】
ステップＳ２０３においてＭＩＤＩ受信レジスタの内容が“１”である場合、マイクロプロセッサはフローを図１２における左にとり、ＭＩＤＩ受信用ステータスの内容を判定する（ステップＳ２０４）。ここで、ＭＩＤＩ受信用ステータスが「１」〜「８」のいずれかである場合には、ステップＳ２０４からステップＳ２１０に進む。また、ステップＳ２０３においてＭＩＤＩ受信レジスタの内容が“１”である場合には、マイクロプロセッサはフローを図１２における右にとり、ＭＩＤＩ受信用ステータスの内容を判定する（ステップＳ２０９）。この場合においてＭＩＤＩ受信用ステータスが「１」〜「８」のいずれかである場合にも、マイクロプロセッサの処理はステップＳ２１０に進む。
【００９８】
ステップＳ２０４またはＳ２０９からステップＳ２１０に進むと、マイクロプロセッサは、ＭＩＤＩ受信用レジスタに記憶された信号値を、受信中のＭＩＤＩワードにおけるｋ番目のビットｍ（ｋ）としてＭＩＤＩ受信用コンテナに格納する。ここで、ｋはＭＩＤＩ受信用ステータスの値である。そして、マイクロプロセッサは、ＭＩＤＩ受信用ステータスを「１」だけ増加させ（ステップＳ２１１）、クロックＳＣＫが再び“０”から“１”に変化するのを待つ。
【００９９】
ＭＩＤＩ受信ステータスが「１」〜「８」のいずれかである間は、以上説明したステップＳ２０１、Ｓ２０２、Ｓ２０３、Ｓ２０４（またはＳ２０９）、Ｓ２１０およびＳ２１１の各処理が繰り返される。この結果、ＭＩＤＩワードにおけるスタートビットに続く８ビットｍ（ｋ）（ｋ＝１〜８）がＭＩＤＩ受信用コンテナに格納される。
【０１００】
そして、ＭＩＤＩ受信ステータスが「９」になった後、クロックＳＣＫが“０”から“１”になったとする（ステップＳ２０１）。この場合もマイクロプロセッサは、ＭＩＤＩ用データバスを介して受信した信号ＭＤをＭＩＤＩ受信用レジスタに格納し（ステップＳ２０２）、ＭＩＤＩ受信用レジスタの内容を判定する（ステップＳ２０３）。通常、ＭＩＤＩ受信ステータスが「９」であるときには、ストップビット“１”が送られてくる。従って、この場合においてマイクロプロセッサの処理はステップＳ２０３からステップＳ２０４に進む。そして、ＭＩＤＩ受信ステータスが「９」である場合、マイクロプロセッサの処理はステップＳ２０５に進む。このステップＳ２０５において、マイクロプロセッサは、受信したストップビット“１”を受信中のＭＩＤＩワードにおける９番目のビットｍ（９）としてＭＩＤＩ受信用コンテナに格納する。次にマイクロプロセッサは、ＭＩＤＩ受信用コンテナ内に得られたビットｍ（ｋ）（ｋ＝０〜９）からなるＭＩＤＩワードをＭＩＤＩ受信用バッファに格納し（ステップＳ２０６）、ＭＩＤＩ受信用カウンタの値を「１」だけ増加させる（ステップＳ２０７）。そして、マイクロプロセッサは、ＭＩＤＩ受信用ステータスを「０」とし（ステップＳ２０８）、クロックＳＣＫが“０”から“１”に変化するまで待機する。
【０１０１】
以上により１ワード分のＭＩＤＩワードの受信が完了する。このＭＩＤＩワードに続いて、間を空けることなく、次のＭＩＤＩワードが鍵盤部２４から送信された場合、ＭＩＤＩデータ重畳部２８のＭＩＤＩ受信部では、以上と同様な動作が行われる。
【０１０２】
また、ＭＩＤＩワードの送信が途絶え、信号“１”が鍵盤部２４から送信される間は、ＭＩＤＩデータ重畳部２８のＭＩＤＩ受信部では、クロックＳＣＫが“０”から“１”に変化する度に、ステップＳ２０１、Ｓ２０２、Ｓ２０３、Ｓ２０４が繰り返される。
【０１０３】
なお、ＭＩＤＩ受信用ステータスの値が「９」であるときに、何らかのエラーにより信号“０”が受信された場合には、マイクロプロセッサは、処理を中断する等のエラー処理を行う（ステップＳ２０１、Ｓ２０２、Ｓ２０３、Ｓ２０９およびエラー）。
以上がＭＩＤＩデータ重畳部２８におけるＭＩＤＩ受信部の動作である。
【０１０４】
［２．４］ＭＩＤＩデータ重畳部２８のＭＩＤＩデータ重畳動作
ＭＩＤＩデータ重畳部２８は、以上の動作がＭＩＤＩ受信部によって行われているときに、これと並行し、ＭＩＤＩ受信部のＭＩＤＩ受信用バッファに格納されているＭＩＤＩワードを取り出し、このＭＩＤＩワードを構成する各ビットを、音源モジュール１２に送るデジタルオーディオデータに重畳する処理を行う。ＭＩＤＩデータ重畳部２８は、この処理を行うために、マイクロプロセッサ、主記憶、およびＭＩＤＩデータ受信用メモリとを有している。なお、この処理を行うマイクロプロセッサは、ＭＩＤＩ受信部のマイクロプロセッサを兼ねてもよい。
【０１０５】
以下、ＭＩＤＩデータ重畳部２８のマイクロプロセッサによって行われる処理を説明する。このマイクロプロセッサは起動時に、主記憶およびＭＩＤＩデータ受信用メモリに以下の変数を作成する。
【０１０６】
（主記憶）
ａ）ＷＳフラグ１：過去のクロックＷＳの値を示すフラグである。マイクロプロセッサは、起動時に、このＷＳフラグ１に初期値“１”を設定する。
ｂ）ＷＳフラグ２：現在のクロックＷＳの値を示すフラグである。マイクロプロセッサは、ＷＳフラグ１およびＷＳフラグ２に基づき、クロックＷＳの変化を検出する。マイクロプロセッサは、起動時に、ＷＳフラグ２に初期値“１”を設定する。
ｃ）サンプル送受信用レジスタ：ミキサ部２７からＩ2Ｓバスを介して受信されるデジタルオーディオ信号のビットＳＤを一時的に保管するレジスタである。
ｄ）サンプル送受信用ステータス：ミキサ部２７から受信され、かつ、Ｓ／Ｐ  ＤＩＦ出力部２９に送信されるビットがサンプルのどのビットかを特定するためのカウンタである。マイクロプロセッサは、起動時、このサンプル送受信用ステータスに初期値「０」を設定する。
ｅ）ＭＩＤＩ送信用コンテナ：送信するＭＩＤＩワードを一時的に保管するコンテナである。
ｆ）ＭＩＤＩ送信用レジスタ：送信するＭＩＤＩワードの１ビット分のデータを一時的に保管するレジスタである。
ｇ）ＭＩＤＩ送信用ステータス：ＭＩＤＩ送信用コンテナにおいて送信すべきビットの位置を特定するためのカウンタである。マイクロプロセッサは、起動時、このＭＩＤＩ送信用ステータスに初期値「０」を設定する。
【０１０７】
（ＭＩＤＩデータ受信用メモリ）
ａ）ＭＩＤＩ受信用バッファ：ＭＩＤＩデータをＭＩＤＩワード単位で順次記録可能なバッファである。
ｂ）ＭＩＤＩ受信用カウンタ：ＭＩＤＩ受信用バッファ内のＭＩＤＩワード数をカウントするカウンタである。マイクロプロセッサは、起動時、このＭＩＤＩ受信用カウンタに初期値「０」を設定する。
【０１０８】
マイクロプロセッサは起動後、発振器３０から常時、クロック信号ＳＣＫおよびＷＳを受信している。また、マイクロプロセッサは、クロックＳＣＫに同期して、ミキサ部２７からデジタルオーディオデータの各ビットの値を表すビットＳＤを受信する。図１３は、マイクロプロセッサによって受信されるクロックＳＣＫ、クロックＷＳおよびビットＳＤを例示している。そして、マイクロプロセッサは、クロックＳＣＫに応じて、図１４に示すルーチン処理を実行する。
【０１０９】
まず、クロックＳＣＫが“０”から“１”に変化すると（ステップＳ３０１）、マイクロプロセッサはその時点におけるクロックＷＳの値をＷＳフラグ２に、またＩ2Ｓバスに出力されているデジタルオーディオデータのビットＳＤをサンプル送受信用レジスタに格納する（ステップＳ３０２）。続いてマイクロプロセッサは次の計算を行い、その結果を判定する（ステップＳ３０３）。
ＷＳフラグ１−ＷＳフラグ２
【０１１０】
既に説明したように、ＷＳフラグ１は過去におけるクロックＷＳの値を、ＷＳフラグ２は現在におけるクロックＷＳの値を表している。そして、図１３に示すように、クロックＷＳは、あるサンプルにおける右チャネルの最後のビットＲ（０）が出力される直前に“１”から“０”に変化する。従って、このサンプルの最後のビットＲ（０）が出力されているときにクロックＳＣＫが“０”から“１”に変化した場合に、その際に実行される本ルーチンでは、上記ステップＳ３０３における計算結果が「１」になる。その場合、マイクロプロセッサはサンプル送受信用ステータスに「−１」を設定し（ステップＳ３０４）、クロックＳＣＫが“１”から“０”に変化するまで待機する。
【０１１１】
そして、クロックＳＣＫが“１”から“０”になると、マイクロプロセッサは、サンプル送受信用レジスタに格納されたデジタルオーディオデータのビットＳＤ（この場合、ビットＲ（０））を、Ｉ2Ｓバスを介してＳ／Ｐ  ＤＩＦ出力部２９に送信する（ステップＳ３０９）。次にマイクロプロセッサは、サンプル送受信用ステータスの値を「１」だけ増加させる（ステップＳ３１０）。ここで、サンプル送受信用ステータスの値は、前述のステップＳ３０４の処理により「−１」とされた。従って、このステップＳ３０４が実行された後のステップＳ３１０においては、サンプル送受信用ステータスの値は「０」になる。次にマイクロプロセッサは、ＷＳフラグ２の値（この例の場合、“０”）をＷＳフラグ１に設定する（ステップＳ３１１）。そして、マイクロプロセッサは、クロックＳＣＫが“０”から“１”に変化するまで待機する。
【０１１２】
その後、クロックＳＣＫが“０”から“１”に変化すると（ステップＳ３０１）、マイクロプロセッサはその時点におけるクロックＷＳの値をＷＳフラグ２に、またＩ2Ｓバスに出力されているデジタルオーディオデータのビットＳＤをサンプル送受信用レジスタに格納する（ステップＳ３０２）。
【０１１３】
ここで、あるサンプルの最後のビットＲ（０）がＩ2Ｓバスに出力された後は、新たなサンプルの最初のビットＬ（２３）がＩ2Ｓバスに出力される。また、このとき、クロックＷＳの値は“０”となっている。従って、ステップＳ３０２では、ビットＬ（２３）がサンプル送受信用レジスタに格納され、“０”がＷＳフラグ２に格納される。
【０１１４】
次にマイクロプロセッサは、ＷＳフラグ１−ＷＳフラグ２を計算し、その結果を判定する（ステップＳ３０３）。この場合、計算結果は「０」となり、「１」ではないので、マイクロプロセッサの処理はステップＳ３０５に進む。このステップＳ３０５において、マイクロプロセッサはサンプル送受信用ステータスの値を判定する。ステップＳ３０５においてサンプル送受信用ステータスの値が「２３」でない場合、マイクロプロセッサは何もせずクロックＳＣＫが“１”から“０”に変化するまで待機する。
【０１１５】
そして、クロックＳＣＫが“１”から“０”になると（ステップＳ３０８）、マイクロプロセッサは、サンプル送受信用レジスタに格納されたデジタルオーディオデータのビットＳＤを送信し（ステップＳ３０９）、サンプル送受信用ステータスの値を「１」だけ増加させ（ステップＳ３１０）、ＷＳフラグ１にＷフラグ２の値を設定し（ステップＳ３１１）、クロックＳＣＫが“０”から“１”に変化するまで待機する。
【０１１６】
サンプル送受信用ステータスの値が「０」〜「２２」のいずれかである間は、以上説明したステップＳ３０１、Ｓ３０２、Ｓ３０３、Ｓ３０５、Ｓ３０８、Ｓ３０９、Ｓ３１０およびＳ３１１が繰り返される。従って、ミキサ部２７から送信されるデジタルオーディオデータのビットＬ（２３）〜Ｌ（１）は、そのままＭＩＤＩデータ重畳部２８を素通りし、Ｓ／Ｐ  ＤＩＦ出力部２９に送られる。
【０１１７】
サンプル送受信用ステータスの値が「２３」になると、その直前のクロックＳＣＫの“１”から“０”への変化に同期して、サンプルの左チャネル最後のビットＬ（０）がＭＩＤＩデータ重畳部２８に送られてくる。
【０１１８】
そして、クロックＳＣＫが“０”から“１”に変化すると（ステップＳ３０１）、マイクロプロセッサの処理は、ステップＳ３０２およびＳ３０３を介してステップＳ３０５に進む。そして、サンプル送受信用ステータスの値が「２３」であることから、マイクロプロセッサは、以下説明するステップＳ３０６およびステップＳ３０７の各処理を実行する。
【０１１９】
ステップＳ３０６では、送信すべきＭＩＤＩデータを１ビットずつ取り出す動作として、図１０におけるステップＳ１０２からステップＳ１１０までの処理に類似した処理を行う。さらに詳述すると、次の通りである。まず、ＭＩＤＩワードが鍵盤部２４から受信された場合、このＭＩＤＩワードは前述した図１２のルーチンにより、ＭＩＤＩ受信用バッファ内に格納される。そして、マイクロプロセッサは、このステップＳ３０６において、ＭＩＤＩ受信用カウンタを用いてＭＩＤＩ受信用バッファ内にＭＩＤＩワードがあることを確認すると、このＭＩＤＩワードをＭＩＤＩ受信用バッファからＭＩＤＩ送信用コンテナに読み込む。勿論、この読み込み動作は、新たなＭＩＤＩワードがＭＩＤＩ受信用バッファに格納されたときにのみ行われる。次いで、マイクロプロセッサは、ＭＩＤＩ送信用コンテナ内のＭＩＤＩワードから送信対象となる１ビットを取り出し、その値をＭＩＤＩ送信用レジスタに格納する。この送信対象のビットの取り出し位置を管理するのがＭＩＤＩ送信用ステータスであり、これはステップＳ３０６が実行される度に「１」ずつ増加し、「０」〜「９」の範囲で周期的に変化する。なお、ＭＩＤＩ送信用コンテナ内のＭＩＤＩワードの最後のビットが取り出された後は、新たなＭＩＤＩワードがＭＩＤＩ送信用コンテナ内に移されるまでの間、このステップＳ３０６において“１”がＭＩＤＩ送信用レジスタに格納される。以上の動作により、送信すべきＭＩＤＩデータの構成ビットがＭＩＤＩ送信用レジスタの値として取り出される。
【０１２０】
続いて、マイクロプロセッサはＭＩＤＩ送信用レジスタからＭＩＤＩワードの構成ビット（ＭＩＤＩデータがない場合は“１”）を読み出し、読み出した値をサンプル送受信レジスタに格納する（ステップＳ３０７）。ステップＳ３０７が終了すると、マイクロプロセッサは、クロックＳＣＫが“１”から“０”に変化するまで待機する。
【０１２１】
そして、クロックＳＣＫが“１”から“０”になると（ステップＳ３０８）、マイクロプロセッサは、サンプル送受信用レジスタに格納されたデジタルオーディオデータのビットＳＤ（この場合はＭＩＤＩワードの構成ビット）を送信し（ステップＳ３０９）、サンプル送受信用ステータスの値を「１」だけ増加させ（ステップＳ３１０）、ＷＳフラグ２の値をＷＳフラグ１に設定し（ステップＳ３１１）、クロックＳＣＫが“０”から“１”に変化するまで待機する。
【０１２２】
サンプル送受信用ステータスが「２３」でなくなると、それ以降、ステップＳ３０１、Ｓ３０２、Ｓ３０３、Ｓ３０５、Ｓ３０８、Ｓ３０９、Ｓ３１０およびＳ３１１が繰り返される。従って、ミキサ部２７から送信されるデジタルオーディオデータのビットＬ（２４）〜Ｒ（１）は、そのままＭＩＤＩデータ重畳部２８を素通りし、Ｓ／Ｐ  ＤＩＦ出力部２９に送られる。
【０１２３】
そして、ビットＲ（０）が送信されるときには、上述したように、サンプル送受信用ステータスが「−１」にされる（ステップＳ３０４）。以後の動作は既に説明した通りである。
【０１２４】
以上説明したように、ＭＩＤＩデータ重畳部２８では、ＭＩＤＩワードが鍵盤部から届いた場合に、その構成ビットが、その後の複数の連続したデジタルオーディオデータのビットＬ（０）に重畳され、このＭＩＤＩデータの構成ビットを含んだデジタルオーディオデータがＳ／Ｐ  ＤＩＦ出力部２９に送られる。
【０１２５】
［２．５］コントローラ１１と音源モジュール１２間のデータ伝送動作
Ｓ／Ｐ  ＤＩＦ出力部２９は、このようにしてＭＩＤＩデータ重畳部２８から送信されてくるデジタルオーディオデータを、ＥＩＡＪ（日本電子機械工業会）のディジタルオーディオインタフェース規格であるＥＩＡＪ  ＣＰ−１２０１に従ったデータフォーマットおよび伝送フォーマットに従い、音源モジュール１２に送信する。なお、ＥＩＡＪ  ＣＰ−１２０１は「Ｓ／Ｐ  ＤＩＦ」という呼称で広く知られているため、以下ではその呼称を用いる。
【０１２６】
Ｓ／Ｐ  ＤＩＦにおいては、１ワードのデジタルオーディオデータを含むことが可能なデータ単位をサブフレームと呼ぶ。サブフレームのビット長は３２であり、図１５はそのデータフォーマットおよびデータ例（データはデジタルオーディオデータ部分のみ）である。なお、以下ではＳ／Ｐ  ＤＩＦのサブフレームにおける各ビットを、送信される順にＦ（０）、Ｆ（１）・・・と呼び、左右を区別する必要がある場合には、それぞれＦＬ（０）、ＦＬ（１）・・・、およびＦＲ（０）、ＦＲ（１）・・・と呼ぶこととする。
【０１２７】
Ｐｒｅａｍｂｌｅはデータの受信側機器がサブフレームの開始点を特定し、またチャネルの別を判定するために用いられる。Ａｕｘｉｌｉａｒｙはユーザの設定により利用方法を変更可能なビットである。Ｓａｍｐｌｅはデジタルオーディオデータ本体を伝送するために用いられる。Ｖａｌｉｄｉｔｙ、Ｓｕｂ−ｃｏｄｅ、Ｃｈａｎｎｅｌ  Ｓｔａｔｕｓ、Ｐａｒｉｔｙはサンプリング周波数等の付帯情報の伝送および誤り検出等に用いられる。なお、図１５においては、後述する本実施形態における条件に従い、ＡｕｘｉｌｉａｒｙをＳａｍｐｌｅと共にデジタルオーディオデータ本体の伝送に用いている。
【０１２８】
Ｓ／Ｐ  ＤＩＦにおいては、デジタルオーディオデータ本体はＬＳＢ側から伝送される。従って、図４におけるデータがＳ／Ｐ  ＤＩＦにより伝送される場合には、Ｌ（２３）、Ｌ（２２）、・・・のデータはそれぞれＦＬ（２７）、ＦＬ（２６）、・・・に入れられる。同様に、Ｒ（２３）、Ｒ（２２）、・・・のデータはそれぞれＦＲ（２７）、ＦＲ（２６）、・・・に入れられる。
【０１２９】
Ｓ／Ｐ  ＤＩＦにおいて伝送可能なデジタルオーディオデータのサンプリング周波数は、４８ｋＨｚ、４４．１ｋＨｚ、および３２ｋＨｚである。
【０１３０】
Ｓ／Ｐ  ＤＩＦにおいては、送信側機器が図１５に示したようなデータフォーマットのデータを送信する際、受信側機器が送信側機器と同期をとることができるように、送信するデータをＢＭＣ（Ｂｉ−ｐｈａｓｅ  Ｍａｒｋ  Ｃｏｄｅ）と呼ばれる方法を用いて変調した後、変調後の信号を送信する。図１６は説明例として、“０１０１１００１１１０１・・・”というデータがＢＭＣ変調される際のタイミングチャートである。図１６におけるＤａｔａは送信されるデジタルオーディオデータの値であり、ＣｌｏｃｋはＤａｔａを順次伝送するためのクロック信号である。ＯｕｔｐｕｔはＤａｔａがＢＭＣ変調された後の信号の値である。
【０１３１】
ＢＭＣ変換においては、Ｄａｔａが「０」の場合、ＯｕｔｐｕｔはＣｌｏｃｋの１周期の間に“−１”と“＋１”の間を１往復する。すなわち、Ｏｕｔｐｕｔは“−１”→“＋１”→“−１”もしくは“＋１”→“−１”→“＋１”と変化する。一方、Ｄａｔａが「１」の場合、ＯｕｔｐｕｔはＣｌｏｃｋの１周期の間に“−１”と“＋１”の間を１往復半する。すなわち、Ｏｕｔｐｕｔは“−１”→“＋１”→“−１”→“＋１”もしくは“＋１”→“−１”→“＋１”→“−１”と変化する。
【０１３２】
ＯｕｔｐｕｔはＣｌｏｃｋの１周期にあたる時間幅もしくはその半分の時間幅で必ず変化するため、受信側機器はこのＯｕｔｐｕｔの変化から自分でクロックを生成し、そのクロックを用いてＤａｔａの値を受信する。
【０１３３】
本実施形態においては、Ｓ／Ｐ  ＤＩＦにおいて伝送されるデジタルオーディオデータのサンプリング周波数は４４．１ｋＨｚである。また、Ｓ／Ｐ  ＤＩＦにおいてはモノラル（１チャネル）のデジタルオーディオデータの伝送も可能であるが、本実施形態においては左右２チャネルである。従って、本実施形態においては６４ビットのデータが１／４４１００秒で伝送されるため、Ｃｌｏｃｋの周期は以下のようになる。
（Ｃｌｏｃｋ）
（１／４４１００）／（３２×２）×１００００００＝約０．３５４３（マイクロ秒）
【０１３４】
以上のようにして、コントローラ１１から送信されたデジタルオーディオデータは、音源モジュール１２のＳ／Ｐ  ＤＩＦ入力部４４によって受信される。このＳ／Ｐ  ＤＩＦ入力部４４では、コントローラ１１におけるＳ／Ｐ  ＤＩＦ出力部２９が行う変換処理の逆変換に相当する処理が受信データに対して施される。この結果、コントローラ１１のＭＩＤＩデータ重畳部２８から出力されたものと同じデジタルオーディオデータがＳ／Ｐ  ＤＩＦ入力部４４から出力される。
【０１３５】
このデジタルオーディオデータは、Ｉ2Ｓバスを介して、ＭＩＤＩデータ抽出部４５およびミキサ部４８に送信される。
【０１３６】
Ｓ／Ｐ  ＤＩＦ出力部２９から出力されるデジタルオーディオデータは、ＭＩＤＩデータを含む場合がある。このＭＩＤＩデータは、コントローラ１１のＭＩＤＩデータ重畳部２８によってデジタルオーディオデータに重畳されたデータである。
【０１３７】
［２．６］ＭＩＤＩデータ抽出部４５のＭＩＤＩデータ抽出動作
ＭＩＤＩデータ抽出部４５は、デジタルオーディオデータからＭＩＤＩデータを抽出し、ＭＩＤＩデータ出力部４７に出力する。ＭＩＤＩデータ抽出部４５はマイクロプロセッサ、主記憶ｍＭＩＤＩデータ送信用メモリを有している。以下に、ＭＩＤＩデータ抽出部４５の動作を説明する。
【０１３８】
ＭＩＤＩデータ抽出部４５のマイクロプロセッサは起動時に、主記憶およびＭＩＤＩデータ送信用メモリに以下の変数を作成する。
【０１３９】
（主記憶）
ａ）ＷＳフラグ３：過去のクロックＷＳの値を表すフラグである。マイクロプロセッサは起動時に、ＷＳフラグ３に初期値“１”を設定する。
ｂ）ＷＳフラグ４：現在のクロックＷＳの値を表すフラグである。マイクロプロセッサは起動時に、ＷＳフラグ４に初期値“１”を設定する。
ｃ）サンプル受信用レジスタ：Ｓ／Ｐ  ＤＩＦ入力部４４の出力ビットＳＤを一時的に保管するレジスタである。
ｄ）サンプル受信用ステータス：受信したビットがサンプルのどのビットかを特定するためのカウンタである。マイクロプロセッサは、起動時、サンプル受信用ステータスに初期値「０」を代入する。
ｅ）ＭＩＤＩ受信用コンテナ：受信したＭＩＤＩワードを一時的に保管するコンテナである。
ｆ）ＭＩＤＩ受信用ステータス：ＭＩＤＩ受信用コンテナにおいて受信すべきビットの位置を特定するためのカウンタである。マイクロプロセッサは、起動時、ＭＩＤＩ受信用ステータスに初期値「０」を代入する。
【０１４０】
（ＭＩＤＩデータ送信用メモリ）
ａ）ＭＩＤＩ受信用バッファ：ＭＩＤＩデータをＭＩＤＩワード単位で順次記録するためのバッファである。
ｂ）ＭＩＤＩ受信用カウンタ：ＭＩＤＩ送信用バッファ内のＭＩＤＩワード数をカウントするためのカウンタである。マイクロプロセッサは、起動時、ＭＩＤＩ送信用カウンタに初期値「０」を代入する。
【０１４１】
マイクロプロセッサは、起動後、発振器５１から常時、クロックＳＣＫおよびＷＳを受信し、またクロックＳＣＫに同期してＳ／Ｐ  ＤＩＦ入力部４４からデジタルオーディオデータの構成ビットＳＤを順次受信する。
【０１４２】
これらの動作環境において、マイクロプロセッサは、図１７に示す処理ルーチンを実行する。
【０１４３】
クロックＳＣＫが“０”から“１”に変化すると（ステップＳ４０１）、マイクロプロセッサはその時点におけるクロックＷＳの値をＷＳフラグ４に、またビットＳＤをサンプル受信用レジスタに代入する（ステップＳ４０２）。続いてマイクロプロセッサは以下の計算を行い、その結果を判定する（ステップＳ４０３）。
ＷＳフラグ３−ＷＳフラグ４
【０１４４】
既に説明したように、ＷＳフラグ３は過去におけるクロックＷＳの値を、ＷＳフラグ４は現在におけるクロックＷＳの値を表している。そして、既に図１４を参照して説明したように、クロックＷＳは、あるサンプルにおける右チャネルの最後のビットＲ（０）が出力されるときに“１”から“０”に変化する。従って、このサンプルの最後のビットＲ（０）が出力されているときにクロックＳＣＫが“０”から“１”に変化した場合に、その際に実行される本ルーチンでは、上記ステップＳ４０３における計算結果が「１」になる。この場合、マイクロプロセッサはサンプル送受信用ステータスに「−１」を設定する（ステップＳ４０４）。次にマイクロプロセッサは、ＷＳフラグ４の値をＷＳフラグ３に設定し（ステップＳ４０７）、サンプル受信用ステータスを「１」だけ増加させ（ステップＳ４０８）、クロックＳＣＫが“０”から“１”に変化するまで待機する。
【０１４５】
次にクロックＳＣＫが“０”から“１”に変化すると（ステップＳ４０１）、上述と同様、マイクロプロセッサはその時点におけるクロックＷＳの値をＷＳフラグ４に、またビットＳＤをサンプル受信用レジスタに代入する（ステップＳ４０２）。続いてマイクロプロセッサは、ＷＳフラグ３−ＷＳフラグ４を計算し、その結果を判定する（ステップＳ４０３）。この場合、前回からクロックＷＳの値に変化がないので、ＷＳフラグ３−ＷＳフラグ４は「０」となる。このため、マイクロプロセッサの処理はステップＳ４０５に進む。
【０１４６】
ステップＳ４０５において、マイクロプロセッサはサンプル受信用ステータスの値を判定する。ステップＳ４０５においてサンプル受信用ステータスの値が「２３」でない場合、マクロプロセッサは、ＷＳフラグ４の値をＷＳフラグ３に設定し（ステップＳ４０７）、サンプル受信用ステータスを「１」だけ増加させ（ステップＳ４０８）、クロックＳＣＫが“０”から“１”に変化するまで待機する。
【０１４７】
その後、サンプル受信用ステータスの値が「２３」でない期間、クロックＳＣＫが“０”から“１”に変化する度に、ステップＳ４０１、Ｓ４０２、Ｓ４０３、Ｓ４０５、Ｓ４０７およびＳ４０８が繰り返される。
【０１４８】
そして、サンプル受信用ステータスの値が「２３」になり、その後、クロックＳＣＫの“０”から“１”へ変化したとき（ステップＳ４０１）、マイクロプロセッサは、ステップＳ４０２においてデジタルオーディオデータにおけるビットＬ（０）を取得し、サンプル受信用レジスタに格納することとなる。そして、サンプル受信用ステータスの値が「２３」であることから、マイクロプロセッサの処理は、ステップＳ４０３およびＳ４０５を介してステップＳ４０６に進む。
【０１４９】
このステップＳ４０６では、ステップＳ４０２においてサンプル受信用レジスタに格納されたビットを取り出して１０ビットのＭＩＤＩワードを組み立てる処理として、図１２におけるステップＳ２０３からステップＳ２１１までの処理に類似した処理が行われる。その結果、サンプル受信用レジスタに格納されたビットがＭＩＤＩデータの構成ビットである場合、マイクロプロセッサがステップＳ４０６の処理を経由する度に、ＭＩＤＩ受信用コンテナにはＭＩＤＩデータが１ビットずつ取り出される。その際、ＭＩＤＩ受信用コンテナのどのビットにデータを格納するかの判断のため、ＭＩＤＩ受信用ステータスが用いられる。また、ＭＩＤＩ受信用コンテナに１０ビットが揃いＭＩＤＩワードとなると、そのＭＩＤＩワードはＭＩＤＩ受信用バッファに書き出され、ＭＩＤＩ受信用カウンタが「１」だけ増加される。
【０１５０】
ステップＳ４０６を終えると、マイクロプロセッサはＷＳフラグ４の値をＷＳフラグ３に設定し（ステップＳ４０７）、サンプル受信用ステータスを「１」だけ増加させ（ステップＳ４０８）、クロックＳＣＫが“０”から“１”に変化するまで待機する。
【０１５１】
サンプル受信用ステータスが「２３」でなくなると、それ以降、ステップＳ４０１、Ｓ４０２、Ｓ４０３、Ｓ４０５、Ｓ４０７およびＳ４０８が繰り返される。そして、ビットＲ（０）が受信されるときには、上述したように、サンプル受信用ステータスが「−１」にされる（ステップＳ４０４）。以後の動作は既に説明した通りである。
【０１５２】
ＭＩＤＩデータ抽出部４５は、上記の動作と並行して、ＭＩＤＩ受信用バッファのＭＩＤＩデータを音源部４６およびＭＩＤＩデータ出力部４７にＭＩＤＩデータ用バスを介して送信する。この動作は図１０を用いて既に説明した鍵盤部２４のＭＩＤＩ送信部の動作と同じであるので、説明を省略する。ＭＩＤＩデータ抽出部４５はＭＩＤＩ送信用に異なるマイクロプロセッサを備えてもよいが、時分割処理等により上記のＭＩＤＩデータの抽出を行うマイクロプロセッサがこれを兼ねてもよい。
【０１５３】
［２．７］抽出されたＭＩＤＩデータの処理動作
ＭＩＤＩデータ出力部４７は、このようにしてＭＩＤＩデータ抽出部４５から送られてくるＭＩＤＩデータを受信し、受信したＭＩＤＩデータをＭＩＤＩ規格に従った３１２５０ｂｐｓの伝送速度で、ＭＩＤＩケーブルにより外部の機器に送信する。
【０１５４】
より具体的には、ＭＩＤＩデータ出力部４７のマイクロプロセッサは、図１２を用いて既に説明したＭＩＤＩデータ重畳部２８のＭＩＤＩ受信部の動作と同じ動作によりＭＩＤＩデータを受信し、図１０を用いて既に説明した鍵盤部２４のＭＩＤＩ送信部の動作と同じ動作によりＭＩＤＩデータを送信する。ＭＩＤＩデータ出力部４７はこれらの処理を並行して行うため、複数のマイクロプロセッサを備えてもよいが、時分割処理等により１つのマイクロプロセッサが同時に行ってもよい。なお、ＭＩＤＩデータ出力部４７におけるＭＩＤＩデータ受信動作には発振器５１から受信するＳＣＫ（周期：約０．４７２４マイクロ秒）が用いられるが、ＭＩＤＩデータ送信動作においては、マイクロプロセッサはＭＩＤＩデータ送信用のクロック（周期：３２．００マイクロ秒）を生成し、そのクロックをＳＣＫの代わりに用いる。これにより、音源モジュール１２は外部の機器に対してＭＩＤＩ規格に従った伝送速度によりＭＩＤＩデータの送信を行う。
【０１５５】
ＭＩＤＩ抽出部４５によって抽出されたＭＩＤＩデータは、音源部４６にも送られる。音源部４６は、このようにして与えられるＭＩＤＩデータに応じて、デジタルオーディオデータを生成する。ここで、ＭＩＤＩ抽出部４５によって抽出されたＭＩＤＩデータは、元々はコントローラ１１の鍵盤部２４の操作により生じたものであるので、音源部４６から出力されるデジタルオーディオデータは、鍵盤部２４の鍵盤演奏に対応したものとなる。ミキサ部４８は、この音源部４６から出力されるデジタルオーディオデータと、Ｓ／Ｐ  ＤＩＦ入力部４４からのデジタルオーディオデータとをミキシングして出力する。ライン出力部５０は、デジタルオーディオデータを左チャネルと右チャネルに分けてＤ／Ａ変換し、この結果得られる左チャネル用アナログ音声信号と右チャネル用アナログ音声信号を出力する。これらのアナログ音声信号は図１のアンプ１３によって増幅され、スピーカＬ１４およびスピーカＲ１５から音として出力される。この結果、ユーザは、コントローラ１１においてＣＤから再生されたデジタルオーディオデータに対応した音と、鍵盤部２４の演奏に対応した音とを聞くことになる。
【０１５６】
［２．８］ユーザによる操作部を用いた操作
本実施形態において、ユーザは、操作部４２を用いた操作により、以上の処理とは別に、記憶部４９を用いた処理を音源モジュール１２に行わせることができる。
【０１５７】
例えば、ユーザが操作部４２を用いて記録開始の指示を音源モジュール１２に与えると、制御部４１は操作部４２を介してその指示を受け取り、記憶部４９は制御部４１の制御のもとで、ミキサ部４８から送信されるデジタルオーディオデータを順次記憶する。
【０１５８】
また、ユーザが操作部４２を用いて再生開始の指示を音源モジュール１２に与えると、制御部４１は操作部４２を介してその指示を受け取り、記憶部４９は制御部４１の制御のもと、記憶されているデジタルオーディオデータを読み出し、読み出したデジタルオーディオデータをＭＩＤＩデータ抽出部４５に送信する。ＭＩＤＩデータ抽出部４５はこのデジタルオーディオデータからＭＩＤＩデータを抽出し、抽出されたＭＩＤＩデータがＭＩＤＩデータ出力部４７から外部に出力される。
【０１５９】
また、本実施形態において、ユーザは、コントローラ１１の操作部２２を用いた操作により、音源モジュール１２の各種制御を行うこともできる。すなわち、ユーザは操作部２２を用いて望む制御を行うためのシステムエクスクルーシブメッセージの送信命令をコントローラ１１に与える。システムエクスクルーシブメッセージはＭＩＤＩメッセージの一種で、機器のメーカが自由にその内容を規定できるため、機器により異なる機能を制御する目的で広く用いられている。コントローラ１１の制御部２１は操作部２２を介してその命令を受け取ると、ユーザの操作に応じたシステムエクスクルーシブメッセージを生成し、ＭＩＤＩデータ重畳部２８のＭＩＤＩ送信用バッファに書き込む。ＭＩＤＩ送信用バッファに書き込まれたシステムエクスクルーシブメッセージはＭＩＤＩデータ重畳部２８で他のＭＩＤＩデータと同様にデジタルオーディオデータに重畳され、Ｓ／Ｐ  ＤＩＦ出力部２９を介して音源モジュール１２に送信される。音源モジュール１２においては、Ｓ／Ｐ  ＤＩＦ入力部４４を介して、システムエクスクルーシブメッセージが重畳されたデジタルオーディオデータはＭＩＤＩデータ抽出部４５に受信される。ＭＩＤＩデータ抽出部４５は他のＭＩＤＩデータと同様にシステムエクスクルーシブメッセージをデジタルオーディオデータより抽出し、それを制御部４１に送信する。音源モジュール１２の制御部４１はこうしてシステムエクスクルーシブメッセージを受信すると、それに応じた制御処理を行う。
【０１６０】
［２．９］演奏システム全体の動作タイミング
図１８および図１９は、以上説明した演奏システムの全体の動作を示すタイミングチャートである。なお、これらの図においては簡易化のため、コントローラ１１のクロックＷＳと音源モジュール１２のクロックＷＳは同期されている。これらのクロックＷＳは必ずしも同期している必要はないが、例えばＳ／Ｐ  ＤＩＦ入力部４４がコントローラ１１から受信する信号に基づき同期信号を生成し、その同期信号を発振器５１に出力することにより、同期を取ることが可能である。以下、図１８および図１９を参照して、本実施形態の全体としての動作を説明する。
【０１６１】
まず、コントローラ１１において、ＣＤプレーヤ部２５および音源部２６から送信されるデジタルオーディオデータは、ミキサ部２７においてミキシング処理のため、１／４４１００秒遅れ、さらにＳ／Ｐ  ＤＩＦ出力部２９においてデータをＳ／Ｐ  ＤＩＦ形式の信号に変換するために１／４４１００秒遅れる。同様に、それらのデータは音源モジュール１２において、Ｓ／Ｐ  ＤＩＦ入力部４４においてＳ／Ｐ  ＤＩＦ形式の信号をＰＣＭ形式のデジタルオーディオデータに変換するために１／４４１００秒遅れ、さらにミキサ部４８においてミキシング処理のため、１／４４１００秒遅れる。従って、これらのデジタルオーディオデータはＣＤプレーヤ部２５および音源部２６における送信開始から５／４４１００秒遅れて、ライン出力部５０から出力される。
【０１６２】
一方、コントローラ１１においてユーザが押鍵を行った場合、鍵盤部２４からは押鍵直後から、図６に示したような３つのＭＩＤＩワードからなるノートオンメッセージが順次ＭＩＤＩデータ重畳部２８に送信され、ＭＩＤＩデータ重畳部２８は受信したデータをクロックＷＳが“０”から“１”に変化するタイミングで１ビットずつＳ／Ｐ  ＤＩＦ出力部２９に送信する。ＭＩＤＩデータの各ビットの値はデジタルオーディオデータに重畳された形でＭＩＤＩデータ重畳部２８からＳ／Ｐ  ＤＩＦ出力部２９、音源モジュール１２のＳ／Ｐ  ＤＩＦ入力部４４、を経由してＭＩＤＩデータ抽出部４５に送信されるが、この伝送において２／４４１００秒の遅れが生ずる。ＭＩＤＩデータ抽出部においては１／４４１００秒間隔でＭＩＤＩデータが１ビットずつ受信され、１０ビット、すなわち１ＭＩＤＩワードが揃う度にそのＭＩＤＩワードを音源部４６に送信する。音源部４６はこうしてＭＩＤＩワードを順次受信するが、３番目のＭＩＤＩワード、すなわちデータバイト２の受信を完了した時点で発音を行うことが可能となる。従って、音源部４６の発音は、ユーザによる押鍵から約３２／４４１００秒後、すなわち約７２５．６マイクロ秒後となるが、これはＭＩＤＩ規格の３１２５０ｂｐｓによる３つのＭＩＤＩワードの伝送速度、すなわち９６０．０マイクロ秒よりも速く、実用上問題がない。さらに、例えばＭＩＤＩデータの伝送用にＬ（０）のビット列に加え、Ｒ（０）を用いると、この遅れは約半分となり、ＭＩＤＩデータの伝送速度の改善にも貢献する。
【０１６３】
［３］変形例
上記実施形態は本発明の一形態であり、本発明の技術的思想の範囲で自由に変形が可能である。以下、それら変形例を示す。
【０１６４】
（１）上記実施形態においては、ＭＩＤＩデータを重畳する際のもとなるデジタルオーディオデータの一つとして音楽ＣＤが用いられている。しかしながら、もととなるデジタルオーディオデータの記録媒体およびデータ形式はこれに限られるものではない。コントローラはハードディスク等の他の記録媒体を持ち、その記録媒体に記録されたデジタルオーディオデータを用いてもよいし、またＳ／ＰＤＩＦ入力部等のインタフェースを持ち、外部の機器からケーブル等を介して伝送されてくるデジタルオーディオデータを用いてもよい。またその際のデータ形式は、ＰＣＭデータ形式と同様に規則的なデータ列をなすフォーマットのものであれば、本実施形態において利用することができる。
【０１６５】
（２）上記実施形態においては、デジタルオーディオデータに対し重畳するＭＩＤＩデータはユーザの演奏によりコントローラ内の鍵盤部において生成される。しかしながら、重畳されるＭＩＤＩデータはこれに限定されない。コントローラはハードディスク等の他の記録媒体を持ち、その記録媒体に記録されたＳＭＦ（Ｓｔａｎｄａｒｄ  ＭＩＤＩ  Ｆｉｌｅ）等のＭＩＤＩデータファイルを用いてＭＩＤＩデータを生成し、それを用いてもよいし、またＭＩＤＩインタフェース等を持ち、外部の機器からケーブル等を介して伝送されてくるＭＩＤＩデータを用いてもよい。なお、ＳＭＦはＭＩＤＩデータに時間情報を追加して記録する際に広く用いられているファイル形式の一つである。
【０１６６】
（３）上記実施形態においては、コントローラおよび音源モジュールの内部におけるデータ伝送にはＩ2Ｓバスが、またコントローラと音源モジュールとの間のデータ伝送にはＳ／Ｐ  ＤＩＦが用いられているが、データ伝送規格はこれに限られるものではない。ＰＣＭデータ形式およびそれと同様に規則的なデータ列を伝送可能な伝送規格であれば本実施形態において利用することができる。
【０１６７】
（４）上記実施形態においては、ＭＩＤＩデータの重畳を行うＭＩＤＩデータ重畳部と、ＭＩＤＩデータの抽出を行うＭＩＤＩデータ抽出部がそれぞれ異なる機器に備えられている。しかしながら、これらの構成部およびそれらに付帯する構成部の配置はこれに限られるものではない。例えばコントローラ１１の構成に加え、Ｓ／Ｐ  ＤＩＦ入力部、ＭＩＤＩデータ抽出部、およびライン出力部を備えるコントローラを用いてもよい。そのようなコントローラを用いれば、ＭＩＤＩデータのデジタルオーディオデータへの重畳処理と、ＭＩＤＩデータのデジタルオーディオデータからの抽出処理が同じ機器において実行できる。
【０１６８】
（５）上記実施形態においては、コントローラと音源モジュールは比較的近距離において利用されることが想定されている。しかしながら、これらの機器はＥｔｈｅｒｎｅｔ等のインタフェースを持ち、ＬＡＮやインターネット等を用いて遠距離にある他の機器とＭＩＤＩデータの重畳されたデジタルオーディオデータの送受信を行ってもよい。
【０１６９】
（６）上記実施形態においては、デジタルオーディオデータとそれに重畳されるＭＩＤＩデータは再生時に同じ時間軸上で同期再生される。しかしながら、これらのデータは互いに同期していなくともよい。例えばＳＭＦ形式のＭＩＤＩデータファイルを、関連する楽曲のデジタルオーディオデータに重畳して配布してもよい。
【０１７０】
【発明の効果】
図２０は図１における演奏システムと類似の構成をとる演奏システムを従来技術により構築した場合の接続例である。従来技術によれば、コントローラ１１１と音源モジュール１１２の間には３本のケーブル、すなわちアナログ音声信号の入出力を行うためのアナログオーディオケーブルが左右用に２本とＭＩＤＩデータの送受信を行うためのＭＩＤＩケーブルが１本必要である。本発明を用いた本実施形態によれば、これら電子楽器間のケーブル数を減少させることができる。
【０１７１】
すなわち、本発明を用いることにより、低コストで電子楽器（ＭＩＤＩデータを扱うコンピュータ等を含む）のインタフェース数およびそれらインタフェースに接続されるケーブル数が削減される。なお、その際に電子楽器の拡張性が損なわれることはない。
【０１７２】
また、本発明を用いることにより、低コストでＭＩＤＩデータとそれに関連するデジタルオーディオデータとの一元管理が可能となる。すなわち、それらのデータは一つのデータに重畳され、伝送および記録されるため、データ管理の煩雑さが低減する。
【０１７３】
また、ＭＩＤＩデータの重畳先がサブコードではなく、デジタルオーディオデータ本体内であるので、ＭＩＤＩデータの重畳および抽出の作業も容易である。
【図面の簡単な説明】
【図１】  本実施形態に係る演奏システム全体の構成を示すブロック図である。
【図２】  本実施形態に係るコントローラの構成を示すブロック図である。
【図３】  本実施形態に係るデジタルオーディオデータのデータフォーマット（１６ビット）を示す図である。
【図４】  本実施形態に係るデジタルオーディオデータのデータフォーマット（２４ビット）を示す図である。
【図５】  本実施形態に係るＭＩＤＩデータ例を示す図である。
【図６】  本実施形態に係るＭＩＤＩデータ伝送時のフォーマットを示す図である。
【図７】  本実施形態に係るＭＩＤＩデータが重畳されたデジタルオーディオデータのデータフォーマット（２４ビット）を示す図である。
【図８】  本実施形態に係るＭＩＤＩデータが重畳されたデジタルオーディオデータのデータフォーマット（１６ビット）を示す図である。
【図９】  本実施形態に係る音源モジュールの構成を示すブロック図である。
【図１０】  本実施形態に係るＭＩＤＩデータ送信動作を表すフローチャートである。
【図１１】  本実施形態に係るＭＩＤＩデータ伝送時のタイミングチャート例である。
【図１２】  本実施形態に係るＭＩＤＩデータ受信動作を表すフローチャートである。
【図１３】  本実施形態に係るＩ2Ｓバスを介したデジタルオーディオデータ伝送時のタイミングチャート例である。
【図１４】  本実施形態に係るＭＩＤＩデータのデジタルオーディオデータへの重畳動作を表すフローチャートである。
【図１５】  本実施形態に係るＳ／Ｐ  ＤＩＦを介したデジタルオーディオデータ伝送時のデータフォーマットを示す図である。
【図１６】  ＢＭＣ変換の説明用タイミングチャートである。
【図１７】  本実施形態に係るＭＩＤＩデータ抽出動作を示すフローチャートである。
【図１８】  本実施形態に係るデジタルオーディオデータおよびＭＩＤＩデータの伝送過程を示すタイミングチャートである。
【図１９】  本実施形態に係るデジタルオーディオデータおよびＭＩＤＩデータの伝送過程を示すタイミングチャートである。
【図２０】  従来技術を用いた演奏システムの構成を示すブロック図である。
【符号の説明】
１１、１１１  コントローラ
１２、１１２  音源モジュール
１３、１１３  アンプ
１４、１１４  スピーカＬ
１５、１１５  スピーカＲ
２１、４１  制御部
２２、４２  操作部
２３、４３  表示部
２４  鍵盤部
２５  ＣＤプレーヤ部
２６、４６  音源部
２７、４８  ミキサ部
２８  ＭＩＤＩデータ重畳部
２９  Ｓ／Ｐ  ＤＩＦ出力部
３０、５１  発振器
４４  Ｓ／Ｐ  ＤＩＦ入力部
４５  ＭＩＤＩデータ抽出部
４７  ＭＩＤＩデータ出力部
４９  記憶部
５０  ライン出力部
【図１】
0003915585.tif 000002
【図２】
0003915585.tif 000003
【図３】
0003915585.tif 000004
【図４】
0003915585.tif 000005
【図５】
0003915585.tif 000006
【図６】
0003915585.tif 000007
【図７】
0003915585.tif 000008
【図８】
0003915585.tif 000009
【図９】
0003915585.tif 000010
【図１０】
0003915585.tif 000011
【図１１】
0003915585.tif 000012
【図１２】
0003915585.tif 000013
【図１３】
0003915585.tif 000014
【図１４】
0003915585.tif 000015
【図１５】
0003915585.tif 000016
【図１６】
0003915585.tif 000017
【図１７】
0003915585.tif 000018
【図１８】
0003915585.tif 000019
【図１９】
0003915585.tif 000020
【図２０】
0003915585.tif 000021