JP3180789B2 - 電子情報処理方法及び装置 - Google Patents

電子情報処理方法及び装置

Info

Publication number
JP3180789B2
JP3180789B2 JP35133598A JP35133598A JP3180789B2 JP 3180789 B2 JP3180789 B2 JP 3180789B2 JP 35133598 A JP35133598 A JP 35133598A JP 35133598 A JP35133598 A JP 35133598A JP 3180789 B2 JP3180789 B2 JP 3180789B2
Authority
JP
Japan
Prior art keywords
information
data
event data
value
parameter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP35133598A
Other languages
English (en)
Other versions
JPH11259068A (ja
Inventor
好成 寺田
秀昭 樽口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP35133598A priority Critical patent/JP3180789B2/ja
Publication of JPH11259068A publication Critical patent/JPH11259068A/ja
Application granted granted Critical
Publication of JP3180789B2 publication Critical patent/JP3180789B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reverberation, Karaoke And Other Acoustics (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は電子的記憶媒体に
楽音制御情報(MIDIデータなど)などの主要情報と
付属情報とを暗号化処理して記憶したり、記憶媒体に記
憶されている暗号化処理された主要情報と付属情報に基
づいて元の主要情報及び付属情報を検出する処理を行な
う電子情報処理方法及び装置に関し、さらにはそのシス
テムあるいは記録媒体に関する。
【0002】
【従来の技術】最近では、パーソナルコンピュータを使
用して、ユーザ自身が音楽データ、映像データ及び波形
データなどを作成したり、それらに種々の変更を加えた
りすることが容易にできるようになった。従って、パー
ソナルコンピュータを使用することによって、市販のF
D、CD−ROM、LDなどの記憶媒体に記録された音
楽データ、映像データ及び波形データなどを自由に読み
出して、それらに種々の変更処理を加えたりすることが
できる。市販のCD−ROMやLDなどに記録されてい
るデータは、その販売者や製作者などに著作権があるた
め、本来それらを自由に改変することは、著作権侵害の
観点から許されるものではない。従って、現在では、C
D−ROMやLDなどの媒体に記録されている音楽デー
タ、映像データ又は波形データなど主データの著作物が
だれに属するものなのかを示すための著作権表示データ
を、その音楽データ、映像データ又は波形データなど主
データを記録する主データ記録部とは別のヘッダ部にお
いて付属情報として付加的に記録することによって、著
作権者を明示し、著作権侵害の未然防止を図っているの
が現状である。また、付属情報には、このような著作権
表示データの他にも、その音楽データ、映像データ及び
波形データの題名などを示す情報、又はその映像データ
や波形データなどがどのようなデータ圧縮技術で圧縮さ
れているのかなどの記録形式を示す情報などがある。
【0003】
【発明が解決しようとする課題】しかしながら、現在で
は、パーソナルコンピュータなどを使って自由にデータ
を書き換えたり変更したりすることができるので、故意
又は過失によって、著作権表示データや種々の付属情報
が削除されたり、書き換えられたりするという問題があ
る。特に、これらの付属情報がヘッダ部に記録されてい
る場合は、削除や改竄が容易になされてしまうという問
題がある。また、最近ではネットワーク通信の発達に伴
って、このように著作権表示データの削除や改竄がなさ
れた音楽データ、映像データ又は波形データなどが通信
ネットワークを介して広く流通するという問題も起こり
易い。この発明は、音楽データ、映像データ又は波形デ
ータなどのような主要情報のデータフォーマットを変更
することなく付属情報を付加すると共にこれらのデータ
に暗号化処理を施し、この暗号を解読しない限り、こら
れの主要情報や付属情報を再生して利用することのでき
ないようにした電子情報処理方法及び装置さらにはシス
テム若しくは記録媒体を提供することを目的とする。
【0004】
【課題を解決するための手段】 請求項1に係る電子情
報処理方法は、それぞれ2以上のパラメータを含む複数
のイベントデータで構成される第1の情報を入力するス
テップと、第2の情報を入力するステップと、前記第1
の情報から特定のイベントデータを取り出すステップ
と、前記第2の情報内から一部分とその一部分とは異な
る他の部分とを取り出すステップと、前記特定のイベン
トデータのうちの特定のパラメータを前記一部分に基づ
いて変更し、前記特定のイベントデータのうちの特定の
パラメータ以外のパラメータを前記他の部分に基づいて
変更することにより前記第1の情報に前記第2の情報を
分散して配置するステップと、前記第2の情報が分散し
て配置された第1の情報を出力するステップとからな
る。 請求項2に係る電子情報処理方法は、それぞれ2以
上のパラメータを含む複数のイベントデータで構成され
る第1の情報を入力するステップと、第2の情報を入力
するステップと、前記第1の情報から音高を表わす音高
パラメータを含む特定のイベントデータを取り出すステ
ップと、前記第2の情報から一部分を取り出すステップ
と、前記第2の情報の一部分と前記特定のイベントデー
タの音高パラメータを使って新たな音高パラメータを作
成し、該新たな音高パラメータを前記特定のイベントデ
ータのうちの音高パラメータに上書きすることにより、
前記第1の情報に前記第2の情報を分散して配置すると
共に第1の情報を暗号化するステップとからなる。 請求
項3に係る電子情報処理方法は、複数のイベントデータ
で構成される第1の情報を入力するステップと、情報の
変更方法を表わす第2の情報を入力するステップと、前
記イベントデータのうち少なくとも一部のイベントデー
タの内容を前記第2の情報に基づいて変更することによ
り前記第1の情報に前記第2の情報を分散して配置する
ステップと、前記第1の情報のうちの前記第2の情報が
配置されていない部分を前記第2の情報が表わす変更方
法で変更するステップとからなる。 請求項4乃至6に係
る電子情報処理方法は、上記請求項1乃至3に係るいず
れかの方法で第2の情報が分散して配置された第1の情
報を入力し、この第1の情 報から、分散して配置された
第2の情報を検出若しくは抽出することに係るものであ
る。これにより第2の情報がデコードされる。 請求項7
に係る記憶媒体は、請求項1乃至6のいずれかに係る方
法をコンピュータに実行させるためのプログラムを記憶
した機械読み取り可能な記憶媒体に係るものである。
求項8乃至15に係る電子情報処理装置は、請求項1乃
至6のいずれかに係る方法を実施するよう構成された電
子情報処理装置に係るものである。 次に、以下説明する
実施例に関連して概略を説明する。
【0005】前記第1の情報は主要情報に相当するもの
であり、例えば、MIDI形式の音楽演奏情報であって
よく、全体として大きな情報量を持ち、メモリにおいて
は所定の主データ記憶領域に記憶されるようなものであ
る。前記第2の情報は付属情報に相当するものであり、
例えば、そのような主データ記憶領域に記憶された音楽
演奏情報つまり第1の情報の、著作権表示に関する情報
であってよく、音楽演奏情報つまり第1の情報に比べて
小規模な情報量からなる。例えば、この発明によれば、
第1の情報つまり主要情報は所定の主データ記憶領域に
記憶され、第2の情報つまり付属情報は、ヘッダ領域で
はなく、主データ記憶領域内で、第1の情報を構成する
データに組み込んで記憶することができる。
【0006】この発明によれば、第1の情報から少なく
とも2つのデータ単位を選択し、該少なくとも2つのデ
ータ単位の各値に関連する値を持つデータ関連値を求め
る。このデータ関連値は、例えば、相前後するデータ単
位の各値の差分値である。第2の情報を構成するデータ
群から、第1の情報の1つのデータ単位に組み込むべき
データセグメントが、選択される。1つのデータ単位に
組み込むことができるデータセグメントのサイズは、複
数ビットであってよいし、必要に応じて1ビットのみで
あってもよい。データ関連値及びデータセグメントの値
を変数とする所定の関数に基づき、第1の情報における
1つのデータ単位の内容に置換されるべきデータを生成
し、この生成されたデータにより、第1の情報における
前記少なくとも2つのデータ単位のうちの所定の一方に
該当するデータ単位の内容を置換する。生成されたデー
タにより該当するデータ単位の内容をそっくり置換する
ことにより、1つのデータ単位に組み込むことができる
第2の情報のデータセグメントのサイズを比較的大きく
することができ、第2の情報を第1の情報内に効率的に
組み込むことができる。また、データ単位の内容を置換
する構成であるため、第1の情報のデータフォーマット
はそのままに維持されることになり、主要情報たる第1
の情報のデータフォーマットの変更を要求することな
く、第2の情報として、任意の種類及び内容のデータ
を、第1の情報の中に組み込むことができる。すなわ
ち、第1の情報の中に、電子的透しの手法によって、任
意の第2の情報を組み込むことができる。
【0007】置換すべきデータの生成のために使用する
前記所定の関数は、前記データ関連値及び前記データセ
グメントの値を変数とする所定の演算を実行することに
より実現するようにしてもよい。あるいは、該所定の関
数は、前記データ関連値及び前記データセグメントの値
を変数として所定のテーブルを参照することにより実現
されるようになっていてもよい。前記第1の情報におけ
るデータ単位の配列において、相前後するデータ単位の
値の差が所定値より小さいところを検出し、その中の1
つのデータ単位を、置換されるべきデータ単位として選
択するようにするとよい。このことは、第1の情報にお
けるデータ単位の配列において、その値の変化の少ない
ところから、置換されるべきデータ単位を選択すること
を意味する。これにより、データの置換によって、再生
時に生ずるかもしれない、再生データが乱れることがあ
るかもしれない、といったような問題による影響を最小
限に納めることを可能にする。
【0008】上記のようにして第1の情報内に第2の情
報が組み込まれたデータ群からそれぞれの情報を再生す
るために、前記第1の情報のうちの前記置換されたデー
タ単位から、前記データ関連値及び前記データセグメン
トの値を再生するステップと、再生した前記データ関連
値に基づき該置換されたデータ単位の本来の内容を再生
するステップとを具備するとよい。データ関連値は、置
換されたデータ単位の本来の内容と、もう1つのデータ
単位の内容と、に関連している値であり、置換されたデ
ータ単位の本来の内容は未知、もう1つのデータ単位の
内容は既知、であるから、再生したデータ関連値と既知
であるもう1つのデータ単位の内容とから、未知である
置換されたデータ単位の本来の内容を再現することがで
きる。例えば、データ関連値が上記のような差分値から
なるものである場合は、既知であるもう1つのデータ単
位の内容にデータ関連値を足し算または引き算すること
によって、置換されたデータ単位の本来の内容を再現す
ることができる。第1の情報における前記2つのデータ
単位のデータ関連値は、演算に限らず、所定の関数又は
テーブルに従って求めた値であってもよい。
【0009】再生処理を容易にするために、第1の情報
におけるデータ単位が置換されているか否かを示すため
に、適宜のフラグ値を該データ単位内に組み込んでおく
ようにしてよい。実際問題として、このようなフラグ値
の組み込みによって、再生時において、再生データが乱
れることが起こり得、それ故に、置換されたデータ単位
の本来の内容は、正確に再現されずに、下位ビットの値
に乱れが起こることがあるかもしれない。本発明におい
ては、そのような再生時における多少の乱れは許容する
ものとする。すなわち、未知である置換されたデータ単
位の本来の内容を、完全に正確に再現することなく、下
位ビットの値に多少の乱れでみられることがある故に、
大体の値を再現することができるだけのような場合であ
っても、「置換されたデータ単位の本来の内容を再現す
る」ことに該当する。例えば、MIDIデータにおける
ベロシテイデータは、楽音の音量を規定するものである
から、その下位ビットの値の多少の乱れは、再生性能を
損なうという重大な問題を引き起こさない。よって、そ
のような、再生性能を損なうという重大な問題を引き起
こすおそれがない性質のデータに対して、第2の情報を
組み込むためのデータ置換処理を施すとよい。
【0010】一例として、この発明に係る方法を利用し
た電子情報処理システムは、主要情報を編集することに
よって主要情報の中に種々の付属情報を埋め込むと共に
主要情報に暗号化処理を施すものである。主要情報とし
ては、MIDIデータのキーオンイベントデータ、プロ
グラムチェンジデータ又はコントロールチェンジデー
タ、波形データ、又は映像データなどがある。付属情報
としては、著作者名、曲の題名、画像/映像の題名など
に関する文字データや波形データの圧縮方法などのデー
タ形式に関するデータやその他の種々のデータ(暗号
文、鍵情報、ID、パスワード、ニュース文)などがあ
る。この電子情報処理システムは、主要情報を構成する
データ群の中の所定のデータ群として、MIDIデータ
の場合にはキーオンイベントデータ群を用い、このキー
オンイベントデータ群の中の単位データとして、ベロシ
ティデータやキーコードデータを用い、これらの相前後
するもの同士の差分値を求め、それを用いる。
【0011】このベロシティデータ及びキーコードデー
タは、MIDIメッセージの中で0〜127の値を取る
ので、負の差分値に対応した0〜63と、正の差分値に
対応した64〜127とに分割される。付属情報として
4ビット構成のデータを考えた場合に、3ビットをキー
コードデータに割り当て、1ビットをベロシティデータ
に割り当てると、キーコードデータは0〜7,8〜1
5,・・・,56〜63のような負の差分値に対応した
8つの領域に分割され、64〜71,72〜79,・・
・,120〜127のような正の差分値に対応した8つ
の領域に分割され、ベロシティデータは0〜31,32
〜63のような負の差分値に対応した2つの領域に分割
され、64〜95,96〜127のような正の差分値に
対応した2つの領域に分割される。これらのキーコード
及びベロシティの値をX−Y座標のそれぞれの軸に対応
付けると、キーコード及びベロシティの差分値が共に正
の場合、キーコードの差分値が正でベロシティの差分値
が負の場合、キーコード及びベロシティの差分値が共に
負の場合、キーコードの差分値が負でベロシティの差分
値が正の場合の4通りがそれぞれX−Y座標系の4つの
象限に対応するようになる。
【0012】従って、キーコード及びベロシティの差分
値の正負に応じて各象限が決定し、付属情報の値に応じ
てキーコード及びベロシティの値の範囲が決定し、その
差分値に応じてその範囲内の値が決定するので、この決
定した値を新たなキーコード及びベロシティの値とする
ことによって、前のキーコード及びベロシティとは異な
る値に変換することができる。変換されたキーコード及
びベロシティの値は元の値とは全く相関がないので、こ
れを自動演奏で再生したとしてもスクランブルのかかっ
た(暗号化された)ものとなり、演奏音としては成立し
ない。また、付属情報として、1つのキーオンイベント
データ中に複数ビットのデータを埋め込むことができる
ので、大量のデータを主要情報の品質を落とすことな
く、主要情報と共に伝送することができるという効果が
ある。
【0013】上記のように編集された前記主要情報を構
成するデータ群を、電子的記憶媒体に記録するようにし
てよいし、又は通信ネットワークを介して配信するよう
にしてもよい。この発明の第2の観点に従えば、記憶媒
体から読み出した、又は通信ネットワークを介して配信
されてきたデータ群から、主要情報(第1の情報)と付
属情報(第2の情報)とを適切に再現する方法が提案さ
れる。この方法は、記憶媒体から読み出した、又は通信
ネットワークを介して受信したデータ群データのうち前
記第1の情報の前記置換されたデータ単位から、前記デ
ータ関連値及び前記データセグメントの値を再生するス
テップと、再生した前記データ関連値に基づき該置換さ
れたデータ単位の本来の内容を再生するステップとを具
備する。再生された付属情報(第2の情報)は、可視的
にディスプレイするようしてもよい。すなわち、主要情
報(第1の情報)の中に組み込まれた付属情報(第2の
情報)が、文字データや波形データの圧縮方法などのデ
ータ形式に関するデータやその他の種々のデータ(暗号
文、鍵情報、ID、パスワード、ニュース文)などであ
る場合、それらを画面上に表示することができるもので
あり、また、これらのデータを通信ネットワークを介し
て配信する場合は、時々刻々と配信されてくるデータに
応じてストーリミングに表示することができる。
【0014】この発明の別の観点に従う方法は、複数の
データ単位の集まりからなるデータ群により構成された
主要情報の中に付属情報のデータを組み込む方法であっ
て、前記主要情報のデータグループにおける特定の各デ
ータ単位の中に前記付属情報を構成するデータを分散し
て組み込むステップを具備し、前記主要情報のデータを
そのデータ特性に従って少なくとも2つの特性グループ
に分類し、各グループの各々において前記付属情報を重
複して組み込むようにしたことを特徴とするものであ
る。これによって、主要情報における複数のデータグル
ープにおいて、付属情報を重複してすなわち冗長的に組
み込むことができ、主要情報の一部のデータグループで
データ変更がなされてそのデータグループからは付属情
報の取り出しができなくなったとしても、他のデータグ
ループから付属情報を取り出すことができるようにな
る。すなわち、冗長的に付属情報を組み込んだ複数の特
性グループのうち少なくとも1つの特性グループから付
属情報を再生すればよい。主要情報がMIDIデータの
ような音楽演奏情報の場合には、移調等のためにキーコ
ードの値がシフトされる等のことが往々にして起こり得
るので、そのような場合に適切に対処することができ
る。
【0015】一例として、主要情報の所定の第1のデー
タグループにおける特定の各データ単位の中に、暗号化
処理の手法を示す暗号情報を構成するデータを分散し
て、組み込む第1ステップと、前記主要情報における所
定の第2のデータグループにおいて、該主要情報を構成
するデータに対して、前記暗号情報が示す暗号化処理を
施す第2ステップとを具備してよい。これによれば、主
要情報における第1のデータグループにおいて、暗号化
処理のために必要な暗号情報(換言すれば再生時の暗号
化解読に必要な情報)が、分散して組み込まれる。従っ
て、主要情報における第1のデータグループにおいて
は、そのデータフォーマットを変更することなく、電子
的透しの手法で、適宜のアルゴリズムに従って、その中
に暗号情報を組み込むことができる。そして、本格的な
暗号化処理は、主要情報における所定の第2のデータグ
ループにおけるデータに対して、前記暗号情報が示す暗
号化処理に従って施される。
【0016】上記に従って暗号化された主要情報を再生
するために、前記暗号情報が組み込まれてなる前記主要
情報の前記第1のデータグループから、該暗号情報を再
生するステップと、前記再生した暗号情報に基づき、前
記主要情報の前記第2のデータグループのデータをデコ
ードし、主要情報を再生するステップとを具備するよう
にしてよい。暗号情報を解読することをオーソライズさ
れたもの(すなわち正当な利用者)がこの方法を実施す
ることで、暗号情報を再生することができ、これに基づ
き、主要情報の前記第2のデータグループのデータをデ
コードして、主要情報を再生することができる。主要情
報がMIDI情報のような音楽情報の場合、主要情報に
おける第1のデータグループにおける暗号情報の電子的
透しの度合いを比較的弱くすることができ、暗号情報を
解読することをオーソライズされていないものが、この
暗号情報の電子的透しを解除することなく、主要情報の
前記第1のデータグループの部分を再生したとしても、
対応する音楽の試聴はさほど重大なさしつかえなしにで
きるようにすることができる。他方、主要情報の前記第
2のデータグループは、本格的に暗号化されているの
で、暗号情報を解読することをオーソライズされていな
いものは第1のデータグループから暗号情報を取得する
ことができず、よって、第2のデータグループの暗号化
状態を解除することができない。よって、何人でも、第
1のデータグループに対応する部分の音楽は試聴できる
が、第2のデータグループに対応する部分の音楽はオー
ソライズされたものしか利用することができない、とい
ったような効果的な使い分けができるようになる。
【0017】一例として、主要情報としては、前述と同
様にMIDIデータのキーオンイベントデータ、プログ
ラムチェンジデータ又はコントロールチェンジデータ、
波形データ、又は映像データなどであってよい。後述す
る実施例においては、暗号情報は、主要情報を暗号化す
るつまりスクランブルする、という意味で、スクランブ
ルデータ若しくはスクランブルデコードデータという用
語で説明されている。スクランブルデータとは、スクラ
ンブル(つまり暗号化)の手法を示すデータのことであ
り、換言すれば、このデータは、データ再生時において
はスクランブル(つまり暗号化)の解読のために利用で
きるデータであるから、スクランブルデコードデータと
いう用語も同じ意味で使用している。MIDIデータの
暗号化(スクランブル)の仕方としては、何種類かがあ
ってよく、例えば、MIDIのキーオンデータのノート
番号を変更することで暗号化する手法、あるいは、キー
オンデータのノートとベロシティを入れ替えることで暗
号化する手法、あるいは、MIDIのインターバルデー
タの値を変更することで暗号化する手法、あるいは、キ
ーオンデータのチャンネルデータを変更することで暗号
化する手法、などがある。暗号情報すなわちスクランブ
ルデータ若しくはスクランブルデコードデータは、どの
種類の暗号化手法を採用するかを指示するものである。
【0018】一例として、主要情報たるMIDIデータ
の中への、暗号情報たるスクランブルデータの組み込み
の仕方は、MIDIのキーオンイベントデータの中のベ
ロシティデータの一部(最下位ビットが最適)の値を、
そのスクランブルデータのセグメントの内容に基づいて
変更する。従って、或る一つのベロシティデータの中に
組み込もうとするスクランブルデータのセグメントに応
じて、そのベロシティデータの最下位ビットが変更され
たり、されなかったりする。これによって、スクランブ
ルデータの内容がMIDIデータ群の中に分散して記録
されるようになる。なお、主要情報がMIDIデータの
場合には、スクランブルデータの組み込みのために変更
されるデータはベロシティデータやデュレーションタイ
ムデータが望ましい。なぜなら、これらのデータはさほ
ど厳密性を要求されないデータであるから、その下位ビ
ットの値の多少の誤差は問題にされないないからであ
る。すなわち、これらの情報が多少変更されても音声デ
ータの場合には聴感上でほとんど感知(知覚)されない
からである。また、主要情報が波形データの場合には、
その波形データそのものの最下位ビットを変更すればよ
い。また、画像データの場合も同様である。
【0019】再生時において、スクランブルデータの埋
め込まれた部分の主要情報(例えばMIDIデータ)が
再生された場合には、スクランブルデータのセグメント
によるの電子的透しを解除することなく、そのまま再生
したとしても、さほど重大な不都合を起こすことなく再
生することが可能である。しかし、暗号化処理された部
分は、MIDIデータとしてのフォーマットを維持して
はいるものの、その内容はスクランブルされてしまって
いるので、それをデコードせずに再生したとしても、も
はや音楽的演奏としての体を成さないようになってい
る。従って、オーソライズされた装置若しくは再生ソフ
トウェアを使用して、主要情報内に埋め込まれたスクラ
ンブルデータを再生し、このスクランブルデータを用い
て暗号化状態をデコードしない限り、元の音楽的演奏の
再生が正しく行われることはない。
【0020】前記主要情報の所定の第1のデータグルー
プの中に暗号情報を構成するデータを分散して組み込む
場合において、前記主要情報データの該所定の第1のデ
ータグループは、そのデータ特性に従って少なくとも2
つの特性グループに分類され、該少なくとも2つの特性
グループの各々において前記暗号情報がそれぞれ重複し
て組み込まれるようにするとよい。更に別の例として、
前記第1ステップでは、各特性グループ毎にユニークな
アルゴリズムに従って、各特性グループ毎に前記暗号情
報を組み込むようにしてよい。これにより、第1のデー
タグループにおける或る特性グループのデータが一括的
に変更されることにより、その中に組み込まれた暗号情
報(スクランブルデータ)が再生不能に変形されてしま
ったとしても、別の特性グループのデータの中に組み込
まれた暗号情報を再生し、これを第2のデータグループ
のデコードのために利用することができる。すなわち、
主要情報がMIDIデータの場合には、チャンネル単位
で、MIDIデータの内容が入れ替えられたり、あるい
は移調等のためにキーコードがシフトされたりすること
が、往々にして起こり得るものであり、そうすると、も
はやスクランブルデータを主要情報の中から検出し再生
することができなくなる。そこで、上記のように、チャ
ンネル毎又はプログラムチェンジデータの出現タイミン
グ毎等のなんらかの分類条件に従って、MIDIデータ
(主要情報)を2つの特性グループに分類し、それぞれ
の特性グループ毎に冗長に暗号情報を組み込むようにし
たのである。これによって、チャンネル情報がそのまま
入れ替えられたりしてデータが書き換えられたり、とい
う特性グループ単位でのデータ変更がなされたとして
も、データ変更がなされていないいずれかの特性グルー
プに組み込まれた暗号情報を検出し再生することで、第
2のデータグループにおける暗号化を解除することがで
きるようになる。
【0021】また、この発明の別の観点に従う方法は、
複数のデータ単位の集まりからなるデータ群により構成
された第1の情報の中に第2の情報のデータを組み込む
方法であって、前記第1の情報から1つのデータ単位を
選択するステップと、前記第2の情報を構成するデータ
群から、前記第1の情報の1つのデータ単位に組み込む
べきデータセグメントを、選択するステップと、前記デ
ータセグメントの値をパラメータに含む所定のアルゴリ
ズムに従って、前記第1の情報の前記選択されたデータ
単位の内容を変更するステップとを具備し、前記選択さ
れたデータ単位の内容に対して前記アルゴリズムに従う
変更が施され、かつ前記第2の情報のデータセグメント
の値が該選択されたデータ単位の中に潜在的に組み込ま
れることを特徴とする。これによれば、第1の情報すな
わち主要情報のデータの中の前記選択されたデータ単位
の内容を変更することで、第2の情報すなわち付属情報
を組み込むので、第2の情報すなわち付属情報の組み込
みのみならず、第1の情報すなわち主要情報の部分的な
変更をも行なうことができる。
【0022】更にこの発明の別の観点に従う方法は、複
数のデータ単位の集まりからなるデータ群により構成さ
れた主要情報の中に付属情報のデータを組み込む方法で
あって、前記主要情報から1つのデータ単位を選択する
ステップと、前記付属情報を構成するデータ群から、前
記主要情報の1つのデータ単位に組み込むべきデータセ
グメントを、選択するステップであって、該選択するデ
ータセグメントのデータ量は可変であることと、前記デ
ータセグメントの値をパラメータに含む所定のアルゴリ
ズムに従って、前記主要情報の前記選択されたデータ単
位の内容を変更するステップであって、前記アルゴリズ
ムは前ステップで選択したデータセグメントのデータ量
に応じたものであることとを具備し、前記選択されたデ
ータ単位の内容に対して前記アルゴリズムに従う変更が
施され、かつ前記付属情報のデータセグメントの値が該
選択されたデータ単位の中に潜在的に組み込まれること
を特徴とする。これによれば、主要情報の1つのデータ
単位に組み込むべき付属情報のデータセグメントのデー
タ量を可変調整することができる。従って、付属情報の
全体的なデータ量や種別等を考慮して適切なデータセグ
メントのサイズ(データ量)を選定することができる。
【0023】更にこの発明の別の観点に従う方法は、情
報を伝送する方法であって、送信すべき情報として、複
数のデータ単位の集まりからなるデータ群により構成さ
れた主要情報を提供するステップと、前記主要情報を構
成するデータの中に組み込まれるべき付属情報として、
複数のデータセグメントからなる付属情報を提供するス
テップと、前記主要情報の送信時に、所定のアルゴリズ
ムに従って、前記提供された主要情報の特定の複数のデ
ータ単位の各々の中に、前記提供された付属情報の各デ
ータセグメントの各々を組み込むステップと、前記付属
情報が組み込まれた前記主要情報をネットワークに送信
するステップとを具備する。これにより、電子的透し情
報として主要情報の中に組み込まれた付属情報を、ネッ
トワークを介してストリーミングに送信することができ
る。
【0024】更にこの発明の別の観点に従う方法は、上
記のようにネットワークを介して送信されてくる情報を
受信して、その中から主要情報と付属情報とを再生する
方法であって、前記ネットワークを介して受信したデー
タから前記付属情報のデータセグメントが組み込まれて
いる前記データ単位を検出するステップと、前記所定の
アルゴリズムに応じた復号化を行なうことにより、前記
検出したデータ単位から前記付属情報のデータセグメン
トと前記主要情報のデータ単位とを分離してそれぞれ再
生するステップとを具備する。これにより、電子的透し
情報として主要情報の中に組み込まれた付属情報がネッ
トワークを介してストリーミングに送信されてくると、
これをリアルタイムに復号化して、電子的透しの解読す
なわち付属情報の再生をストリーミングに行なうことが
できる。
【0025】更にこの発明の別の観点に従う方法は、通
常形式でコード化された音楽演奏情報に対して、選択的
に、あるいは部分的に暗号化を施すステップを具備し、
音楽演奏情報の一部に選択的に暗号化を施すことを特徴
とするものである。また、この方法に従って音楽演奏情
報を記録した記録媒体は、前記音楽演奏情報の所定の部
分が通常形式でコード化されており、前記音楽演奏情報
の別の部分には秘密の特殊な暗号化が施されていること
を特徴としており、これにより、前記通常形式でコード
化された音楽演奏情報の部分のみをそのまま再生するこ
とができ、前記特殊な暗号化が施された部分は暗号化部
分をデコードした場合に再生できるようにしたものであ
る。これにより、通常形式でコード化された音楽演奏情
報の部分は誰もが再生できるので、その部分の演奏を試
聴用演奏として役立てることができ、極めて便利である
と共に、暗号解読手段を持つ正当な利用者(オーソライ
ズされた者)は暗号化部分を解読(デコード)すること
で問題なく全音楽演奏を正当に利用することができ、不
都合のないものとなる。
【0026】上記では、主に方法としての観点から本発
明の大まかな導入的説明を行なったが、本発明を方法発
明として構成し実施することができるのみならず、装置
発明として構成し、実施することもできるのは勿論であ
る。また、本発明は、コンピュータプログラムの形態で
実施することができるし、そのようなコンピュータプロ
グラムを記憶した記録媒体の形態で実施することもでき
る。更に、本発明の方法又は装置に従って電子的透し情
報の形態で付属情報を主要情報の中に組み込んでなるデ
ータ群を記録してなる記録媒体それ自体もまた、本発明
の一実施形態に含まれる。
【0027】
【発明の実施の形態】以下、この発明の実施の形態を添
付図面に従って詳細に説明する。図2は、この発明に係
る電子情報処理システムとして動作する電子楽器の全体
構成を示すブロック図である。マイクロプロセッサユニ
ット(CPU)21はこの電子楽器全体の動作を制御す
るものである。このCPU21に対して、バス2Mを介
して各種のデバイスが接続される。
【0028】CPU21はROM22及びRAM23内
の各種プログラムや各種データ、及び外部記憶装置から
取り込まれた楽音制御情報(MIDIデータ)に基づい
て全体の動作を制御すると共に取り込まれたMIDIデ
ータ内に付属情報を分散して記憶したり、付属情報の分
散記憶されたMIDIデータをフロッピーディスクから
取り込み、それから付属情報を検出したりする。この実
施の形態では、外部記憶装置として、フロッピーディス
クドライブ24、ハードディスクドライブ25、CD−
ROMドライブ26などを例に説明するが、これ以外の
光磁気ディスク(MO)ドライブ、PDドライブなどを
用いてもよい。また、通信インターフェイス27を介し
て通信ネットワーク28上のサーバコンピュータ29な
どから楽音制御情報などの各種情報などを取り込んでも
よいし、MIDIインターフェイス2Aを介して他のM
IDI機器2BなどからMIDIデータなどを取り込ん
でもよい。CPU21は、このような外部記憶装置から
取り込まれたMIDIデータや鍵盤2Cの押鍵操作に基
づいて生成したMIDIデータを音源回路2Jに供給す
る。なお、外部に接続された音源回路を用いて発音処理
を行うようにしてもよい。
【0029】ROM22はCPU21の各種プログラム
(システムプログラムや動作プログラムなど)や各種デ
ータを格納するものであり、リードオンリーメモリ(R
OM)で構成されている。RAM23は、CPU21が
プログラムを実行する際に発生する各種データを一時的
に記憶するものであり、ランダムアクセスメモリ(RA
M)の所定のアドレス領域がそれぞれ割り当てられ、レ
ジスタ、バッファ、フラグ、テーブル等として利用され
る。
【0030】また、ハードディスク装置25などの外部
記憶装置に前記動作プログラムを記憶するようにしても
よい。また、前記ROM22に動作プログラムを記憶せ
ずに、ハードディスク装置25などの外部記憶装置にこ
れらの動作プログラムを記憶しておき、それをRAM2
3に読み込むことにより、ROM22に動作プログラム
を記憶したときと同様の動作をCPU21に行わせるよ
うにしてもよい。このようにすると、動作プログラムの
追加やバージョンアップ等が容易に行える。着脱自在な
外部記憶媒体の1つとして、CD−ROMを使用しても
よい。このCD−ROMには、自動演奏データやコード
進行データや楽音波形データや映像データなどの各種デ
ータ及び任意の動作プログラムを記憶していてもよい。
CD−ROMに記憶されている動作プログラムや各種デ
ータは、CD−ROMドライブ26によって、読み出さ
れ、ハードディスク装置25に転送記憶させることがで
きる。これにより、動作プログラムの新規のインストー
ルやバージョンアップを容易に行うことができる。
【0031】なお、通信インターフェイス27をデータ
及びアドレスバス2Mに接続し、この通信インターフェ
イス27を介してLAN(ローカルエリアネットワー
ク)やインターネット、電話回線などの種々の通信ネッ
トワーク28上に接続可能とし、他のサーバコンピュー
タ29との間でデータのやりとりを行うようにしてもよ
い。これにより、ハードディスク装置25内に動作プロ
グラムや各種データが記憶されていないような場合に
は、サーバコンピュータ29からその動作プログラムや
各種データをダウンロードすることができる。この場
合、クライアントとなる楽音生成装置である自動演奏装
置から、通信インターフェイス27及び通信ネットワー
ク28を介してサーバコンピュータ29に動作プログラ
ムや各種データのダウンロードを要求するコマンドを送
信する。サーバコンピュータ29は、このコマンドに応
じて、所定の動作プログラムやデータを、通信ネットワ
ーク28を介して自動演奏装置に送信する。自動演奏装
置では、通信インターフェイス27を介してこれらの動
作プログラムやデータを受信して、ハードディスク装置
25にこれらのプログラムやデータを蓄積する。これに
よって、動作プログラム及び各種データのダウンロード
が完了する。
【0032】なお、本発明は、本発明に対応する動作プ
ログラムや各種データをインストールした市販のパーソ
ナルコンピュータ等によって、実施させるようにしても
よい。その場合には、本発明に対応する動作プログラム
や各種データを、CD−ROM26やフロッピーディス
ク等の、パーソナルコンピュータが読み込むことができ
る記憶媒体に記憶させた状態で、ユーザーに提供しても
よい。そのパーソナルコンピュータが読み込むことがで
きる記憶媒体に記憶させた状態で、ユーザに提供しても
よい。そのパーソナルコンピュータ等が、LAN、イン
ターネット、電話回線等の通信ネットワークに接続され
ている場合には、通信ネットワークを介して、動作プロ
グラムや各種データ等をパーソナルコンピュータ等に提
供してもよい。
【0033】鍵盤2Cは発音すべき楽音の音高を選択す
るための複数の鍵を備えており、各鍵に対応したキース
イッチを有しており、また必要に応じて押圧力検出装置
等のタッチ検出手段を有している。鍵盤2Cは音楽演奏
のための基本的な操作子であり、これ以外の演奏操作子
でもよいことはいうまでもない。押鍵検出回路2Dは発
生すべき楽音の音高を指定する鍵盤2Cのそれぞれの鍵
に対応して設けられたキースイッチ回路を含むものであ
る。この押鍵検出回路2Dは鍵盤2Cの離鍵状態から押
鍵状態への変化を検出してキーオンイベントを出力し、
押鍵状態から離鍵状態への変化を検出してキーオフイベ
ントを出力すると共にそれぞれのキーオンイベント及び
キーオフイベントに関する鍵の音高を示すノートナンバ
を出力する。押鍵検出回路2Dはこの他にも鍵押し下げ
時の押鍵操作速度や押圧力等を判別してベロシティデー
タやアフタタッチデータを出力する。
【0034】パネルスイッチ2Eは自動演奏スタート/
ストップスイッチ、一時停止(ポーズ)スイッチ、音
色、音量、効果等を選択、設定、制御するための各種ス
イッチを含むものである。スイッチ検出回路2Fはパネ
ルスイッチ2E上の各スイッチ群に対応して設けられて
おり、これらの各スイッチ群の操作状態に応じたスイッ
チイベントをバス2Mを介してCPU21に出力する。
表示回路2HはCPU21の制御状態、設定データの内
容等の各種の情報をディスプレイ2Gに表示するもので
ある。この実施の形態では、著作権表示データ、曲名、
作曲者情報、作成年月日、歌詞、ニュース文、機種名
(ハード名)、IDなどのテキストデータなどを表示す
る。ディスプレイ2Gは液晶表示パネル(LCD)等か
ら構成され、表示回路2Hによってその表示動作を制御
される。
【0035】音源回路2Jは、複数のチャンネルで楽音
信号の同時発生が可能であり、CPU21から与えられ
た楽音制御情報(ノートオン、ノートオフ、ベロシテ
ィ、ピッチデータ、音色番号等のMIDIデータ)を入
力し、これらの楽音制御情報に基づいた楽音信号を発生
する。音源回路2Jにおいて複数チャンネルで楽音信号
を同時に発音させる構成としては、1つの回路を時分割
で使用することによって複数の発音チャンネルを形成す
るようなものや、1つの発音チャンネルが1つの回路で
構成されるような形式のものであってもよい。また、音
源回路2Jにおける楽音信号発生方式はいかなるものを
用いてもよい。例えば、発生すべき楽音の音高に対応し
て変化するアドレスデータに応じて波形メモリに記憶し
た楽音波形サンプル値データを順次読み出すメモリ読み
出し方式(波形メモリ方式)、又は上記アドレスデータ
を位相角パラメータデータとして所定の周波数変調演算
を実行して楽音波形サンプル値データを求めるFM方
式、あるいは上記アドレスデータを位相角パラメータデ
ータとして所定の振幅変調演算を実行して楽音波形サン
プル値データを求めるAM方式等の公知の方式を適宜採
用してもよい。また、これらの方式以外にも、自然楽器
の発音原理を模したアルゴリズムにより楽音波形を合成
する物理モデル方式、基本波に複数の高調波を加算する
ことで楽音波形を合成する高調波合成方式、特定のスペ
クトル分布を有するフォルマント波形を用いて楽音波形
を合成するフォルマント合成方式、VCO、VCF及び
VCAを用いたアナログシンセサイザ方式等を採用して
もよい。また、専用のハードウェアを用いて音源回路を
構成するものに限らず、DSPとマイクロプログラムを
用いて音源回路を構成するようにしてもよいし、CPU
とソフトウェアのプログラムで音源回路を構成するよう
にしてもよい。
【0036】タイマ2Nは時間間隔を計数したり、自動
演奏のテンポを設定したりするためのテンポクロックパ
ルスを発生する。このテンポクロックパルスの周波数は
各種スイッチ2Eの中のテンポ設定スイッチや予め演奏
データに含まれている図3のようなテンポデータに基づ
いて決定されている。タイマからのテンポクロックパル
スはCPU21に対してインタラプト命令として与えら
れ、CPU21はインタラプト処理により自動演奏時に
おける各種の処理を実行する。効果回路2Kは音源回路
2Jからの楽音信号に種々の効果を付与し、効果の付与
された楽音信号をサウンドシステム2Lに出力する。効
果回路2Kによって効果の付与された楽音信号は、アン
プ及びスピーカからなるサウンドシステム2Lを介して
発音される。
【0037】次に、この発明に係る電子情報処理システ
ムが電子情報を付与すると共に暗号化処理を同時に行う
場合の動作の一例について説明する。図3は、電子楽器
1が電子情報処理システムとして動作する場合のMID
Iデータ編集処理の一例を示すフローチャート図であ
る。まず、この場合には、電子楽器1は、フロッピーデ
ィスクドライブ24から読み出したMIDIデータにそ
のヘッダ情報の一部である電子署名すなわち著作権表示
データを分散して記憶すると共にMIDIフォーマット
を維持したまま暗号化処理を施す場合について説明す
る。
【0038】まず、ステップ31では、MIDIデータ
列内に分散して書き込まれるべき付属情報の内容を決定
する。この実施の形態では、付属情報として、電子署名
(著作権表示データ)をMIDIデータ列内に分散して
埋め込む場合について説明する。例えば、著作権表示デ
ータとして『COPYRIGHT△YMH△1996』
のような文字をMIDIデータ列内に分散して書き込む
場合には、これらの文字列をパネルスイッチ2Eを用い
て入力する。ここで、△は空白を意味する。ステップ3
1で書き込むべき電子署名すなわち付属情報の文字列が
決定したので、今度はステップ32で、その電子署名に
関する4ビット構成のデータ列を得る。例えば、パネル
スイッチ2Eによって『COPYRIGHT△YMH△
1996』が入力された場合には、それをASCIIの
文字符号のデータ列に変換する。この場合、それぞれの
文字は『C』=『43H』、『O』=『4FH』、
『P』=『50H』、『Y』=『59H』、『R』=
『52H』、『I』=『49H』、『G』=『47
H』、『H』=『48H』、『T』=『54H』、
『△』=『20H』、『Y』=『59H』、『M』=
『4DH』、『H』=『48H』、『△』=『20
H』、『1』=『31H』、『9』=『39H』、
『9』=『39H』、『6』=『36H』のような一連
のASCIIの4ビット構成のデータで表されるように
なる。なお、『36H』のように記された数において、
数字の末尾のHはその数が16進表示であることを示
す。
【0039】次に、ステップ33では、電子署名として
付与する情報すなわち、ステップ32で得られたASC
IIの4ビット構成のデータ列を4ビットレジスタBR
に格納する。例えば、『Y』=『59H』、『M』=
『4DH』、『H』=『48H』の文字をMIDIデー
タ列に順番に格納する場合、4ビットレジスタBRに
は、図1(C)に示すように『0101B』、『100
1B』、『0100B』、『1101B』、『0100
B』、『1000B』のような4ビット構成のデータが
順番に格納される。なお、『1000B』のように記さ
れた数において、数字の末尾のBはその数が2進表示で
あることを示す。そして、ステップ34では、この4ビ
ットレジスタBRに格納されている上位3ビットをノー
トエリアナンバNAとし、最下位ビット(LSB)をベ
ロシティエリアナンバVAとする。従って、電子署名の
『Y』=『59H』の最初の4ビット:『0101B』
の場合はNA=2,VA=1、後ろの4ビット:『10
01B』の場合はNA=4,VA=1となり、電子署名
の『M』=『4DH』の最初の4ビット:『0100
B』の場合はNA=2,VA=0、後ろの4ビット:
『1101B』の場合はNA=6,VA=1となり、電
子署名の『H』=『48H』の最初の4ビット:『01
00B』の場合はNA=2,VA=0、後ろの4ビッ
ト:『1000B』の場合はNA=4,VA=0とな
る。
【0040】次に、ステップ35では、MIDIデータ
列(Standard MIDIFile:SMF)の
中からキーオンイベントデータやプログラムチェンジデ
ータやコントロールチェンジデータなどの各種のMID
Iデータを順次取り出す。すなわち、MIDIデータ列
は基本的にはキーオンステータスバイト、キーコードバ
イト、ベロシティバイトからなるキーオンイベントデー
タやこれ以外のプログラムチェンジイベントデータやコ
ントロールチェンジイベントデータなどから構成されて
いるので、ステップ35では、このようなMIDIデー
タを順番に取り出す。
【0041】ステップ36では、取り出されたMIDI
データがキーオンイベントデータKONであるかどうか
を判定し、キーオンイベントデータ(YES)の場合は
次のステップ37以下の処理を行い、そうでない(N
O)の場合はステップ3Hに進む。従って、ステップ3
5で取り出されたMIDIデータがキーオンイベントデ
ータの場合には、図1(A)のようなキーオンイベント
データからなるMIDIデータ列SMF1が得られるこ
とになる。このキーオンイベントデータのMIDIデー
タ列SMF1はデュレーションタイムDと、キーオンイ
ベントデータとの組合せで構成される。ステップ37で
は、キーオンイベントデータの中の各バイトのデータを
それぞれ対応するキーコードレジスタb,ベロシティレ
ジスタcに格納する。すなわち、キーオンイベントデー
タのキーオンステータスバイト中のキーコードバイトの
値すなわちキーコードをキーコードレジスタbに、ベロ
シティバイトの中のベロシティの値をベロシティレジス
タcにそれぞれ格納する。
【0042】ステップ38では、前のキーオンイベント
データのキーコードとベロシティとの差分値を取り、そ
れをキーコード差分値レジスタdkey及びベロシティ
差分値レジスタdvelにそれぞれ格納する。すなわ
ち、キーコードレジスタbには今回のキーオンイベント
データのキーコードが格納され、前回値レジスタb0に
は前のキーオンイベントデータのキーコードが格納され
る。キーコードレジスタbの値から前回値レジスタb0
の値を減算することによって得られた差分値がキーコー
ド差分値レジスタdkeyに格納される。ベロシティレ
ジスタcには今回のキーオンイベントデータのベロシテ
ィが格納され、前回値レジスタc0には前のキーオンイ
ベントデータのベロシティが格納される。従って、同様
にベロシティレジスタcの値から前回値レジスタc0の
値を減算することによって得られた差分値がベロシティ
差分値レジスタdvelに格納される。図1(A)に示
されるMIDIデータ列SMF1の場合、このステップ
38の演算によって得られたキーコード差分値レジスタ
dkey及びベロシティ差分値レジスタdvelの値は
図1(B)のようになる。ステップ39では、次回のス
テップ38の処理に備えて、今回のキーコードの値すな
わちキーコードレジスタbの値を前回値レジスタb0に
格納し、今回のベロシティの値すなわちベロシティレジ
スタcの値を前回値レジスタc0に格納する。
【0043】ステップ3Aでは、キーコード差分値レジ
スタdkeyの値が8よりも小さいかどうかを判定し、
小さい場合には、次のステップ3Bに進み、8以上の場
合にはステップ3Gに進む。ステップ3Bでは、ベロシ
ティ差分値レジスタdvelの値が32よりも小さいか
どうかを判定し、小さい場合には、次のステップ3Cに
進み、32以上の場合にはステップ3Gに進む。すなわ
ち、両方のステップ3A及び3BでNOと判定された場
合には、そのキーオンイベントデータは置換対象外のデ
ータだと判定し、ステップ3Gでレジスタcの最下位ビ
ットを『0』に修正、すなわちベロシティの値を偶数に
してからステップ3Hに進む。これによって、ベロシテ
ィの値が偶数の場合には、そのキーオンイベントデータ
が置換対象外のデータであり、修正されなかったことを
データ修復の際に容易に判定することができるようにな
る。
【0044】ステップ3Cでは、キーコード差分値レジ
スタdkeyの値が正又は0の場合と負の場合とで、そ
れぞれ異なる置換演算を行う。すなわち、キーコード差
分値レジスタdkeyの値が正又は0の場合には、ノー
トエリアナンバNAを8倍したものと、キーコード差分
値レジスタdkeyの値と、定数64との和を求め、そ
の結果を第1キーコードレジスタb1に格納する。3ビ
ットからなるノートエリアナンバNAの最大値は
“7”、最小値は“0”であるから、この条件下では、
レジスタb1の値の最小値は“64”である。一方、キ
ーコード差分値レジスタdkeyの値が負の場合には、
定数63からノートエリアナンバNAを8倍したものを
減算すると共にキーコード差分値レジスタdkeyの値
を加算し、その結果を第1キーコードレジスタb1に格
納する。なお、このときキーコード差分値レジスタdk
eyは負の値なので、結果的には定数63からキーコー
ド差分値レジスタdkeyの値を減算することになる。
この条件下では、レジスタb1の値は“63”よりも大
きくなることはない。
【0045】ステップ3Dでは、ベロシティ差分値レジ
スタdvelの値が正又は0の場合と負の場合とで、そ
れぞれ異なる置換演算を行う。すなわち、ベロシティ差
分値レジスタdvelの値が正又は0の場合には、ベロ
シティエリアナンバVAを32倍したものと、ベロシテ
ィ差分値レジスタdvelの値と、定数64との和を求
め、その結果を第1ベロシティレジスタc1に格納す
る。この条件下では、レジスタc1の値の最小値は“6
4”である。ベロシティ差分値レジスタdvelの値が
負の場合には、定数63からベロシティエリアナンバV
Aを32倍したものを減算すると共にベロシティ差分値
レジスタdvelの値を加算し、その結果を第1ベロシ
ティレジスタc1に格納する。なお、このときベロシテ
ィ差分値レジスタdvelは負の値なので、結果的には
定数63からベロシティ差分値レジスタdvelの値を
減算することになる。この条件下では、レジスタc1の
値は“63”よりも大きくなることはない。
【0046】ステップ3Eでは、第1キーコードレジス
タb1の値を新しいキーコードの値とし、第1ベロシテ
ィレジスタc1の値を新しいベロシティの値としてMI
DIデータを修正する。そして、ステップ3Fで、第1
ベロシティレジスタc1の最下位ビットを『1』に修
正、すなわちベロシティの値を奇数に修正してからステ
ップ3Hに進む。これによって、ベロシティの値が奇数
の場合には、そのキーオンイベントデータが付属情報に
基づいて修正されたことをデータ修復の際に容易に判定
することができる。ステップ3Hでは、全ての付属情報
についてステップ33からステップ3Gまでの処理が終
了したかどうかを判定し、終了している(YES)場合
にはこのMIDIデータ編集処理を終了し、終了してい
ない場合にはステップ33にリターンし、次の付属情報
について一連の処理を行う。
【0047】例えば、図1の場合には、1番目のキーオ
ンイベントデータ(91,100,100)は、最初の
ものなので修正されない。2番目のキーオンイベントデ
ータ(91,101,102)は、図3のMIDIデー
タ編集処理によって、図1(E)に示すような2番目の
キーオンイベントデータ(91,81,99)に変換さ
れる。同様にして、3番目のキーオンイベントデータ
(91,103,102)も図1(D)に示すような3
番目のキーオンイベントデータ(91,98,97)に
変換される。そして、4番目のキーオンイベントデータ
(91,120,70)は、図1(B)に示すように、
キーコード差分値レジスタdkeyの絶対値が『17』
と8以上であるため、ステップ3AでNOと判定され、
置換対象外となり、ステップ3Gを経て、キーオンイベ
ントデータ(91,120,70)がそのまま図1
(D)に示すように4番目のキーオンイベントデータと
なる。そして、5番目から8番目までのキーオンイベン
トデータも同様にして、図1(D)の5番目から8番目
までのキーオンイベントデータのように変換される。な
お、この場合に、2番目と3番目のキーオンイベントデ
ータの場合は、ステップ3Fの処理によって、ベロシテ
ィの値が奇数に変換されている。なお、プログラムチェ
ンジイベントは付属情報の付与されるノートオンイベン
トなどに比べて、比較的低頻度で発生し、プログラムチ
ェンジ後は、楽器が変わることを意味するので、その位
置を始点としてエディットされる可能性の高い単位とい
うことが言えるので、取り出されたMIDIデータがプ
ログラムチェンジイベントだった場合には、直ちに終了
して、付属情報の最初からMIDIデータを編集するよ
うにしてもよい。
【0048】図5は、上述の第1の実施の形態に従って
得られる各レジスタb1,c1の値のとり得る状態を列
挙したものである。図5において、縦軸にはレジスタb
1にストアされるキーコードのとりうる値を割り当て、
横軸にはレジスタc1にストアされるベロシティデータ
のとりうる値を割り当て、各値の63と64との間を原
点とするような直交座標系を構成する。これによって、
キーオンイベントデータの中のキーコードが高くなる場
合(正の値)又は小さくなる場合(負の値)と、ベロシ
ティが増加する場合(正の値)又は減少する場合(負の
値)とからなる4種類の組み合わせがこの直交座標系の
各象限に割り当てられることになる。そして、各象限に
は付属情報となる4ビット構成の16個のデータが割り
当てられる。すなわち、図5に示すようにキーコードが
高くなり、ベロシティが増加する場合と、キーコードが
高くなり、ベロシティが減少する場合と、キーコードが
低くなり、ベロシティが増加する場合と、キーコードが
低くなり、ベロシティが減少する場合のそれぞれが各象
限に対応するようになる。各象限に割り当てられた4ビ
ット構成の付属情報のうち、最下位ビットは横軸のベロ
シティに、上位3ビットは縦軸のキーコードに割り当て
られる。従って、キーコードが高くなり、ベロシティが
増加する場合には、直交座標の第1象限に割り当てら
れ、キーコード軸の64〜127は000から111ま
での8つの付属情報に対応するように分割され、ベロシ
ティ軸の64〜127は0と1の2つの付属情報に対応
するように分割される。キーコードが高くなり、ベロシ
ティが減少する場合には、直交座標の第2象限に割り当
てられ、キーコード軸の64〜127は000から11
1までの8つの付属情報に対応するように分割され、ベ
ロシティ軸の63〜0は0と1の2つの付属情報に対応
するように分割される。キーコードが低くなり、ベロシ
ティが減少する場合には、直交座標の第3象限に割り当
てられ、キーコード軸の63〜0は000から111ま
での8つの付属情報に対応するように分割され、ベロシ
ティ軸の63〜0は0と1の2つの付属情報に対応する
ように分割される。キーコードが低くなり、ベロシティ
が増加する場合には、直交座標の第4象限に割り当てら
れ、キーコード軸の63〜0は000から111までの
8つの付属情報に対応するように分割され、ベロシティ
軸の64〜127は0と1の2つの付属情報に対応する
ように分割される。
【0049】この場合、図6に示すように、各付属情報
に対応したキーコードには8個の値が存在し、ベロシテ
ィには32個の値が存在するので、ステップ3A及び3
Bのように、キーコード差分値レジスタdkeyの値は
8よりも小さくなければならず、ベロシティ差分値レジ
スタdvelの値は32よりも小さくなければならない
という条件が入っているのである。従って、キーコード
が8よりも小さな値で増加又は減少し、ベロシティが3
2よりも小さな値で増加又は減少した場合には、図5の
各象限の付属情報が選択され、その付属情報の値、キー
コード差分値及びベロシティ差分値に応じて、元のキー
コード及びベロシティが編集される。なお、この場合、
ベロシティについては、編集された値であるかどうかを
示すために、ステップ3G及びステップ3Fによって最
下位ビットに処理が加えられ、編集されたベロシティの
値は、最終的には奇数値の16個だけとなる。
【0050】次に、図3のMIDIデータ編集処理によ
って付与された電子情報すなわち電子署名データを検
出、すなわち修復するMIDIデータ修復処理について
説明する。図4は、電子楽器1がMIDIデータ修復装
置として動作する場合の一例を示すフローチャート図で
ある。この場合には、フロッピーディスクドライブ25
から読み出されたMIDIデータに前述のようなヘッダ
情報の一部(電子署名すなわち著作権表示データ)が分
散記録されているものとする。以下の実施の形態では、
この著作権表示データを検出して、それをモニタなどに
表示するまでの動作を説明する。まず、ステップ41で
は、電子署名を検出すべきMIDIデータ列、すなわち
図3の電子情報付与処理によって電子署名の付与された
MIDIデータ列(Standard MIDI Fi
le:SMF)の中から順次キーオンイベントデータや
プログラムチェンジデータやコントロールチェンジデー
タなどのデータを取り出す。
【0051】ステップ42では、取り出されたMIDI
データがキーオンイベントデータKONであるかどうか
を判定し、キーオンイベントデータ(YES)の場合は
次のステップ43に進み、そうでない(NO)場合はス
テップ4Cに進む。従って、ステップ41で取り出され
たMIDIデータがキーオンイベントデータの場合に
は、図1(F)のようなキーオンイベントMIDIデー
タ列SMF2が作成されることになる。ステップ43で
は、キーオンイベントデータの中の各バイトのデータを
それぞれ対応するキーコードレジスタb,ベロシティレ
ジスタcに格納する。すなわち、キーコードバイトの中
のキーコードをキーコードレジスタbに、ベロシティバ
イトの中のベロシティをベロシティレジスタcにそれぞ
れ格納する。
【0052】ステップ44では、ベロシティレジスタc
の最下位ビットが『1』かどうか、すなわち、付属情報
(電子署名情報)の付与されたキーオンイベントデータ
であるのかどうかの判定を行い、YESの場合は次のス
テップ45に進み、そうでない(NO)場合はステップ
4Cに進む。ステップ45、ステップ46、ステップ4
9及びステップ4Aでは、相前後するキーオンイベント
データのキーコードレジスタb、前回キーコードレジス
タb0、ベロシティレジスタc及び前回ベロシティレジ
スタc0のそれぞれの格納値に基づいて修復キーコード
レジスタb2、修復ベロシティレジスタc2、ノートエ
リアナンバNA及びベロシティエリアナンバVAの値を
それぞれ求める。このとき、キーコードレジスタbの値
が64以上の場合とこれよりも小さい場合とで、それぞ
れ異なる演算式を用いて各値を求める。
【0053】ステップ45においてはステップ3C(図
3)の置換式の逆算を行なう。すなわち、キーコードレ
ジスタbの値が64以上の場合には、キーコードレジス
タbの値から定数64を減算し、その減算値の8におけ
るモジュロ(減算値を8で除した余り)を求めること
で、dkeyを再生する。そして、このdkeyを前回
キーコードレジスタb0に加算することでキーコードの
修復値を得て、それを修復キーコードレジスタb2にス
トアする。一方、キーコードレジスタbの値が64より
も小さい場合には、キーコードレジスタbの値から定数
63を減算し、その減算値の8におけるモジュロを求め
ることで、dkeyを再生する。そして、このdkey
を前回キーコードレジスタb0に加算することでキーコ
ードの修復値を得て、それを修復キーコードレジスタb
2にストアする。
【0054】ステップ46においてはステップ3D(図
3)の置換式の逆算を行なう。すなわち、ベロシティレ
ジスタcの値が64以上の場合には、ベロシティレジス
タcの値から定数64を減算し、その減算値の32にお
けるモジュロ(減算値を32で除した余り)を求めるこ
とで、dvelを再生する。そして、このdvelを前
回ベロシティレジスタc0に加算することでベロシティ
データの修復値を得て、それを修復ベロシティレジスタ
c2にストアする。一方、ベロシティレジスタcの値が
64よりも小さい場合には、ベロシティレジスタcの値
から定数63を減算し、その減算値の32におけるモジ
ュロを求めることで、dvelを再生する。そして、こ
のdvelを前回ベロシティレジスタc0に加算するこ
とでベロシティデータの修復値を得て、それを修復ベロ
シティレジスタc2にストアする。
【0055】ステップ47において、修復キーコードレ
ジスタb2の値をキーコードの値とし、修復ベロシティ
レジスタc2の値をベロシティの値としてMIDIデー
タを修復する。ステップ48では、次回のステップ45
及びステップ46の処理に備えて、修復されたキーコー
ドの値すなわち修復キーコードレジスタb2の値を前回
値レジスタb0に格納し、修復されたベロシティの値す
なわち修復ベロシティレジスタc2の値を前回値レジス
タc0に格納する。ステップ49においてはステップ3
C(図3)の置換式の逆算を行なうことでNAを再生す
る。すなわち、キーコードレジスタbの値が64以上の
場合には、キーコードレジスタbの値から定数64を減
算し、その減算値を8で除した商を求め、それをノート
エリアナンバNAとする。一方、キーコードレジスタb
の値が64よりも小さい場合には、定数63からキーコ
ードレジスタbの値を減算し、その減算値を8で除した
商を求め、それノートエリアナンバNAとする。ステッ
プ4Aではステップ3D(図3)の置換式の逆算を行な
うことでNAを再生する。すなわち、ベロシティレジス
タcの値が64以上の場合には、ベロシティレジスタc
の値から定数64を減算し、その減算値を32で除した
商を求め、それをベロシティエリアナンバVAとする。
一方、ベロシティレジスタcの値が64よりも小さい場
合には、定数63からベロシティレジスタcの値を減算
し、その減算値を32で除した商を求め、それベロシテ
ィエリアナンバVAとする。
【0056】ステップ4Bでは、ノートエリアナンバN
Aを上位3ビットとし、ベロシティエリアナンバVAを
最下位ビットとする4ビット構成のデータ列からなる付
属情報を得る。ステップ4Cでは、全MIDIデータの
修復が終了したかどうかを判定し、終了した場合にはM
IDIデータ修復処理を終了し、そうでない場合にはス
テップ41にリターンし、再びMIDIデータに対する
修復処理を行う。以上の一連の修復処理が終了した時点
でモニタにそのヘッダ情報の一部(電子署名すなわち著
作権表示データ)などを表示するが、ここではそのステ
ップについて省略してある。
【0057】例えば、図1(E)のキーオンイベントの
MIDIデータ列SMF2と図1(G)のキーオンイベ
ントのMIDIデータ列SMF2とは同じものであり、
図1(G)のキーオンイベントのMIDIデータ列SM
F2に基づいて、図1(F)のようなMIDIデータ列
SMF3が修復され、図1(G)のような付属情報が抽
出される。まず、図1(G)の1番目のキーオンイベン
トデータ(91,100,100)は、ベロシティの最
下位ビットが『0』すなわち偶数なのでそのままの値が
キーオンイベントデータとなる。次に、2番目のキーオ
ンイベントデータ(91,81,99)は、ベロシティ
の最下位ビットが『1』すなわち奇数であり、64以上
なので、図4のMIDIデータ修復処理によって、図1
(F)に示すような2番目のキーオンイベントデータ
(91,101,103)に変換される。同様にして、
3番目のキーオンイベントデータ(91,98,97)
も図1(F)に示すような3番目のキーオンイベントデ
ータ(91,103,104)に変換される。そして、
4番目のキーオンイベントデータ(91,120,7
0)は、ベロシティの最下位ビットが『0』すなわち偶
数なのでそのままの値がキーオンイベントデータとな
る。そして、図1(G)に示すような5番目から8番目
までのキーオンイベントデータも同様にして、図1
(F)の5番目から8番目までのキーオンイベントデー
タのように変換される。この場合に、2番目と3番目の
キーオンイベントデータについては、図3のステップ3
Fの処理によってベロシティの値が奇数に変換されてい
る関係上、図1(F)に示されるキーオンイベントデー
タのベロシティの値がMIDIデータ編集処理される前
の図1(A)のキーオンイベントデータのベロシティの
値よりも1〜2程度大きくなっている。しかしながら、
この程度のベロシティ値の誤差は人間の耳に与える影響
は小さいので、ほとんど無視できる範囲の誤差であると
言える。また、図1(G)のキーオンイベントデータに
基づいて、図1(H)のような電子署名情報(著作権表
示データ)が再現されることになる。このようにして修
復された電子署名情報を図示していない表示装置などで
表示する。
【0058】なお、上述の第1の実施の形態では、ベロ
シティに1ビット、キーコードに3ビットの付属情報を
割り当てる場合について説明したが、これ以外のビット
の組み合わせでもよいことはいうまでもない。例えば、
ベロシティとキーコードにそれぞれ2ビットの付属情報
を割り当ててもよいし、ベロシティのみに4ビットの付
属情報を割り当ててもよい。上述の第1の実施の形態で
は、ノート方向を8等分、ベロシティ方向を2等分して
4ビット構成の付加情報を記録する場合について説明し
たが、ノート方向及びベロシティ方向の分割数を任意に
設定することにより、付加情報量を増やすことが可能で
ある。例えば、ノート、ベロシティの両方とも16等分
すれば、1キーオンイベントに8ビット構成の付加情報
を付加することもでき、アスキーコードの1バイトなら
ば1イベントのキーオンで表現することも可能となる。
なお、この場合には、キーコード差分値レジスタdke
y及びベロシティ差分値レジスタdvelの値が4以下
でないと、そのキーオンイベントには付加情報を割り当
てることができなくなるという制限が生じる。従って、
予めキーコード差分値及びベロシティ差分値の発生頻度
を取得し、それに応じて最も沢山の付属情報を埋め込む
ことが可能な分割数を選択するようにしてもよい。ま
た、上述の第1の実施の形態では、図5に示すような関
係を演算式によって形成する場合について説明したが、
予め図5のような関係となるようなテーブルを作成して
おき、各値をテーブル変換することによって、所定の値
が求まるようにしてもよい。この場合には、図5のよう
に付属情報が規則正しく並んでいなくても、ランダムに
配列してあってもよいことになる。
【0059】上述の第1の実施の形態では、フロッピー
ディスクドライブ24から読み出されたMIDIデータ
においてそのヘッダ情報の一部である電子署名すなわち
著作権表示データを比較的大きなデータ単位でキーオン
イベントデータ中に分散して記憶すると共にMIDIフ
ォーマットを維持したまま暗号化処理を施す(電子透し
を施す)という場合について説明した。これだと、キー
オンイベントデータの中にはそのキーコード及びベロシ
ティの内容がほとんど書き換えられるものが出てくるの
で、所定のMIDIデータ修復処理を行わずにMIDI
データ再生処理を行っても再生される楽音は、全くデタ
ラメなものとなってしまう。この点に鑑みて、次に説明
する第2の実施の形態では、上記とは異なるやり方で
「電子透し」を施すようにしている。この第2の実施の
形態では、MIDIデータの最初の部分に、複数の暗号
化処理の中のどの暗号化処理が施されたのかを示すスク
ランブルデコードデータを埋め込み、そこには暗号化処
理を行わずに、通常のMIDIデータの再生を行えるよ
うにし、残りのMIDIデータ部分にスクランブルデコ
ードデータに対応したスクランブル処理を行い、MID
Iデータの再生を行うことができないようにしている。
【0060】図7は、MIDIデータ中に埋め込まれる
スクランブルデコードデータの内容を示す図である。こ
のスクランブルデコードデータは2バイト構成のデータ
であり、第1バイト目の上位4ビットはそのアルゴリズ
ムを示し、下位4ビットはスクランブル処理されるイベ
ント数すなわちカウント数を示し、第2バイト目の8ビ
ットはそのアルゴリズムに対応したバリューを示す。こ
こで、アルゴリズムの種類としては、キーオンデータの
ノート番号を変更するというもの、キーオンデータのノ
ートとベロシティを入れ替えるというもの、インターバ
ルデータを変更するというもの、キーオンデータのチャ
ンネルデータを変更するというものなどがある。カウン
ト数は、前述のようにASCIIの2文字分すなわち1
6ビット分のデータを作成するのに必要な数のキーオン
イベントデータの先頭からいくつに対してスクランブル
処理を行うのかを示すものである。
【0061】上述の第1の実施の形態の場合には、1つ
のキーオンイベントデータに4ビット分のデータを埋め
込むことができたので、2つのキーオンイベントデータ
にASCIIの1文字分の付属情報を埋め込むことがで
きたが、今回の第2の実施の形態では、1つのキーオン
イベントデータに1ビット分のデータしか埋め込めない
場合について説明するので、修正するイベント数の最大
値は16となる。バリューは対応するアルゴリズムによ
って異なるものであり,例えば、キーオンデータのノー
ト番号を変更するというアルゴリズムの場合には、その
変更する度合いすなわちトランスポーズ値(修正ノート
値)であり、インターバルデータを変更するというアル
ゴリズムの場合には、その変更する修正値であり、キー
オンデータのチャンネルデータを変更する場合には、そ
の修正チャンネル値である。このように全部で16種類
のアルゴリズムが規定されているものする。なお、この
16種類のアルゴリズムの中の一つとして、前述の第1
の実施の形態に係るようなスクランブル処理が存在して
もよいことはいうまでもない。
【0062】図8は、電子楽器1が電子情報処理システ
ムとして動作する場合のMIDI編集処理の別の一例と
なるMIDI編集処理2を示すフローチャート図であ
る。まず、この場合には、電子楽器1は、フロッピーデ
ィスクドライブ24から読み出したMIDIデータにそ
のヘッダ情報の一部である電子署名すなわち著作権表示
データを分散して記憶すると共に前述の16ビット構成
のスクランブルデコードデータを記憶する。まず、ステ
ップ81では、MIDIデータ列内に分散して書き込ま
れるべきスクランブルの内容を決定する。すなわち、図
8のどのアルゴリズムに基づいてスクランブル処理を行
うのかがパネルスイッチ2Eによって予め設定されるも
のとする。スクランブルの内容がステップ81で決定し
たので、今度はステップ82でそのスクランブルのデコ
ードデータ列を得る。例えば、パネルスイッチ2Eによ
って、第5番目のアルゴリズムが選択された場合には、
そのアルゴリズムの種類を示すデータ『0101B』
と、そのアルゴリズムによって修正されるカウント数
『1001B』とからなる8ビット構成のデータ列がス
クランブルデコードデータ列としてMIDIデータ列内
に分散して記録されるようになる。
【0063】次に、ステップ83では、ステップ82で
得られたスクランブルデコードデータ列の1バイト分を
バイトレジスタBRに格納する。そして、ステップ84
では、このバイトレジスタBRに格納されたスクランブ
ルデコードデータの各ビットを反転して、別の8ビット
構成のビット列を作成する。例えば、スクランブルデコ
ードデータ列が図12(F)に示すように『01011
001B』のような場合には、ステップ84のデータ変
換すなわちビット反転によって、図12(E)のような
ビット列『10100110B』になる。次に、ステッ
プ85では、MIDIデータ列(Standard M
IDIFile:SMF)の中からキーオンイベントデ
ータやプログラムチェンジデータやコントロールチェン
ジデータなどの各種のMIDIデータを順次取り出す。
すなわち、MIDIデータ列は基本的にはキーオンステ
ータスバイト、キーコードバイト、ベロシティバイトか
らなるキーオンイベントデータやこれ以外のプログラム
チェンジイベントデータやコントロールチェンジイベン
トデータなどから構成されているので、ステップ85で
は、このようなMIDIデータを順番に取り出す。
【0064】ステップ86では、取り出されたMIDI
データがキーオンイベントデータKONであるかどうか
を判定し、キーオンイベントデータ(YES)の場合は
次のステップ87に進み、そうでない(NO)の場合は
ステップ8Dに進む。従って、ステップ85で取り出さ
れたMIDIデータがキーオンイベントデータの場合に
は、図12(A)のようなキーオンイベントデータから
なるMIDIデータ列SMF1が得られることになる。
このキーオンイベントデータのMIDIデータ列SMF
1はデュレーションタイムDと、キーオンイベントデー
タとの組合せで構成される。ステップ87では、キーオ
ンイベントデータの中の各バイトのデータをそれぞれ対
応するレジスタa,b,cに格納する。すなわち、キー
オンイベントデータの中のキーオンステータスバイトの
中のチャンネル番号をチャンネルレジスタaに、次の第
1のデータバイト(キーコードバイト)の中のキーコー
ドをキーコードレジスタbに、第2のデータバイト(ベ
ロシティバイト)の中のベロシティをベロシティレジス
タcにそれぞれ格納する。
【0065】ステップ88では、ステップ84で作成さ
れたビット列の先頭から1ビット取り出して、それを第
1のビットフラグBF1に格納する。次のステップ89
では、ステップ87の各レジスタa,b,cの格納値を
所定の関数に従って演算し、その演算結果によって得ら
れたビットデータを反転して、第2のビットフラグBF
2に格納する。この実施の形態では、各レジスタa,
b,cの値の合計値のモジュロ2を所定の関数とする。
すなわち、関数f1(a,b,c,)=(a+b+c)
mod2とする。例えば、図12(A)のようなキーオ
ンイベントMIDIデータ列SMF1の場合には、8つ
のキーオンイベントデータでスクランブルデコードデー
タのアルゴリズム及びカウント数に相当するデータが作
成される。まず、各キーオンイベントデータの所定の関
数f1(a,b,c)で演算すると、図12(B)のよ
うになる。すなわち、(a+b+c)の値が偶数なら
『0』、奇数なら『1』となる。そして、これらの反転
ビットが第2のビットフラグBF2に格納され、図12
(C)のようになる。
【0066】ステップ8Aでは、ステップ88及びステ
ップ89で得られた第1のビットフラグBF1と第2の
ビットフラグBF2とが等しいかどうかを判定し、等し
い(YES)場合には次のステップ8B及びステップ8
Cの処理を行い、等しくない(NO)場合はステップ8
Eにジャンプする。ステップ8Bでは、第1のビットフ
ラグBF1と第2のビットフラグBF2とが等しいと判
定されたので、ベロシティレジスタcの値すなわちベロ
シティデータの最下位ビットに『1』を加算する。そし
て、ステップ8Cで、そのレジスタcの値に基づいてM
IDIデータ列中のキーオンイベントデータを構成する
ベロシティの値を更新する。すなわち、ベロシティの値
を1だけ増加する。例えば、図12の場合には、第1の
ビットフラグBF1と第2のビットフラグBF2との3
番目、5番目、6番目及び7番目がそれぞれ等しいと、
ステップ8Aで判定されるので、MIDIデータ列中の
3番目、5番目、6番目及び7番目のキーオンイベント
データのベロシティの値が『1』だけ増加される。すな
わち、3番目のキーオンイベントデータのベロシティ値
『63』が『64』になり、5番目のキーオンイベント
データのベロシティ値『78』が『79』になり、6番
目のキーオンイベントデータのベロシティ値『91』が
『92』になり、7番目のキーオンイベントデータのベ
ロシティ値『42』が『43』になる。
【0067】ステップ8Dでは、ステップ86又はステ
ップ8AでNOと判定された場合又はステップ8Cの処
理を終えた場合に行われる処理であって、ステップ85
〜ステップ8Cまでの処理を1巡回処理とした場合にこ
の1巡回処理が8回分すなわち8ビット分行われたかど
うかを判定し、8回分行われた(YES)場合には、次
のステップ8Eに進み、そうでない(NO)の場合は、
ステップ85にリターンし、次の1ビットに対してステ
ップ85〜ステップ8Cの処理を行う。ステップ8Eで
は、ステップ83〜ステップ8Dまでの処理を1巡回処
理とした場合にその1巡回処理がスクランブルデコード
データの構成バイト数だけ行われたかどうかを判定し、
行われた(YES)場合には、次のステップ8Fに進
み、そうでない(NO)場合は、ステップ83にリター
ンし、スクランブルデコードデータの次の1バイトのバ
リューに対してステップ83〜ステップ8Dの処理を行
う。
【0068】ステップ8Fでは、ステップ81で選択さ
れたスクランブルの内容に応じて、MIDIデータ列の
後半部分にスクランブル処理を施す。例えば、前述のス
クランブルデコードデータの埋め込み終了後のキーオン
データに対してスクランブル処理を行うようにしてもよ
いし、スクランブルデコードデータの埋め込み終了後、
所定数のキーオンデータ経過後にスクランブル処理を行
うようにしてもよい。また、スクランブルデコードデー
タの埋め込みを複数回行い、その後にスクランブル処理
を行うようにしてもよい。この場合に、取り出されたM
IDIデータがプログラムチェンジイベントPCMの場
合には、スクランブルの内容をランダムに変更して、ス
クランブルデコードデータの埋め込み処理及びスクラン
ブルの内容に応じたMIDIデータ列の編集処理を行う
ようにしてもよい。プログラムチェンジイベントはノー
トオンイベントなどに比べて、比較的低頻度で発生し、
プログラムチェンジ後は、楽器が変わることを意味する
ので、その位置を始点としてスクランブルの内容を変更
し、そのスクランブルデコードデータを埋め込み、スク
ランブル処理を行うことによって、一定の楽器について
はスクランブルの掛からない演奏を行うことができ、あ
る所定時間経過後に演奏にスクランブルをかけることが
できる。
【0069】次に、図8のMIDI編集処理2によって
付与されたスクランブルデコードデータの修復処理につ
いて説明する。なお、スクランブル処理の解除について
は、アルゴリズムに応じて逆の処理を施せばいいので、
ここではその説明は省略する。図9は、電子楽器1がM
IDIデータ修復装置して動作する場合の一例となるM
IDIデータ修復処理2を示すフローチャート図であ
る。この場合には、フロッピーディスクドライブ24か
ら読み出されたMIDIデータのベロシティバイト部分
にそのヘッダ情報の一部である電子署名すなわち著作権
表示データが分散記録されているとともにスクランブル
デコードデータが記録されているものとする。以下の実
施の形態では、このスクランブールデコードデータを検
出して、それに基づいてMIDIデータを修復するまで
の動作について説明する。
【0070】まず、ステップ91では、デコードデータ
格納レジスタDECODEにナルデータを格納する。す
なわち、デコードデータ格納レジスタDECODEの内
容をリセットする。ステップ92では、スクランブルデ
コードデータを検出すべきMIDIデータ列、すなわち
図8のMIDIデータ編集によってスクランブルデコー
ドデータの付与されたMIDIデータ列を取り出す。そ
して、次のステップ93で、バイトレジスタBRとビッ
トカウンタBCNの値をリセットする。
【0071】次に、ステップ94では、MIDIデータ
列(Standard MIDIFile:SMF)の
中から順次キーオンイベントデータやプログラムチェン
ジデータやコントロールチェンジデータなどのデータを
取り出す。ステップ95では、取り出されたMIDIデ
ータがキーオンイベントデータKONであるかどうかを
判定し、キーオンイベントデータ(YES)の場合は次
のステップ96に進み、そうでない(NO)場合はステ
ップ9Cに進む。従って、ステップ94で取り出された
MIDIデータがキーオンイベントデータの場合には、
図12(G)のようなキーオンイベントMIDIデータ
列SMF2が作成されることになる。なお、図12
(G)のキーオンイベントデータ列は先に電子署名の付
与された図12(D)のキーオンイベントデータ列SM
F2と同じものである。
【0072】ステップ96では、キーオンイベントデー
タの中の各バイトのデータをそれぞれ対応するレジスタ
a,b,cに格納する。すなわち、キーオンイベントデ
ータの中のキーオンステータスバイトの中のチャンネル
番号をチャンネルレジスタaに、次の第1のデータバイ
ト(キーコードバイト)の中のキーコードをキーコード
レジスタbに、第2のデータバイト(ベロシティバイ
ト)の中のベロシティをベロシティレジスタcにそれぞ
れ格納する。ステップ97では、バイトレジスタBRの
値を2倍、すなわち、シフトして、その最下位ビットに
関数f1(a,b,c,)=(a+b+c)mod2の
反転値を加算する。ステップ98では、ビットカウンタ
BCNの値を1だけインクリメントする。ステップ99
では、ビットカウンタBCNの値が『8』になったかど
うかを判定し、YESの場合は次のステップ9Aに進
み、NOの場合はステップ9Cにジャンプする。
【0073】例えば、図12(G)のようなキーオンイ
ベントのMIDIデータ列SMF2の場合には、8つの
キーオンイベントデータで1バイト分のスクランブルデ
コードデータが作成される。まず、各キーオンイベント
データの所定の関数f1(a,b,c)で演算すると、
図12(H)のようになる。すなわち、(a+b+c)
の値が偶数なら『0』、奇数なら『1』となる。そし
て、これらの反転ビットは図12(J)のようになり、
その値がバイトレジスタBRを順次シフトしていくた
め、最終的には図12(J)のような1バイト分のスク
ランブルデコードデータが形成される。このようにし
て、得られた図12(J)のデータは図12(F)と同
じである。すなわち、MIDIデータのベロシティバイ
トに分散して書き込まれたスクランブルデコードデー
タ、すなわち図12(F)のようなデータが図12
(J)のように忠実に再現されたことになる。
【0074】ステップ9Aでは、バイトレジスタBRの
格納値をデコードデータ格納レジスタDECODEに追
加記憶する。ステップ9Bで、バイトレジスタBRとビ
ットカウンタBCNの値をリセットする。ステップ9C
では、ステップ95でNOと判定された場合、又はステ
ップ9Bの処理を終了した場合に行われる処理であっ
て、ステップ94〜ステップ9Bの処理がスクランブル
デコードデータに対応する2バイト分終了したかどうか
の判定を行い、この判定結果が2バイト分終了(YE
S)の場合には、次のステップ9Dに進み、終了してい
ない(NO)場合にはステップ94にリターンし、一連
の処理を繰り返し実行する。ステップ9Dでは、スクラ
ンブルデコードデータの内容に基づいてスクランブル処
理されたMIDIデータの修復処理を行う。
【0075】なお、上述の実施の形態では、MIDIデ
ータ列からキーオンイベントデータを順番に取り出し
て、それに対して順番にスクランブルデコードデータを
格納する場合について説明したが、これだと、1つのM
IDIデータ列に対して1種類のスクランブル処理しか
行えない。そこで、チャンネル単位毎に異なるスクラン
ブル処理を行えるようにした第3の実施の形態について
説明する。図10は、電子楽器1がMIDIデータ編集
装置して動作する場合の一例となるMIDIデータ編集
処理3を示すフローチャート図である。まず、この場合
は、電子楽器1は、フロッピーディスクドライブ24か
ら読み出したMIDIデータ中に前述のようなスクラン
ブルデコードデータと共にヘッダ情報の一部である電子
署名すなわち著作権表示データを併せて分散記録する。
【0076】まず、ステップ101では、MIDIデー
タ列内に分散して書き込まれるべき電子署名(著作権表
示データ)の内容を決定するとともに、各チャンネルに
対応したスクランブルデコードデータの内容を決定す
る。例えば、著作権表示データとして『COPYRIG
HT△YMH△1996』のような文字をMIDIデー
タ列内に分散して書き込む場合には、これらの文字列を
パネルスイッチ2Eを用いて決定する。ここで、△は空
白を意味するものとする。書き込むべき電子署名すなわ
ち文字列及びスクランブルデコードデータの内容が決定
したので、今度はステップ32で、その電子署名及びス
クランブルデコードデータに関するデータ列を得る。例
えば、パネルスイッチ2Eによって『COPYRIGH
T△YMH△1996』が入力された場合には、それを
ASCIIの文字符号のデータ列に変換する。この場合
は、『C』=『43H』、『O』=『4FH』、『P』
=『50H』、『Y』=『59H』、『R』=『52
H』、『I』=『49H』、『G』=『47H』、
『H』=『48H』、『T』=『54H』、『△』=
『20H』、『Y』=『59H』、『M』=『4D
H』、『H』=『48H』、『△』=『20H』、
『1』=『31H』、『9』=『39H』、『9』=
『39H』、『6』=『36H』からなる一連のASC
IIのデータ列が得られることになる。
【0077】これらの文字符号のデータ列は前述の第2
の実施の形態において説明した、スクランブルデコード
データと同様の手法でMIDIデータの中に埋め込むこ
とができることはいうまでもない。従って、以下の処理
では、これらのASCIIのデータ列をスクランブルデ
コードデータ列の埋め込み法と同様のやり方で、MID
Iデータ列中に分散記録するものとする。すなわち、次
のステップ103では、図8のステップ83〜ステップ
8Fと同様の処理をそのチャンネルに対してそれぞれ行
う。このとき、ステップ89の所定の関数に従った演算
処理をそのチャンネルに対してそれぞれ異ならせて行
う。例えば、ステップ89では、関数f1(a,b,
c,)=(a+b+c)mod2を第2のビットフラグ
BF2に格納しており、これを第1の関数処理とする。
そして、この第1の関数処理に加えて、次の第2、第3
及び第4の関数処理の中から、適当なものを各チャンネ
ル毎に使い分けるようにする。第2の関数処理は、f2
(a,b,c)=(a+c)mod2、第3の関数処理
は、f3(a,b,c)=(b+c)mod2、第4の
関数処理は、f4(a,b,c)=(c)mod2、で
ある。
【0078】ステップ103では、これらの第1から第
4までの関数処理をMIDIチャンネル毎に選択的に切
り換えて、図8のステップ83〜ステップ8Fと同様の
処理を行い、それぞれのチャンネル毎にその選択された
関数処理に従って変換された電子署名データ及びスクラ
ンブルデコードデータを付与する。このように、チャン
ネル毎に関数処理の内容を変更することによって、或る
チャンネルのデータを一度に変更するようなエディット
処理、例えばチャンネル情報の入れ替えやキーコードの
シフトなどといったものが行われた場合でも、エディッ
トによって変更される特定のチャンネルのデータに関係
しない関数を利用している別のチャネルのデータから電
子署名データやスクランブルデコードデータを復元する
ことができる。
【0079】次に、図10のMIDIデータ編集処理3
によって編集されたMIDIデータを修復するMIDI
データ修復処理3について図11を用いて説明する。図
11は、電子楽器1がMIDIデータ修復装置として動
作する場合の一例であるMIDIデータ修復処理3を示
すフローチャート図である。この場合、フロッピーディ
スクドライブ24から読み出されたMIDIデータの各
チャンネル毎に所定の関数処理(前述の第1から第4ま
でのいずれかの関数処理)によって、ベロシティバイト
部分にそのヘッダ情報の一部である電子署名(著作権表
示データ)及びスクランブルデコードデータが分散記録
されているものとする。従って、以下の実施の形態で
は、分散記録された著作権表示データをチャンネル毎に
所定の関数処理によって検出して、それをモニタなどに
表示したり、スクランブルデコードデータに基づいてM
IDIデータを修復するという動作を行う場合について
説明する。
【0080】まず、ステップ111では、電子署名を検
出すべきMIDIデータ列、すなわち図10のMIDI
データ編集処理3によって各チャンネル毎に所定の関数
処理に応じて電子署名データ及びスクランブルデコード
データの付与されたMIDIデータ列を取り出す。そし
て、次のステップ112で、チャンネルカウンタをリセ
ットし、ステップ113で関数カウンタをリセットす
る。このチャンネルカウンタと関数カウンタは、後の処
理で、各チャンネルに対して各関数処理を施すために利
用されるものである。例えば、MIDIチャンネルが1
6チャンネル相当の場合には、チャンネルカウンタは0
から15までを巡回的にカウントするように処理され
る。また、関数カウンタは、前述のように関数処理が4
種類の場合には、0〜3までも巡回的にカウントするよ
うに処理される。関数カウンタが『0』の場合は第1の
関数処理f1(a,b,c,)=(a+b+c)mod
2を、『1』の場合は第2の関数処理f2(a,b,
c)=(a+c)mod2を、『2』の場合は第3の関
数処理f3(a,b,c)=(b+c)mod2を、
『3』の場合は第4の関数処理f4(a,b,c)=
(c)mod2を意味する。
【0081】ステップ114では、チャンネルカウンタ
の値に該当するチャンネルについて、関数カウンタの値
に該当する関数処理を用いて図9のステップ91からス
テップ9Cまでと同様にして電子署名データ及びスクラ
ンブルデコードデータの検出処理を行う。ステップ11
5では、検出された電子署名データ列に有意な部分があ
るかどうかの判定を行う。ここで有意な部分とは、AS
CIIの文字データによって構成される『COPYRI
GHT』なる署名データの一部分である。従って、ステ
ップ115では、図9の処理によってデコードデータ格
納レジスタDECODEに順次追加されたASCIIの
文字データによって構成された文字列の中に『COPY
RIGHT』なる文字列データが存在するかどうかを判
定することになる。ステップ115の判定の結果、デコ
ードデータ格納レジスタDECODE内に有意な部分が
存在しない(NO)と判定された場合には、次のステッ
プ116に進み、関数カウンタを1だけインクリメント
する。そして、次のステップ117で、全ての関数処理
に対してステップ114及びステップ115の処理すな
わち署名データ及びスクランブルデコードデータの抽出
処理が行われたかどうかの判定を行い、行われた(YE
S)場合には次のステップ118に進み、そうでない
(NO)場合はステップ114にリターンし、次の関数
処理についてステップ114及びステップ115の処理
を行う。逆に、ステップ115の判定の結果、デコード
データ格納レジスタDECODE内に有意な部分が存在
した場合には、ステップ119に進み、スクランブルデ
コードデータの内容に基づいてMIDIデータの修復を
行う。すなわち、ステップ115における判定がYES
であったということは、検出されたスクランブルデコー
ドデータも有意なものだと判断できるので、そのスクラ
ンブルデコードデータに基づいて元のMIDIデータを
修復する。なお、検出された電子署名データをモニタ上
に表示するようにしてもよいことはいうまでもない。
【0082】ステップ117でYESと判定されたとい
うことは、全てのMIDIチャンネルに対して、全ての
関数処理を用いて電子署名データ及びスクランブルデコ
ードデータの抽出処理を行った結果、データ列に有意な
部分が存在しなかったということだから、ステップ11
8では、その結果として『電子署名データ及びスクラン
ブルデコードデータの検出失敗』などの文字をモニタ上
に表示する。ステップ11Aでは、チャンネルカウンタ
を1だけインクリメントする。そして、次のステップ1
1Bで全てのチャンネルに対してステップ114及びス
テップ115の処理すなわち電子署名データ及びスクラ
ンブルデコードデータの抽出処理が行われたかどうかの
判定を行い、行われた(YES)場合には処理を終了
し、そうでない(NO)場合はステップ113にリター
ンし、次のMIDIチャンネルについてステップ113
〜ステップ115の処理を行う。
【0083】なお、上述の実施の形態では、署名データ
やスクランブルデコードデータをMIDIデータのベロ
シティ部分に分散記録する場合について説明したが、こ
れは一例であり、これ以外の著作者名、曲の題名、画像
/映像の題名などに関する文字データやデータ形式に関
するデータやその他の種々のデータを分散記録してもよ
いことはいうまでもない。また、ベロシティ部分以外
の、デュレーションタイム(待ち時間)データに分散記
録してもよいし、その両方に分散記録するようにしても
よい。両方に分散記録する場合、その厳密性すなわち分
散記録することによってそのデータの内容が変更する度
合いに応じて、分散記録する箇所を適宜切り換えるよう
にしてもよい。すなわち、デュレーションタイムデータ
の短い領域で、そのデュレーションタイムデータに分散
記録すると、それによる変動の割合(厳密性)が大きく
なるので、好ましくないが、デュレーションタイムデー
タが比較的大きい領域では、逆の関係にあるので、分散
記録しても影響は少ない。同じく、ベロシティ部分に記
録する場合でも、ベロシティの値の小さい領域て、その
ベロシティ部分に分散記録すると、それによる変動の割
合(厳密性)が大きくなるので、好ましくないが、ベロ
シティの値の大きい領域では、分散記録しても影響は少
ない。従って、これらを適宜考慮して所定値よりも大き
いベロシティに種々のデータを分散記録するようにして
もよい。
【0084】また、上述の実施の形態では、MIDIデ
ータに分散記録する場合について説明したが、これ以外
の波形データやシーケンスデータ、ディジタル記録音声
データ、画像データ、動画データ、レジストレーション
(電子楽器の設定記録)データなどに分散記録するよう
にしてもよい。波形データに分散記録する場合には、所
定の関数処理としてその波形データ(wave_dat
a)そのもののモジュロ2、すなわち、f1(wave
_data)=wave_data mod2としても
よい。また、波形データの値とそのポイントデータとを
用いて、両データの和のモジュロ2、すなわち、f2
(wave_data,sample_point)=
(wave_data+sample_point)
mod2としてもよい。図10及び図11の実施の形態
では、各(論理)チャンネル毎に関数処理の種類を変更
して、署名データを検出する場合について説明したが、
プログラムチェンジデータの検出タイミング毎に関数処
理の種類を変更するようにしてもよい。この場合には、
検出されたデータ列に有意な部分が存在するかどうかの
判定処理も各プログラムチェンジデータの検出タイミン
グ毎に行う必要がある。
【0085】上述の実施の形態では、検出された電子署
名データをモニタ上に表示する場合について説明した
が、検出側において、電子署名データが存在しない場合
や電子署名データが完全に復旧できない場合(各論理チ
ャンネルにおいて、電子署名データが検出できるチャン
ネルと検出できないチャンネルが混在する場合)には、
データの再生を中止するようにしてもよい。また、その
検出側の電子楽器やコンピュータなどがネットワークに
接続されている場合には、そのネットワーク上に不正に
エディットされたデータが存在することを送信し、それ
をホストコンピュータ側で検出することができるように
してもよい。上述の実施の形態では、電子楽器がMID
Iデータ編集装置又はMIDIデータ修復装置として動
作する場合について説明したが、同様の処理を行うハー
ドウェアを別途構成するようにしてもよいし、ソフトウ
ェア、DSPとマイクロプログラムなどで構成するよう
にしてもよい。また、このようなMIDIデータ編集装
置又はMIDIデータ修復装置をフロッピーディスクド
ライブや通信インターフェイスなどに予め内蔵しておい
て、データの入出力の段階で強制的に電子署名データを
付与したり、検出したりするようにしてもよい。
【0086】上述の実施の形態では、電子署名データや
スクランブルデコードデータを付与する場合を説明した
が、電子署名データやスクランブルデコードデータの付
与されたデータを、フロッピーディスクやコンパクトデ
ィスクなどで供給するようにしてもよいし、ネットワー
クを通じて電子的に供給するようなデータ形態を採用し
てもよい。図8のステップ8Bでは、ベロシティデータ
の値を1だけインクリメント処理する場合について説明
したが、デクリメント処理してもよいし、これらの処理
を適当なタイミング(所定データ数毎とか)で交互に行
うようにしてもよい。上述の実施の形態では、所定の関
数処理の後にビット反転処理を行う場合について説明し
たが、これは行わなくてもよい。また、ビット反転処理
の他にも、上位ビットと下位ビットを入れ替えるとか、
AND、OR、XORなどの論理演算処理を施すとか、
種々の処理を加えるようにしてもよいことはいうまでも
ない。また、適宜の暗号化処理を施すようにしてもよ
い。例えば、上述の第1から第4までの関数処理の結果
を適宜組み合わせてもよいし、前回の関数処理の結果を
次の関数処理に組み合わせて演算するようにしてもよ
い。なお、これらの各処理はある程度高速に行うことが
でき、変換後、逆変換によりもとに戻せるものであれ
ば、これ以外の方法でもよいことはいうまでもない。
【0087】上述の実施の形態では、プログラムチェン
ジデータの検出タイミング毎に新たに電子署名データや
スクランブルデコードデータの付与処理を行う場合につ
いて説明したが、これに限らず、小節単位(例えば8小
節毎など)データの検出タイミング毎に行うようにして
もよい。また、波形データに分散記録する場合には、所
定のサンプル数毎や所定のゼロクロス毎に新たに署名デ
ータの付与処理を行うようにしてもよい。ゼロクロス
(波形の値の符号が変わるタイミング)は波形エディッ
トの際の基準地点と考えられるからである。また、上述
の実施の形態では、電子署名データや題名などのような
付属情報を記録する場合について説明したが、MIDI
データと波形データを合わせて記録する場合に、MID
Iデータにその波形データの一部を記録するようにして
もよいし、波形データにMIDIデータの一部を合わせ
て記録するようにしてもよい。
【0088】なお、上述の実施の形態では、署名データ
をMIDIデータのベロシティ部分に分散記録する場合
について説明したが、これは一例であり、これ以外の著
作者名、曲の題名(曲名)、画像/映像の題名などに関
するテキスト情報や、そのデータ形式に関する情報やそ
の他の種々の電子情報(曲の解説、著作者に関する情
報、著作年、歌詞、ニュース、ハードID(機種名、使
用OS)などの各種情報)を分散記録してもよいことは
いうまでもない。この場合には、図8から図11までの
各処理における電子署名をこれらの各種電子情報に置き
換えて処理すればよい。このようにして処理された電子
情報をモニタ画面上に表示するようにしてもよい。な
お、このとき、付属情報を一連の纏まったファイル情報
として検出してもよいし、自動演奏中にMIDIデータ
から検出される電子情報の流れとして認識し、それをリ
アルタイムに画面表示したりしてもよい。この場合、付
属情報が画像情報の場合には、MIDIデータによって
リアルタイムに画像が描画されるようになり、テキスト
情報の場合には、ニュース配信などのようなリアルタイ
ムな情報表示を行うことが可能となる。また、情報を付
加するための技術がシンプルであるため、オンデマンド
などで電子情報を埋め込むことができるので、TV放送
などのようなリアルタイムな描画が可能となる。また、
インターネットや電子メールなどのIDやパスワードの
配信にも利用することができる。
【0089】なお、上述の第1の実施の形態、すなわち
図3のMIDIデータ編集処理1では、ステップ38に
おいて、前回のキーオンイベントデータのキーコードを
格納した前回値レジスタb0と今回のキーオンイベント
データのキーコードを格納したキーコードレジスタbと
の間の差分を取り、それをキーコード差分値レジスタd
keyに格納すると共に、前回のキーオンイベントデー
タのベロシティを格納した前回値レジスタc0と今回の
キーオンイベントデータのベロシティを格納したベロシ
ティレジスタcとの間の差分を取り、それをベロシティ
差分値レジスタdvelに格納している。その関係上、
ステップ3Aからステップ3Gまでの処理によって変換
された新しいキーコードの値b1及びベロシティの値c
1は、常に前回のキーオンイベントにおけるキーコード
及びベロシティとの間に密接な関係を有することにな
る。図4のMIDIデータ修復処理1でも、前回値レジ
スタb0とキーコードレジスタbとに基づいて修復キー
コードレジスタb2の値を求め、前回値レジスタc0と
ベロシティレジスタcとに基づいて修復ベロシティレジ
スタc2の値を求めている。
【0090】従って、図3のMIDIデータ編集処理後
にMIDIデータのイベントデータ(キーコード又はベ
ロシティの値)が修正されると、それ以降に修復処理さ
れた修復キーコード及び修復ベロシティの値が元のデー
タと全て異なってしまうということが起こる。これはデ
ータを改竄した場合にそれ以降のデータを全て無効にす
ることができるという点では優れているが、途中のイベ
ントデータにエラーが発生し、キーコード又はベロシテ
ィが変化した場合、それ以降のデータを有効に修復する
ことができなくなるという問題を有する。
【0091】そこで、図3のMIDIデータ編集処理1
及び図4のMIDIデータ修復処理1を図13のMID
Iデータ編集処理4及び図14のMIDIデータ修復処
理4のように変更することによって、イベントデータが
途中で書き換えられたりなどして変化した場合でも、そ
れ以降のデータを有効に修復することができるようにし
た。図13のMIDIデータ編集処理4において図3の
MIDIデータ編集処理1と同じものには同一の符号が
付してあるので、その説明は省略する。図13のMID
Iデータ編集処理4が図3のMIDIデータ編集処理1
と異なる点は、図3のステップ39の処理が省略され、
ステップ38の前回値レジスタb0及びc0がステップ
138のように先頭値レジスタbH及びcHに変更され
た点である。ステップ138では、先頭のキーオンイベ
ントデータのキーコードを格納した先頭値レジスタbH
と今回のキーオンイベントデータのキーコードを格納し
たキーコードレジスタbとの間の差分を取り、それをキ
ーコード差分値レジスタdkeyに格納すると共に、先
頭のキーオンイベントデータのベロシティを格納した先
頭値レジスタcHと今回のキーオンイベントデータのベ
ロシティを格納したベロシティレジスタcとの間の差分
を取り、それをベロシティ差分値レジスタdvelに格
納する。そして、このキーコード差分値レジスタdke
yの格納値とベロシティ差分値レジスタdvelの格納
値に基づいて新たなキーコードb1及びベロシティc1
を算出している。
【0092】図14のMIDIデータ修復処理4におい
て図4のMIDIデータ修復処理1と同じものには同一
の符号が付してあるので、その説明は省略する。図14
のMIDIデータ修復処理4が図4のMIDIデータ修
復処理1と異なる点は、図4のステップ48の処理が省
略され、ステップ45及びステップ46の前回値レジス
タb0及びc0がステップ145及びステップ146の
ように先頭値レジスタbH及びcHに変更された点であ
る。すなわち、ステップ145では先頭値レジスタbH
とキーコードレジスタbとの値に基づいて修復キーコー
ドレジスタb2の値を求め、ステップ146では先頭値
レジスタcHとベロシティレジスタcとの値に基づいて
修復ベロシティレジスタc2の値を求めている。図13
及び図14のように変更することによって、先頭のイベ
ントデータの値に基づいてMIDIデータは編集され、
修復されるようになるので、途中のイベントデータが書
き換えられたり、エラーなどの発生によって変化した場
合でもそれ以降のデータを修復できなくなるというよう
なことは起こらず、エラーの発生したイベントデータ以
降も完全に修復することができるようになる。なお、上
述の説明では先頭のイベントデータの値に基づいてMI
DIデータを編集する場合について説明したが、予め任
意の値をヘッダに書き込んでおいて、その値に基づいて
MIDIデータを編集したり、修復したりするようにし
てもよい。また、その基準となるイベントデータの値を
任意のイベント(例えば1小節における先頭のイベン
ト)から取り込むようにしてもよい。
【0093】図3のMIDIデータ編集処理1及び図1
3のMIDIデータ編集処理4では、キーオンデータの
キーコード及びベロシティの内容がMIDIデータの先
頭から書き換えられてしまうので、MIDIデータ修復
処理を行わずにMIDIデータ再生処理を行った場合
に、再生された楽音は、全くデタラメなものとなってし
まい、その一部だけを試聴するというようなことができ
ない。そこで、図3の変更例として、図15のMIDI
データ編集処理5のように、ステップ3Bとステップ3
Cとの間に編集条件を判定するステップ3Jを挿入し、
特定の編集条件に合致した場合にMIDIデータにスク
ランブル処理を施すようにした。なお、図15と同様
に、図13の場合もステップ3Bとステップ3Cとの間
にステップ3Jを挿入すればよい。
【0094】例えば、ステップ3Jの編集条件として、
MIDIデータの演奏開始から所定時間(例えば30秒
などの時間)を経過したか否かを判定するように設定す
る。これによって、MIDIデータの最初の部分にはス
クランブル処理が施されなくなるので、その部分のMI
DIデータは通常のMIDIデータ再生処理によって再
生されるようになる。一方、所定時間経過後にMIDI
データを通常のMIDIデータ再生処理で再生しようと
しても、その部分にはスクランブル処理が施されている
ので、デタラメな楽音しか再生されなくなる。これによ
って、MIDIデータの最初の部分を通常のMIDIデ
ータ再生処理によって再生できる試聴可能なMIDIデ
ータとすることができ、それ以降の残りの部分を試聴不
可能なMIDIデータとすることができる。なお、この
編集条件は、外部から任意に設定可能であり、時間の他
にも、種々の条件を適宜組み合わせて適用してもよいこ
とは言うまでもない。例えば、発音されない時間が所定
時間以上になった場合とか、小節線データが所定数発生
した場合とかの条件を単独で適用したり、これらの条件
を種々組み合わせてもよいことはいうまでもない。
【0095】
【発明の効果】この発明によれば、音楽データ、映像デ
ータ又は波形データなど主要情報のデータフォーマット
を変更することなく所望の付属情報を付加することがで
きると共に結果的にこれらのデータに暗号化処理を施す
こととなり、この暗号を解読しない限り、これらの主要
情報や付属情報を再生して利用することができないとい
う効果がある。また、これまで説明した通りの作用・効
果を奏する。
【図面の簡単な説明】
【図1】 この発明に係る電子情報処理システムのMI
DIデータ編集処理1及びMIDIデータ修復処理1に
従ってどのようにデータが変換されるのか、その具体例
を示す図である。
【図2】 この発明に係る電子情報処理システムとして
動作する電子楽器の全体構成を示すブロック図である。
【図3】 図2の電子楽器が電子情報処理システムとし
て動作する場合のMIDIデータ編集処理1の一例を示
すフローチャート図である。
【図4】 図2の電子楽器が電子情報処理システムとし
て動作する場合のMIDIデータ修復処理1の一例を示
すフローチャート図である。
【図5】 縦軸にキーコードを割り当て、横軸にベロシ
ティを割り当て、各値の中間を原点とするような直交座
標系を構成した場合の付属情報とキーコード,ベロシテ
ィとの関係を示す概念図である。
【図6】 図5の付属情報とキーコード,ベロシティと
の間の詳細な関係を示す図である。
【図7】 MIDIデータ中に埋め込まれるスクランブ
ルデコードデータの内容の一例を示す図である。
【図8】 電子楽器が電子情報処理システムとして動作
する場合の別の一例となるMIDIデータ編集処理2を
示すフローチャート図である。
【図9】 電子楽器が電子情報処理システムとして動作
する場合の別の一例となるMIDIデータ修復処理2を
示すフローチャート図である。
【図10】 電子楽器が電子情報処理システムとして動
作する場合の別の一例となるMIDIデータ編集処理3
を示すフローチャート図である。
【図11】 電子楽器が電子情報処理システムとして動
作する場合の別の一例となるMIDIデータ修復処理3
を示すフローチャート図である。
【図12】 この発明に係る電子情報処理システムのM
IDIデータ編集処理2及びMIDIデータ修復処理2
に従ってどのようにデータが変換されるのか、その具体
例を示す図である。
【図13】 電子楽器が電子情報処理システムとして動
作する場合の別の一例となるMIDIデータ編集処理4
を示すフローチャート図である。
【図14】 電子楽器が電子情報処理システムとして動
作する場合の別の一例となるMIDIデータ修復処理4
を示すフローチャート図である。
【図15】 電子楽器が電子情報処理システムとして動
作する場合の別の一例となるMIDIデータ編集処理5
を示すフローチャート図である。
【符号の説明】
21…CPU、22…ROM、23…RAM、24…フ
ロッピーディスクドライブ、25…ハードディスクドラ
イブ、26…CD−ROMドライブ、27…通信インタ
ーフェイス、28…通信ネットワーク、29…サーバコ
ンピュータ、2A…MIDIインターフェイス、2B…
他のMIDI機器、2C…鍵盤、2D…押鍵検出回路、
2E…パネルスイッチ、2F…スイッチ検出回路、2G
…ディスプレイ、2H…表示回路、2J…音源回路、2
K…効果回路、2L…サウンドシステム、2M…データ
及びアドレスバス、2N…タイマ、2R…リボンコント
ローラ
フロントページの続き (56)参考文献 特開 平9−186603(JP,A) 特開 平5−199219(JP,A) Proceedings of 1994 IEEE Internationa l Conference on Im age Processing,Vo l.2,R.G.van Schynd el et al,”A Digita l Watermark”,p.86− 90,November 13−16,1994, Austin,Texas,U.S.A Proceedings of th e 1996 International Conference on Mul timedia Computing and Systems.Lauren ce Boney et al,”Di gital Watermarks f or Audio Signals”, p.473−480,June 17−23, 1996,Hiroshima,Japan Proceedings of Fi fth International Conference on Imag e Processing and I ts Applications,F. M.Boland et al,”Wa termarking Digital Images for Copyri ght Protection”,p. 326−330,4−6 July 1995,I EE Confenrence Pub lication No.410 (58)調査した分野(Int.Cl.7,DB名) G10H 1/00 - 7/12 G10K 15/02 H04L 9/00 - 9/38 G09C 1/00 - 5/00 G10L 19/00 IEEE/IEE Electroni c Library Online INSPEC(DIALOG) JICSTファイル(JOIS) WPI(DIALOG)

Claims (13)

    (57)【特許請求の範囲】
  1. 【請求項1】 それぞれ2以上のパラメータを含む複数
    のイベントデータで構成される第1の情報を入力するス
    テップと、 第2の情報を入力するステップと、 前記第1の情報から特定のイベントデータを取り出すス
    テップと、 前記第2の情報内から一部分とその一部分とは異なる他
    の部分とを取り出すステップと、 前記特定のイベントデータのうちの特定のパラメータを
    前記一部分に基づいて変更し、前記特定のイベントデー
    タのうちの特定のパラメータ以外のパラメータを前記他
    の部分に基づいて変更することにより前記第1の情報に
    前記第2の情報を分散して配置するステップと、 前記第2の情報が分散して配置された第1の情報を出力
    するステップとからなる電子情報処理方法。
  2. 【請求項2】 それぞれ2以上のパラメータを含む複数
    のイベントデータで構成される第1の情報を入力するス
    テップと、 第2の情報を入力するステップと、 前記第1の情報から音高を表わす音高パラメータを含む
    特定のイベントデータを取り出すステップと、 前記第2の情報から一部分を取り出すステップと、 前記第2の情報の一部分と前記特定のイベントデータの
    音高パラメータを使って新たな音高パラメータを作成
    し、該新たな音高パラメータを前記特定のイベントデー
    タのうちの音高パラメータに上書きすることにより、前
    記第1の情報に前記第2の情報を分散して配置すると共
    に第1の情報を暗号化するステップとからなる電子情報
    処理方法。
  3. 【請求項3】 複数のイベントデータで構成される第1
    の情報を入力するステップと、 情報の変更方法を表わす第2の情報を入力するステップ
    と、 前記イベントデータのうち少なくとも一部のイベントデ
    ータの内容を前記第2の情報に基づいて変更することに
    より前記第1の情報に前記第2の情報を分散して配置す
    るステップと、 前記第1の情報のうちの前記第2の情報が配置されてい
    ない部分を前記第2の情報が表わす変更方法で変更する
    ステップとからなる電子情報処理方法。
  4. 【請求項4】 それぞれ2以上のパラメータを含む複数
    のイベントデータで構成される第1の情報を入力するス
    テップと、 前記第1の情報から特定のイベントデータを取り出すス
    テップと、 前記特定のイベントデータのうちの特定のパラメータか
    ら第2の情報の一部分を検出すると共に、前記特定のイ
    ベントデータのうちの特定のパラメータ以外のパラメー
    タから前記一部分とは異なる第2の情報の他の一部分を
    検出することにより、第2の情報が分散して配置された
    第1の情報から該第2の情報を抽出するステップと、 前記抽出した第2の情報を出力するステップとからなる
    電子情報処理方法。
  5. 【請求項5】 それぞれ所定のパラメータを含む複数の
    イベントデータで構成される第1の情報を入力するステ
    ップと、 前記第1の情報から音高を表わす音高パラメータを含む
    特定のイベントデータを取り出すステップと、 前記特定のイベントデータのうちの音高パラメータから
    第2の情報の一部分を検出すると共に、前記音高パラメ
    ータの内容を所定の変更方法に基づいて変更することに
    より、第1の情報から第2の情報を検出すると共に、所
    定の変更方法に基づいて暗号化されている第1の情報を
    復号化するステップとからなる電子情報処理方法。
  6. 【請求項6】 複数のイベントデータで構成される第1
    の情報を入力するステップと、 前記イベントデータのうち少なくとも一部のイベントデ
    ータから、情報の変更方法を表わす第2の情報を検出す
    ると共に、前記一部のイベントデータとは異なる他のイ
    ベントデータを前記第2の情報に基づいて変更すること
    により、第2の情報が分散して配置された第1の情報か
    ら該第2の情報を抽出すると共に、該第2の情報に基づ
    いて暗号化されている第1の情報を復号化するステップ
    とからなる電子情報処理方法。
  7. 【請求項7】 請求項1乃至6のいずれかに記載の方法
    をコンピュータに実行させるためのプログラムを記憶し
    た機械読み取り可能な記憶媒体。
  8. 【請求項8】 それぞれ2以上のパラメータを含む複数
    のイベントデータで構成される第1の情報を入力する手
    段と、 第2の情報を入力する手段と、 前記第1の情報から特定のイベントデータを取り出す手
    段と、 前記第2の情報内から一部分とその一部分とは異なる他
    の部分とを取り出す手段と、 前記特定のイベントデータのうちの特定のパラメータを
    前記一部分に基づいて変更し、前記特定のイベントデー
    タのうちの特定のパラメータ以外のパラメータを前記他
    の部分に基づいて変更することにより前記第1の情報に
    前記第2の情報を分散して配置する手段と、 前記第2の情報が分散して配置された第1の情報を出力
    する手段とからなる電子情報処理装置。
  9. 【請求項9】 それぞれ2以上のパラメータを含む複数
    のイベントデータで構成される第1の情報を入力する手
    段と、 第2の情報を入力する手段と、 前記第1の情報から音高を表わす音高パラメータを含む
    特定のイベントデータを取り出す手段と、 前記第2の情報から一部分を取り出す手段と、 前記第2の情報の一部分と前記特定のイベントデータの
    音高パラメータを使って新たな音高パラメータを作成
    し、該新たな音高パラメータを前記特定のイベントデー
    タのうちの音高パラメータに上書きすることにより、前
    記第1の情報に前記第2の情報を分散して配置すると共
    に第1の情報を暗号化する手段とからなる電子情報処理
    装置。
  10. 【請求項10】 複数のイベントデータで構成される第
    1の情報を入力する手段と、 情報の変更装置を表わす第2の情報を入力する手段と、 前記イベントデータのうち少なくとも一部のイベントデ
    ータの内容を前記第2の情報に基づいて変更することに
    より前記第1の情報に前記第2の情報を分散して配置す
    る手段と、 前記第1の情報のうちの前記第2の情報が配置されてい
    ない部分を前記第2の情報が表わす変更装置で変更する
    手段とからなる電子情報処理装置。
  11. 【請求項11】 それぞれ2以上のパラメータを含む複
    数のイベントデータで構成される第1の情報を入力する
    手段と、 前記第1の情報から特定のイベントデータを取り出す手
    段と、 前記特定のイベントデータのうちの特定のパラメータか
    ら第2の情報の一部分を検出すると共に、前記特定のイ
    ベントデータのうちの特定のパラメータ以外のパラメー
    タから前記一部分とは異なる第2の情報の他の一部分を
    検出することにより、第2の情報が分散して配置された
    第1の情報から該第2の情報を抽出する手段と、 前記抽出した第2の情報を出力する手段とからなる電子
    情報処理装置。
  12. 【請求項12】 それぞれ所定のパラメータを含む複数
    のイベントデータで構成される第1の情報を入力する手
    段と、 前記第1の情報から音高を表わす音高パラメータを含む
    特定のイベントデータを取り出す手段と、 前記特定のイベントデータのうちの音高パラメータから
    第2の情報の一部分を検出すると共に、前記音高パラメ
    ータの内容を所定の変更装置に基づいて変更することに
    より、第1の情報から第2の情報を検出すると共に、所
    定の変更装置に基づいて暗号化されている第1の情報を
    復号化する手段とからなる電子情報処理装置。
  13. 【請求項13】 複数のイベントデータで構成される第
    1の情報を入力する手段と、 前記イベントデータのうち少なくとも一部のイベントデ
    ータから、情報の変更装置を表わす第2の情報を検出す
    ると共に、前記一部のイベントデータとは異なる他のイ
    ベントデータを前記第2の情報に基づいて変更すること
    により、第2の情報が分散して配置された第1の情報か
    ら該第2の情報を抽出すると共に、該第2の情報に基づ
    いて暗号化されている第1の情報を復号化する手段とか
    らなる電子情報処理装置。
JP35133598A 1997-07-10 1998-12-10 電子情報処理方法及び装置 Expired - Fee Related JP3180789B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP35133598A JP3180789B2 (ja) 1997-07-10 1998-12-10 電子情報処理方法及び装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9-200972 1997-07-10
JP20097297 1997-07-10
JP35133598A JP3180789B2 (ja) 1997-07-10 1998-12-10 電子情報処理方法及び装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP09350126 Division 1997-07-10 1997-12-04

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2001036207A Division JP3870700B2 (ja) 1997-07-10 2001-02-13 電子情報処理方法及び装置

Publications (2)

Publication Number Publication Date
JPH11259068A JPH11259068A (ja) 1999-09-24
JP3180789B2 true JP3180789B2 (ja) 2001-06-25

Family

ID=26512501

Family Applications (1)

Application Number Title Priority Date Filing Date
JP35133598A Expired - Fee Related JP3180789B2 (ja) 1997-07-10 1998-12-10 電子情報処理方法及び装置

Country Status (1)

Country Link
JP (1) JP3180789B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449380B1 (en) * 2000-03-06 2002-09-10 Intel Corporation Method of integrating a watermark into a compressed image

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
Proceedings of 1994 IEEE International Conference on Image Processing,Vol.2,R.G.van Schyndel et al,"A Digital Watermark",p.86−90,November 13−16,1994,Austin,Texas,U.S.A
Proceedings of Fifth International Conference on Image Processing and Its Applications,F.M.Boland et al,"Watermarking Digital Images for Copyright Protection",p.326−330,4−6 July 1995,IEE Confenrence Publication No.410
Proceedings of the 1996 International Conference on Multimedia Computing and Systems.Laurence Boney et al,"Digital Watermarks for Audio Signals",p.473−480,June 17−23,1996,Hiroshima,Japan

Also Published As

Publication number Publication date
JPH11259068A (ja) 1999-09-24

Similar Documents

Publication Publication Date Title
US7545936B2 (en) Method and device for incorporating additional information into main information through electronic watermarking technique
US7485795B2 (en) Method and device for storing main information with associated additional information incorporated therein
JP4794047B2 (ja) 保護されたデジタルファイル配信方法
JP3178378B2 (ja) 電子情報処理システム及び方法並びに記録媒体
US7274789B2 (en) Information recording/reproducing apparatus with security measure
JP3180788B2 (ja) 電子情報付与及び検出のための装置及び方法
US7099848B1 (en) Audio delivery and rendering method and apparatus
JP3180789B2 (ja) 電子情報処理方法及び装置
JP3870700B2 (ja) 電子情報処理方法及び装置
JP4370725B2 (ja) 電子情報処理方法及び装置
CN108885878B (zh) 用于在数据流中嵌入数据的改进方法、装置和系统
JP4304870B2 (ja) 電子情報処理方法及び装置並びに記録媒体
US6798885B1 (en) Method and apparatus for encoding security information in a MIDI datastream
US7937327B2 (en) Music content using apparatus
JP2000092042A (ja) 楽曲データ提供システム及び楽曲データ復号装置
GB2354860A (en) Storing music information with associated additional information incorporated therein
EP1696417B1 (en) Audio synthesis using digital sampling of coded waveforms
JP3905743B2 (ja) 電子透かし埋め込み方法
JPH11249670A (ja) カラオケ装置及びカラオケ端末装置

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090420

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090420

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100420

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110420

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120420

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees