(57)【要約】【課題】  不正に見破られることなく、意図的な改竄のしにくい、無意識のうちの付属情報の変更も起こりにくい、主要情報に対する付属情報の電子的透しの埋め込み。【解決手段】  所定のエンコードアルゴリズムに従って、主要情報に対してダミーデータとして、或る演奏制御データ又は非演奏データに続けてそれと同一の演奏制御データ又は非演奏データを付加し、該ダミーデータに応じた電子的透しが主要情報に埋め込まれるようにする。または、主要情報に対してダミーデータを埋め込み、該ダミーデータの時間位置を示す時間情報を所望の付属情報に応じて設定することで、主要情報中のダミーデータの時間位置を示す時間情報に応じた電子的透しを埋め込む。または、複数の音源チャンネルのうち任意のチャンネルを発音に使用しないダミーチャンネルを付加し、付加したダミーチャンネルに応じた電子的透しを主要情報に埋め込む。【選択図】  図１７
2008070872.tif 000002
【特許請求の範囲】
【請求項１】
音楽演奏データからなる主要情報の中に付属情報を電子的透しとして埋め込む電子情報処理方法であって、
所定のエンコードアルゴリズムに従って、前記主要情報に対してダミーデータとして、或る演奏制御データ又は非演奏データに続けてそれと同一の演奏制御データ又は非演奏データを付加するステップ
を具備し、前記主要情報におけるダミーデータに応じた電子的透しを埋め込むことを特徴とする方法。
【請求項２】
音楽演奏データからなる主要情報の中に付属情報を電子的透しとして埋め込む電子情報処理方法であって、
所定のエンコードアルゴリズムに従って、前記主要情報に対してダミーデータを付加するステップと、
前記ダミーデータの時間位置を示す時間情報を、所望の付属情報に応じて設定するステップと
を具備し、前記主要情報におけるダミーデータの時間位置を示す時間情報に応じた電子的透しを埋め込むことを特徴とする方法。
【請求項３】
音楽演奏データからなる主要情報の中に付属情報を電子的透しとして埋め込む電子情報処理方法であって、
所定のエンコードアルゴリズムに従って、前記主要情報に対してダミーデータとして、複数の音源チャンネルのうち任意のチャンネルを発音に使用しないダミーチャンネルを付加するステップ
を具備し、付加したダミーチャンネルに応じた電子的透しが前記主要情報に埋め込まれることを特徴とする方法。
【請求項４】
請求項１乃至３のいずれかの方法に従って電子的透しが埋め込まれた主要情報から前記付属情報をデコードする電子情報処理方法であって、
前記エンコードアルゴリズムに対応するデコード用カギ情報を提供するステップと、
前記提供されたカギ情報に基づき前記エンコードアルゴリズムの逆算を行うことで、前記主要情報に隠されていた前記付属情報をデコードするステップと
を具備する方法。
【請求項５】
音楽演奏データからなる主要情報の中に付属情報を電子的透しとして埋め込む電子情報処理装置であって、
所定のエンコードアルゴリズムに従って、前記主要情報に対してダミーデータとして、或る演奏制御データ又は非演奏データに続けてそれと同一の演奏制御データ又は非演奏データを付加する手段
を具備し、前記主要情報におけるダミーデータに応じた電子的透しを埋め込むことを特徴とする電子情報処理装置。
【請求項６】
音楽演奏データからなる主要情報の中に付属情報を電子的透しとして埋め込む電子情報処理装置であって、
所定のエンコードアルゴリズムに従って、前記主要情報に対してダミーデータを付加する手段と、
前記ダミーデータの時間位置を示す時間情報を、所望の付属情報に応じて設定する手段と
を具備し、前記主要情報におけるダミーデータの時間位置を示す時間情報に応じた電子的透しを埋め込むことを特徴とする電子情報処理装置。
【請求項７】
音楽演奏データからなる主要情報の中に付属情報を電子的透しとして埋め込む電子情報処理装置であって、
所定のエンコードアルゴリズムに従って、前記主要情報に対してダミーデータとして、複数の音源チャンネルのうち任意のチャンネルを発音に使用しないダミーチャンネルを付加する手段
を具備し、付加したダミーチャンネルに応じた電子的透しが前記主要情報に埋め込まれることを特徴とする電子情報処理装置。
【請求項８】
請求項１乃至３のいずれかの方法に従って若しくは請求項５乃至７のいずれかの装置に従って電子的透しが埋め込まれた主要情報から前記付属情報をデコードする電子情報処理装置であって、
前記エンコードアルゴリズムに対応するデコード用カギ情報を提供する手段と、
前記提供されたカギ情報に基づき前記エンコードアルゴリズムの逆算を行うことで、前記主要情報に隠されていた前記付属情報をデコードする手段と
を具備する電子情報処理装置。
【請求項９】
請求項１乃至４のいずれかに記載の方法における各ステップをコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、主要情報（例えば、演奏データ、映像データ、波形データなど）中に、付属情報（例えば、著作権表示情報、曲名情報、作曲者情報、作成年月日情報、歌詞情報、ニュース文情報、機種名情報、ＩＤなどのテキストデータ）を電子的透し情報として埋め込む、及び／又は主要情報中に電子的透し情報として埋込まれた付属情報を取出す電子情報処理方法及び装置若しくはシステムに関し、更にはこの方法を実現するためのプログラムを記録したコンピュータ読取り可能な記録媒体に関する。
【背景技術】
【０００２】
従来から、例えば下記特許文献１に示されているように、主要情報としての演奏データの一部を構成するベロシティデータの最下位ビットに、曲名、作曲者等に関する付属情報を埋め込むとともに、同付属情報の埋め込まれた演奏データから付属情報を取り出すことは知られている。
【特許文献１】特開平１１−３９７９６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかし、上記従来の方法では、付属情報の埋め込み法が比較的単純なために、オーソライズされていない不正利用者によって同方法が見破られて付属情報が意図的に変更されてしまうという問題があった。また、ベロシティデータは比較的変更されやすいデータの一つであるために、正当利用者が演奏データそのものを編集する際などにベロシティデータを変更することにより、該ベロシティデータに埋め込まれた付属情報が無意識のうちに変更されてしまうことが起こり得るという問題もあった。
【０００４】
本発明は上述の点に鑑みてなされたもので、主要情報に対する付属情報の埋め込み法に工夫を施したユニークな電子情報処理方法及び装置並びに記録媒体を提供しようとするものである。更に、オーソライズされていない不正利用者によって見破られることの起こりにくい、従って、不正利用者による意図的な改竄のしにくい、電子情報処理方法及び装置並びに記録媒体を提供しようとするものである。また、正当利用者による無意識のうちの付属情報の変更も起こりにくいようにした電子情報処理方法及び装置並びに記録媒体を提供しようとするものである。
【課題を解決するための手段】
【０００５】
【０００６】
【０００７】
【０００８】
【０００９】
【００１０】
【００１１】
第１の観点に従う本発明に係る方法は、音楽演奏データからなる主要情報の中に付属情報を電子的透しとして埋め込む電子情報処理方法であって、所定のエンコードアルゴリズムに従って、前記主要情報に対してダミーデータとして、或る演奏制御データ又は非演奏データに続けてそれと同一の演奏制御データ又は非演奏データを付加するステップを具備し、前記主要情報におけるダミーデータに応じた電子的透しを埋め込むことを特徴とする。
【００１２】
例えば或るエフェクトに変更せよというような指示を行う演奏制御データは、同一のものが連続していても、一旦そのエフェクトに変更されると次は同じエフェクトが維持されるだけであり、音楽演奏には悪影響を与えない。よって、このような演奏制御データはダミーデータとして使用することができる。メタイベントのような非演奏データも、同一のものが連続していても同じメタイベント処理が繰返されるだけであり、音楽演奏には悪影響を与えない。従って、本願発明によれば、音楽演奏に悪影響を与えることなく、ダミーデータの有無に応じて１ビットの電子的透しを埋め込むことができる。
【００１３】
第２の観点に従う本発明に係る方法は、音楽演奏データからなる主要情報の中に付属情報を電子的透しとして埋め込む電子情報処理方法であって、所定のエンコードアルゴリズムに従って、前記主要情報に対してダミーデータを付加するステップと、前記ダミーデータの時間位置を示す時間情報を、所望の付属情報に応じて設定するステップとを具備し、前記主要情報におけるダミーデータの時間位置を示す時間情報に応じた電子的透しを埋め込むことを特徴とする。この場合も、ダミーデータを用いることで音楽演奏に悪影響を与えることなく、電子的透しを埋め込むことができ、また、電子的透し情報の埋め込み形態を多様にすることができ、見破られにくい複雑なエンコード化処理のために役立つ。
【００１４】
第３の観点に従う本発明に係る方法は、音楽演奏データからなる主要情報の中に付属情報を電子的透しとして埋め込む電子情報処理方法であって、所定のエンコードアルゴリズムに従って、前記主要情報に対してダミーデータとして、複数の音源チャンネルのうち任意のチャンネルを発音に使用しないダミーチャンネルを付加するステップを具備し、付加したダミーチャンネルに応じた電子的透しが前記主要情報に埋め込まれることを特徴とする。この場合も、ダミーデータを用いることで音楽演奏に悪影響を与えることなく、電子的透しを埋め込むことができ、また、電子的透し情報の埋め込み形態を多様にすることができ、見破られにくい複雑なエンコード化処理のために役立つ。
【００１５】
更に本発明に係る方法は、上記第１乃至３のいずれかの観点に従って電子的透しが埋め込まれた主要情報から前記付属情報をデコードする電子情報処理方法であって、前記エンコードアルゴリズムに対応するデコード用カギ情報を提供するステップと、前記提供されたカギ情報に基づき前記エンコードアルゴリズムの逆算を行うことで、前記主要情報に隠されていた前記付属情報をデコードするステップとを具備することを特徴とする。
【００１６】
本発明は、方法の発明として実施することができるのみならず、システムまたは装置の発明として実施することができるし、この方法を実現するためのコンピュータプログラムの形態で実施することもできるし、更にはこのプログラムを記録したコンピュータ読取り可能な記録媒体の発明として実施することもできる。また、この方法に従って電子的透しを埋め込んだデータを記録してなるコンピュータ読取り可能な記録媒体の発明として実施することもできる。
【発明を実施するための最良の形態】
【００１７】
以下、本発明の実施の形態を図面を用いて説明する。まず、各実施形態に共通のハード構成について説明すると、図１は、同ハード構成に係るパーソナルコンピュータをブロック図により示している。
【００１８】
パーソナルコンピュータ装置は、マイクロコンピュータ本体を構成するＣＰＵ１１、ＲＯＭ１２及びＲＡＭ１３を備えている。ＣＰＵ１１は、プログラムを実行するものである。ＲＯＭ１２は、ＯＳ等の基本的なプログラムを記憶しておくための記憶エリアである。ＲＡＭ１３は、アプリケーションプログラム等を記憶したり、プログラムの実行に必要な変数を記憶したりするための記憶エリアである。これらのＣＰＵ１１、ＲＯＭ１２及びＲＡＭ１３はバス１０に接続されており、同バス１０には、内部記憶装置１４、ドライブユニット１５、入力装置１６及び表示器１７も接続されている。
【００１９】
内部記憶装置１４は、ハードディスク、同ディスクのためのドライブ装置などで構成されており、大容量のメモリ装置として機能する。ドライブユニット１５は、外部記録媒体としてのコンパクトディスク、フレキシブルディスクなどが装着されるようになっており、同外部記録媒体に対してプログラム及びデータの読出し及び書込みを行うものである。入力装置１６は、複数の操作子により構成されるキーボード、マウス等などからなり、外部からの指示、データなどを入力するものである。表示器１７は、文字、数字などを画面に表示するものである。
【００２０】
また、バス１０には、通信インターフェース２１及び音源回路２２も接続されている。通信インターフェース２１は、外部の各種機器とケーブル、電話回線などを介してデータ、プログラムなどの授受を行うもので、特にＭＩＤＩ（Musical Instrument Digital Interface）データの授受を行うインターフェース回路を含んでいる。勿論、ＭＩＤＩデータに限らずその他の任意のフォーマットのデータを、通信インターフェース２１を介して授受することが可能である。音源回路２２は、楽音信号を形成して出力する複数の音源チャンネル（本実施形態ではチャンネル番号０〜１５の１６個のチャンネルを使用するものとする）を有しており、各音源チャンネルは、バス１０を介して供給されるキーコードＫＣ、キーオン信号ＫＯＮ、キーオフ信号ＫＯＦ、各楽音制御パラメータ等の演奏データにしたがって種々の音高を有する各種音色の楽音信号を形成し、左右のオーディオチャンネルに分けてそれぞれ出力する。また、各音源チャンネルは、複数の楽音信号を時分割で合成して出力することがそれぞれ可能である。ただし、一部の音源チャンネル（本実施形態ではチャンネル番号９の音源チャンネル）は種々の打楽器音信号を合成するために設けられていて、この音源チャンネルにはキーコードＫＣに代えて打楽器番号が供給されるようになっている。この音源回路２２には、左右のオーディオアンプ２３ａ，２３ｂを介して左右のオーディオスピーカ２４ａ，２４ｂがそれぞれ接続されている。
【００２１】
次に、各実施形態に共通の動作について説明しておく。ユーザは、各実施形態に係るアプリケーションプログラムとしての「エンコードプログラム」及び「デコードプログラム」を記録したコンパクトディスク、フレキシブルディスクなどの記録媒体を準備し、同記録媒体をドライブユニット１５に装着して「エンコードプログラム」及び「デコードプログラム」を内部記憶装置１４に記憶させる。また、通信インターフェース２１を介して「エンコードプログラム」及び「デコードプログラム」を内部記憶装置１４に記憶させてもよい。
【００２２】
そして、「エンコードプログラム」を起動させると、パーソナルコンピュータ装置は、図２(Ａ)に示すようなエンコーダ３０Ａとして機能する。エンコーダ３０Ａは、付属情報Ｙ及びカギ情報ＫＥＹを外部から入力し、与えられた主要情報（本件各実施形態では演奏データ）をカギ情報ＫＥＹにしたがって加工することにより、付属情報Ｙを透し情報として主要情報中に埋め込んで出力する。この主要情報内への付属情報Ｙ（透し情報）の埋込処理は、通信インターフェース２１を介してストリーミングデータ形式でリアルタイムに供給される主要情報に対してリアルタイムで施すようにしてもよいし、あるいはＲＡＭ１３又は内部記憶装置１４に予め記憶されている主要情報（あるいは外部記録媒体に記録されているものをドライブユニット１５を介して読み込んだ主要情報）に対して非リアルタイムで施すようにしてもよい。
【００２３】
「デコードプログラム」を起動させると、パーソナルコンピュータ装置は、図２(Ｂ)に示すようなデコーダ３０Ｂとして機能する。デコーダ３０Ｂは、カギ情報ＫＥＹを外部から入力し、同カギ情報ＫＥＹを用いることにより、前記透し情報として付属情報Ｙの埋込まれた主要情報（本件実施形態では演奏データ）から付属情報Ｙを取り出して出力する。この透し埋込済みの主要情報からの付属情報Ｙ（透し情報）のデコード処理も、通信インターフェース２１を介してストリーミングデータ形式でリアルタイムに供給される主要情報に対してリアルタイムで施すようにしてもよいし、あるいはＲＡＭ１３又は内部記憶装置１４に予め記憶されている主要情報（あるいは外部記録媒体に記録されているものをドライブユニット１５を介して読み込んだ主要情報）に対して非リアルタイムで施すようにしてもよい。
【００２４】
また、後述する各実施形態では、パーソナルコンピュータを用いてエンコード機能及びデコード機能を実現するようにしたが、同エンコード機能及びデコード機能を実現するプログラムをロード可能なマイクロコンピュータ装置を内蔵したものであれば、音源装置、電子楽器用キーボード装置、シーケンサ、ＭＩＤＩファイラー、サンプラー、又はこれらの複数を含む電子楽器システムにも適用できるものである。また、後述する各実施形態では、演奏データ中に付属情報Ｙを埋込むことについてのみ説明するが、本発明は演奏データ以外にも、波形データ、映像データなどの他のデータに埋込む場合にも適用できるものである。
【００２５】
〔第１実施形態〕
次に、本発明の第１実施形態について説明する。この第１実施形態は、カギ情報ＫＥＹに応じて演奏データにおけるデータ配置を再配置又はデータの順序を変更するタイプのものに属する。
【００２６】
演奏データに対する付属情報Ｙの埋込み（エンコード）及び演奏データから付属情報Ｙの取出し（デコード）の説明の前に、付属情報Ｙを埋込む前の演奏データのフォーマット例について説明しておく。１つの音楽演奏に対応する演奏データとしては、図３に示すように、音源チャンネル０〜１５（ｃｈ０〜ｃｈ１５）にそれぞれ対応した１６チャンネル分の演奏データ０〜１５が用意される。すなわち、１６チャンネルポリフォニックの自動演奏シーケンスデータである。勿論、必ずしも１６チャンネル分の全ての演奏データ０〜１５を使用する必要はなく、一部の音源チャンネル用の演奏データだけを使用してもよい（例えば音源チャンネル０〜１０だけを使用して合計用の１１チャンネル分の演奏データ０〜１０だけを用意する）。この実施例において、音源チャンネル０〜８，１０〜１５（ｃｈ０〜ｃｈ８，ｃｈ１０〜ｃｈ１５）は、前述のように、種々の音高を有する各種音色の楽音信号を合成するものであるので、演奏データ０〜８，１０〜１５は共通のフォーマットである。しかし、音源チャンネル９（ｃｈ９）は打楽器信号を合成するものとしているので、演奏データ９のフォーマットは他と異なる。本実施形態では、このｃｈ９の演奏データ９は透し情報を埋め込む対象としないので、同演奏データ９に関してはこれ以上の説明を省略する。
【００２７】
各音源チャンネル０〜８，１０〜１５（ｃｈ０〜ｃｈ８，ｃｈ１０〜ｃｈ１５）に対応して記憶される演奏データ０〜８，１０〜１５のフォーマットの一例を図３を参照して説明すると、これらの演奏データのフォーマットは、データ列の先頭位置に設けた音源設定情報と、音源設定情報に続いて設けた演奏イベント情報とからなる。音源設定情報は、音源チャンネルの初期の音色、音量、音像位置、エクスプレションペダル位置（これも音量を制御）及び減衰時間（単に減衰時間の長短のみを示す場合もある）をそれぞれ制御するための音色番号データＴＣＮ、ボリュームデータＶＯＬ、パンデータＰＡＮ、エクスプレッションデータＥＸＰ及びダンプデータＤＭＰを含む。例えば、音色番号データＴＣＮの一例を示すと、同データＴＣＮは、ピアノ、ギター等の各種音色を「０」以上の異なる整数によって表すものである。
【００２８】
演奏イベント情報は、各楽音の発音開始、発音終了などのイベントを表すイベントデータＥＶＴと、各イベント間のインターバル（相対時間）を表すインターバルデータΔＴとからなる。各イベントデータＥＶＴは、楽音の音名（例えばＣ２，Ｅ２など）を表すキーコードＫＣ、楽音の発音開始及び発音終了を表すオン・オフデータＯＮ／ＯＦＦ、鍵タッチの強さを表すベロシティデータＶＥＬなどを一組とするものである。なお、同一のタイミングに複数のイベントが発生する場合には、複数のイベントデータＥＶＴが連続して書き込まれている。
【００２９】
そして、このような演奏データの再生について簡単に説明しておく。図示しないプログラムの実行により、最初、音源設定情報を構成する音色番号データＴＣＮ、ボリュームデータＶＯＬ、パンデータＰＡＮ、エクスプレッションデータＥＸＰ及びダンプデータＤＭＰが順次読出されて音源回路２２の該当音源チャンネルに出力される。音源回路２２の該当音源チャンネルは、前記各データに応じて、同チャンネルにおいて発生される楽音信号の初期の音色、音量、音像位置、エクスプレッションペダル位置及び減衰時間を設定する。次に、演奏イベント情報が順次読出される。この場合、次のインターバルデータΔＴが見つかるまで、イベントデータＥＶＴの読出しを続け（次のインターバルデータΔＴが見つかるまでに複数組のイベントデータＥＶＴがあれば複数組分のイベントデータＥＶＴを読出し）、同読出したイベントデータＥＶＴを音源回路２２の該当音源チャンネルに出力する。そして、次のインターバルデータΔＴによって表された時間の計数が終了するまで、演奏イベント情報の読出しを中断し、同計数が終了した時点で次の演奏イベント情報の読出しを再開する。したがって、イベントデータＥＶＴは、インターバルデータΔＴによって表された時間毎に、順次読出されて音源回路２２の該当音源チャンネルに供給される。
【００３０】
音源回路２２の該当音源チャンネルにおいては、供給されたイベントデータＥＶＴのうちのキーコードＫＣによって決定された音高の楽音信号を合成する。この合成される楽音信号の発音開始及び発音終了は、前記供給されたイベントデータＥＶＴのうちのオン・オフデータＯＮ／ＯＦＦにより制御され、個々の音量は同イベントデータＥＶＴのうちのベロシティデータＶＥＬによって制御される。また、前記のように合成された各楽音信号の音色、総合的な音量、音像位置、エクスプレッションペダルによる音量及び減衰時間は、前記音源設定情報を構成する音色番号データＴＣＮ、ボリュームデータＶＯＬ、パンデータＰＡＮ、エクスプレッションデータＥＸＰ及びダンプデータＤＭＰによってそれぞれ制御される。ただし、これらデータＴＣＮ、ＶＯＬ、ＰＡＮ、ＥＸＰ、ＤＭＰのいずれかが演奏データに含まれていて、同いずれかのデータが演奏イベント情報の読出し中に読出された場合には、同読出しの時点から、前記各楽音信号の音色、総合的な音量、音像位置、エクスプレッションペダルによる音量及び減衰時間は、前記演奏イベント情報の読出し中に読出されたいずれかのデータにしたがう。
【００３１】
なお、図３は演奏データフォーマットを概念的に示したものであり、詳細なデータフォーマットは、各種の公知の音楽演奏データフォーマットに従う。例えば、各音源チャンネル別に演奏データ記録トラックをそれぞれ有する在来型の自動演奏シーケンスのフォーマットからなる場合は、複数の音源チャンネルに対応してそれぞれ演奏データ記録トラックが存在し、音源チャンネルと記録トラックとが１対１で対応する。よって、その場合は、演奏データのチャンネル配置の変更は、或る音源チャンネルの記録トラックで記憶されている演奏データを別の音源チャンネルの記録トラックに移し替えるか、あるいは音源チャンネルと記録トラックの対応づけを変更する（或る記録トラックに対応づけられるチャンネル番号を別のチャンネル番号に変更する）ことによって行われる。また、ＭＩＤＩメッセージのようにステータスバイトにチャンネル番号をデータとして含むフォーマットからなる場合は、複数の音源チャンネルの演奏データ（ＭＩＤＩデータ）は記録トラック別に分かれているというよりはむしろ混在しており、その場合は、演奏データのチャンネル配置の変更は、ステータスバイト中のチャンネル番号を変更することによって行われる。
【００３２】
次に、演奏データに対する付属情報Ｙの埋め込み（エンコード）処理の一例について図４を参照して説明する。図４は、演奏データのチャンネル配置を変更することで、所望の付属情報に対応する透し情報を埋め込む例を示している。また、演奏データのチャンネル配置を変更するエンコードアルゴリズムにおける１つの「カギ」として、音色情報を用いる。すなわち、音色情報に関連づけて演奏データのチャンネル配置を変更するエンコードアルゴリズムを採用するものとする。勿論、エンコードアルゴリズムはこれに限らず、適宜設計してよい。
【００３３】
図４において、ユーザが「エンコードプログラム」を起動すると、ＣＰＵ１１は、ステップ１００にて「エンコードプログラム」の実行を開始し、ステップ１０２にて埋め込むべき付属情報Ｙ及びそのデコード用のカギ情報ＫＥＹを入力する。これらの情報Ｙ，ＫＥＹの入力は、入力装置１６による操作入力、通信インターフェース２１を介して外部からの入力、外部記録媒体からドライブユニット１５を介した入力、内部記憶装置１４に記憶しておいたものの読み出しなど、適宜の手段によって行われる。
【００３４】
以下の説明では、最も簡単な例として、付属情報Ｙとして１つの文字コードを示す数値情報を埋め込む例について説明する。理解を容易にするための具体例としては、アスキーコードの文字「Ｙ」を表すデシマル値「８６」を埋め込む例を想定する。また、付属情報Ｙを埋め込むためのエンコードアルゴリズムにおける「カギ」として、各チャンネル０〜８，１０〜１５の演奏データ０〜８，１０〜１５内の各音源設定情報中の音色番号データＴＣＮの小さい順に演奏データのチャンネル配置を変更することとする。カギ情報ＫＥＹはそのような「カギ」を示す情報である。なお、以降において登場する数値は、特別のことわりがない限り、全てデシマル値とする。
【００３５】
なお、以下の説明におけエンコードアルゴリズムの基本は、最大で「Ｂ！」通りの値をとりうる数値「Ａ」に応じて、「Ｂ」個のデータ群の順列組み合わせの配置を設定する、というアルゴリズムを使用するものとする。そのようなエンコードアルゴリズムは、具体的には下記（式１）のようである。
（式１）
Ｂ順列の順位０：ＡmodＢ
Ｂ順列の順位１：（ＡdivＢ）mod（Ｂ−１）
Ｂ順列の順位２：｛（ＡdivＢ）div（Ｂ−１）｝mod（Ｂ−２）
．
．
．
Ｂ順列の順位Ｂ−２：[{(ＡdivＢ)div(Ｂ−１)}div … div３〕mod２
Ｂ順列の順位Ｂ−１：[{(ＡdivＢ)div(Ｂ−１)}div … div２〕mod１＝０
【００３６】
上記式１において、「ＡmodＢ」は、数値ＡをＢで割った余りを示す。「ＡdivＢ」は、数値ＡをＢで割った商の整数部を示す。例えば、「Ｂ順列の順位０」とは、Ｂ順列のオリジナル順位０を示し（順位０は最上位のこと）、そのエンコード出力「ＡmodＢ」は、その変更後の順位を示す。ここで、下位のエンコードアルゴリズムのエンコード出力が示す変更後の順位は、上位のエンコードアルゴリズムによって決定済みの順位を除外した順位である。例えば、最上位のエンコードアルゴリズム「ＡmodＢ」によって、Ｂ順列のオリジナル順位０のデータが、全体中の順位「３」に変更することが決定されたとき、次のエンコードアルゴリズム「（ＡdivＢ）mod（Ｂ−１）」によって、エンコード出力として「４」が算出されたとすると、Ｂ順列のオリジナル順位１のデータは、全体の順位のうち既に決定済みの順位「３」を除外した順位の中の４番目、つまり全体中の順位「５」に変更されることを意味する。以下、順次、決定済みの順位を除外して変更後の順位を決定する。ここで、オリジナル順位とは、カギ情報ＫＥＹの示す順位であり、例えば音色番号データＴＣＮの小さい順に演奏データのチャンネル配置を変更するエンコードアルゴリズムの場合は、各音源チャンネルのうちそこに割り当てられた音色番号データＴＣＮの小さい順をオリジナル順位としている。なお、或る順位のエンコードアルゴリズムの結果が余り０となった場合は、それより下位の順位のエンコードアルゴリズムの演算実行を省略して、それより下位の順位についてはカギ情報ＫＥＹの示すオリジナル順位の通りとしてよい。
【００３７】
図４において、ステップ１０４では、埋め込むべき付属情報Ｙを上記式１に従う順位０のアルゴリズムで処理する。この例の場合、チャンネル配置変更の対象となるチャンネル数は１５であるから、上記式１でＢ＝１５であり、エンコードの対象となる数値は付属情報Ｙであるから、上記式１でＡ＝Ｙである。よって、ステップ１０４では、「ＡmodＢ」の演算として、「Ｙmod１５」を行う。その余りをｘ15なる符号で表すものとする。例えば、Ｙ＝８６のとき、ｘ15は「１１」である。次に、ステップ１０６にて、カギ情報ＫＥＹにより定まる最初の演奏データ、すなわち最小の音色番号データＴＣＮを有する演奏データを、音源チャンネル９（打楽器用音源チャンネル）を除く音源チャンネル０〜８，１０〜１５のうちで音源チャンネル０を最上位に数えてｘ15番目の音源チャンネル、つまりチャンネル１２、に割当てる。すなわち、ｘ15＝１１のときは、チャンネル９を除外するので、ｘ15＝１１番目までのチャンネル順は、０，１，２，３，４，５，６，７，８，１０，１１，１２の順となり、チャンネル１２に該当する。なお、０番目とは音源チャンネル０を指し、１，２，３…番目は音源チャンネル１，２，３…を指す。また、最小の音色番号データＴＣＮを有する演奏データをｘ15番目の音源チャンネルに割当てるとは、オリジナルのｘ15番目の音源チャンネルの演奏データと最小の音色番号データＴＣＮを有する演奏データとを入替えることを意味し（ただし、ｘ15番目の演奏データと最小の音色番号データＴＣＮを有する演奏データとが一致する場合には前記入替えはなし）、これにより、最小の音色番号データＴＣＮを有する演奏データが、音源チャンネル０〜８，１０〜１５のうちで音源チャンネル０側から数えてｘ15番目の演奏データとなる。
【００３８】
次に、ステップ１０８にて、付属情報Ｙが「１５」以上であるか否かを判定する。付属情報Ｙが「１５」以上であれば、ステップ１０８にて「ＹＥＳ」と判定して、プログラムをステップ１１０〜１１４に進める。ステップ１１０及び１１２においては上記式１の順位１のエンコードアルゴリズムに従う演算を行う。すなわち、ステップ１１０においては、付属情報Ｙを「１５」で割った商の整数部（これをｙ15で示す）を求める。この演算は、上記式１における「ＡdivＢ」なる割算に相当し、上記のようにＡ＝Ｙで、Ｂ＝１５の場合は、ステップ１１０では「Ｙdiv１５」なる割算を行うことになる。次に、ステップ１１２においては、前記商の整数部ｙ15を「１４」で割り、その余りｘ14を求める。すなわち、ｘ14＝ｙ15mod１４であり、これは上記式１の順位１の演算の解に相当する。次のステップ１１４においては、カギ情報ＫＥＹにより次の演奏データ、すなわち２番目に小さい音色番号データＴＣＮを有する演奏データを、前記音源チャンネル０〜８，１０〜１５のうち、決定済みの音源チャンネルｘ15を除くｘ14番目の音源チャンネルに割当てる。例えば、Ｙ＝８６のとき、ｙ15＝「５」であり、ｘ14は、「５÷１４＝０余り５」から、ｘ14＝「５」である。すなわち２番目に小さい音色番号データＴＣＮを有する演奏データを、音源チャンネル９及びｘ15＝１１（つまりチャンネル１２）を除く音源チャンネルのうちｘ14番目の音源チャンネル（ｘ14＝５のときはチャンネル５）に割当てる。
【００３９】
次に、ステップ１１６にて、前記商の整数部ｙ15が「１４」以上であるか否かを判定する。ｙ15が「１４」以上であれば、ステップ１１６にて「ＹＥＳ」と判定して、プログラムをステップ１１８〜１２２に進める。ステップ１１８及び１２０においては上記式１の順位２のエンコードアルゴリズムに従う演算を行う。すなわち、ステップ１１８においては、ｙ15を「１４」で割った商の整数部（これをｙ14で示す）を求める。この演算は、上記式１における「（ＡdivＢ）div（Ｂ−１）」なる割算に相当し、上記例のようにＡdivＢ＝ｙ15で、Ｂ−１＝１４の場合は、ステップ１１８では「ｙ15div１４」なる割算を行う。次にステップ１２０においては、前記商の整数部ｙ14を「１３」で割り、その余りｘ13を求める。すなわち、ｘ13＝ｙ14mod１３であり、これは上記式１の順位２の演算の解に相当する。そして、次のステップ１２０においては、カギ情報ＫＥＹにより次の演奏データ、すなわち３番目に小さい音色番号データＴＣＮを有する演奏データを、前記音源チャンネル０〜８，１０〜１５のうち、決定済みの音源チャンネルｘ15及びｘ14を除くｘ13番目の音源チャンネルに割当てる。
【００４０】
以下、順位を順次繰り下げながら、ステップ１１６，１１８，１２０，１２２と類似の処理を順次繰り返し、上記式１の順位３から順位Ｂ−１までのエンコードアルゴリズムに従う演算をそれぞれ行うが、詳細図示は省略する。
【００４１】
ところで、上記例のように、Ｙ＝８６の場合は、ｙ15＝「５」であるから、ステップ１１６はＮＯと判定され、ステップ１１８〜１２２に進まずに、ステップ１２４に進む。ステップ１２４では、残りの演奏データを、カギ情報ＫＥＹにより定まる順序で残りの音源チャンネルに順次割り当てる処理を行う。このように、カギ情報ＫＥＹにより定まる順序の通りにチャンネルが配置されている箇所では、エンコードアルゴリズム演算の解つまり余りが「０」であることを意味する。すなわち、順位を順次繰り下げながら、ステップ１１６，１１８，１２０，１２２と類似の処理をあえて順次繰り返す必要がないため、これらの演算を省略し、ステップ１２４で順次割当て処理を行えば足りる。同様の理由で、ステップ１０８でＮＯと判定された場合も、処理はステップ１２４に移る。
【００４２】
ここで理解を深めるためにチャンネル配置変更の具体例を示す。オリジナル演奏データとして、チャンネル０に音色番号２０の演奏データが割り当てられ、チャンネル３に音色番号１０の演奏データが割り当てられ、チャンネル５に音色番号１５の演奏データが割り当てられ、チャンネル１０に音色番号１２の演奏データが割り当てられているとする。上記のように埋め込むべき付属情報Ｙが「８６」であるとすると、音色番号順のアルゴリズムを指示するカギ情報ＫＥＹに従って、最初は最小の音色番号１０のチャンネル割当て（配置変更）を行い、ステップ１０４でのｘ15＝Ｙmod１５＝１１によって、音色番号１０の演奏データを順位１１のチャンネル（つまりチャンネル１２）に割り当てる（オリジナルのチャンネル３からチャンネル１２に配置を変更する）。
【００４３】
次に、２番目の音色番号１２のチャンネル割当て（配置変更）を行い、ステップ１１０でのｙ15＝Ｙdiv１５＝５、及びステップ１１２でのｘ14＝ｙ15mod１４＝５によって、２番目の音色番号１２の演奏データをチャンネル５に割り当てる（オリジナルのチャンネル１０からチャンネル５に配置を変更する）。ｙ15は１４未満であるため、ステップ１１６はＮＯとなり、以後のエンコード演算を省略してステップ１２４に行き、以下音色番号順に残りのチャンネルに順次割り当てる。すなわち、３番目の音色番号１５の演奏データをチャンネル０に割り当て（オリジナルのチャンネル５からチャンネル０に配置を変更する）、４番目の音色番号２０の演奏データをチャンネル１に割り当て（オリジナルのチャンネル０からチャンネル１に配置を変更する）。
【００４４】
以上例示したようなチャンネル配置変更に基づくエンコードアルゴリズムによれば、対象チャンネル数が「１５」であれば、「１５！」通りのチャンネル配置組合せがあり得ることから、「１５！」通りの値を示す付属情報を電子的透し情報として演奏データ（主要情報）の中に埋め込むことができる。「１５！」通りの値とは、ビット数にして「ｌｏｇ１５！」（底は２）ビットからなるものであり、かなりの情報量を透し情報として埋め込むことができることが理解できる。しかも、演奏データのチャンネル配置を変更したとしても、結果的に発音される演奏音については何も変更されない（どのチャンネルを使用して発音しようとも、指定された音色等で発音がなされればよい）ので、透し情報を埋め込んだことによる再生演奏への悪影響は全く生じず、極めて有利である。
【００４５】
なお、チャンネル配置変更に使用するエンコードアルゴリズムのカギ情報ＫＥＹとしては、音色番号順に限らず、他の如何なるファクタを使用してもよい。例えば各チャンネルの演奏データ中のノート番号の平均値の小さい順（または大きい順）、あるいは各チャンネルの演奏データ中のノート数（音符数）の多い順（または少ない順）、など適宜のファクタをカギ情報ＫＥＹとして使用してよい。また、上記実施例では、付属情報Ｙとして１文字のアスキーコードを埋め込む例を説明したが、複数の文字分の任意の文字情報や、図形情報その他の適宜の情報を付属情報Ｙとして埋め込むことができるのは勿論である。例えば、音楽演奏データの適宜のブロック毎に（１又は複数小節毎に）１文字ずつ合計複数文字の透し情報を埋め込む、といったような手法でエンコードを行うことができる。なお、その場合、チャンネル配置がどの箇所で変化するのか、といったようなデコード処理に必要な各種情報をカギ情報ＫＥＹとして適宜提供してやるものとする。
【００４６】
次に、演奏データに埋め込まれた付属情報Ｙのデコード処理の一例について図５を参照して説明する。図５は、図４の手法に従ってチャンネル配置を変更することで所望の付属情報に対応する透し情報を埋め込んでなる演奏データから、付属情報Ｙをデコードする例を示している。
【００４７】
図５において、ユーザが「デコードプログラム」を起動すると、ＣＰＵ１１は、ステップ１０１にて「デコードプログラム」の実行を開始し、ステップ１０３にて、デコード用のカギ情報ＫＥＹを取得する。デコード用カギ情報ＫＥＹの取得の仕方は、如何なる手法によってもよい。例えば、必要なカギ情報ＫＥＹを正当に知得し、これをキーボード等で入力するようにしてもよい。あるいは、演奏データのヘッダ部等に必要なカギ情報ＫＥＹを記憶しておき、これを読み出すことで取得するようにしてもよい。あるいは、後述するように、主要情報たる演奏データの適宜の箇所に電子的透し情報の形態で必要なカギ情報ＫＥＹを埋め込んでおき、これを別途のデコードプログラムに従ってデコードすることで取得するようにしてもよい。あるいは、通信インターフェース２１を介して通信ネットワークを経由して外部のサーバから必要なカギ情報を取得するようにしてもよい。あるいは、ＭＩＤＩの演奏データ中に含まれるシステムイクスクルーシブデータからもしくはメタイベントデータから必要なカギ情報を取得するようにしてもよい。このようにデコード用のカギ情報ＫＥＹの取得形態に種々のバリエーションがあることは、以下説明するすべての実施例に共通である。
【００４８】
例えば、図４のエンコード例の場合は、このステップ１０３で取得するカギ情報ＫＥＹは、「音色番号の小さい順」に上記式１のエンコードアルゴリズムを適用したというものである。よって、このようなカギ情報ＫＥＹを取得し知得することにより、与えられた演奏データのうち「音色番号の小さい順」に上記式１のエンコードアルゴリズムの逆算を行うことにより、そこに隠されていた元の付属情報Ｙをデコードすることができる。
【００４９】
すなわち、与えられた演奏データにおける各チャンネルの音色番号をチェックすることで、「音色番号の小さい順」にそのチャンネル順位ｘ15，ｘ14，ｘ13，…を順次検出する（図５のステップ１０５，１０７，１０９，…）。なお、ここで、前述から明らかなように、チャンネル順位ｘ15，ｘ14，ｘ13，…とは絶対的なチャンネル順位ではなく、それぞれの段階での残りのチャンネルにおける相対的な順位である。例えば、前述のエンコード例のように、最小の音色番号１０の演奏データをチャンネル１２に割り当て、２番目の音色番号１２の演奏データをチャンネル５に割り当て、３番目の音色番号１５の演奏データをチャンネル０に割り当て、４番目の音色番号２０の演奏データをチャンネル１に割り当てるようなチャンネル配置変更がなされている場合、図５のステップ１０５では最小の音色番号１０の演奏データが割り当てられているチャンネル１２に基づき、ｘ15＝「１１」を検出する。次のステップ１０７では、２番目の音色番号１０の演奏データが割り当てられているチャンネル５を検出し、これが残りのチャンネル（つまりチャンネル９と１２を除くチャンネル０〜８，１０，１１，１３〜１５）のうち、５番目の順位であることに基づき、ｘ14＝「５」を検出する。次のステップ１０９では、３番目の音色番号１５の演奏データが割り当てられているチャンネル０を検出し、これが残りのチャンネル（つまりチャンネル９と１２と５とを除くチャンネル０〜４，６〜８，１０，１１，１３〜１５）のうち、最上位の順位「０」であることに基づき、ｘ13＝「０」を検出する。以後のチャンネル順位はすべて残りのチャンネルの最上位であるため「０」である。
【００５０】
このようにしてカギ情報ＫＥＹに基づき検出した各チャンネル順位ｘ15，ｘ14，ｘ13，…は、前記式１の各順位のエンコードアルゴリズム演算における余り値に相当するため、これらを用いて下記式２のようにエンコードアルゴリズムの逆算を行うことで、埋め込まれた透し情報の値Ａをデコードすることができる。
（式２）
Ａ＝ｘ15＋（ｘ14・Ｂ）＋{ｘ13・Ｂ・(Ｂ−１)}＋{ｘ12・Ｂ・(Ｂ−１)・(Ｂ−２)}
＋{ｘ11・Ｂ・(Ｂ−１)・(Ｂ−２)・(Ｂ−３)}＋……
図５におけるステップ１１１では、上記式２に従う逆算を行い、透し情報として埋め込まれていた付属情報Ｙの値をデコードする。ｘ15＝「１１」、ｘ14＝「５」、ｘ13＝「０」の上記例では、Ｙ＝１１＋５×１５＋０＝８６となり、透し情報として埋め込まれていた付属情報Ｙの値「８６」がデコードされることが理解できる。
【００５１】
次に、上記第１実施形態の変形例について説明する。上記例では、演奏データにおけるチャンネル配置を変更することで透し情報の埋め込みを行っているが、その他適宜のデータの配置または順序を変更するようにしてもよい。すなわち、配置または順序変更の対象となりうるデータは、演奏データにおける当該データの配置または順序の変更が、該演奏データに基づく音楽の再生に実質的に悪影響を与えないものであることが好ましい。そのようなタイプのデータとしては、発音開始前の（初期設定用の）複数種類の音源設定情報の配置順序や、同時発音される和音を構成する複数ノートのイベントデータや、ＭＩＤＩのメタイベントデータ（演奏には直接関係しないデータ）などが挙げられる。
【００５２】
図６は、演奏データに対する付属情報Ｙの埋め込み（エンコード）処理の別の例として、演奏データにおける複数種類の音源設定情報の配列順序を変更することで、所望の付属情報に対応する透し情報を埋め込む例を示している。この例では、初期設定用（発音開始以前）の音色番号データＴＣＮ、ボリュームデータＶＯＬ、パンデータＰＡＮ、エクスプレッションデータＥＸＰ及びダンプデータＤＭＰの５種類の音源設定情報の配列順序を、付属情報Ｙの値に応じて変更する。その場合のカギ情報ＫＥＹは、各音源設定情報のオリジナル順位を示す。エンコードアルゴリズムは、前記式１と同様のものを使用してよい。その場合、上記５種類の音源設定情報の配列順序を変更する場合は、前記式１でＢ＝５である。
【００５３】
図６のエンコード処理の仕方は基本的には図４と同様である。まず、ステップ１３０では、図４のステップ１０２と同様に、埋め込むべき付属情報Ｙと使用するカギ情報ＫＥＹを入力する。次に、ステップ１３１では、配置若しくは順序変更の対象となる複数種類の音源設定情報を主要情報（演奏データ）から取り出す。次に、ステップ１３２では、Ｂ＝５として、上記式１の順位０に従うエンコード演算（Ｙmod５）を行い、その解つまり余りとしてｘ5を得る。次のステップ１３３では、入力したカギ情報ＫＥＹによって定まる最初の順位（上記式１の順位０）の音源設定情報の配列順序を全体のｘ5番目に設定する。なお、前述と同様に、０番目が最上位の順位であるとする。例えば、ＴＣＮ、ＶＯＬ、ＰＡＮ、ＥＸＰ、ＤＭＰがオリジナル順位であるとすると、音色番号データＴＣＮの配置順序がｘ5番目に設定される。
【００５４】
次に、ステップ１３４にて、付属情報Ｙが「５」（＝Ｂ）以上であるか否かを判定する。付属情報Ｙが「５」以上であれば、ステップ１３４にて「ＹＥＳ」と判定して、プログラムをステップ１３５，１３６に進める。ステップ１３５においては図４のステップ１１０及び１１２と同様に上記式１の順位１のエンコードアルゴリズムに従う演算を行う。すなわち、付属情報Ｙを「５」で割った商の整数部（これをｙ5で示し、ｙ5＝Ｙdiv５である）を求め、該商の整数部ｙ5を「４」で割り（ｙ5mod４）、その解つまり余りｘ4を求める。すなわち、ｘ4＝ｙ5mod４であり、これはＢ＝５のときの上記式１の順位１の演算の解に相当する。次のステップ１３６においては、カギ情報ＫＥＹにより定まる２番目のオリジナル順位１の音源設定情報の配置順序を残りの（決定済の順位ｘ5を除く）ｘ4番目に設定する。例えば、前記のオリジナル順の場合、ボリュームデータＶＯＬの配置順序が残りのｘ4番目に設定される。
【００５５】
次に、ステップ１３７にて、前記商の整数部ｙ5が「４」以上であるか否かを判定する。ｙ5が「１４」以上であれば、ステップ１３７にて「ＹＥＳ」と判定して、プログラムをステップ１３８，１３９に進める。ステップ１３８においては図４のステップ１１８及び１２０と同様に上記式１の順位２のエンコードアルゴリズムに従う演算を行う。すなわち、ｙ5を「４」で割った商の整数部（これをｙ4で示し、ｙ4＝y5div４である）を求め、該商の整数部ｙ4を「３」で割り、その解つまり余りｘ3を求める。すなわち、ｘ3＝ｙ4mod３であり、これはＢ＝５のときの上記式１の順位２の演算の解に相当する。そして、次のステップ１３９においては、カギ情報ＫＥＹにより定まる３番目のオリジナル順位２の音源設定情報の配置順序を残りの（決定済の順位ｘ5，ｘ4を除く）ｘ3番目に設定する。例えば、前記のオリジナル順の場合、パンデータＰＡＮの配置順序が残りのｘ3番目に設定される。
【００５６】
次に、ステップ１４０にて、前記商の整数部ｙ4が「３」以上であるか否かを判定する。ｙ4が「３」以上であれば、ステップ１４０にて「ＹＥＳ」と判定して、プログラムをステップ１４１，１４２に進める。ステップ１４１，１４２は、上記ステップ１３８，１３９と同様の処理を順位を１つ繰り下げて行うものである。これにより、ｘ2＝ｙ3mod２が求まり、これはＢ＝５のときの上記式１の順位３の演算の解に相当し、カギ情報ＫＥＹにより定まる４番目のオリジナル順位３の音源設定情報の配置順序を残りの（決定済の順位ｘ5，ｘ4，ｘ3を除く）ｘ2番目に設定する。例えば、前記のオリジナル順の場合、エクスプレッションデータＥＸＰの配置順序が残りのｘ2番目に設定される。最後にステップ１４３では、１つの順位だけが残されているので、残りの最後のオリジナル順位４の音源設定情報（上記設例ではダンプデータＤＭＰ）の配置順序を残りの順位とする。
【００５７】
なお、上記各ステップ１３４，１３７，１４０でＮＯと判定された場合は、ステップ１４４，１４５，１４６に行き、残りのエンコードアルゴリズム演算（ステップ１３５〜１４３）をあえて実行することなく、残りの音源設定情報をカギ情報ＫＥＹに従う残りの順位に順次設定する。勿論、残りのエンコードアルゴリズム演算（ステップ１３５〜１４３）を実行ったとしても、各順位ｘ4，ｘ3，ｘ2がそれぞれ順位０として求められ、カギ情報ＫＥＹが指定する順位に順次設定される。ステップ１４４，１４５，１４６にジャンプした場合は、残りのエンコードアルゴリズム演算を省略できるので、処理時間が速まる。
【００５８】
ここで理解を深めるために、音源設定情報の配置順序変更の具体例を示す。カギ情報ＫＥＹに従う順位が上記のようであり、埋め込むべき付属情報Ｙの値が「８６」であるとすると、ｘ5＝８６mod５＝１から、音色番号データＴＣＮの配置順序が順位１（全体の２番目）に設定され、ｘ4＝１７mod４＝１から、ボリュームデータＶＯＬの配置順序が残りの順位１（全体の３番目）に設定され、ｘ3＝４mod３＝１から、パンデータＰＡＮの配置順序が残りの順位１（全体の４番目）に設定され、ｘ2＝１mod２＝１から、エクスプレッションデータＥＸＰの配置順序が残りの順位１（全体の５番目）に設定され、最後のダンプデータＤＭＰの配置順序が残りの順位０（全体の１番目）に設定される。すなわち、ＤＭＰ、ＴＣＮ、ＶＯＬ、ＰＡＮ、ＥＸＰという配置順に変更される。
【００５９】
以上例示したような音源設定情報の配置順序変更に基づくエンコードアルゴリズムによれば、対象種類数が「５」であれば、「５！」通りの順列組合せがあり得ることから、「５！」通りの値を示す付属情報を電子的透し情報として演奏データ（主要情報）の中に埋め込むことができる。「５！」通りの値とは、ビット数にして「ｌｏｇ５！」（底は２）ビットからなるものである。しかも、初期設定用（発音開始以前）の各音源設定情報の配置順序を変更したとしても、再生演奏には何の悪影響ももたらさないので、透し情報を埋め込んだことによる再生演奏への悪影響は全く生じず、極めて有利である。なお、音源設定情報の配置順序変更に使用するエンコードアルゴリズムのカギ情報ＫＥＹによって指定する各情報のオリジナル順位は、上記例に限らず、適宜に設定してよい。この場合も、付属情報Ｙとして埋め込む情報は１文字のアスキーコードに限らず、複数の文字分の任意の文字情報や、図形情報その他の適宜の情報を埋め込むことができるのは勿論である。例えば、１５個の各音源チャンネル０〜８，１０〜１５のそれぞれについて、演奏開始前の初期設定値としての各音源設定情報の配置順序を上記に従ってエンコードすることで、１５文字の文字情報を埋め込むことができる。また、演奏途中の箇所で、各音源設定情報を挿入し、その配置順序を上記に従ってエンコードすることで、更に埋め込む情報数を増すことができる。
【００６０】
次に、演奏データに埋め込まれた付属情報Ｙのデコード処理の別の例について図７を参照して説明する。図７は、図６の手法に従って音源設定情報の配置順序を変更することで所望の付属情報に対応する透し情報を埋め込んでなる演奏データから、付属情報Ｙをデコードする例を示している。
【００６１】
図７のデコード処理の仕方は基本的には図５と同様である。まず、ステップ１５０にて、デコード用のカギ情報ＫＥＹを取得する。次に、カギ情報ＫＥＹによって定まる音源設定情報の順に、その配置順位ｘ5，ｘ4，ｘ3，ｘ2を順次検出する（ステップ１５１〜１５４）。なお、ここで、前述から明らかなように、配置順位ｘ5，ｘ4，ｘ3，ｘ2とは絶対的な順位ではなく、それぞれの段階での残りのデータにおける相対的な順位である。例えば、前述のエンコード例のように、ＤＭＰ、ＴＣＮ、ＶＯＬ、ＰＡＮ、ＥＸＰの順で配置設定がなされている場合、図７のステップ１５１ではＴＣＮの順位ｘ5＝「１」を検出する。次のステップ１５２ではＶＯＬの順位ｘ4＝「１」を検出し、次のステップ１５３ではＰＡＮの順位ｘ3＝「１」を検出し、次のステップ１５４ではＥＸＰの順位ｘ2＝「１」を検出する。最後のデータＤＭＰの順位は必ず「０」である。
【００６２】
このようにしてカギ情報ＫＥＹに基づき検出した各音源設定情報の配置順位ｘ5，ｘ4，ｘ3，ｘ2は、前記式１の各順位のエンコードアルゴリズム演算における余り値に相当するため、これらを用いて前記式２と同様のエンコードアルゴリズムの逆算を行うことで、透し情報として埋め込まれた付属情報Ｙの値をデコードすることができる。ステップ１５５では、デコードのためのそのような逆算、すなわち、
Ｙ＝ｘ5＋（５・ｘ4）＋（５・４・ｘ3）＋（５・４・３・ｘ2）＋０
を実行する。上記例では、ｘ5，ｘ4，ｘ3，ｘ2がすべて「１」であるから、Ｙ＝８６のデコード結果が得られる。
【００６３】
図８は、演奏データに対する付属情報Ｙの埋め込み（エンコード）処理の更に別の例として、同時発音される和音を構成する複数ノートの配置順序を変更することで、所望の付属情報に対応する透し情報を埋め込む例を示している。例えば、同時発音される３個のノートによって和音を演奏する演奏データを想定すると、この３個のノートの配置順序は、どのような順序であっても、和音が同時発音されることには変わりないので、「３！」通りの組み合わせの配置順序のいずれを採用しても再生演奏には悪影響を与えないことになる。よって、これらの同時発音される３個のノートの配置順序を、付属情報Ｙに応じて設定することにより、「３！」通りの値を持つ付属情報Ｙを透し情報として埋め込むことができることになる。勿論、同時発音されるノート数が４個の場合は、「４！」通りの値を持つ付属情報Ｙを透し情報として埋め込むことができることになる。ただし、図８に示すエンコード例では、説明の簡略化のために、同時発音されるノート数が４個以上の場合であっても、「３！」通りの値を持つ付属情報Ｙを透し情報として埋め込むようにした例を示している。このエンコード例の場合、演奏シーケンスにおける各和音演奏箇所毎にそれぞれ異なる付属情報Ｙを透し情報として埋め込むことができる。説明の便宜上、埋め込み可能な複数（ｐ個）の付属情報Ｙを、Ｙ（１），Ｙ（２），Ｙ（３），…Ｙ（ｐ）で示す。
【００６４】
この場合、同時発音される複数のノートの配置順序を設定するためのカギ情報ＫＥＹとしては、ノート番号順、あるいはノートオフまでの時間順、あるいはベロシティデータの大きさの順、など種々のファクタを使用してよい。どのようなファクタを使用するかはカギ情報ＫＥＹによって指示される。この場合も、エンコードアルゴリズムは、前記式１と同様のものを使用してよい。その場合、「３！」通りの値を持つ付属情報Ｙを透し情報として埋め込む場合は、前記式１でＢ＝３である。つまり、同時発音されるノート数が３個以上の演奏データグループに対してエンコード処理がなされる。
【００６５】
図８のエンコード処理の仕方は基本的には図４あるいは図６と同様である。まず、ステップ１６０では、埋め込むべき複数（ｐ個）の付属情報Ｙ（１）〜Ｙ（ｐ）と使用するカギ情報ＫＥＹとを入力する。次に、ステップ１６１では、エンコード処理すべき１つの付属情報Ｙを特定する順序数ｉを初期値１に設定する。次に、ステップ１６２では、主要情報つまり演奏データのアドレスを歩進する。次に、ステップ１６３では、歩進されたアドレスに対応する演奏データが同時発音されるべき３音以上のノートに該当するかを調べるＮＯであれば、ステップ１６２に戻り、演奏データのアドレスを歩進する。こうして、同時発音されるべき３音以上のノートに該当するアドレスまで歩進してくると、ステップ１６３がＹＥＳとなり、ステップ１６４で、これら３音以上の同時発音されるべきノートの演奏データを取り出す。
【００６６】
次に、ステップ１６５では、Ｂ＝３として、上記式１の順位０に従うエンコード演算（Ｙ(i) mod３）をｉ番目の付属情報Ｙ(i)（最初はＹ(1)）に対して行い、その解つまり余りとしてｘ3を得る。次のステップ１６６では、ステップ１６４で取り出した同時発音されるべき３音以上のノートのうち、カギ情報ＫＥＹによって定まる最初の順位（上記式１の順位０）のノートの配列順序を全体のｘ3番目に設定する。
【００６７】
次に、ステップ１６７にて、前記付属情報Ｙ（ｉ）が「３」以上であるか否かを判定する。Ｙ(i)が「３」以上であれば、ステップ１６７にて「ＹＥＳ」と判定して、プログラムをステップ１６８〜１７０に進める。ステップ１６８においては図３のステップ１３５と同様に上記式１の順位１のエンコードアルゴリズムに従う演算を行う。すなわち、Ｙ(i)を「３」で割った商の整数部（これをｙ3で示し、ｙ3＝Ｙ(i) div３である）を求め、該商の整数部ｙ3を「２」で割り、その解つまり余りｘ2を求める。すなわち、ｘ2＝ｙ3mod２であり、これはＢ＝３のときの上記式１の順位１の演算の解に相当する。そして、次のステップ１６９においては、ステップ１６４で取り出した同時発音されるべき３音以上のノートのうち、カギ情報ＫＥＹにより定まる２番目の順位（上記式１の順位１）のノートの配列順序を残りの（決定済の順位ｘ3を除く）ｘ2番目に設定する。ステップ１７０では、ステップ１６４で取り出した同時発音されるべき３音以上のノートのうち、カギ情報ＫＥＹにより定まる３番目以降の順位の残りのノートを、カギ情報ＫＥＹにより定まる順位（決定済の順位ｘ3，ｘ2を除く）に設定する。すなわち、３番目の順位（上記式１の順位２）のノートの配列順序は残りの（決定済の順位ｘ3，ｘ2を除く）０番目に設定する。もし、４番目以降の順位のノートがあれば、さらに下位の順位に設定される。なお、付属情報Ｙ（ｉ）が「３」未満であれば、ステップ１６７はＮＯであり、ステップ１７１に行き、残りのエンコードアルゴリズム演算（ステップ１６８〜１７０）をあえて実行することなく、残りのノートをカギ情報ＫＥＹに従う残りの順位に順次設定する。
【００６８】
ステップ１７２では、順序数ｉが最大値ｐ以上かを調べ。ＮＯであればステップ１７３でｉを＋１増加してステップ１６２に戻る。こうして、次に埋め込むべき付属情報Ｙ（ｉ）に関してステップ１６２〜１７２の処理を繰り返す。やがて、ｉ＝ｐとなって、すべての付属情報Ｙ（ｉ）についての埋め込みを終了すると、ステップ１７２がＹＥＳとなり、このエンコード処理を終了する。
【００６９】
ここで理解を深めるために、同時発音されるべき３音以上のノートの配置順序変更の具体例を示す。同時発音されるべきノートがＣ３，Ｅ３，Ｇ３であり、カギ情報ＫＥＹが「ノート番号の小さい順」であるとし、埋め込むべき付属情報Ｙ(1)の値が「５」であるとすると、ステップ１６５でのｘ3＝５mod３＝２から、最初の順位のノートＣ３の配置順序が順位２（全体の３番目）に設定され（ステップ１６６）、ステップ１６８でのｘ2＝１mod２＝１から、次の順位のノートＥ３の配置順序が順位１（残りの２番目で、全体の２番目）に設定され（ステップ１６９）、最後の順位のノートＧ３の配置順序が順位０（残りの１番目で、全体の１番目）に設定される（ステップ１７０）。この場合、埋め込むことが可能な付属情報Ｙ(1)のとり得る値は「３！」通りの値である。
【００７０】
次に、図８の手法に従って所望の付属情報に対応する透し情報を埋め込んでなる演奏データから、各付属情報Ｙ(1)〜Ｙ(p)をデコードする例について、図９を参照して説明する。
【００７１】
図９のデコード処理の仕方は基本的には図５，図７と同様に、図８のエンコードアルゴリズムの逆算を行うことからなる。まず、デコード用のカギ情報ＫＥＹを取得し、次に、順序数ｉを初期値１にセットする（ステップ１８０，１８１）。それから、ステップ１８２，１８３，１８４では図８のステップ１６２，１６３，１６４と同様の処理を行い、３音以上の同時発音されるべきノートの演奏データを取り出す。それから、カギ情報ＫＥＹによって定まるノートの順に、その配置順位ｘ3，ｘ2を順次検出する（ステップ１８５，１８６）。この場合も、配置順位ｘ3，ｘ2とは絶対的な順位ではなく、それぞれの段階での残りのデータにおける相対的な順位である。ステップ１８７では、これらを用いて前記式２と同様のエンコードアルゴリズムの逆算を行うことで、透し情報として埋め込まれた付属情報Ｙ(i)の値をデコードする。すなわち、
Ｙ(i) ＝ｘ3＋（３・ｘ2）＋０
を実行する。例えば、前述のエンコード例の場合、最初の順位のノートＣ３の配置順序が順位２であることから、ｘ3＝２が検出され、２番目の順位のノートＥ３の配置順序が順位１であることから、ｘ2＝１が検出される。よって、
Ｙ(i) ＝２＋（３・１）＝５
により、Ｙ(i)＝５のデコード結果が得られる。ステップ１８８，１８９は図８のステップ１７２，１７３と同じであり、すべての付属情報Ｙ(1)〜Ｙ(p)をデコードし終えるまで、ステップ１８２〜１８７の処理を繰り返す。
【００７２】
上記例のほかに、再生演奏に悪影響を与えない主要情報中の特定のデータの配置順序を変更することで、所望の付属情報に対応する透し情報を埋め込むことができる。再生演奏に悪影響を与えない主要情報中の特定のデータの例としては、例えばＭＩＤＩのメタイベントデータがある。ＭＩＤＩ演奏データ中において、メタイベントデータとして著作権情報が記録されることがよく行われる。その場合、複数種類のデータ、例えばコピーライト表示であることを示す文字「Ｃ」のデータと、著作年を示す日付データと、著作者を示すデータなどが、別々のメタイベントデータとして、ＭＩＤＩ演奏データ中に適当な順序で適宜記憶される。この複数種類のメタイベントデータの配置順序を、適宜のカギ情報ＫＥＹに従って、所望の付属情報Ｙの値に応じて再配置することで、透し情報として埋め込むことができる。そのためのエンコードアルゴリズムは基本的には図８と同様のものを使用できる。
【００７３】
図１０は著作権情報のメタイベントの配置順序を変更するためのエンコードアルゴリズムの一例を示す図であり、図８と実質的に同様の処理を行うステップは同一番号を付し、説明を省略する。図１０の例における図８に対する変更箇所を説明すると、ステップ１６０はステップ１６０’に変更され、１つの付属情報Ｙを埋め込むだけとするので、付属情報Ｙは１つだけ入力する。これに伴い、図８におけるステップ１６１，１７２，１７３は図１０では省略されている。ステップ１６３’では演奏データが「著作権情報のメタイベントか？」を判定する。ＹＥＳであれば、ステップ１６４’で著作権情報に関する各種メタイベントデータを取り出す。例えば、上記のように、文字「Ｃ」のデータと、著作年を示す日付データと、著作者を示すデータ、の３種類のデータを取り出す。ここで、カギ情報ＫＥＹが指定する所定の順位は、「Ｃ」データ、日付データ、著作者データ、の順であるとする。ステップ１６６’では、最初のメタイベントデータ（「Ｃ」データ）についての順位ｘ3を設定する。ステップ１６９’では、２番目のメタイベントデータ（日付データ）についての残りのうちの順位ｘ2を設定する。ステップ１７０’では、３番目のメタイベントデータ（著作者データ）についての順位を残りのうちの順位０に設定する。
【００７４】
前述と同様に、埋め込むべき付属情報Ｙの値が「５」であるとすると、ステップ１６５でのｘ3＝５mod３＝２から、最初のメタイベントデータ（「Ｃ」データ）についての配置順序が順位２（全体の３番目）に設定され（ステップ１６６’）、ステップ１６８でのｘ2＝１mod２＝１から、次のメタイベントデータ（日付データ）の配置順序が順位１（残りの２番目で、全体の２番目）に設定され（ステップ１６９’）、最後の順位のメタイベントデータ（著作者データ）の配置順序が順位０（残りの１番目で、全体の１番目）に設定される（ステップ１７０’）。この場合も、埋め込むことが可能な付属情報Ｙのとり得る値は「３！」通りの値となる。
【００７５】
図１０の手法に従って所望の付属情報に対応する透し情報を埋め込んでなる演奏データから、付属情報Ｙをデコードする処理は、基本的には図９の場合と同様に、図１０のエンコードアルゴリズムの逆算を行えばよい。このデコード処理については、図９の説明を援用し、詳細説明を省略する。
【００７６】
更に、再生演奏に悪影響を与えない主要情報中の特定のデータの配置順序を変更することで、所望の付属情報に対応する透し情報を埋め込むことが可能な、再生演奏に悪影響を与えない主要情報中の特定のデータの別の例としては、例えば楽音の発音中に設定変更しても発音中の音に影響を与えない「コントロールデータ」またはＭＩＤＩの「プログラムチェンジ」データなどがある。この「コントロールデータ」またはＭＩＤＩの「プログラムチェンジ」データで例えば音色を設定変更する場合、或る楽音の発音中のタイミングで設定変更指示したとしても該発音中の楽音の音色を設定変更することにはならず、次に発音開始する楽音からその音色を変更することになる。従って、この「コントロールデータ」またはＭＩＤＩの「プログラムチェンジ」データが演奏シーケンスにおいて挿入されるタイミングは、或る第１の楽音の発音中のタイミングで挿入する場合と、その発音終了後から次の第２の楽音の発音開始前までのタイミングで挿入する場合とでは、再生演奏に対する影響に変わりはない。従って、この「コントロールデータ」またはＭＩＤＩの「プログラムチェンジ」データの変化イベントを、或る第１の楽音の発音中のタイミングで挿入するか、または、その発音終了後から次の第２の楽音の発音開始前までの間のタイミングで挿入するか、のどちらかで行うかにによって１ビットの付属情報Ｙを、再生演奏に影響を与えることなく、埋め込むことができる。このデコードは、「コントロールデータ」またはＭＩＤＩの「プログラムチェンジ」データの変化イベントが、或る第１の楽音の発音中のタイミングで挿入されている場合は「０」を出力し、その発音終了後から次の第２の楽音の発音開始前までの間のタイミングで挿入されている場合は「１」を出力する、というやり方で処理できる。
【００７７】
〔第２実施形態〕
次に、本発明の第２実施形態について説明する。この第２実施形態は、演奏データの値を操作することで所望の付属情報Ｙの電子的透しを埋め込むようにしたものであり、特に、複数の演奏データの時間情報の変更状態の組み合わせで、所望の付属情報Ｙの電子的透しを埋め込むようにしたものである。具体的には、複数の異なる種類の音源設定情報の時間情報の変更状態の組み合わせで、所望の付属情報Ｙの電子的透しを埋め込むようにしている。
エンコードアルゴリズムの一例を次に示す。
【００７８】
対象となる複数の異なる種類の音源設定情報は、音色番号データＴＣＮ（ＭＩＤＩでいうプログラムチェンジに対応）、ボリュームデータＶＯＬ、パンデータＰＡＮ、エクスプレッションデータＥＸＰ及びダンプデータＤＭＰの５種類であるとする。ただし、これらの音源設定情報は初期設定用（発音開始以前）のものに限らず、演奏シーケンス中に挿入されたものをも対象に含んでいてよく、イベント間の時間間隔を指示する時間情報（インターバルデータ△Ｔ）を伴っているものとする。
【００７９】
まず、第１のカギ情報ＫＥＹ１により、各種音源設定情報の順位を設定する。以下では、ＴＣＮ、ＶＯＬ、ＰＡＮ、ＥＸＰ、ＤＭＰの順位が設定されているものとして説明を進める。
【００８０】
次に、第２のカギ情報ＫＥＹ２により、時間情報（インターバルデータ△Ｔ）を変更するために使用する変更差分値△ｄの分解能ｎを設定する。一例として、時間情報の変更を微小値に押さえるために、分解能ｎ＝３として、変更差分値△ｄのとりうる値を、＋１，０，−１の３種類とすると有利であり、以下ではそのように設定されているものとして説明を進める。
【００８１】
次に、第３のカギ情報ＫＥＹ３により、時間情報（インターバルデータ△Ｔ）についての関数ｆ（ｍ）＝ｎ’を定義する。ここで、ｍは時間情報（インターバルデータ△Ｔ）の値であり、０≦ｎ’＜ｎとする。一例として、ｆ（ｍ）は、
ｆ（ｍ）＝ｍ mod ｎ
であるとして、以下、説明を進める。すなわち、時間情報（インターバルデータ△Ｔ）の値「ｍ」を第２のカギ情報ＫＥＹ２の値「ｎ」で割った商の余りが、ｆ（ｍ）である。
【００８２】
次に、第１のカギ情報ＫＥＹ１によって設定された順で、各種音源設定情報毎の時間情報（インターバルデータ△Ｔ）の変更目標余り値ｄ1，ｄ2，ｄ3，ｄ4，ｄ5を求める演算を、埋め込むべき付属情報Ｙの値に応じて、下記式３のエンコードアルゴリズムに従って行う。
（式３）
順位０（ＴＣＮ）：Ｙmod ｎ＝ｄ1
順位１（ＶＯＬ）：(Ｙdiv n) mod ｎ＝ｄ2
順位２（ＰＡＮ）：((Ｙdiv n) div n) mod ｎ＝ｄ3
順位３（ＥＸＰ）：(((Ｙdiv n) div n) div n) mod ｎ＝ｄ4
順位４（ＤＭＰ）：((((Ｙdiv n) div n) div n) div n) mod ｎ＝ｄ5
【００８３】
式における演算子の意味は、既に説明したものと同じであり、演算子「mod」は割算の商の余りを解として求めることを意味し、演算子「div」は割算の商の整数部を解として求めることを意味する。例えば、「Ｙmod ｎ」は、付属情報の値Ｙを第２のカギ情報ＫＥＹ２の値ｎ（好適にはｎ＝３）で割った商の余りである。また、「(Ｙdiv n) mod ｎ」は、値Ｙを値ｎで割った商の整数部（Ｙdiv n）を、値ｎで割った商の余りである。また、「((Ｙdiv n) div n) mod ｎ」は、値Ｙを値ｎで割った商の整数部（Ｙdiv n）を更に値ｎで割り、その商の整数部（(Ｙdiv n) div n）を、値ｎで割った商の余りである。
上記式３において、ｎ＝３の場合、各変更目標余り値ｄ1，ｄ2，ｄ3，ｄ4，ｄ5の値は、「０」，「１」，「２」のいずれかの値をとる。
【００８４】
上記各データＴＣＮ，ＶＯＬ，ＰＡＮ，ＥＸＰ，ＤＭＰのオリジナルの時間情報（インターバルデータ△Ｔ）の値「ｍ」を、それぞれｍ1，ｍ2，ｍ3，ｍ4，ｍ5で示すと、夫々をｎ＝３で割ったときの余りが、上記各変更目標余り値ｄ1，ｄ2，ｄ3，ｄ4，ｄ5の値になるようにするには、変更目標余り値ｄ1，ｄ2，ｄ3，ｄ4，ｄ5の値が「０」のときは変更差分値△ｄ1，△ｄ2，△ｄ3，△ｄ4，△ｄ5として「０」をオリジナル値ｍ1，ｍ2，ｍ3，ｍ4，ｍ5に加算し、変更目標余り値ｄ1〜ｄ5の値が「１」のときは変更差分値△ｄ1〜△ｄ5として「＋１」をオリジナル値ｍ1〜ｍ5に加算し、変更目標余り値ｄ1〜ｄ5の値が「２」のときは変更差分値△ｄ1〜△ｄ5として「−１」をオリジナル値ｍ1〜ｍ5に加算すればよい。
【００８５】
すなわち、上記各データＴＣＮ，ＶＯＬ，ＰＡＮ，ＥＸＰ，ＤＭＰの変更された時間情報（インターバルデータ△Ｔ）の値「ｍ」を、それぞれｍ1’，ｍ2’，ｍ3’，ｍ4’，ｍ5’で示すと、下記式４に従って変更演算を行うことで求められる。
（式４）
ＴＣＮ：    ｍ1’＝ｍ1＋△ｄ1
ＶＯＬ：    ｍ2’＝ｍ2＋△ｄ2
ＰＡＮ：    ｍ3’＝ｍ3＋△ｄ3
ＥＸＰ：    ｍ4’＝ｍ4＋△ｄ4
ＤＭＰ：    ｍ5’＝ｍ5＋△ｄ5
以上のようなエンコード処理を実現しうるように、適宜、プログラムを組めばよい。図１１は以上のようなエンコード処理を実現しうるようにしたプログラムの一例を示す。ステップ１９０では、埋め込むべき付属情報Ｙと上記カギ情報ＫＥＹ１，ＫＥＹ２，ＫＥＹ３を入力する。ステップ１９１では、第１のカギ情報ＫＥＹ１によって設定された順で、各種音源設定情報毎の時間情報（インターバルデータ△Ｔ）の変更目標余り値ｄ1，ｄ2，ｄ3，ｄ4，ｄ5を求めるための上記式３のエンコードアルゴリズムに従う演算を、第２のカギ情報ＫＥＹ２によって指定された値ｎを用いて、埋め込むべき付属情報Ｙの値に応じて、行う。次のステップ１９２では、求められた各変更目標余り値ｄ1〜ｄ5の値から、対応する変更差分値△ｄ1〜△ｄ5を求める。すなわち、上述の通り、ｄ1〜ｄ5が「０」なら△ｄ1〜△ｄ5は「０」、「１」なら「＋１」、「２」なら「−１」である。次のステップ１９３では、演奏データの先頭から（若しくは所定の範囲から）上記各データＴＣＮ，ＶＯＬ，ＰＡＮ，ＥＸＰ，ＤＭＰの時間情報（インターバルデータ△Ｔ）のオリジナル値ｍ1〜ｍ5をそれぞれ取り出す。ステップ１９４では、上記式４に従って、上記各データＴＣＮ，ＶＯＬ，ＰＡＮ，ＥＸＰ，ＤＭＰの時間情報（インターバルデータ△Ｔ）のオリジナル値ｍ1〜ｍ5に上記変更差分値△ｄ1〜△ｄ5をそれぞれ加算し、それぞれの時間情報（インターバルデータ△Ｔ）の変更値ｍ1’〜ｍ5’を求める。そして、前記ステップ１９３で取り出した各データＴＣＮ，ＶＯＬ，ＰＡＮ，ＥＸＰ，ＤＭＰの時間情報（インターバルデータ△Ｔ）を変更値ｍ1’〜ｍ5’で置き換える。
【００８６】
次に、図１１の手法に従って所望の付属情報に対応する透し情報を埋め込んでなる演奏データから、付属情報Ｙをデコードする例について、図１２を参照して説明する。図１２のデコード処理の仕方は基本的には上記各デコード処理例と同様に、図１１のエンコードアルゴリズムの逆算を行うことからなる。まず、デコード用のカギ情報ＫＥＹ１，ＫＥＹ２，ＫＥＹ３を取得する（ステップ１９５）。それから、ステップ１９６では、演奏データの先頭から（若しくは所定の範囲から）上記ＫＥＹ１で指定された順位の各データＴＣＮ，ＶＯＬ，ＰＡＮ，ＥＸＰ，ＤＭＰの時間情報（インターバルデータ△Ｔ）の値ｍ1’〜ｍ5’をそれぞれ取り出す。ステップ１９７では、各値ｍ1’〜ｍ5’を変数ｍにあてはめて、かつＫＥＹ２で指定された値ｎを用いて、ＫＥＹ３で指定された関数
ｆ（ｍ）＝ｍ mod ｎ
をそれぞれ演算し、それぞれの余り値ｄ1〜ｄ5を求める。ステップ１９８では、上記式３のエンコードアルゴリズムの逆算を行い、下記式５のように、付属情報の値Ｙをデコードする。
（式５）
Ｙ＝ｄ1＋（ｎ・ｄ2）＋（ｎ・ｎ・ｄ3）＋（ｎ・ｎ・ｎ・ｄ4）
＋（ｎ・ｎ・ｎ・ｎ・ｄ5）
ここでエンコードの具体例として、Ｙ＝８６、ｎ＝３のときの上記式３に従う各変更目標余り値ｄ1〜ｄ5と、変更差分値△ｄ1〜△ｄ5とを示すと、下記のようである。
ＴＣＮ：  ｄ1＝８６ mod ３＝２，      △ｄ1＝−１
ＶＯＬ：  ｄ2＝２８ mod ３＝１，      △ｄ2＝＋１
ＰＡＮ：  ｄ3＝９ mod ３＝０，        △ｄ3＝０
ＥＸＰ：  ｄ4＝３ mod ３＝０，        △ｄ4＝０
ＤＭＰ：  ｄ5＝１ mod ３＝１，        △ｄ5＝＋１
また、この具体例のデコード時においては、前記関数
ｆ（ｍ）＝ｍ mod ｎ
に基づく演算で求まる各余り値ｄ1〜ｄ5は、ｄ1＝２、ｄ2＝１、ｄ3＝０、ｄ4＝０、ｄ5＝１である。よって、上記式５のデコード演算は、
Ｙ＝２＋（３・１）＋０＋０＋（３・３・３・３・１）＝８６
となり、付属情報Ｙの値８６をデコードすることができる。
【００８７】
このようにして、複数の異なる種類の音源設定情報の時間情報の変更状態の組み合わせの形態で、所望の付属情報Ｙの電子的透しが埋め込まれる。これによれば、主要情報における複数の異なる種類の音源設定情報（ＴＣＮ，ＶＯＬ，ＰＡＮ，ＥＸＰ，ＤＭＰ）の時間情報を付属情報Ｙの値に応じて変更し、これら音源設定情報の時間情報の変更状態の組み合わせの形態で付属情報Ｙの電子的透しを埋め込むことを特徴としており、複雑なエンコード化形態をとるため、不正利用者による情報改竄がしにくいものとなる。また、音源設定情報（ＴＣＮ，ＶＯＬ，ＰＡＮ，ＥＸＰ，ＤＭＰ）の時間情報は、楽音発音指示（ノートオンイベント）等の時間情報とは異なり、その多少の変化は音楽再生演奏に影響を与えることはない。また、実施例では、時間変更量は＋１，０，−１のいずれかであり、僅かな量であるから、ほとんど気付かないほどのわずかな時間変化である。また、正当利用者による演奏データ編集の際にも音源設定情報の時間情報の変更はそう頻繁に行われるものではないため、無意識的に付属情報を変更することも起こりにくい。この場合も、付属情報Ｙとして埋め込む情報は１文字のアスキーコードに限らず、複数の文字分の任意の文字情報や、図形情報その他の適宜の情報を埋め込むことができるのは勿論である。例えば、１５個の各音源チャンネル０〜８，１０〜１５のそれぞれについて、各音源設定情報の配置順序を上記に従ってエンコードすることで、１５種類（１５文字）の付属情報を埋め込むことができる。また、演奏途中の箇所で、各音源設定情報を挿入し、その配置順序を上記に従ってエンコードすることで、更に埋め込む付属情報数を増すことができる。なお、各チャンネルに埋め込まれた付属情報同士の連結の仕方は適宜定めてよく、また、連結の仕方を示すカギ情報を適宜提供するようにしてもよい。例えば、チャンネル番号順、各チャンネルに割り当てられている音色番号順、各チャンネル毎の演奏データのノート番号の平均値の順、各チャンネル毎の演奏データのキーオンイベント数の順、など適宜の連結の仕方があり、どの連結を採用すべきかはカギ情報で指示する。
【００８８】
上記第２実施形態の変形例として、複数の異なる種類の音源設定情報の時間情報を変更することに限らず、その他の演奏データの時間情報を変更するようにしてもよい。例えば、同一種類の複数の楽音制御情報（例えばＭＩＤＩのコントロールチェンジデータ）の時間情報を、上記実施例と同様の手法で微妙に変更するようにエンコードしてもよい。例えば、演奏シーケンス順に５個のコントロールチェンジデータを対象とすることを、第１のカギ情報ＫＥＹ１によって順位指定する。そして、これらの同一種類のコントロールチェンジデータのそれぞれの時間情報（インターバルデータ△Ｔ）を、上記第２実施形態で示した式３及び式４と同様のアルゴリズムでエンコード処理することができる。この場合、同一種類に限らず、任意の種類（異なる種類が含まれていてもよい）の複数の楽音制御情報（コントロールチェンジデータ）を対象にして、演奏シーケンス順に５個のコントロールチェンジデータを対象とすることを、第１のカギ情報ＫＥＹ１によって順位指定し、これらに対して上記と同様のエンコード処理を行うようにしてもよい。なお、この実施例では、音源設定情報（例えばプログラムチェンジデータ）と楽音制御情報（例えばコントロールチェンジデータ）とを区別して説明しているが、特に区別しなくてもよい。すなわち、音源設定情報も楽音制御情報も、楽音の設定・制御に使用れさる情報である。
【００８９】
更に、上記第２実施形態の別の変形例として、例えば、ノートオンイベントからノートオフイベントまでの時間情報（デュレーションタイムといわれる時間）を、上記実施形態と類似のアルゴリズムに従って変更することで、上記実施形態と同様に任意の付属情報を埋め込むようにすることができる。デュレーションタイムの変更は、＋１や−１程度の多少の変更では、あまり気付かれないので、或る程度のデータ変更が許容される。その場合、第１のカギ情報ＫＥＹ１で指定する順位は、演奏データの先頭から（あるいは所定の範囲での）所定数例えば５個のノートオンイベントの発生順を指定する等が考えられる。すなわち、５個のノートオンイベントの各音に対して順位０〜４を付与し、前記式３に従うエンコード演算を行う。それによって求めた各変更目標余り値ｄ1〜ｄ5に応じて、当該各５個のノートオンイベントに対応する音のオリジナルのデュレーションタイムｍ1〜ｍ5を前記式４に従って変更すればよい。演奏データ中には、多数の発音イベントがあるので、この変形例によれば、埋め込むことのできる付属情報量が増す。なお、演奏データ中にデュレーションタイムのデータを直接的に有している場合は、そのデュレーションタイムのデータを変更すればよい。演奏データ中にデュレーションタイムのデータを直接的に有していない場合は、ノートオフイベントのタイミングを変更することで、その前のノートオンイベントからノートオフイベントまでの時間間隔つまりデュレーションタイムを変更することができるので、そのようにすればよい。
〔第３実施形態〕
次に、本発明の第３実施形態について説明する。この第３実施形態は、上記第２実施形態と同様に演奏データの値を操作することで所望の付属情報Ｙの電子的透しを埋め込むようにしたものであるが、例えばＭＩＤＩのランニングステータスのような特殊なステータスデータの使用／不使用をコントロールすることで、所望の付属情報Ｙの電子的透しを埋め込むようにしたものである。
【００９０】
例えば、１つのＭＩＤＩメッセージはステータスバイトとデータバイトとからなり、ステータスバイトは当該イベントのステータスを示すステータス情報を含んでいる。ＭＩＤＩのステータスの１つとしてランニングステータスがあることが知られている。ＭＩＤＩのランニングステータスとは、演奏シーケンスの中の或るイベントのステータスがその直前のイベントのステータスと同じ場合はステータス情報を省略し、そのようにステータス情報を省略することによって直前のイベントステータスと同じステータスであることを示すものである。このランニングステータスは使用してもしなくても、音楽演奏の遂行に影響を与えるものではない。すなわち、ランニングステータスを使用できる箇所でランニングステータスを使用せずに、直前のイベントのステータスと同じステータスを示すステータス情報を当該イベントに持たせるようにしても、音楽再生演奏の遂行に変わりはない。このように、ランニングステータスの使用／不使用は音楽演奏の遂行に影響を与えないので、このランニングステータスの使用／不使用に応じて音楽演奏に悪影響を与えることなく、１ビットの電子的透し情報を埋め込むことができる。
【００９１】
図１３はこのようなエンコード処理を実現しうるようにしたプログラムの一例を示す。ステップ２００では、埋め込むべき付属情報Ｙとカギ情報ＫＥＹを入力する。このエンコードアルゴリズムは比較的単純であるためカギ情報ＫＥＹは必須ではないが、例えば、演奏データの特定範囲についてエンコード処理を施す場合に、その範囲をカギ情報ＫＥＹで指定するようにすればよい。ステップ２０１では、演奏データ（主要情報）からランニングステータスを使用している箇所または使用可能な箇所を検出する。次のステップ２０２では、当該検出箇所の演奏データの内容を、付属情報Ｙの値（１または０）に応じて、ランニングステータスの使用又は不使用となるように、変更（設定）する。例えば、Ｙ＝１であれば、ランニングステータスを使用するようにデータ変更（設定）し、Ｙ＝０であれば、ランニングステータスを使用しないようにデータ変更（設定）する。
【００９２】
このように、ランニングステータスの使用／不使用に応じて音楽演奏に悪影響を与えることなく、１ビットの電子的透し情報を埋め込むことができる。基本的には、１ビットの電子的透し情報を埋め込むだけであるが、各チャンネル毎に、あるいは演奏シーケンスの所定範囲毎に、それぞれ１ビットの電子的透し情報を埋め込むことで、合計複数ビットの付属情報の透し埋め込みを行うことができる。その場合、付属情報の各ビット同士の連結の仕方は、前述と同様に、種々のやり方を採用することができる。このように、この第３実施形態によれば、電子的透し情報の埋め込み形態の多様化に役立てることができる。多様な埋め込み形態が提供されることにより、それらを組み合わせることで、見破られにくい複雑なエンコード化処理を行うことができるので、有利である。
【００９３】
図１３の手法に従って所望の付属情報に対応する透し情報を埋め込んでなる演奏データから、付属情報Ｙをデコードする処理は、基本的には上記各デコード処理例と同様に、図１３のエンコードアルゴリズムの逆手順を行うことからなる。そのデコード処理プログラムの一例を示すと図１４のようである。まず、適宜の手段によりカギ情報ＫＥＹ（もしあれば）を取得し（ステップ２０３）、これに基づきエンコード対象範囲の演奏データから、ランニングステータスの使用箇所または使用可能箇所を検出する（ステップ２０４）。該検出箇所でランニングステータスが使用されていれば、付属情報Ｙの値として「１」をデコードし、ランニングステータスが使用されていなければ、付属情報Ｙの値として「０」をデコードする（ステップ２０５）。
【００９４】
ランニングステータスに限らず、当該ステータス情報の使用／不使用が再生演奏に重大な影響を与えない特定のステータスがあれば、その特定のステータスの使用／不使用をコントロールすることで、上記実施例と同様に、１ビットの付属情報Ｙの電子的透しを埋め込むことができる。例えば、そのような特定のステータスとして、ノートオフステータスがある。
【００９５】
〔第４実施形態〕
次に、本発明の第４実施形態について説明する。この第４実施形態は、上記第２及び第３実施形態と同様に主要情報中のデータの値を変更操作することで所望の付属情報Ｙの電子的透しを埋め込むようにしたものであるが、例えばＭＩＤＩのメタイベントのような非演奏データに含まれるテキストデータのスペース数を操作することで、所望の付属情報Ｙの電子的透しを埋め込むようにしたものである。
ＭＩＤＩメッセージでは、音楽演奏を直接的にコントロールする演奏データのイベントデータのほかに、メタイベントといわれる非演奏データのイベントを適宜挿入し得る。このメタイベントとしては、前述のような著作権情報のテキストや、その他の任意のテキストを埋め込むことができる。このテキストデータ中のスペースを多少増減しても、再生演奏にまったく影響を与えないばかりか、該テキストの実質的内容に対しても影響を与えない。よって、テキストデータ中のスペース数を付属情報の値に応じて設定するデータ操作を行うことにより、何ビットかの付属情報の電子的透しを埋め込むことができる。
【００９６】
図１５はこのようなエンコード処理を実現しうるようにしたプログラムの一例を示す。ステップ２０６では、埋め込むべき付属情報Ｙとカギ情報ＫＥＹを入力する。このエンコードアルゴリズムは比較的単純であるためカギ情報ＫＥＹは必須ではないが、例えば、演奏データの特定範囲についてエンコード処理を施す場合に、その範囲をカギ情報ＫＥＹで指定するようにすればよい。ステップ２０７では、演奏データ（主要情報）からテキストデータを含むメタイベントを検出する。次のステップ２０８では、当該検出したメタイベントに含まれるテキストデータ中の合計のスペース数ｓを、付属情報Ｙの値に応じた数に設定する。例えば付属情報Ｙがバイナリ３ビットの値をとる場合、合計スペース数ｓとしては０〜７のうつのいずれかの数に設定する。例えば、付属情報Ｙの値が「４」であれば、当該メタイベント中のテキストデータのスペース数の合計が「４」になるように、スペースデータの設定（追加又は削除）を行う。
【００９７】
このように、テキストメタイベント中の合計スペース数を、付属情報Ｙの値に応じて設定することにより、バイナリで何ビットかのデータからなる付属情報Ｙの電子的透しを埋め込むことができる。この場合も、電子的透し情報の埋め込み形態を多様にすることができ、見破られにくい複雑なエンコード化処理のために役立つ。
【００９８】
図１５の手法に従って所望の付属情報に対応する透し情報を埋め込んでなる演奏データから、付属情報Ｙをデコードする処理は、基本的には上記各デコード処理例と同様に、図１５のエンコードアルゴリズムの逆手順を行うことからなる。そのデコード処理プログラムの一例を示すと図１６のようである。まず、適宜の手段によりカギ情報ＫＥＹ（もしあれば）を取得し（ステップ２０９）、これに基づきエンコード対象範囲の演奏データから、テキストメタイベント（非演奏データ）を検出する（ステップ２１０）。該検出したテキストメタイベント中の合計スペース数ｓを検出する（ステップ２１１）。検出した合計スペース数ｓが、付属情報Ｙのデコード出力に相当する。
【００９９】
上記第４実施形態の変形例として、テキストメタイベント（非演奏データ）中の各語間のスペース数を１又は２に設定することにより、バイナリ１ビットの付属情報Ｙを埋め込むことが可能である。例えば、Ｙ＝０のとき語間スペース数を１個に設定し、Ｙ＝１のとき語間スペース数を２個に設定する。この変形例は、テキストメタイベント中の合計スペース数ｓによるエンコード処理と組み合わせて適用し、埋め込み可能な付属情報Ｙのビット数を増すことができる。その場合、例えば、語間スペース数が１個に設定されているときは合計スペース数ｓは通常通り計数するが、語間スペース数が２個に設定されているときは合計スペース数ｓは実際の合計スペース数の１／２の値とする、といった変形を更に加えることが可能である。
【０１００】
〔第５実施形態〕
次に、本発明の第５実施形態について説明する。この第５実施形態は、演奏データの中に、音楽演奏再生に対して実質的な悪影響を与えないダミーデータを挿入することで、該ダミーデータに応じた所望の付属情報Ｙの電子的透しを埋め込むようにしたものである。
一例として、或る演奏制御データ又は非演奏データに続けてそれと同一の演奏制御データ又は非演奏データを付加することでダミーデータの付加を行う。例えば或るエフェクトに変更せよというような指示を行う演奏制御データは、同一のものが連続していても、一旦そのエフェクトに変更されると次は同じエフェクトが維持されるだけであり、音楽演奏には悪影響を与えない。よって、このような演奏制御データはダミーデータとして使用することができる。ＭＩＤＩのメタイベントのような非演奏データも、同一のものが連続していても同じメタイベント処理が繰返されるだけであり、音楽演奏には悪影響を与えない。従って、この場合も、音楽演奏に悪影響を与えることなく、ダミーデータの有無に応じて１ビットの電子的透しを埋め込むことができる。また、この実施形態も、電子的透し情報の埋め込み形態を多様にすることができ、見破られにくい複雑なエンコード化処理のために役立つ。
【０１０１】
図１７はこのようなエンコード処理を実現しうるようにしたプログラムの一例を示す。ステップ２１２では、埋め込むべき付属情報Ｙとカギ情報ＫＥＹを入力する。このエンコードアルゴリズムは比較的単純であるためカギ情報ＫＥＹは必須ではないが、例えば、演奏データの特定範囲についてエンコード処理を施す場合に、その範囲をカギ情報ＫＥＹで指定するようにすればよい。また、ダミーデータの対象とするデータを何にするかをカギ情報ＫＥＹで指定してもよい。ステップ２１３では、演奏データ（主要情報）からダミーデータの対象とするデータを検出する。例えば、コントロールチェンジイベント（演奏制御データ）又はメタイベント（非演奏データ）をダミーデータの対象とする。その場合、コントロールチェンジイベント（演奏制御データ）又はメタイベント（非演奏データ）のどちらか一方、あるいは両方を、ダミーデータの対象とするといったことをカギ情報ＫＥＹで指定し、ステップ２１３では指定された対象データを演奏データから検出する。次のステップ２１４では、検出した対象データの後に同一のデータをダミーデータとして、付属情報Ｙの値に応じた数だけ追加する。例えばバイナリ１ビットからなる付属情報Ｙを埋め込む場合は、Ｙ＝０のときダミーデータの追加を行わず、Ｙ＝１のとき１個のダミーデータを追加する。同一のダミーデータを複数追加するオプションが可能であり、そうすると２ビット以上の付属情報Ｙを埋め込むことが可能である。
【０１０２】
図１７の手法に従って所望の付属情報に対応する透し情報を埋め込んでなる演奏データから、付属情報Ｙをデコードする処理は、基本的には上記各デコード処理例と同様に、図１７のエンコードアルゴリズムの逆手順を行うことからなる。そのデコード処理プログラムの一例を示すと図１８のようである。まず、適宜の手段によりカギ情報ＫＥＹを取得し（ステップ２１５）、これに基づき演奏データからダミーデータの対象となるデータ（コントロールチェンジイベント又はメタイベント）を検出し、同一の該対象データが連続しているか、つまりダミーデータが存在するか、を検出する（ステップ２１６）。ダミーデータが存在していればＹ＝１をデコードし、ダミーデータが存在していなければＹ＝０をデコードする（ステップ２１７）。
【０１０３】
この第５実施形態の変形例として、ダミーデータの時間位置を示す時間情報（インターバルデータ△Ｔ）を、所望の付属情報Ｙの値に応じて設定することにより、該時間情報に対応する値の付属情報Ｙを埋め込むようにしてよい。この実施のためには、例えば図１７のステップ２１２での処理を、適宜複数ビットのデータからなる付属情報Ｙを入力するように変更し、また、ステップ２１４での処理を、Ｙの値が０であればダミーデータを追加せずにそのまま処理を終了させ、Ｙの値が０よりも大きければダミーデータを追加するとともに、該ダミーデータのイベントタイミングつまりインターバルデータ△Ｔを、Ｙの値に対応する値に設定するように変更する。この場合、図１８でのデコード処理は、ステップ２１７での処理を、ダミーデータが存在していれば、そのイベントタイミングまでの時間つまりインターバルデータ△Ｔを取り出して、付属情報Ｙのデコード値として出力する、というように変更すればよい。
【０１０４】
この第５実施形態の別の変形例として、複数の音源チャンネルのうち任意のチャンネルを発音に使用しないダミーチャンネルに設定し、設定したダミーチャンネルに応じた値の電子的透しを埋め込むようにしてもよい。例えば、音源チャンネル０〜８，１０〜１５の１５チャンネルのいずれかをダミーチャンネルに設定することで、付属情報Ｙの電子的透しを埋め込む場合は、１５通りの値をとる付属情報Ｙを埋め込むことができる。例えば、付属情報Ｙの値が「８」の場合は、チャンネル順位８の音源チャンネル８をダミーチャンネルに設定する。ここで、音源チャンネル８に既に割り当てられていた演奏データがある場合は、該割り当てられていた演奏データの一揃いを、別の空きチャンネルに割当てし直すようにすればよい。このデコード処理は、演奏データの複数チャンネルの中からダミーチャンネルを検出し、このダミーチャンネルのチャンネル順位（使用しないチャンネル９は除外した順位）から付属情報Ｙの値をデコードすることで行う。なお、ダミーチャンネルの設定の仕方としては、ダミーチャンネルのフラグを立て、また、該チャンネルにノートオンイベントが存在しないように適宜クリアすることで行う。
【０１０５】
〔第６実施形態〕
次に、本発明の第６実施形態について説明する。この第６実施形態は、主要情報を構成する音楽演奏データのうちの所定のデータについての統計分布パターンを所定のエンコードアルゴリズムに従って、付属情報に応じて、変更することで、この統計分布パターンの変更形態に対応した電子的透しの形態で付属情報を埋め込むようにしたものである。
【０１０６】
そのエンコード手法の一例を示す。
１楽曲中（又は所定の部分的曲範囲中）の全演奏データのノートオンイベントに含まれるベロシティデータを所定の基準で複数グループに分類し、各グループ毎に所定の統計数値を求め、その統計数値の分布パターンが、埋め込むべき付属情報Ｙの値に応じて変更・設定されるように、エンコード処理を行う。
【０１０７】
まず、第１のカギ情報ＫＥＹ１により、ベロシティデータＶｅｌを分類するグループ数ｎを設定する。一例として、ｎ＝４と設定されたとして説明を進める。
【０１０８】
次に、第２のカギ情報ＫＥＹ２により、ベロシティデータＶｅｌを分類するための関数ｆ（Ｖｅｌ）を定義する。一例として、ｆ（Ｖｅｌ）は、
ｆ（Ｖｅｌ）＝Ｖｅｌ mod ｎ    …（式６）
であるとして、以下、説明を進める。
ここで、ＶｅｌはベロシティデータＶｅｌの値である。すなわち、ベロシティデータＶｅｌの値を第１のカギ情報ＫＥＹ１が示す値「ｎ」で割った商の余りが、ｆ（Ｖｅｌ）である。ｎ＝４の場合、この余り値は４通りの値０，１，２，３をとるので、この余り値に応じて下記表１のようにグループ０〜３に分類する。また、各グループ毎に所定の統計値として、各グループに属するデータ数の比率（これをそれぞれＲ0％，Ｒ1％，Ｒ2％，Ｒ3％で示す）を求め、これをオリジナル分布パターンＯＰとする。
【０１０９】
［表１］
┃    ｆ（Ｖｅｌ）      ┃      ＯＰ
━━━━━━╋━━━━━━━━━━━╋━━━━━━━━
グループ０  ┃  Ｖｅｌ mod ４＝０   ┃      Ｒ0％
グループ１  ┃  Ｖｅｌ mod ４＝１   ┃      Ｒ1％
グループ２  ┃  Ｖｅｌ mod ４＝２   ┃      Ｒ2％
グループ３  ┃  Ｖｅｌ mod ４＝３   ┃      Ｒ3％
なお、Ｒ0％＋Ｒ1％＋Ｒ2％＋Ｒ3％＝１００％であり、オリジナル分布パターンＯＰが完全に平均化された分布を示す場合は、Ｒ0％＝Ｒ1％＝Ｒ2％＝Ｒ3％＝２５％である。求めたオリジナル分布パターンＯＰは、適宜保存しておき、デコード用のカギ情報ＫＥＹ３として利用する。
【０１１０】
このオリジナル分布パターンＯＰを、４通りの値をとる付属情報Ｙの値に応じて、４つの変形分布パターンＰ１，Ｐ２，Ｐ３，Ｐ４のいずれかに変形することで、付属情報Ｙの電子的透しのエンコードを行う。このエンコードアルゴリズムは下記の通りである。
パターンＰ１（例えばＹ＝０のとき）：
グループ０に対して：＋０と＋１を半々に行う
グループ１に対して：＋０と＋１を半々に行う
グループ２に対して：＋０と−１を半々に行う
グループ３に対して：＋０と−１を半々に行う
上記における「＋０と＋１を半々に行う」の意味は、当該グループの半分のベロシティデータＶｅｌに対して＋０を演算し、残り半分のベロシティデータＶｅｌに対して＋１を演算すること、つまり＋０と＋１の演算を交互に行なうこと、を意味する。これにより、＋０を演算されたベロシティデータＶｅｌは当該グループに残るが、＋１を演算されたベロシティデータＶｅｌは下位（便宜上、グループ番号の小さいものを上位、大きいものを下位という）のグループに移動することになる。例えば、グループ０では、Ｖｅｌ mod ４＝０であったところ、Ｖｅｌに＋１すると、Ｖｅｌ mod ４＝１となり、下位のグループ１に移動することになる。勿論、この＋１又は−１の演算は、ベロシティデータＶｅｌの最下位ビットに対してなされるので、ベロシティデータＶｅｌの変更量はごく僅かである。なお、音量データの最下位ビットの＋１又は−１の変動は、ほとんど聴者に変化として知覚されないので、悪影響はまったくない。
【０１１１】
また、「＋０と−１を半々に行う」の意味は、当該グループの半分のベロシティデータＶｅｌに対して＋０を演算し、残り半分のベロシティデータＶｅｌに対して−１を演算することを意味する。これにより、＋０を演算されたベロシティデータＶｅｌは当該グループに残るが、−１を演算されたベロシティデータＶｅｌは上位グループに移動することになる。例えば、グループ３では、Ｖｅｌ mod ４＝３であったところ、Ｖｅｌに−１すると、Ｖｅｌ mod ４＝２となり、上位のグループ２に移動することになる。
【０１１２】
その結果、パターン１における各グループの統計値は、オリジナル分布パターンＯＰに対して下記のように変更されたものとなる。
パターンＰ１の統計分布（統計値）：
グループ０：（Ｒ0／２）％                              → 12.5 ％
グループ１：（Ｒ0／２）＋（Ｒ1／２）＋（Ｒ2／２）％    → 37.5 ％
グループ２：（Ｒ1／２）＋（Ｒ2／２）＋（Ｒ3／２）％    → 37.5 ％
グループ３：（Ｒ3／２）％                              → 12.5 ％
なお、上記で  →印を付して付記した具体的数字は、Ｒ0％＝Ｒ1％＝Ｒ2％＝Ｒ3％＝２５％と仮定したときの具体的数値である。
【０１１３】
他のパターン２，３，４のエンコードアルゴリズム及びその結果の各グループの統計分布（統計値）は下記の通りである。
パターンＰ２（例えばＹ＝１のとき）：
グループ０に対して：＋０と＋１を半々に行う
グループ１に対して：＋０と−１を半々に行う
グループ２に対して：＋０と−１を半々に行う
グループ３に対して：＋０と＋１を半々に行う
パターンＰ２の統計分布（統計値）：
グループ０：（Ｒ0／２）＋（Ｒ1／２）＋（Ｒ3／２）％  → 37.5 ％
グループ１：（Ｒ0／２）＋（Ｒ1／２）＋（Ｒ2／２）％  → 37.5 ％
グループ２：（Ｒ2／２）％                            → 12.5 ％
グループ３：（Ｒ3／２）％                            → 12.5 ％
パターンＰ３（例えばＹ＝２のとき）：
グループ０に対して：＋０と−１を半々に行う
グループ１に対して：＋０と−１を半々に行う
グループ２に対して：＋０と＋１を半々に行う
グループ３に対して：＋０と＋１を半々に行う
パターンＰ３の統計分布（統計値）：
グループ０：（Ｒ0／２）＋（Ｒ1／２）＋（Ｒ3／２）％  → 37.5 ％
グループ１：（Ｒ1／２）％                            → 12.5 ％
グループ２：（Ｒ2／２）％                            → 12.5 ％
グループ３：（Ｒ0／２）＋（Ｒ2／２）＋（Ｒ3／２）％  → 37.5 ％
パターンＰ４（例えばＹ＝３のとき）：
グループ０に対して：＋０と−１を半々に行う
グループ１に対して：＋０と＋１を半々に行う
グループ２に対して：＋０と＋１を半々に行う
グループ３に対して：＋０と−１を半々に行う
パターンＰ４の統計分布（統計値）：
グループ０：（Ｒ0／２）％                            → 12.5 ％
グループ１：（Ｒ1／２）％                            → 12.5 ％
グループ２：（Ｒ1／２）＋（Ｒ2／２）＋（Ｒ3／２）％  → 37.5 ％
グループ３：（Ｒ0／２）＋（Ｒ2／２）＋（Ｒ3／２）％  → 37.5 ％
以上のようなエンコード処理を実現しうるように、適宜、プログラムを組めばよい。図１９は以上のようなエンコード処理を実現しうるようにしたプログラムの一例を示す。ステップ２１８では、埋め込むべき付属情報Ｙと上記第１及び第２のカギ情報ＫＥＹ１，ＫＥＹ２を入力する。前述の通り、説明の便宜上、ＫＥＹ１によって指定されるｎは、ｎ＝４であるとし、ＫＥＹ２によって指定されるエンコード関数は前記（式６）のようであるとして、説明を進める。次のステップ２１９では、各ベロシティデータＶｅｌに対して、前記（式６）の演算を行って、前記表１に示すように、各グループ０〜３のいずれかに各ベロシティデータＶｅｌを分類する。また、各グループ０〜３毎に所定の統計処理を行って、前記表１に示すように、オリジナル分布パターンを求め、これを第３のカギ情報ＫＥＹ３として適宜保存する。次に、ステップ２２０では、付属情報Ｙの値に応じて、前記変形分布パターンＰ１〜Ｐ４のいずれかを選択し、選択したパターンＰ１〜Ｐ４に従う上記アルゴリズムに従って、各グループ０〜３の各ベロシティデータＶｅｌの値を＋１又は＋０又は−１する演算を行う。こうして、変更されたベロシティデータＶｅｌの統計分布パターンは、選択したパターンＰ１〜Ｐ４の上記統計分布に対応する特性を示す。こうして、付属情報Ｙの値に対応する統計分布パターンを示すように、各演奏データ中のベロシティデータＶｅｌの値が、＋１又は＋０又は−１というわずかな値だけ変更される。
【０１１４】
次に、図１９の手法に従って所望の付属情報に対応する透し情報を埋め込んでなる演奏データから、付属情報Ｙをデコードする例について、図２０を参照して説明する。図２０のデコード処理の仕方は基本的には上記各デコード処理例と同様に、図１９のエンコードアルゴリズムの逆算を行うことからなる。まず、デコード用のカギ情報ＫＥＹ１，ＫＥＹ２，ＫＥＹ３を取得する（ステップ２２１）。次に、ステップ２２２では、演奏データ中の各ベロシティデータＶｅｌに対して、前記（式６）の演算を行って、各グループ０〜３のいずれかに各ベロシティデータＶｅｌを分類し、更に、各グループ０〜３毎に所定の統計処理を行って、その統計分布を求め。この統計分布が前記変形分布パターンＰ１〜Ｐ４のいずれに該当するかを検出する。このとき、カギ情報ＫＥＹ３として与えられるオリジナル分布パターンの各統計値Ｒ0，Ｒ1，Ｒ2，Ｒ3を必要に応じて利用して、変形分布パターンＰ１〜Ｐ４の検出処理を行う。ステップ２２３では、検出したパターンＰ１〜Ｐ４に応じて付属情報Ｙの値をデコードする。
【０１１５】
このように、第６実施形態によれば、演奏データ中の所定のデータについての統計分布パターンを変更する構成であるため、仮に意図的であるにせよ、または無意識であるにせよ、演奏データの一部が改竄または編集によって変更されたとしても、統計分布パターンが大きく変わる確率は相対的に低いので、不正利用者による情報改竄防止に役立つと共に、正当利用者による無意識的な付属情報の変更にも対処しうるものである。また、電子的透し情報の埋め込み形態を多様にすることができ、見破られにくい複雑なエンコード化処理のために役立つ。また、所定のデータの変更量が直接的に電子的透し情報を示しておらず、その統計分布パターンが電子的透し情報を示しているので、所定のデータの変更量は上記実施例のように＋１又は−１という僅かなものであり、該所定のデータとして＋１又は−１程度の誤差に重要性を持たないものを用いれば、かかるデータ値の僅かな変更はまったく音楽再生演奏に悪影響を及ぼさない。勿論、データ値変更の対象となるデータは、ベロシティデータに限らず、他のデータ（例えば時間情報など）であってもよい。
【０１１６】
なお、ベロシティデータの一部が編集によって変更されたとしても、オリジナル分布パターンＯＰをカギ情報ＫＥＹ３で知らせるようにしているので、図２０のデコード処理におけるステップ２２２で求めた統計分布がいずれの変形分布パターンＰ１〜Ｐ４から大きくかけ離れている場合は、ベロシティデータの一部が編集によって変更されたと認識することができ、かつ、その編集内容もある程度推測することができる。その結果、正しい付属情報Ｙをデコードすることが可能である。
【０１１７】
上記第６実施形態に示す統計的エンコード手法は、各チャンネル毎に、あるいは演奏シーケンスの部分的区間毎に、等様々なグループ毎に、それぞれ施すことができ、これによって、複数の異なる付属情報Ｙを電子的透しとしてそれぞれ埋め込むことができる。また、１つのチャンネル内においても、ノート番号のグループ（つまり鍵域）毎に異なる付属情報Ｙをそれぞれ埋め込むことができる。どのようなグループ分類に従って複数の付属情報Ｙがエンコードされているかについては、そのグループ分類法を示す第４のカギ情報ＫＥＹ４を更にデコード側に提供することで、デコード処理に役立てるようにするとよい。
【０１１８】
〔第７実施形態〕
次に、本発明の第７実施形態について説明する。この第７実施形態は、主要情報の中に付属情報を電子的透しとして埋め込む（エンコードする）際に、１つの付属情報に関連して複数の電子的透し情報を該主要情報内に埋め込み、互いに関連する複数の電子的透し情報の形態で１つの付属情報の電子的透しを埋め込むことを特徴とするものである。これによって、電子的透しの強化を図ることができ、容易には見破られにくい複雑なエンコード化処理のために役立つ。また、付与可能な１つの付属情報のビット数を増すことができ、付与可能な付属情報の情報量を増すことができる。
【０１１９】
その第１の例として、１つの付属情報Ｙを複数の部分（例えば上位ビット部分Ｙａと下位ビット部分Ｙｂ）に分割し、分割された各付属情報部分Ｙａ，Ｙｂ毎に、各々の電子的透し情報を主要情報内に埋め込む。この場合、付属情報Ｙの再生は、主要情報から複数の電子的透し情報（Ｙａ，Ｙｂ）をそれぞれデコードし、デコードされた各透し情報に対応する前記分割付属情報部分Ｙａ，Ｙｂを組み合わせることで行う。
その第２の例として、所定の第１のエンコードアルゴリズムに従って付属情報の少なくとも一部を第１の電子的透し情報Ｙとして主要情報に埋め込む一方で、第１のエンコードアルゴリズムに対応するデコード用カギ情報ＫＥＹ’を第２の電子的透し情報Ｙ’として主要情報に埋め込む。この場合、付属情報の再生は、主要情報から第２の電子的透し情報Ｙ’をデコードし、デコードされた第２の電子的透し情報をデコード用カギ情報ＫＥＹ’として使用して主要情報から第１の電子的透し情報Ｙをデコードすることで行う。
【０１２０】
図２１は、上記第１及び第２の例を合わせて実行するエンコードアルゴリズムを示すプログラム例である。ステップ２３０では、埋め込むべき付属情報Ｙと複数のカギ情報Ｋ１，Ｋ２，Ｋ３，Ｋ４，Ｋ５を入力する。ステップ２３１では、１つの付属情報Ｙを複数の部分（例えば上位ビット部分Ｙａと下位ビット部分Ｙｂ）に分割する。ステップ２３２では、第１のカギ情報Ｋ１を用いて、所定のエンコードアルゴリズムＡ１に従って、１つの分割付属情報部分Ｙａを主要情報の中に埋め込む（エンコードする）。ステップ２３３では、第２のカギ情報Ｋ２を用いて、所定のエンコードアルゴリズムＡ２に従って、第３のカギ情報Ｋ３を主要情報の中に埋め込む（エンコードする）。ステップ２３４では、第３及び第４のカギ情報Ｋ３，Ｋ４を用いて、所定のエンコードアルゴリズムＡ３に従って、第５のカギ情報Ｋ５を主要情報の中に埋め込む（エンコードする）。ステップ２３５では、第５のカギ情報Ｋ５を用いて、所定のエンコードアルゴリズムＡ４に従って、もう一方の分割付属情報部分Ｙｂを主要情報の中に埋め込む（エンコードする）。こうして、各分割付属情報部分Ｙａ，Ｙｂとカギ情報Ｋ３，Ｋ５とを、電子的透し情報として主要情報の中に埋め込む（エンコードする）。他のカギ情報Ｋ１，Ｋ２，Ｋ４は、デコード処理時において適宜の手段を介してユーザに提供されるようになっていればよい。なお、各エンコードアルゴリズムＡ１〜Ａ４は同じアルゴリズムであってもよいし、異なっていてもよい。また、第１乃至第６実施形態として前述したエンコードアルゴリズムを適宜利用してよいのは勿論である。
【０１２１】
図２２は、図２１の手法に従って所望の付属情報Ｙに対応する複数の透し情報を埋め込んでなる主要情報データ群から付属情報Ｙをデコードする手順を、アルゴリズム結線を示すブロック図によって示す。Ａ１，Ａ２，Ａ３，Ａ４の各ブロックは、上記エンコードアルゴリズムＡ１〜Ａ４のデコード用アルゴリズムを実行するブロックを示す。すなわち、ブロックＡ１では、前記エンコードアルゴリズムＡ１に従って主要情報の中に埋め込まれた分割付属情報部分Ｙａを、第１のカギ情報Ｋ１を用いて、デコードする。ブロックＡ２では、初期値として与えられる第２のカギ情報Ｋ２を用いて、前記エンコードアルゴリズムＡ２に従って主要情報の中に埋め込まれた第３のカギ情報Ｋ３を、デコードする。ブロックＡ３では、デコードされた第３のカギ情報Ｋ３と、別途提供される第４のカギ情報Ｋ４とを用いて、前記エンコードアルゴリズムＡ３に従って主要情報の中に埋め込まれた第５のカギ情報Ｋ５を、デコードする。ブロックＡ４では、デコードされた第５のカギ情報Ｋ５を用いて、前記エンコードアルゴリズムＡ４に従って主要情報の中に埋め込まれたもう一方の分割付属情報部分Ｙｂを、デコードする。こうして、それぞれデコードされた分割付属情報部分Ｙａ，Ｙｂを組み合わせることで、所要の付属情報Ｙを取得する。
【０１２２】
なお、図２２において、ブロックＡ４からブロックＡ２にデータがフィードバックされ、このフィードバックデータがカギ情報Ｋ２としてブロックＡ２で使用されるようになっている。このようにカギ情報をループさせることにより、デコード時におけるカギ情報Ｋ２の内容を時間的に変化させ、これに伴い、時間経過に伴い異なる付属情報がデコードされるようにすることができる。
【０１２３】
図２３は、別のデコード手順を示すアルゴリズム結線ブロック図であり、Ｂ１，Ｂ２，Ｂ３，Ｂ４の各ブロックでは、それぞれ所定のエンコードアルゴリズムＢ１〜Ｂ４でエンコードされた透し情報をそれぞれデコードするためのアルゴリズムを実行する。すなわち、ブロックＢ１では、エンコードアルゴリズムＢ１に従って主要情報の中に埋め込まれていた付属情報Ｙ１を、第１のカギ情報Ｋ１を用いて、デコードすると共に、主要情報の中に埋め込まれていた第２のカギ情報Ｋ２をデコードする。ブロックＢ２では、デコードした第２のカギ情報Ｋ２と別途提供される第３のカギ情報Ｋ３とを用いて、主要情報の中に埋め込まれていた第４のカギ情報Ｋ４をデコードする。ブロックＢ３では、デコードした第４のカギ情報Ｋ４を用いて、主要情報の中に埋め込まれていた第５のカギ情報Ｋ５をデコードする。また、ブロックＢ３からＢ２にカギ情報Ｋ３のフィードバックループが形成されている。ブロックＢ４では、デコードした第５のカギ情報Ｋ５と別途提供される第６のカギ情報Ｋ６とを用いて、主要情報の中に埋め込まれていた付属情報Ｙ２をデコードする。こうして、２つの付属情報Ｙ１，Ｙ２がデコードされる。なお、図２２や図２３に示す複数デコードアルゴリズムの相互結線状態を適宜のカギ情報によって設定するようにしてもよい。
【０１２４】
本発明は、上記各実施例に示した形態に限らず、他の如何なる変形を施した形態でも実施することができる。また、本発明に従うソフトウェアプログラムをコンピュータ又はマイクロプロセッサ又はＤＳＰ（ディジタルシグナルプロセッサで実行する形態に限らず、本発明に従うエンコード処理及び／又はデコード処理を実現するようにＩＣあるいはＬＳＩあるいはディスクリート回路群等でハードワイアードロジックで構成されたハードウェア装置又はシステムを用いて、上記各実施例と同等の機能を発揮する装置又はシステムを構成することもできる。
【０１２５】
上記のすべての実施例に関連して、本発明は、主要情報内に付属情報を組み込んで記憶するための方法又は装置として構成することができ、さらには、その方法を実施するためのプログラムを記録した記録媒体として構成することができ、さらには、その方法に従って記録されたデータ構造を持つデータを記憶した記録媒体として構成することができる。
【０１２６】
更に、上記のすべての実施例に関連して、本発明は、付属情報を組み込んで記憶してなる主要情報から、該付属情報を抽出し再生するための方法又は装置として構成することができ、さらには、その方法を実施するためのプログラムを記録した記録媒体として構成することができる。
【０１２７】
勿論、上記のすべての実施例において、図１に示されたハードウェア装置は、パーソナルコンピュータに限らず、マイクロプロセッサ又はＤＳＰ等の処理装置を含む他の電子装置・機器によって置き換えることができる。また、音楽演奏の再生機器あるいは電子楽器や楽音の合成／制御処理の分野に限らず、どのような電子情報を取り扱う分野ででも本発明を適用することができる。また、演奏データを取り扱う場合でも、そのデータフォーマットは図３に例示したようなものにはまったく限定されず、如何なるデータフォーマットからなるものに対しても本発明を適用することができる。
【０１２８】
また、上記各実施例において、必要な付属情報のすべてを主要情報内に組み込む（埋め込む）ことなく、付属情報の一部を主要情報内に組み込む（埋め込む）ようにしてもよいのは勿論である。その場合、主要情報内に組み込まなかった残りの付属情報は、適当な領域に別途記憶しておいてもよい。
【０１２９】
上記のすべての実施例に関連して、付属情報を組み込んだ状態からなる主要情報を通信ネットワークを介して伝送するようにしてもよい。その場合、受信側では、通信ネットワークを介して伝送されたデータを受信し、受信したデータにおける主要情報からストリーミングデータのままリアルタイムでデコード処理を行うようにしてもよいし、それができない場合は、受信したデータ群を適宜バッファ記憶してからデコード処理を行うようにしてもよい。
【０１３０】
以上の通り、本発明によれば、主要情報に対する付属情報の埋め込み法に工夫を施したユニークな電子情報処理方法及びシステム並びに記録媒体を提供することができ、オーソライズされていない不正利用者によって見破られることの起こりにくい、従って、不正利用者による意図的な改竄のしにくい、電子情報処理方法及びシステム並びに記録媒体を提供することができ、また、正当利用者による無意識のうちの付属情報の変更も起こりにくいようにした電子情報処理方法及びシステム並びに記録媒体を提供することができる。
【図面の簡単な説明】
【０１３１】
【図１】本発明の各実施形態に共通のパーソナルコンピュータ装置を示すブロック図。
【図２】(Ａ)はパーソナルコンピュータ装置のエンコード機能を説明するための機能ブロック図、(Ｂ)はパーソナルコンピュータ装置のデコード機能を説明するための機能ブロック図。
【図３】演奏データのフォーマット図。
【図４】本発明の第１実施形態に係るエンコードプログラムのフローチャート。
【図５】本発明の第１実施形態に係るデコードプログラムのフローチャート。
【図６】本発明の第１実施形態に係る別のエンコードプログラムのフローチャート。
【図７】図６に対応するデコードプログラムのフローチャート。
【図８】本発明の第１実施形態に係る更に別のエンコードプログラムのフローチャート。
【図９】図８に対応するデコードプログラムのフローチャート。
【図１０】本発明の第１実施形態に係る更に他のエンコードプログラムのフローチャート。
【図１１】本発明の第２実施形態に係るエンコードプログラムのフローチャート。
【図１２】本発明の第２実施形態に係るデコードプログラムのフローチャート。
【図１３】本発明の第３実施形態に係るエンコードプログラムのフローチャート。
【図１４】本発明の第３実施形態に係るデコードプログラムのフローチャート。
【図１５】本発明の第４実施形態に係るエンコードプログラムのフローチャート。
【図１６】本発明の第４実施形態に係るデコードプログラムのフローチャート。
【図１７】本発明の第５実施形態に係るエンコードプログラムのフローチャート。
【図１８】本発明の第５実施形態に係るデコードプログラムのフローチャート。
【図１９】本発明の第６実施形態に係るエンコードプログラムのフローチャート。
【図２０】本発明の第６実施形態に係るデコードプログラムのフローチャート。
【図２１】本発明の第７実施形態に係るエンコードプログラムのフローチャート。
【図２２】本発明の第７実施形態に係るデコード処理のアルゴリズム結線例を示すブロック図。
【図２３】本発明の第７実施形態に係る別のデコード処理のアルゴリズム結線例を示すブロック図。
【符号の説明】
【０１３２】
１１…ＣＰＵ、１２…ＲＯＭ、１３…ＲＡＭ、１４…内部記憶装置、１５…ドライブユニット、１６…入力装置、２１…通信インターフェース、２２…音源回路、３０Ａ…エンコーダ、３０Ｂ…デコーダ。
【図１】
2008070872.tif 000003
【図２】
2008070872.tif 000004
【図３】
2008070872.tif 000005
【図４】
2008070872.tif 000006
【図５】
2008070872.tif 000007
【図６】
2008070872.tif 000008
【図７】
2008070872.tif 000009
【図８】
2008070872.tif 000010
【図９】
2008070872.tif 000011
【図１０】
2008070872.tif 000012
【図１１】
2008070872.tif 000013
【図１２】
2008070872.tif 000014
【図１３】
2008070872.tif 000015
【図１４】
2008070872.tif 000016
【図１５】
2008070872.tif 000017
【図１６】
2008070872.tif 000018
【図１７】
2008070872.tif 000019
【図１８】
2008070872.tif 000020
【図１９】
2008070872.tif 000021
【図２０】
2008070872.tif 000022
【図２１】
2008070872.tif 000023
【図２２】
2008070872.tif 000024
【図２３】
2008070872.tif 000025