JP4304870B2 - 電子情報処理方法及び装置並びに記録媒体 - Google Patents
電子情報処理方法及び装置並びに記録媒体 Download PDFInfo
- Publication number
- JP4304870B2 JP4304870B2 JP2001036206A JP2001036206A JP4304870B2 JP 4304870 B2 JP4304870 B2 JP 4304870B2 JP 2001036206 A JP2001036206 A JP 2001036206A JP 2001036206 A JP2001036206 A JP 2001036206A JP 4304870 B2 JP4304870 B2 JP 4304870B2
- Authority
- JP
- Japan
- Prior art keywords
- information
- data
- event data
- group
- groups
- 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 - Lifetime
Links
Images
Landscapes
- Storage Device Security (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
- Reverberation, Karaoke And Other Acoustics (AREA)
- Electrophonic Musical Instruments (AREA)
Description
【発明の属する技術分野】
この発明は、楽音制御情報(MIDIデータ)などの主要情報(第1の情報)の中にそれに関連した付属情報(第2の情報)を組み込んで記憶する電子情報処理方法及び装置に関し、また、そのように付属情報を組み込んで記憶した主要情報から付属情報を検出(再生)する電子情報処理方法及び装置若しくはシステムに関し、更に、この電子情報処理方法を実現するためのソフトウェアプログラムを記憶した記憶媒体に関し、更に、これらの方法に従って主要情報内に付属情報を組み込んだ状態のデータ構成からなるデータを記憶してなる記憶媒体に関する。
【0002】
【従来の技術】
最近では、パーソナルコンピュータを使用して、ユーザ自身が音楽データ、映像データ及び波形データなどを作成したり、それらに種々の変更を加えたりすることが容易にできるようになった。
従って、パーソナルコンピュータを使用することによって、市販のFD、CD−ROM、LDなどの記憶媒体に記録された音楽データ、映像データ及び波形データなども自由に読み出して、それらに種々の変更処理を加えたりすることができる。
市販のCD−ROMやLDなどに記録されているデータは、その販売者や製作者などに著作権があるため、本来それらを自由に改変することは、著作権侵害の観点から許されるものではない。
従って、現在では、CD−ROMやLDなどの主データ記憶部に記録されている音楽データ、映像データ又は波形データなど、主データの著作権がだれに属するものなのかを示すための著作権表示データを、主データ記憶部とは別のヘッダ部に付属情報として付加的に記録することによって、著作権者を明示し、著作権侵害の未然防止を図っているのが現状である。
また、付属情報には、このような著作権表示データの他にも、その音楽データ、映像データ及び波形データの題名などを示す情報、又はその映像データや波形データなどがどのようなデータ圧縮技術で圧縮されているのかなどのデータ記録形式を示す情報などがある。
【0003】
【発明が解決しようとする課題】
しかしながら、現在では、パーソナルコンピュータなどを使って自由にデータを書き換えたり変更したりすることができるので、故意又は過失によって、著作権表示データや種々の付属情報が削除されたり、書き換えられたりするという問題がある。特に、これらの付属情報がヘッダ部にまとまってストアされている場合は、削除や改竄が容易になされてしまう、という問題がある。
また、最近ではネットワーク通信の発達に伴って、このように著作権表示データの削除や改竄のなされた音楽データ、映像データ又は波形データなどがネットワークを通じて不正に広く流通してしまうという問題も起き易い。また、データ記録形式に関する付属情報が削除されると、その映像データや波形データなどを再生することができなくなるという問題もある。
本発明は、上述の点に鑑みてなされたものであり、音楽データなどのような複数のイベントデータで構成される主要情報(第1の情報)に付属して付属情報(第2の情報)を記憶し流通させる場合において、付属情報の不正な削除や改変がしにくい形態でこれらの情報を記憶させるようにし、また、仮に情報の部分的削除や改変がなされた場合でも付属情報を適確に再現することができるようにした、電子情報処理方法及び装置若しくはシステム並びに記憶媒体を提供することを目的とする。
【0004】
【課題を解決するための手段】
第1の観点に従えば、この発明に係る電子情報処理方法は、複数のイベントデータで構成される第1の情報を入力するステップと、前記イベントデータを2以上のグループに分類するステップと、前記第1の情報とは異なる第2の情報を入力するステップと、前記分類されたグループ毎に、イベントデータの内容を同じ前記第2の情報に基づいて変更することにより、前記第1の情報に前記第2の情報を埋め込むステップと、前記第2の情報が埋め込まれた前記第1の情報を出力するステップとからなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込むことを特徴とする。
第2の観点に従えば、この発明に係る電子情報処理方法は、2以上のイベント種別でなる複数のイベントデータで構成される第1の情報を入力するステップと、前記イベント種別毎に前記イベントデータを2以上のグループに分類するステップと、前記第1の情報とは異なる第2の情報を入力するステップと、前記分類されたグループ毎に、イベントデータの内容を同じ前記第2の情報に基づいて変更することにより、前記第1の情報に前記第2の情報を埋め込むステップと、前記第2の情報が埋め込まれた前記第1の情報を出力するステップとからなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込むことを特徴とする。
第3の観点に従えば、この発明に係る電子情報処理方法は、それぞれ所定のパラメータを含む複数のイベントデータで構成される第1の情報を入力するステップと、前記パラメータの内容に応じて前記イベントデータを2以上のグループに分類するステップと、前記第1の情報とは異なる第2の情報を入力するステップと、前記分類されたグループ毎に、イベントデータの内容を同じ前記第2の情報に基づいて変更することにより、前記第1の情報に前記第2の情報を埋め込むステップと、前記第2の情報が埋め込まれた前記第1の情報を出力するステップとからなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込むことを特徴とする。
第4の観点に従えば、この発明に係る電子情報処理方法は、複数のイベントデータで構成される第1の情報を入力するステップと、前記イベントデータを2以上のグループに分類するステップと、前記第1の情報とは異なる第2の情報を入力するステップと、前記2以上に分類された各グループ毎に、当該グループに含まれるイベントデータの内容を、同じ前記第2の情報を用いて演算処理により変更することにより、前記第1の情報に前記第2の情報を埋め込むステップと、前記第2の情報が埋め込まれた前記第1の情報を出力するステップとからなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込み、かつ、前記演算処理を各グループ毎に異ならせることを特徴とする。
このように第1の情報における各グループ毎に同じ第2の情報を埋め込むようにしたことにより、第1の情報の2以上のグループ間で同じ第2の情報が重複して埋め込まれることになる。従って、或るグループのデータの改変等が行われたとしても、改変されていない別のグループからそのデータ内の埋め込まれた第2の情報を再生することができるような、埋め込み形態(記憶形態)となっている。
別の観点に従えば、この発明に係る電子情報処理方法は、上記第1乃至第4の観点に従ういずれかの方法で同じ第2の情報が重複して埋め込まれている第1の情報を入力し、この第1の情報中の何れかのグループから、埋め込まれている第2の情報を抽出し、出力するものである。これにより、第2の情報をデコードすることができる。
別の観点に従えば、この発明に係る機械読み取り可能な記憶媒体は、上記各観点に従ういずれかの方法をコンピュータに実行させるためのプログラムを記憶したものである。
更に別の観点に従えば、この発明に係る電子情報処理装置は、上記各観点に従ういずれかの方法を実施するよう構成された電子情報処理装置である。
【0005】
次に、以下説明する実施例に関連して概略を説明する。
実施例に係る電子情報処理システムは、主要情報とそれに関する付属情報とを適宜の記憶装置又は回路あるいは媒体に記録するものである。例えば、主要情報としては、MIDIデータのキーオンイベントデータ、プログラムチェンジデータ又はコントロールチェンジデータなど複数のイベントデータで構成される任意の種類の情報を採用してよい。付属情報としては、著作者名、曲の題名、画像/映像の題名などに関する文字データや波形データの圧縮方法などのデータ形式に関するデータやその他の種々のデータ(暗号文、鍵情報、ID、パスワード、ニュース文)など、任意の種類の情報を採用してよい。この電子情報付与装置は、主要情報を構成するデータ群の中の所定のデータ群として、MIDIデータの場合にはキーオンイベントデータ群を用い、このキーオンイベントデータ群の中の単位データとして、ベロシティデータの一部(例えば最下位ビット)を、その付属情報のデータに基づいて変更する。従って、付属情報のデータに応じて、そのベロシティデータの一部(例えば最下位ビット)の値が変更されるか又は変更されない、といった制御がなされる。これによって、付属情報のデータがMIDIデータ群の中に分散して記録されるようになる。なお、主要情報がMIDIデータの場合には、変更される単位データはベロシティデータやデュレーションタイムデータが望ましい。なぜなら、これらのデータはさほど厳密性を要求されないデータだからである。すなわち、これらの情報が多少変更されても音声データの場合聴感状ではほとんど感知(知覚)されないからである。
【0006】
実施例において、主要情報を構成するデータ群の中のデータ特性に応じて分類された少なくとも2以上のデータ群の中の各単位データの一部を、付属情報の一部又は全部のデータに基づいて、前記分類に対応したアルゴリズムに従って変更することによって、前記付属情報の一部又は全部のデータを前記主要情報を構成するデータ群に分散して記録するように構成される。
この場合、付属情報の分散記録される主要情報をそのデータ特性に応じて分類し、各分類に対応したアルゴリズムで単位データの一部を変更している。すなわち、主要情報がMIDIデータの場合には、チャンネル情報がそのまま入れ替えられたり、キーコードがシフトされたりすると、もはや付属情報を主要情報の中から検出することができなくなることがある。そこで、チャンネル毎、プログラムチェンジデータの出現タイミング毎、又はMIDIデータを構成するベロシティの差分値の大きさ毎等に応じて主要情報を分類し、それぞれの分類に対応したアルゴリズムで単位データの一部を変更するようにした。これによって、チャンネル情報がそのまま入れ替えられたりしてデータが書き換えられたとしてもいずれかのアルゴリズムに応じて付属情報が検出されるようになる。
【0007】
実施例において、上記のように付属情報を組み込んで記憶された主要情報を構成するデータ群から、付属情報の一部又は全部のデータを検出(再生)する機能を具備している。
なお、主要情報として上述のように最下位ビットのデータ変更によっては実用上大きな影響を受けない種類の情報を採用した場合は、付属情報を組み込んだ主要情報を読み出して、これを再生利用するとき、該主要情報から付属情報のデータ片を取り除くことなく、これをそのままにして再生してもよい。勿論、これに限らず、主要情報から付属情報のデータ片を取り除いて、正確な主要情報を再生するようにしてもよい。
実施例において、上記のように付属情報を組み込んで記憶された主要情報を構成するデータ群を、電子的記憶媒体又は通信ネットワークを介して配信し、配信されたデータ群から前記付属情報の一部又は全部のデータを検出(再生)する機能を具備する。
【0008】
実施例において、上記のように付属情報を組み込んで記憶された主要情報を構成するデータ群から、付属情報の一部又は全部のデータを検出(再生)し、この検出(再生)した付属情報を画面上に表示する表示手段を有する。例えば、付属情報として、文字情報や波形データ圧縮方法などのデータ記録形式に関する情報、あるいはその他の種々の情報(暗号文、鍵情報、ID、パスワード、ニュース文などの情報)を採用して、これを任意の主要情報に組み込んで記憶する。そして、主要情報から付属情報を取り出して再生し、これを画面上に表示する。その場合、通信ネットワークを介して時々刻々と配信されてくる主要情報からそこに組み込まれている付属情報を取り出して時々刻々と再生し、この再生情報をストリーミングに表示することができる。
実施例において、電子的記憶媒体としては、フロッピーディスクやCD−ROMあるいは光磁気ディスクなどの可搬式媒体であってもよく、また、ハードディスク装置のような固定式媒体であってもよい。
【0009】
実施例において、第1の情報を構成するデータと共に第2の情報を構成するデータを記憶する方法であって、前記第1の情報を構成するデータは複数のデータ単位の集まりからなっており、前記第2の情報を構成するデータの少なくとも一部を、複数の小サイズのデータ片に分けるステップと、前記第1の情報の複数のデータ単位のうちの特定のデータ単位の各々の値を、前記各データ片の値に応じて変更するもしくは変更しない制御を行なうステップと、制御された前記特定のデータ単位を含む前記第1の情報のデータを記憶するステップとを具え、前記第2の情報を構成するデータの少なくとも一部が前記第1の情報のデータ内に組み込んだ状態で記憶されるようにしたことを特徴とする。
前記第1の情報は主要情報に相当するものであり、例えば、MIDI形式の音楽演奏情報であってよく、全体として大きな情報量を持ち、メモリにおいては所定の主データ記憶領域に記憶されるようなものである。前記第2の情報は付属情報に相当するものであり、例えば、そのような主データ記憶領域に記憶された音楽演奏情報つまり第1の情報の、著作権表示に関する情報であってよく、音楽演奏情報つまり第1の情報に比べて小規模な情報量からなるであってよい。例えば、この発明によれば、第1の情報つまり主要情報は所定の主データ記憶領域に記憶され、第2の情報つまり付属情報は、ヘッダ領域ではなく、主データ記憶領域内で、第1の情報を構成するデータに組み込まれて記憶されるようになっていてよい。この場合、第2の情報つまり付属情報の全てが、第1の情報を構成するデータに組み込まれて記憶されるようになっていてもよいし、あるいは、第2の情報つまり付属情報の一部が、第1の情報を構成するデータに組み込まれて記憶されるようになっていてもよい。
【0010】
第2の情報を構成するデータの全部又は一部が、複数の小サイズのデータ片(例えば1つのデータ片が1ビットまたは数ビットからなっていてよい)に分けられる。第1の情報を構成するデータは、複数のデータ単位の集まりからなっている。1つの特定のデータ単位の値を1つのデータ片に応じて変調することにより、該データ片の値を特定のデータ単位の値の中に組み込むようにしているので、換言すれば、第1の情報の“データ単位”とは、1つのデータ片の値を組み込もうとする単位に相当している。従って、“データ単位”のサイズは、本発明の実施にあたって設計上任意に定めてよく、例えば、1バイトあるいは数バイトのような単位であってよい。
第1の情報を構成する複数のデータ単位のうち特定のデータ単位に対して、第2の情報の各データ片の値を組み込む。例えば、第2の情報のデータ片の数が16個とすると、第1の情報を構成する複数のデータ単位のうち特定の16個のデータ単位に対して、第2の情報の各データ片の値をそれぞれ組み込む。この組み込みは、所定のアルゴリズムに従って、特定のデータ単位の値を、データ片の値に応じて変調する(すなわち、該特定のデータ単位の値を変更しない/あるいは或る値だけ変更する)演算を行なうことによって行なう。こうして、第1の情報のデータの中に、第2の情報の各データ片が分散的に組み込まれることになり、このように第2の情報の各データ片を分散的に組み込んだ第1の情報のデータが適宜のメモリにストアされる。
【0011】
第2の情報の各データ片を分散的に組み込んだ第1の情報のデータから、該第2の情報を再生するために、更に、記憶された前記第1の情報のデータを読み出すステップと、読み出された前記第1の情報のデータのうちの前記特定のデータ単位から、前記複数の小サイズのデータ片をそれぞれ再現するステップとを更に具えるようにしてよい。
第1の情報の複数のデータ単位のうちの特定のデータ単位の各々の値を、前記各データ片の値に応じて変更するもしくは変更しない制御を行なうステップは、該データ片の値をパラメータとする所定のアルゴリズムに従って該制御を行なうようにしてよい。例えば、このアルゴリズムは、前記データ片の値に対応する第1の変数を求めることと、少なくとも1つの前記特定のデータ単位を含む前記第1の情報の所定数のデータ単位を加算又は減算することに基づいて第2の変数を求めることと、前記第1の変数と第2の変数の相互関係に基づき演算値を生成することと、生成された演算値を前記特定のデータ単位の値に演算することとを含んでいてよい。一例として、前記第1の変数は、1ビットの前記データ片の値を反転した第1のフラグであり、前記第2の変数は、少なくとも1つの前記特定のデータ単位を含む前記第1の情報の所定数のデータ単位を加算又は減算した値(例えば特定のデータ単位の値のみであってもよい)の偶数又は奇数に応じた第2のフラグであり、前記第1の変数と第2の変数の相互関係に基づき演算値を生成することは、両フラグを比較してその一致/不一致に応じて0又は1の演算値を生成することである。これにより、特定のデータ単位の値に0又は1が演算され、該特定のデータ単位の値が変調される(すなわち、変更されないか、または或る値だけ変更される)。このようにした場合は、読み出された第1の情報における前記特定のデータ単位の値の偶数又は奇数に応じた数値に基づき、第2の情報のデータ片の値を容易に再生することができる。
【0012】
実施例において、第1の情報を構成するデータは複数のデータ単位の集まりからなっており、第2の情報を構成するデータの少なくとも一部を、複数の小サイズのデータ片に分けるステップと、前記第1の情報を構成するデータを少なくとも2つのグループに分け、各グループ毎に、その中の複数のデータ単位のうちの特定のデータ単位の各々の値を、前記各データ片の値に応じて変更するもしくは変更しない制御をそれぞれ行なうステップと、各グループ毎に制御された前記特定のデータ単位を含む前記第1の情報のデータを記憶するステップとを具え、前記第2の情報を構成するデータの少なくとも一部が前記第1の情報の前記各グループ毎のデータ内にそれぞれ組み込まれた状態で記憶される。
これによれば、第1の情報における複数のグループの各々において、データ片に分割された第2の情報が、それぞれ分散的に組み込まれて、重複して、ストアされる。データ再生にあたっては、少なくとも1つの前記グループについての前記特定のデータ単位から、前記複数の小サイズのデータ片を再現すればよい。すなわち、各グループにおいて、重複して、第2の情報が分散的に組み込まれていめので、いずれか1つのグループに組み込まれた第2の情報を再生すればよい。従って、この第2の観点に従えば、仮に、不正なデータ改竄によって、第1の情報における1つのグループのデータ内容が改竄され、そのグループにおいて組み込まれた第2の情報が再生不可能となったとしても、第1の情報における(改竄されていない)別のグループにおいて組み込まれた第2の情報を再生することができる。
【0013】
第1の情報におけるグループ分けの仕方は、第1の情報のデータ特性に従うとよい。例えば、第1の情報がMIDIデータの場合は、MIDIチャンネル毎にグループ分けするとよい。例えば、MIDIの第1チャンネルに属する第1の情報のデータ群において第2の情報のデータ片を分散して組み込み、また、第2チャンネルに属する第1の情報のデータ群において同じ第2の情報のデータ片を分散して組み込むようにする。そうすれば、不正使用ユーザーによって、チャンネル単位でMIDIデータの改竄や入れ替えが行なわれた場合でも、改竄されていない別チャンネルのMIDIデータの中に組み込まれた第2の情報のデータ片から該第2の情報を再生することができる。この場合、第2の情報のデータ片を第1の情報に組み込むためのアルゴリズムを、各グループ毎に、適宜異ならせてもよい。
このように、第1の情報(主要情報)をそのデータ特性に応じてグループ化し、各グループ毎に第2の情報(付属情報)を組み込むようにしている。例えば、第1の情報(主要情報)がMIDIデータの場合には、チャンネル毎、プログラムチェンジデータの出現タイミング毎、又はMIDIデータを構成するベロシティの差分値の大きさ毎、等に応じて第1の情報(主要情報)をグループ化し、それぞれのグループに対応したアルゴリズムで単位データの一部を変更制御する。これによって、チャンネル情報がそのまま入れ替えられたりすることによって或るグループのデータが書き換えられたとしても、別のグループのデータから第2の情報(付属情報)を検出することにより、その再生を行なうことができるようになる。
【0014】
実施例において、前記第1の情報を構成するデータは複数のデータ単位の集まりからなっており、前記第2の情報を構成するデータの少なくとも一部を、複数の小サイズのデータ片に分けるステップと、前記第1の情報の複数のデータ単位のうちの特定のデータ単位の各々の値を、前記各データ片の値に応じて変更するもしくは変更しない制御を行なうステップであって、1つの前記特定のデータ単位と別の前記特定のデータ単位との差分値を求めることと、この差分値と1つの前記データ片の値とに応じて該差分値を引き出した前記特定のデータ単位の一方の値を変更するもしくは変更しない制御を行なうこととを含むものと、制御された前記特定のデータ単位を含む前記第1の情報のデータを記憶するステップとを具え、前記第2の情報を構成するデータの少なくとも一部が前記第1の情報のデータ内に組み込まれた状態で記憶される。
更に、記憶された前記第1の情報のデータを読み出すステップと、読み出された前記第1の情報のデータのうちの前記特定のデータ単位から、前記複数の小サイズのデータ片を再現するステップであって、1つの前記特定のデータ単位と別の前記特定のデータ単位との差分値を求めることと、この差分値から1つの前記データ片の値を再現することとを含むものとを具え、再現された各データ片によって前記第2の情報を再生するようにしてもよい。
これによれば、第1の情報の特定のデータ単位の値を、第2の情報のデータ片の値に応じて変更するもしくは変更しない制御を行なうときに、前記特定のデータ単位と別の特定のデータ単位との差分値を求め、この差分値と1つの前記データ片の値とに応じて該差分値を引き出した前記特定のデータ単位の一方の値を変更するもしくは変更しない制御を行なうことを特徴としている。これにより、第1の情報を構成する各データ単位毎のデータ値を一律にシフトするようなデータ改変が行なわれたとしても、それらの差分値は変化しないので、第2の情報を再生するときの再現性が向上する。
【0015】
実施例において、記憶された第1の情報のデータを読み出し、読み出したデータを通信ネットワークを介して伝送するようにしてもよい。更に、通信ネットワークを介して伝送されたデータを受信し、受信したデータにおける前記第1の情報のデータのうちの前記特定のデータ単位から、前記複数の小サイズのデータ片を再現するようにしてもよい。第2の情報は、必ずしも第1の情報に関連性を有していなくてもよい。例えば、第1の情報が通信ネットワークを介して伝送される或る番組の内容であるとすると、第2の情報は、その番組とは無関係のニュース文等であってもよい。さらに、再生した第2の情報の内容を表示するための適宜の表示手段を具備していてもよい。
この発明は、上述の各観点に従う方法を実施するための回路もしくは装置を具備する電子情報処理装置として実施することができる。
更に、この発明は、上述の各観点に従う方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体としての形態で実施することができる。
更に、この発明は、上述の各観点に従う方法に従って前記第2の情報を構成するデータの少なくとも一部を前記第1の情報のデータ内に組み込んだ状態のデータ構成からなるデータを記録してなるコンピュータ読み取り可能な記録媒体としての形態で実施することができる。
【0016】
【発明の実施の形態】
以下、この発明の実施の形態を添付図面に従って詳細に説明する。
図2は、この発明に係る電子情報処理システムとしての機能を具備する電子楽器の全体構成を示すブロック図である。電子楽器1は、CPU21、ROM22、RAM23、音源24、フロッピーディスクドライブ25、鍵盤26、パネルスイッチ27及び表示回路28から構成される。
CPU21はROM22及びRAM23内の各種プログラムや各種データ、及びフロッピーディスクドライブ25を介して取り込まれた楽音制御情報(MIDIデータ)に基づいて電子楽器1全体の動作を制御すると共に取り込まれたMIDIデータ内に付属情報を分散して記憶したり、付属情報の分散記憶されたMIDIデータをフロッピーディスクから取り込み、それから付属情報を検出したりする。この実施の形態では、フロッピーディスクドライブ25を例に説明するが、これ以外のMOドライブ、PDドライブ、CD−ROMドライブなどでもよい。CPU21は、フロッピーディスクドライブ25を介して取り込まれたMIDIデータや鍵盤26の押鍵操作に基づいて生成したMIDIデータを音源24に供給する。なお、外部に接続された音源を用いて発音処理を行うようにしてもよい。また、CPU21には図示したものの他にも、データ及びアドレスバス29を介してタイマ、表示手段、サウンドシステム等の周辺機器が接続されるが、ここでは省略する。
【0017】
ROM22はCPU21の各種プログラム(システムプログラムや、この発明を実施するための動作プログラムなど)や各種データを格納するものであり、リードオンリーメモリ(ROM)で構成されている。
RAM23は、CPU21がプログラムを実行する際に発生する各種データを一時的に記憶するものであり、ランダムアクセスメモリ(RAM)の所定のアドレス領域がそれぞれ割り当てられ、レジスタ、フラグ、バッファ、テーブル等として利用される。
また、CPU21には、ハードディスク装置11を接続して、そこに自動演奏データやコード進行データ等の各種データを記憶していてもよく、更に、この発明を実施するための動作プログラムを記憶しておくようにしてもよい。また、前記ROM22に動作プログラムを記憶せずに、ハードディスク装置11にこれらの動作プログラムを記憶させておき、それをRAM23に読み込むことにより、ROM22に動作プログラムを記憶したときと同様の動作をCPU21に行わせることができる。このようにすると、動作プログラムの追加やバージョンアップ等が容易に行える。着脱自在な外部記憶媒体の1つとして、CD−ROM(コンパクトディスク・リードオンリーメモリ)を使用してもよい。このCD−ROMには、上述のような自動演奏データやコード進行データや楽音波形データや映像データなどの各種データ及び動作プログラムやその他プログラムを記憶していてもよい。CD−ROMに記憶されている動作プログラムや各種データは、CD−ROMドライブ12によって、読み出され、ハードディスク装置11に転送記憶させることができる。これにより、動作プログラムの新規のインストールやバージョンアップを容易に行うことができる。勿論、可搬式の記録媒体としては、上記CD−ROMに限らず、フロッピーディスクや光磁気ディスク(MO)など、その他の媒体も使用可能である。これらの各種記録媒体は、本発明を実施するためののコンピュータプログラムを記録する用途だけではなく、本発明に従って主要情報内に付属情報を分散して組み込んでなるデータ構造からなるデータを記録する用途にも使用できる。
【0018】
また、通信インターフェイス13をデータ及びアドレスバス29に接続し、この通信インターフェイス13を介してLAN(ローカルエリアネットワーク)やインターネットなどの種々の通信ネットワーク上に接続可能とし、他のサーバコンピュータとの間でデータのやりとりを行うようにしてもよい。これにより、ハードディスク装置11内に動作プログラムや各種データが記憶されていないような場合や、記憶済の動作プログラムや各種データの内容を更新するような場合において、サーバコンピュータから新しい動作プログラムや各種データをダウンロードすることができる。この場合、クライアントとなる楽音生成装置である電子楽器1から、通信インターフェイス13及び通信ネットワークを介してサーバコンピュータに動作プログラムや各種データのダウンロードを要求するコマンドを送信する。サーバコンピュータは、このコマンドに応じて、所定の動作プログラムやデータを、通信ネットワークを介して電子楽器1に送信する。電子楽器1では、通信インターフェイス13を介してこれらの動作プログラムやデータを受信して、ハードディスク装置11にこれらを蓄積する。これによって、動作プログラム及び各種データのダウンロードが完了する。
【0019】
音源24は、複数のチャンネルで楽音信号の同時発生が可能であり、CPU21から与えられた楽音制御情報(ノートオン、ノートオフ、ベロシティ、ピッチデータ、音色番号等のMIDIデータ)を入力し、これらのデータに基づいた楽音信号を発生して図示していないサウンドシステムに供給する。
音源24において複数チャンネルで楽音信号を同時に発音させる構成としては、1つの回路を時分割で使用することによって複数の発音チャンネルを形成するようなものや、1つの発音チャンネルが1つの回路で構成されるような形式のものであってもよい。また、音源24における楽音信号発生方式はいかなるものを用いてもよい。例えば、発生すべき楽音の音高に対応して変化するアドレスデータに応じて波形メモリに記憶した楽音波形サンプル値データを順次読み出すメモリ読み出し方式(波形メモリ方式)、又は上記アドレスデータを位相角パラメータデータとして所定の周波数変調演算を実行して楽音波形サンプル値データを求めるFM方式、あるいは上記アドレスデータを位相角パラメータデータとして所定の振幅変調演算を実行して楽音波形サンプル値データを求めるAM方式等の公知の方式を適宜採用してもよい。また、これらの方式以外にも、自然楽器の発音原理を模したアルゴリズムにより楽音波形を合成する物理モデル方式、基本波に複数の高調波を加算することで楽音波形を合成する高調波合成方式、特定のスペクトル分布を有するフォルマント波形を用いて楽音波形を合成するフォルマント合成方式、VCO、VCF及びVCAを用いたアナログシンセサイザ方式等を採用してもよい。また、専用のハードウェアを用いて音源を構成するものに限らず、DSPとマイクロプログラムを用いて音源を構成するようにしてもよいし、CPUとソフトウェアのプログラムで音源を構成するようにしてもよい。
音源24から発生された楽音信号は、図示しないアンプ及びスピーカからなるサウンドシステムによって発音される。なお、音源24とサウンドシステムとの間にエフェクタが設けてあってもよい。
鍵盤26は、発音すべき楽音の音高を選択するための複数の鍵を備えており、各鍵に対応してキースイッチを有しており、新たな鍵が押圧されたときは、その鍵に対応したキーコードを含むキーオンイベント情報を出力し、鍵が離鍵されたときはその離鍵された鍵に対応したキーコードを含むキーオフイベント情報を出力する。また、鍵盤26は、鍵押し下げ時の押鍵操作速度又は押圧力等を判別してタッチデータを生成し、それをベロシティデータとして出力する。鍵盤26は音楽演奏のための基本的な操作子であり、これ以外の演奏操作子でもよいことはいうまでもない。
パネルスイッチ27は、電子楽器1の各種動作内容を選択・設定・制御するための複数の操作子を備えたものである。
表示回路28はCPU21の制御状態、設定データの内容等の各種の情報を図示していないモニタ上に表示するものである。この実施の形態では、著作権表示データ、曲名、作曲者情報、作成年月日、歌詞、ニュース文、機種名(ハード名)、IDなどのテキストデータなどを表示する。
なお、電子楽器1は、楽器専用機器として構成されている必要はなく、例えば、汎用電子機器であるパーソナルコンピュータを使用し、これに本発明に係るソフトウェアを搭載して、楽器機能を実現するようにしたものであってもよい。勿論、本発明は電子楽器としての実施形態に限らず、その他の適宜の電子機器システムとしての実施形態をとってもよいものである。その場合においても、汎用電子機器であるパーソナルコンピュータに本発明に係るソフトウェアを搭載して、発明を実施することができる。
【0020】
次に、この発明に係る電子情報処理システムが電子情報付与装置として動作する場合の一例について説明する。
図3は、電子楽器1が電子情報付与装置として動作する場合の電子署名付与処理の一例を示すフローチャート図である。まず、この場合には、電子楽器1は、フロッピーディスクドライブ25から読み出したMIDIデータにそのヘッダ情報の一部である電子署名すなわち著作権表示データを分散する場合について説明する。なお、このようにしてできたMIDIデータを再びフロッピーディスクに記録したり、他の記憶媒体に記憶したり、転送したりしてもよい。
まず、ステップ31では、MIDIデータ列内に分散して書き込まれるべき電子署名(著作権表示データ)の内容を決定する。例えば、著作権表示データとして『COPYRIGHT△YMH△1996』のような文字をMIDIデータ列内に分散して書き込む場合には、これらの文字列をパネルスイッチ27を用いて決定する。ここで、△は空白を意味するものとする。
ステップ31で書き込むべき電子署名すなわち文字列が決定したので、今度はステップ32で、その電子署名に関するデータ列を得る。例えば、パネルスイッチ27によって『COPYRIGHT△YMH△1996』が入力された場合には、それをASCIIの文字符号のデータ列に変換する。
この場合は、『C』=『43H』、『O』=『4FH』、『P』=『50H』、『Y』=『59H』、『R』=『52H』、『I』=『49H』、『G』=『47H』、『H』=『48H』、『T』=『54H』、『△』=『20H』、『Y』=『59H』、『M』=『4DH』、『H』=『48H』、『△』=『20H』、『1』=『31H』、『9』=『39H』、『9』=『39H』、『6』=『36H』からなる一連のASCIIのデータ列が得られることになる。
【0021】
次に、ステップ33では、電子署名として付与する情報すなわち、ステップ32で得られたASCIIのデータ列の1バイト分をバイトレジスタBRに格納する。そして、ステップ34では、このバイトレジスタBRに格納されたASCIIの各ビットデータを反転して、別の8ビット構成のビット列を作成する。例えば、『Y』=『59H』(数字の後のHは16進数表現であることを示す)をバイトレジスタBRに格納すると、それは図1(F)に示すように『01011001B』(数字の後のBは2進数表現であることを示す)=『89D』(数字の後のDは10進数表現であることを示す)のようなビット列になる。このビット列がステップ34のデータ変換すなわちビット反転によって、図1(E)のようなビット列、すなわち『10100110B』=『166D』のようなビット列になる。
次に、ステップ35では、MIDIデータ列(Standard MIDI File:SMF)の中からキーオンイベントデータやプログラムチェンジデータやコントロールチェンジデータなどの各種のMIDIデータを順次取り出す。すなわち、MIDIデータ列は基本的にはキーオンステータスバイト、キーコードバイト、ベロシティバイトからなるキーオンイベントデータやこれ以外のプログラムチェンジイベントデータやコントロールチェンジイベントデータなどから構成されているので、ステップ35では、このようなMIDIデータを順番に取り出す。
ステップ36では、取り出されたMIDIデータがキーオンイベントデータKONであるかどうかを判定し、キーオンイベントデータ(YES)の場合は次のステップ37に進み、そうでない(NO)の場合はステップ3Dに進む。従って、ステップ35で取り出されたMIDIデータがキーオンイベントデータの場合には、図1(A)のようなキーオンイベントデータからなるMIDIデータ列SMF1が得られることになる。このキーオンイベントデータのMIDIデータ列SMF1はデュレーションタイムDと、キーオンイベントデータとの組合せで構成される。
ステップ37では、キーオンイベントデータの中の各バイトのデータをそれぞれ対応するレジスタa,b,cに格納する。すなわち、キーオンイベントデータの中のキーオンステータスバイトの中のチャンネル番号をレジスタaに、次の第1のデータバイト(キーコードバイト)の中のキーコードをレジスタbに、第2のデータバイト(ベロシティバイト)の中のベロシティをレジスタcにそれぞれ格納する。
【0022】
ステップ38では、ステップ34で作成されたビット列の先頭から順に1ビット取り出して、それを第1のビットフラグBF1に格納する。
次のステップ39では、ステップ37の各レジスタa,b,cの格納値を所定の関数に従って演算し、その演算結果によって得られたビットデータを反転して、第2のビットフラグBF2に格納する。この実施の形態では、各レジスタa,b,cの値の合計値のモジュロ2を所定の関数とする。すなわち、関数f1(a,b,c,)=(a+b+c)mod2とする。例えば、図1(A)のようなキーオンイベントMIDIデータ列SMF1の場合には、8つのキーオンイベントデータで1つの文字データに相当するデータが作成される。まず、各キーオンイベントデータの所定の関数f1(a,b,c)で演算すると、図1(B)のようになる。すなわち、(a+b+c)の値が偶数なら『0』、奇数なら『1』となる。そして、これらの反転ビットが第2のビットフラグBF2に格納され、図1(C)のようになる。
【0023】
ステップ3Aでは、ステップ38及びステップ39で得られた第1のビットフラグBF1と第2のビットフラグBF2とが等しいかどうかを判定し、等しい(YES)場合には次のステップ3B及びステップ3Cの処理を行い、等しくない(NO)場合はステップ3Eにジャンプする。
ステップ3Bでは、第1のビットフラグBF1と第2のビットフラグBF2とが等しいと判定されたので、レジスタcの値すなわちベロシティデータの最下位ビットに『1』を加算する。そして、ステップ3Cで、そのレジスタcの値に基づいてMIDIデータ列中のキーオンイベントデータを構成するベロシティの値を更新する。すなわち、ベロシティの値を1だけ増加する。例えば、図1の場合には、第1のビットフラグBF1と第2のビットフラグBF2との3番目、5番目、6番目及び7番目がそれぞれ等しいと、ステップ3Aで判定されるので、MIDIデータ列中の3番目、5番目、6番目及び7番目のキーオンイベントデータのベロシティの値が『1』だけ増加する。すなわち、3番目のキーオンイベントデータのベロシティ値『63』が『64』になり、5番目のキーオンイベントデータのベロシティ値『78』が『79』になり、6番目のキーオンイベントデータのベロシティ値『91』が『92』になり、7番目のキーオンイベントデータのベロシティ値『42』が『43』になる。
【0024】
ステップ3Dでは、ステップ36でMIDIデータ列から取り出されたデータがキーオンイベントデータでない(NO)と判定された場合に行われる処理であり、取り出されたMIDIデータが今度はプログラムチェンジイベントPCMであるかどうかを判定し、プログラムチェンジイベントPCM(YES)の場合には、ステップ3Hに進み、そうでない(NO)場合はステップ3Eに進む。
ステップ3Eでは、ステップ3A又はステップ3DでNOと判定された場合又はステップ3Cの処理を終えた場合に行われる処理であって、ステップ36で取り出されたMIDIデータの次のデータがデータ終了を示すデータかどうかの判定を行う。このステップ3Eでの判定結果がデータ終了(YES)の場合には、電子情報付与処理を終了し、データ終了でない(NO)場合には、次のステップ3Fに進む。ステップ3Fでは、ステップ35〜ステップ3Eまでの処理を1巡回処理とした場合にその1巡回処理が8回分すなわち8ビット分行われたかどうかを判定し、8回分行われた(YES)場合には、次のステップ3Gに進み、そうでない(NO)の場合は、ステップ35にリターンし、レジスタBR内の次の1ビットに対してステップ35〜ステップ3Eの処理を行う。
ステップ3Gでは、ステップ33〜ステップ3Fまでの処理を1巡回処理とした場合にその1巡回処理が電子署名データを構成するバイト数だけ行われたかどうかを判定し、行われた(YES)場合には、次のステップ3Hに進み、そうでない(NO)の場合は、ステップ33にリターンし、電子署名データの次の1バイトに対してステップ33〜ステップ3Eの処理を行う。
ステップ3Hでは、ステップ3Gで電子署名データの全バイトに対してステップ33からステップ3Fまでの処理が行われたことが判定されたので、再び電子署名データの書込み処理を行うために、電子署名バイトのポインタをその先頭にセットし、ステップ33にリターンする。こうして、署名データの各ビットを所定のアルゴリズムで変換したデータが、分散されて、MIDIデータ中のキーオンイベントデータ内のベロシティバイト部分に埋め込まれる。また、このステップ3Hでは、ステップ3DでYESと判定された場合すなわち取り出されたMIDIデータがプログラムチェンジイベントPCMだった場合にも行われる。従って、電子署名データはプログラムチェンジイベントPCMが出現する度に、電子署名データの先頭に復帰することになる。
何故、プログラムチェンジイベントで復帰するようにしたかというと、プログラムチェンジイベントは電子署名を付与するノートオンイベントなどに比べて、比較的低頻度で発生し、プログラムチェンジ後は、楽器が変わることを意味するので、その位置を始点としてエディットされる可能性の高い単位ということが言えるからである。
【0025】
次に、図3の電子情報付与処理によって付与された電子情報すなわち電子署名データの検出処理について説明する。図4は、電子楽器1が電子情報検出装置として動作する場合の一例を示すフローチャート図である。
この場合には、フロッピーディスクドライブ25から読み出されたMIDIデータのベロシティバイト部分にそのヘッダ情報の一部である電子署名すなわち著作権表示データが分散記録されているものとする。以下の実施の形態では、この著作権表示データを検出して、それをモニタなどに表示するまでの動作を説明する。
まず、ステップ41では、署名データ格納レジスタSIGNにナルデータを格納する。すなわち、署名データ格納レジスタSIGNの内容をリセットする。
ステップ42では、電子署名を検出するべきMIDIデータ列、すなわち図3の電子情報付与処理によって電子署名の付与されたMIDIデータ列を取り出す。
そして、次のステップ43で、バイトレジスタBRとビットカウンタBCNの値をリセットする。
【0026】
次に、ステップ44では、MIDIデータ列(Standard MIDI File:SMF)の中から順次キーオンイベントデータやプログラムチェンジデータやコントロールチェンジデータなどのデータを取り出す。
ステップ45では、取り出されたMIDIデータがキーオンイベントデータKONであるかどうかを判定し、キーオンイベントデータ(YES)の場合は次のステップ46に進み、そうでない(NO)場合はステップ4Cに進む。従って、ステップ44で取り出されたMIDIデータがキーオンイベントデータの場合には、図1(G)のようなキーオンイベントMIDIデータ列SMF2が作成されることになる。なお、図1(G)のキーオンイベントデータ列は先に電子署名の付与された図1(D)のキーオンイベントデータ列と同じものである。
ステップ46では、キーオンイベントデータの中の各バイトのデータをそれぞれ対応するレジスタa,b,cに格納する。すなわち、キーオンイベントデータの中のキーオンステータスバイトの中のチャンネル番号をレジスタaに、次の第1のデータバイト(キーコードバイト)の中のキーコードをレジスタbに、第2のデータバイト(ベロシティバイト)の中のベロシティをレジスタcにそれぞれ格納する。
【0027】
ステップ47では、バイトレジスタBRの値を2倍(左シフト)して、その最下位ビットに関数f1(a,b,c,)=(a+b+c)mod2の反転値を加算する。ステップ48では、ビットカウンタBCNの値を1だけインクリメントする。ステップ49では、ビットカウンタBCNの値が『8』になったかどうかを判定し、YESの場合は次のステップ4Aに進み、NOの場合はステップ4Fにジャンプする。
例えば、図1(G)のようなキーオンイベントのMIDIデータ列SMF2の場合には、8つのキーオンイベントデータで1つの文字データに相当するデータが作成される。まず、各キーオンイベントデータの所定の関数f1(a,b,c)で演算すると、図1(H)のようになる。すなわち、(a+b+c)の値が偶数なら『0』、奇数なら『1』となる。そして、これらの反転ビットは図1(J)のようになり、その値がバイトレジスタBRを順次シフトしていき、最終的にはバイトレジスタBRの格納値は、図1(J)のようになる。
このようにして、得られた図1(J)のデータは図1(F)と同じである。すなわち、MIDIデータのベロシティバイト部分に分散して書き込まれた著作権表示データすなわち図1(F)のようなデータが図1(J)のように再現されたことになる。
ステップ4Aでは、バイトレジスタBRの格納値をASCIIの文字データに変換して、署名データ格納レジスタSIGNに追加記憶する。
ステップ4Bで、バイトレジスタBRとビットカウンタBCNの値をリセットする。
ステップ4Cでは、ステップ45でMIDIデータ列から取り出されたデータがキーオンイベントデータでない(NO)と判定された場合に行われる処理であり、取り出されたMIDIデータが今度はプログラムチェンジイベントPCMであるかどうかを判定し、プログラムチェンジイベントPCM(YES)の場合には、次のステップ4D及びステップ4Eに進み、そうでない(NO)場合はステップ4Fに進む。
ステップ4Dでは、バイトレジスタBRの値をリセットし、ステップ4EではビットカウンタBCNの値をリセットする。
ステップ4Fでは、ステップ49又はステップ4CでNOと判定された場合、又はステップ4B又はステップ4Eの処理を終えた場合に行われる処理であって、ステップ46で取り出されたMIDIデータの次のデータがデータ終了を示すデータかどうかの判定を行う。このステップ4Fの判定結果がデータ終了(YES)の場合には、次のステップ4Gに進み、データ終了でない(NO)場合にはステップ44にリターンする。
ステップ4Gでは、署名データ格納レジスタSIGNの内容に基づいて検出された電子署名情報を図示していない表示装置などに表示する。
【0028】
なお、上述の実施の形態では、MIDIデータ列からキーオンイベントデータを順番に取り出して、それに対して順番に電子署名データを格納する場合について説明したが、エディットされる可能性の高い単位として、チャンネル単位があるので、それに対応して電子署名データを格納する場合について説明する。
図5は、電子楽器1が電子情報付与装置として動作する場合の電子署名付与処理の別の一例を示すフローチャート図である。この場合も、図3の場合と同様に、電子楽器1は、フロッピーディスクドライブ25から読み出したMIDIデータにそのヘッダ情報の一部である電子署名すなわち著作権表示データを分散記録する。
まず、ステップ51及びステップ52は、図3のステップ31及びステップ32と同じであり、ステップ51でMIDIデータ列内に分散して書き込まれるべき電子署名(著作権表示データ)の内容を決定し、ステップ52でその文字列に係るデータ列を得る。
そして、次のステップ53では、図3のステップ33〜ステップ3Hの処理をそのチャンネル毎に行う。そのとき、ステップ39の所定の関数に従った演算処理をそのチャンネル毎に異ならせるようにする。例えば、ステップ39では、関数f1(a,b,c,)=(a+b+c)mod2を第2のビットフラグBF2に格納しているが、これを第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とする。
ステップ53では、これらの第1から第4までの関数処理をMIDIチャンネル毎に選択的に切り換えて、図3のステップ33〜ステップ3Hまでの処理に従ってそれぞれのチャンネル毎にその関数処理に従って変換された電子署名データを付与する。
このように、チャンネル毎に関数処理の内容を変更することによって、それぞれの情報を一度に変更するようなエディット処理、例えばチャンネル情報の入れ替えやキーコードのシフトなどといったものが行われた場合でも、エディットによって変更されるデータに関係しない関数を利用するチャネルから電子署名データを復元することができるという効果がある。
【0029】
次に、図5の電子情報付与処理2によって付与された電子情報すなわち電子署名データを検出する電子情報検出処理2について説明する。図6は、電子楽器1が電子情報検出装置として動作する場合の電子情報検出処理の別の一例を示すフローチャート図である。
この場合には、フロッピーディスクドライブ25から読み出されたMIDIデータの各チャンネル毎に所定の関数処理(第1から第4までのいずれかの関数処理)によって、ベロシティバイト部分にそのヘッダ情報の一部である電子署名すなわち著作権表示データが分散記録されているものとする。以下の実施の形態では、所定の関数処理によって分散記録された著作権表示データをチャンネル毎に検出して、それをモニタなどに表示するまでの動作を説明する。
まず、ステップ61では、電子署名を検出するべきMIDIデータ列、すなわち図5の電子情報付与処理によって各チャンネル毎に所定の関数処理に応じて電子署名データの付与されたMIDIデータ列を取り出す。
そして、次のステップ62で、チャンネルカウンタをリセットし、ステップ63で関数カウンタをリセットする。このチャンネルカウンタと関数カウンタは、後の処理で、各チャンネルに対して各関数処理を施すために利用されるものである。例えば、MIDIチャンネルが16チャンネル相当の場合には、チャンネルカウンタは0から15までを巡回的にカウントするように処理される。また、関数カウンタは、前述のように関数処理が4種類の場合には、0〜3までも巡回的にカウントするように処理される。関数カウンタが『0』の場合は第1の関数処理f1(a,b,c,)=(a+b+c)mod2を、『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を意味する。
【0030】
ステップ64では、チャンネルカウンタの値に該当するチャンネルについて、関数カウンタの値に該当する関数処理を用いて図4のステップ41からステップ4Fまでと同様の電子署名検出処理を行う。
ステップ65では、検出されたデータ列に有意な部分があるかどうかの判定を行う。ここで有意な部分とは、ASCIIの文字データによって構成される『COPYRIGHT』なる署名データの一部分である。従って、ステップ65では、図4の処理によって署名データ格納レジスタSIGNに順次追加されたASCIIの文字データによって構成された文字列の中に『COPYRIGHT』なる文字列データが存在するかどうかを判定することになる。ステップ65の判定の結果、署名データ格納レジスタSIGN内に有意な部分が存在しない(NO)と判定された場合には、次のステップ66に進み、関数カウンタを1だけインクリメントする。そして、次のステップ67で、全ての関数処理に対してステップ64及びステップ65の処理すなわち署名データの抽出処理が行われたかどうかの判定を行い、行われた(YES)場合には次のステップ68に進み、そうでない(NO)場合はステップ64にリターンし、次の関数処理についてステップ64及びステップ65の処理を行う。逆に、ステップ65の判定の結果、署名データ格納レジスタSIGN内に有意な部分が存在した場合には、ステップ6Bに進み、その検出された電子署名データをモニタ上に表示して終了する。
【0031】
ステップ68では、チャンネルカウンタを1だけインクリメントする。そして、次のステップ69で全てのチャンネルに対してステップ64及びステップ65の処理すなわち署名データの抽出処理が行われたかどうかの判定を行い、行われた(YES)場合には次のステップ6Aに進み、そうでない(NO)場合はステップ63にリターンし、次のMIDIチャンネルについてステップ63〜ステップ65の処理を行う。ステップ69でYESと判定されたということは、全てのMIDIチャンネルに対して、全ての関数処理を用いて署名データの抽出処理を行った結果、データ列に有意な部分が存在しなかったということだから、ステップ6Aでは、その結果として『電子署名なし』又は『電子署名検出失敗』などの文字をモニタ上に表示する。
【0032】
なお、MIDIデータに基づく楽音再生演奏においては、上記のように一部データ変更されたベロシティデータはそのまま再生に利用してよい。ベロシティデータの最下位1ビットの値が1増加又は減少することは、楽音の再生精度にそれほど深刻な影響を与えない。勿論、そうせずに、一部データ変更されたベロシティデータから署名データによる誤差を取り除いて、正確なベロシティデータを再生することも可能であるから、そのように実施してもよい。
なお、上述の実施の形態では、付属情報として署名データを、主要情報としてのMIDIデータのベロシティ部分に分散させて記録する場合について説明したが、これは一例にすぎず、これ以外の著作者名、曲の題名、画像/映像の題名などに関する文字データやデータ形式に関するデータやその他の種々のデータからなる適宜の付属情報を、所要の主要情報の中に分散させて記録するようにしてもよいことはいうまでもない。
また、付属情報を分散させて記憶する対象となる主要情報の種類は、ベロシティ情報に限らず、ベロシティ情報以外の適宜の情報、例えばデュレーションタイム(待ち時間)データの情報であってもよい。また、1つの付属情報を、異なる複数種類の主要情報(例えばとベロシティ情報とデュレーションタイム情報)にわたって分散させて記録するようにしてもよい。両方に分散記録する場合、その厳密性すなわち分散記録することによってそのデータの内容が変更される度合いに応じて、分散記録する箇所を適宜切り換えるようにしてもよい。すなわち、デュレーションタイムデータの短い領域で、そのデュレーションタイムデータに分散記録すると、それによる変動の割合(厳密性)が大きくなるので、好ましくないが、デュレーションタイムデータが比較的大きい領域では、逆の関係にあるので、分散記録しても影響は少ない。同じく、ベロシティ部分に記録する場合でも、ベロシティの値の小さい領域て、そのベロシティ部分に分散記録すると、それによる変動の割合(厳密性)が大きくなるので、好ましくないが、ベロシティの値の大きい領域では、分散記録しても影響は少ない。従って、これらを適宜考慮して種々のデータを分散記録するようにしてもよい。
【0033】
また、上述の実施の形態では、MIDIデータを主要情報として、このMIDIデータ内に付属情報を分散記録する場合について説明したが、これに限らず、波形サンプルデータやシーケンスデータ、ディジタル記録音声データ、画像データ、動画データ、レジストレーション(電子楽器の設定記録)データなど、適宜のデータを主要情報としてもよく、これらの適宜の主要情報内に所要の付属情報を分散記録するようにしてもよい。
波形データ(波形サンプルデータ)を主要情報としてそこに適宜の付属情報を分散記録する場合には、所定の関数処理としてその波形データ(wave_data)そのもののモジュロ2、すなわち、f1(wave_data)=wave_data mod2としてもよい。また、波形データの値とそのサンプルポイントデータとを用いて、両データの和のモジュロ2、すなわち、f2(wave_data,sample_point)=(wave_data+sample_point) mod2としてもよい。
図5及び図6の実施の形態では、各(論理)チャンネル毎に関数処理の種類を変更して、署名データを検出する場合について説明したが、図3及び図4のようにプログラムチェンジデータの検出タイミング毎に関数処理の種類を変更するようにしてもよい。この場合には、検出されたデータ列に有意な部分が存在するかどうかの判定処理も各プログラムチェンジデータの検出タイミング毎に行う必要がある。
【0034】
上述の実施の形態では、検出された電子署名情報(すなわち付属情報)をモニタ上に表示する場合について説明したが、検出側において、署名情報(すなわち付属情報)がない場合や署名情報が完全に復旧できない場合(各論理チャンネルにおいて、署名情報が検出できるチャンネルと検出できないチャンネルが混在する場合)には、データの再生を中止するようにしてもよい。また、その検出側の電子楽器やコンピュータなどがネットワークに接続されている場合には、そのネットワーク上に不正にエディットされたデータが存在することを送信し、それをホストコンピュータ側で検出することができるようにしてもよい。
上述の実施の形態では、電子楽器がこの発明に係る方法又は装置もしくはシステムを採用した電子署名付与装置又は電子署名検出装置として動作する場合について説明したが、この発明に係る方法又は装置もしくはシステムは、電子楽器に限らず、どのような機器若しくは装置においても適用することができる。この発明に係る方法又は装置もしくはシステムを採用した電子署名(すなわち付属情報)付与及び/又は検出装置は、ディスクリートタイプハードウェア装置で構成してもよいし、ソフトウェアあるいはDSP(デジタル・シグナル・プロセッサ)とマイクロプログラムなどで構成するようにしてもよい。また、このような電子署名(すなわち付属情報)付与及び/又は検出装置をフロッピーディスクドライブや通信インターフェイスなどに予め内蔵しておいて、データの入出力の段階で強制的に電子署名データ(すなわち付属情報)を付与したり、検出したりするようにしてもよい。
上述の実施の形態では、電子署名データ(すなわち付属情報)を主要情報の間に分散記録する(付与する)ことと、それから、これを読み出して電子署名データ(すなわち付属情報)を再生する(検出する)ことについて説明した。しかし、記録する(付与する)ことと再生する(検出する)ことのどちらか一方のみを実施することも本発明の範囲に含まれる。例えば、電子署名データ(すなわち付属情報)の分散記録された(付与された)データ(すなわち主要情報)を、フロッピーディスクやコンパクトディスクなどで供給するようにしてもよいし、ネットワークを通じて電子的に供給するようなデータ形態を採用してもよい。
【0035】
図3のステップ3Bでは、ベロシティデータの値を1だけインクリメント処理する場合について説明したが、デクリメント処理してもよいし、これらの処理を適当なタイミング(所定データ数毎とか)で交互に行うようにしてもよい。
上述の実施の形態では、所定の関数処理の後にビット反転処理を行う場合について説明したが、これは行わなくてもよい。また、ビット反転処理の他にも、上位ビットと下位ビットを入れ替えるとか、AND(論理積)、OR(論理和)、XOR(排他的論理和)などの論理演算処理を施すとか、種々の処理を加えるようにしてもよいことはいうまでもない。また、適宜の暗号化処理を施すようにしてもよい。例えば、上述の第1から第4までの関数処理の結果を適宜組み合わせてもよいし、前回の関数処理の結果を次の関数処理に組み合わせて演算するようにしてもよい。
なお、これらの各処理はある程度高速に行うことができ、変換後、逆変換によりもとに戻せるものであれば、これ以外の方法でもよいことはいうまでもない。
上述の実施の形態では、プログラムチェンジデータの検出タイミング毎に新たに署名データの付与処理を行う場合について説明したが、これに限らず、小節単位(例えば8小節毎など)データの検出タイミング毎に行うようにしてもよい。また、波形データに分散記録する場合には、所定のサンプル数毎や所定のゼロクロス毎に新たに署名データの付与処理を行うようにしてもよい。ゼロクロス(波形の値の符号が変わるタイミング)は波形エディットの際の基準地点と考えられるからである。
また、上述の実施の形態では、署名データや題名などのような付属情報を記録する場合について説明したが、MIDIデータと波形データを合わせて記録する場合に、MIDIデータにその波形データの一部を記録するようにしてもよいし、波形データにMIDIデータの一部を合わせて記録するようにしてもよい。
【0036】
なお、上述の実施の形態では、著作権に関する署名データを付属情報として、これをMIDIデータのベロシティ部分に分散記録する場合について説明したが、これは一例であり、これ以外の著作者名、曲の題名(曲名)、画像/映像の題名などに関するテキスト情報や、そのデータ形式に関する情報やその他の種々の電子情報(曲の解説、著作者に関する情報、著作年、歌詞、ニュース、ハードID(機種名、使用OS)などの各種情報)を付属情報として、これを適宜の主要情報において分散記録するようにしてもよいことはいうまでもない。この場合には、図3から図6までの各処理における電子署名をこれらの各種電子情報に置き換えて処理すればよい。このようにして処理された電子情報(すなわち付属情報)は、図7のように画面上に表示されるようになる。
なお、このとき、付属情報を一連の纏まったファイル情報として検出してもよいし、自動演奏中にMIDIデータから検出される電子情報の流れとして認識し、それをリアルタイムに画面表示したりしてもよい。この場合、付属情報が画像情報の場合には、MIDIデータによってリアルタイムに画像が描画されるようになり、テキスト情報の場合には、ニュース配信などのようなリアルタイムな情報表示を行うことが可能となる。また、付属情報を分散記録するための技術がシンプルであるため、オンデマンドなどで適宜の電子情報(すなわち付属情報)を所要の主要情報内に埋め込むことができるので、TV放送などのようなリアルタイムな描画が可能となる。また、インターネットや電子メールなどのIDやパスワードの配信にも利用することができる。
【0037】
上述の実施の形態では、各種電子情報(すなわち付属情報)をMIDIデータのベロシティ部分(すなわち主要情報)に分散記録する場合について説明したが、この場合だと、MIDIデータ(すなわち主要情報)自身が書き換えられてデータ値すなわちベロシティの値が全体的にシフトされたような場合、その付属情報自体が消えてしまい再現することができなくなるというおそれがある。
そこで、MIDIデータ(すなわち主要情報)自体が書き換えられたりしても、付属情報を抽出することのできる実施の形態について、図8及び図9に基づき、以下、説明する。この実施の形態では、MIDIデータ(すなわち主要情報)における各データ単位間の差分値をパラメータとして、付属情報を埋め込むための演算アルゴリズムを実行することを特徴としている。このように各データ単位間の差分値をパラメータとすることにより、各データ単位の値がシフト変更された場合でも、その差分値には変化が生じないことになるので、埋め込まれた付属情報を適確に再生することができる。
図8は、この実施の形態に係る差分アルゴリズムを用いた情報記憶処理(付属情報付与処理)の一例を示すフローチャートである。図9は、この差分アルゴリズムを用いた情報記憶処理に従うデータ変換形態の具体例と、変換されたデータから付属情報を再生する処理(検出処理)に従うデータ再生形態の具体例を示す図、である。付属情報を再生する処理(検出処理)のフローチャート例については図示を省略するが、基本的には、上記各実施例と同様に、記憶処理(付与処理)時の演算アルゴリズムに準じた所定の再生演算を行なうことによって、付属情報の各ビットの抽出と再生を行なうことができる。
【0038】
図8において、ステップ81では、付属情報(この例では電子署名情報)を埋め込むべき主要情報(この例ではMIDIデータ)のキーオンイベントデータ列SMF1を得る。これは、付属情報を埋め込む対象となる主要情報の種類を、前述実施例と同様にベロシティバイト部分としたためである。すなわち、前述と同様に、MIDIデータ列(Standard MIDI File:SMF)の中からキーオンイベントデータやプログラムチェンジデータやコントロールチェンジデータなどの各種のMIDIデータを順次取り出し、取り出されたMIDIデータがキーオンイベントデータKONであるかどうかを判定し、キーオンイベントデータからなるMIDIデータ列SMF1を得る。すなわち、MIDIデータ列は、基本的には、キーオンステータスバイト、キーコードバイト、ベロシティバイトからなるキーオンイベントデータや、これ以外のプログラムチェンジイベントデータやコントロールチェンジイベントデータなどから構成されているが、この中から、キーオンイベントデータのMIDIデータ列SMF1を取り出すのである。このキーオンイベントデータのMIDIデータ列SMF1はデュレーションタイムDと3バイトのキーオンイベントデータとの組合せで構成される。このキーオンイベントデータ列SMF1の具体例は図9(A)のようである。
【0039】
次に、ステップ82では、このキーオンイベントデータ列SMF1内に分散して書き込まれるべき付属情報(この例では電子署名すなわち前述の著作権表示データ)に関するデータ列を得る。
次に、ステップ83では、上記付属情報データ列(電子署名として付与する情報)から、ASCIIのデータ列の1バイト分をバイトレジスタBRに格納する。例えば、『Y』=『59H』をバイトレジスタBRに格納すると、それは図9(E)に示すように『01011001B』=『89D』のようなビット列になる。また、レジスタjにバイトレジスタBRのビット長を示すデータ(例えば『8D』)をストアする。
ステップ84では、レジスタjの値から1減少した値をレジスタkにストアする。
ステップ85では、相前後するキーオンイベントデータ同士のキーコードバイトのキーコード同士の差分値を求め、それをキー差分値レジスタdkeyに格納するとともにベロシティバイトのベロシティ同士の差分値を求め、それをベロシティ差分値レジスタdvelに格納する。ここでは、後ろのキーオンイベントデータの値から前のキーオンイベントデータの値を減算して求めている。すなわち、nはイベントの順序を示す順序数であり、イベント順序nのベロシティデータVELnを、その次のイベント順序n+1のベロシティデータVELn+1から引き算し、その結果の差分値をベロシティ差分値レジスタdvelに格納する。また、イベント順序nのキーコードデータNOTEnを、その次のイベント順序n+1のキーコードデータNOTEn+1から引き算し、その結果の差分値をキー差分値レジスタdkeyに格納する。これによって図9(B)のような差分値データ対(dkey,dvel)が作成される。
【0040】
ステップ86では、この差分値データ対(dkey,dvel)に所定の関数f(dkey,dvel)の処理を施して、その最下位ビットLSBの値と、レジスタBR内のk番目のビットの値とを比較する。例えば、この関数f(dkey,dvel)は、キー差分値dkeyとベロシティ差分値dvelとの合計(dkey+dvel)を求めることからなっている。図9(C)は、各差分値データ対(dkey,dvel)毎のキー差分値dkeyとベロシティ差分値dvelとの合計値(dkey+dvel)を例示するものである。図9(D)は、各合計値(dkey+dvel)の最下位ビットLSBの値を示す。
なお、バイトレジスタBRの格納値の順位kは、最上位ビットをk=7とし、最下位ビットをk=0とする。図9(E)に示されたバイトレジスタBRの格納値『01011001B』の例では、最初はk=7によって最も左側(最上位)のビットの「0」が、合計値(dkey+dvel)(図9(C)では『24D』)のLSB(図9(D)では「0」)と比較される。
【0041】
ステップ86がNOであれば、ステップ87の処理の後にステップ88に行くが、ステップ86がYESであれば、ステップ87を飛び越してステップ88に行く。ステップ87では、イベント順序n+1のベロシティデータVELn+1の値に所定の奇数m(例えばm=1)を加算し、該イベント順序n+1のベロシティデータVELn+1の値を変更する。すなわち、ステップ86での比較結果が不一致であればステップ87でベロシティデータVELn+1の変更(mの加算)を行なうが、ステップ86での比較結果が一致であればベロシティデータVELn+1は変更しない。このようにして、キーオンイベントデータ列SMF1におけるベロシティデータVELの変更又は不変更が上記所定のアルゴリズムに従って制御され、図9(F)に例示するような、変更制御されたキーオンイベントデータ列SMF2が得られる。なお、奇数mを加算することは、最下位ビットLSBの値を反転することを意味する。すなわち、不一致のときに最下位ビットLSBの値を反転することにより、一致する状態に変更されることになる。こうして、変更制御されたキーオンイベントデータ列SMF2における差分値データ対毎の合計値(dkey+dvel)の各最下位ビットLSBは、付属情報の各ビットの値に一致しているものとなる。
ステップ88ではレジスタkの値を1減少する。ステップ89ではイベント順序nを1増加して更新する。次に、ステップ90では、更新されたイベント順序nに基づき、用意されたキーオンイベントデータ列SMF1の処理が終了したかを判定する。NOであれば、ステップ91に行き、k<0であるかを調べる。NOであれば、ステップ85に戻り、更新されたnとkに関して、上述のステップ85〜90の処理を繰り返す。
【0042】
上述のステップ85〜90の処理の繰り返しによって、バイトレジスタBR内の1バイト分の付属情報(例えば図9(E)の『01011001B』)の埋込処理が、次のようにして行われる。まず、図9(A)のデータ列SMF1の場合、各差分値データ対(dkey,dvel)毎の合計値(dkey+dvel)のデータ列としては、図9(C)に示すようなデータ列『24,22,21,28,9,41,22,−15』が順次得られる。ここで、イベント順序の若い差分値データ対(dkey,dvel)の合計値(dkey+dvel)の最下位ビットLSB(図9(D))とバイトレジスタBRの左側から順番にビット同士が比較され、等しい(YES)場合にはキーオンイベントデータのベロシティ値を変更せずに、次の右側のビット同士の比較に移る。等しくない(NO)場合にはそのビットに関係する2つのキーオンイベントデータの中の後ろ側のキーオンイベントデータのベロシティに奇数m(例えばm=1)を加算して該ベロシティ値を変更し、次の右側のビット同士を比較に移る。こうして、nとkを更新して順次比較されることになり、結局、図9のデータ例の場合には、2番目の差分値データ対の合計値の最下位ビットLSBとバイトレジスタBRの左から2番目のビット同士が等しくないので、それに関係するMIDIデータ列SMF1中の3番目のキーオンイベントデータのベロシティ『45』に『1』を加算して、『46』に変更する。ここで、3番目のキーオンイベントデータのベロシティの値が『46』に変更されると、それによって3番目の差分値データ(dkey,dvel)は(14,6)となり、その合計値(dkey+dvel)は『20』となる。その結果、3番目の差分値データ対の合計値の最下位ビットLSBは『0』に変更される。次はこの変更された3番目の最下位ビットLSBと3番目のバイトレジスタBRのビット同士が比較される。この結果、両者は等しいと判断されるので、4番目のビット同士の比較処理に移る。このようにして、順番に比較処理とベロシティへの『1』の加算処理を行うと、5番目と6番目のベロシティにも『1』が加算されることになる。以上の処理の結果、MIDIデータ列SMF1の3番目のベロシティ『45』、5番目のベロシティ『67』及び6番目のベロシティ『73』にそれぞれ『1』が加算されて、MIDIデータ列SMF1がMIDIデータ列SMF2(図9(F))のように変更される。
【0043】
ステップ92では、未処理の付属情報が有るか否かを調べ、有れば、ステップ83に戻り、次の付属情報の1バイトをレジスタBRにセットする。そして、前述と同様のステップ83〜91の処理を繰り返す。主要情報内に埋め込むべきすべての付属情報について、上述の埋め込み処理を終了すると、ステップ92はNOとなり、図8の処理を終了する。なお、主要情報内に埋め込むべきすべての付属情報について上述の埋め込み処理を終了する前に、ステップ90がYESとなった場合は、未処理の付属情報を処理するために適切な処理ステップ(図示せず)を付加してもよい。例えば、無発音の擬似的なキーオンイベントデータ群を設定し、そこに未処理の付属情報を埋め込み処理するようにしてよい。
【0044】
以上のようにして付属情報を付加する処理(埋め込み処理)の施されたMIDIデータ列SMF2は、適宜の記憶装置又はバッファ回路に記憶される。
このように付属情報を付加済(埋め込み済)のMIDIデータ列SMF2から付属情報の各ビットを抽出し再生するには、記憶装置又はバッファ回路からMIDIデータ列SMF2を読み出して、上述のアルゴリズムに準じた所定の再生演算を行なえばよい。そのための再生処理手順は、例えば図10のような手順で行なうことができる。
すなわち、まず、記憶装置又はバッファ回路からMIDIデータ列SMF2を読み出して、電子署名(すなわち付属情報)を検出すべきデータ列SMF2を得る(ステップ93)。次に、読み出したMIDIデータ列SMF2から、イベント順序レジスタnの値によって指示されるイベント順に、差分値データ対(dkey,dvel)を求め(ステップ94)、その差分値データ対毎に所定の関数f(dkey,dvel)の演算処理つまり合計処理(dkey+dvel)を施し(ステップ95)、その各合計値の最下位ビットLSBを抽出して、所定の再生バッファメモリに順次ストアする(ステップ96)。次に、レジスタnの値を1増加し、ステップ98のNOを経由してステップ94に戻り、ステップ94,95,96の処理を繰り返す。付属情報のすべてを検出し終えると、ステップ98がYESとなり、処理を終了する。前述の通り、変更制御されたキーオンイベントデータ列SMF2における差分値データ対毎の合計値(dkey+dvel)の各最下位ビットLSBは、付属情報の各ビットの値に一致しているものとなっているので、抽出した各合計値の最下位ビットLSBのデータ値を、イベント順に再生バッファメモリに順次ストアすることにより、再生バッファメモリにおいて付属情報を配列させて再生することができる。
【0045】
以上の処理によって、例えば、図9(F)のMIDIデータ列SMF2に基づいて、図9(G)のような差分値データ対(dkey,dvel)のデータ列が求められ、その差分値データ対毎に所定の関数f(dkey,dvel)の処理つまり合計処理(dkey+dvel)を施して図9(H)のような合計値データ列を求める。このようにして求められた各合計値の最下位ビットLSBが埋め込まれていた電子署名(つまり付属情報)であり、図9(E)と同じものが抽出・再生されることが理解できる。
なお、上記例では、キーコードの差分値とベロシティの差分値を夫々求め、両者の合計値のLSBと付属情報との比較結果に応じてのベロシティの変更演算を行なっているが、これに限らず、ベロシティの差分値のみを求め、この差分値のLSBと付属情報との比較結果に応じてのベロシティの変更演算を行なうようにしてもよい。
以上のように、この実施例によれば、ベロシティデータの差分値をパラメータとして該ベロシティデータに対する付属情報の埋め込み演算を行なうようにしたので、ベロシティデータ全体をシフトするようなデータ改変がなされたような場合において、差分値情報が維持されることにより、埋め込んだ付属情報の改変を防止することができる。
なお、この実施の形態では、図9(D)の関数処理データの最下位ビットLSBと図9(E)のバイトレジスタBRの内容とを比較する場合に、左側から順番にビット同士を比較し、等しい(YES)場合には次の右側のビット同士を比較し、等しくない(NO)場合にはそのビットに関係する2つのキーオンイベントデータの中の後ろ側のキーオンイベントデータのベロシティに奇数m(例えばm=1)を加算して、次の右側のビット同士を比較するという一連の処理で行っている。ここで、加算する奇数mの値は、『1』に限らず、『3』や『5』などであってもよい。また、奇数mを加算することに限らず、減算するようにしてもよい。また、加算又は減算する奇数mの値を定数とせずに、適宜、変化させてもよい。また、比較の順序は、右側のビットから順番に比較するようにしてもよい。要するに、上記実施例に限定されるものではなく、結果として、上記と同等の処理を行なうことができるように、種々のソフト的な処理をMIDIデータ列SMF1に施すようにすればよい。
【0046】
なお、図5の電子署名付与処理2では、チャンネル毎に関数処理の内容を変更することによって、それぞれの情報を一度に変更するようなエディット処理、例えばチャンネル情報の入れ替えやキーコードのシフトなどといったものが行われた場合でも、エディットによって変更されるデータに関係しない関数を利用するチャネルから電子署名データを復元するようにしている。図8〜図10の実施の形態のように、キーコードとベロシティの差分値を求めるようなものでも、同様に、各チャンネル毎に重複して付属情報の埋め込み処理を施すようにすることができる。
例えば、図8では、キーオンイベントデータのMIDIデータ列SMF1に対して順番に差分値を求め、それに対して付加情報を順番に付加する場合について説明したが、差分値の大きさに基づいて所定数の領域(例えば、3つの領域)に分類し、分類されたもの同士で図8と同じような処理を施すようにしてもよい。すなわち、キーオンイベントデータのMIDIデータ列が
『D,9n,3c,40,D,9n,3c,7f,D,9n,3c,10,D,9n,3c,7f,D,9n,3c,7f,D,9n,3c,20,D,9n,3c,50,D,9n,3c,7f・・・・』のようなものであったとする。
この場合、ベロシティの差分値はdvelは、『3f,−6f,6f,0,−5f,30,2f・・・』のようになる。
ここで、差分値の大きさが0〜2fの場合を第1領域、30〜5fの場合を第2領域、60〜7fの場合を第3領域とする。従って、第4番目と第7番目の差分値が第1領域となり、第1番目と第6番目の差分値が第2領域となり、第3番目が第3領域となる。マイナスの差分値は無視する。このようにして分類された第1〜第3の各領域について前述と同様の付属情報の付与処理を施すことによって、各領域に埋め込んだ付属情報がすべて改変される確率は2分の1の3乗、すなわち12.5パーセントとなる。このことは、1つでも最下位ビットが残る確率が87.5パーセントであることを意味する。
このようにすると、データ全体が係数aで乗算された場合でも、埋め込んだ付属情報が改変される確率は非常に小さくなり、付属情報の内容を保持することが可能となり、付属情報の改変に対応することが可能となる。
【0047】
上記のすべての実施例に関連して、本発明は、主要情報内に付属情報を組み込んで記憶するための方法又は装置として構成することができ、さらには、その方法を実施するためのプログラムを記録した記録媒体として構成することができ、さらには、その方法に従って記録されたデータ構造を持つデータを記憶した記録媒体として構成することができる。
更に、上記のすべての実施例に関連して、本発明は、付属情報を組み込んで記憶してなる主要情報から、該付属情報を抽出し再生するための方法又は装置として構成することができ、さらには、その方法を実施するためのプログラムを記録した記録媒体として構成することができる。
勿論、上記のすべての実施例において、図2で電子楽器1として示された装置は、汎用のパーソナルコンピュータによって置き換えることができることは、前述の通りである。また、電子楽器や楽音の合成/制御処理の分野に限らず、どのような電子情報を取り扱う分野ででも本発明を適用することができる。
また、上記各実施例において、付属情報のすべてを主要情報内に組み込む(埋め込む)ことなく、付属情報の一部を主要情報内に組み込む(埋め込む)ようにしてもよいのは勿論である。その場合、主要情報内に組み込まなかった残りの付属情報は、従来同様にヘッダ部等の適当な領域に記憶しておいてもよい。
上記のすべての実施例に関連して、付属情報(第2の情報)を組み込んだ状態からなる主要情報(第1の情報)を通信ネットワークを介して伝送するようにしてもよい。その場合、受信側では、通信ネットワークを介して伝送されたデータを受信し、受信したデータにおける主要情報(第1の情報)のデータのうちの特定のデータ単位から、複数の小サイズのデータ片を再現し、再現された各データ片により付属情報(第2の情報)を再生するようにすればよい。
【0048】
【発明の効果】
この発明によれば、音楽データなどの複数のイベントデータで構成される主要情報(第1の情報)の中に適宜の付属情報(第2の情報)を組み込んで記憶することができるので、付属情報の不正な削除や改変を防ぐことができる、という優れた効果を奏する。また、付属情報を組み込んだ主要情報の一部が削除されたり変更された場合でも、付属情報を再現することができる、という優れた効果を奏する。
【図面の簡単な説明】
【図1】 この発明に係る電子情報の記憶(付与)処理及び再生(検出)処理におけるデータ変換形態の具体例を示すデータ図。
【図2】 この発明に係る電子情報処理システムとして動作する電子楽器のハードウェア全体構成例を示すブロック図。
【図3】 図2のハードウェアを用いて実行される電子署名付与処理(記憶処理)の一実施例を示すフローチャート図。
【図4】 図3に従って記憶された情報から電子署名(付属情報)を再生するための電子署名検出処理(再生処理)の一実施例を示すフローチャート図。
【図5】 図2のハードウェアを用いて実行される電子署名付与処理(記憶処理)の別の実施例を示すフローチャート図。
【図6】 図5に従って記憶された情報から電子署名(付属情報)を再生するための電子署名検出処理(再生処理)の一実施例を示すフローチャート図。
【図7】 図2における表示回路において表示される表示画面の一例を示す図。
【図8】 図2のハードウェアを用いて実行される電子署名付与処理(記憶処理)の更に別の実施例を示すフローチャート図。
【図9】 図8に従う記憶処理及び図10に従う再生処理におけるデータ変換形態の具体例を示すデータ図。
【図10】 図8に従って記憶された情報から電子署名(付属情報)を再生するための電子署名検出処理(再生処理)の一実施例を示すフローチャート図。
【符号の説明】
1 電子楽器
21 CPU
22 ROM
23 RAM
24 音源
25 フロッピーディスクドライブ
26 鍵盤
27 パネルスイッチ
28 表示回路
29 データ及びアドレスバス
Claims (17)
- 複数のイベントデータで構成される第1の情報を入力するステップと、
前記イベントデータを2以上のグループに分類するステップと、
前記第1の情報とは異なる第2の情報を入力するステップと、
前記分類されたグループ毎に、イベントデータの内容を同じ前記第2の情報に基づいて変更することにより、前記第1の情報に前記第2の情報を埋め込むステップと、
前記第2の情報が埋め込まれた前記第1の情報を出力するステップと
からなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込むことを特徴とする電子情報処理方法。 - 2以上のイベント種別でなる複数のイベントデータで構成される第1の情報を入力するステップと、
前記イベント種別毎に前記イベントデータを2以上のグループに分類するステップと、
前記第1の情報とは異なる第2の情報を入力するステップと、
前記分類されたグループ毎に、イベントデータの内容を同じ前記第2の情報に基づいて変更することにより、前記第1の情報に前記第2の情報を埋め込むステップと、
前記第2の情報が埋め込まれた前記第1の情報を出力するステップと
からなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込むことを特徴とする電子情報処理方法。 - それぞれ所定のパラメータを含む複数のイベントデータで構成される第1の情報を入力するステップと、
前記パラメータの内容に応じて前記イベントデータを2以上のグループに分類するステップと、
前記第1の情報とは異なる第2の情報を入力するステップと、
前記分類されたグループ毎に、イベントデータの内容を同じ前記第2の情報に基づいて変更することにより、前記第1の情報に前記第2の情報を埋め込むステップと、
前記第2の情報が埋め込まれた前記第1の情報を出力するステップと
からなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込むことを特徴とする電子情報処理方法。 - 複数のイベントデータで構成される第1の情報を入力するステップと、
前記イベントデータを2以上のグループに分類するステップと、
前記第1の情報とは異なる第2の情報を入力するステップと、
前記2以上に分類された各グループ毎に、当該グループに含まれるイベントデータの内容を、同じ前記第2の情報を用いて演算処理により変更することにより、前記第1の情報に前記第2の情報を埋め込むステップと、
前記第2の情報が埋め込まれた前記第1の情報を出力するステップと
からなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込み、かつ、前記演算処理を各グループ毎に異ならせることを特徴とする電子情報処理方法。 - 複数のイベントデータで構成される第1の情報を入力するステップであって、該第1の情報には、2以上のグループに分類された前記イベントデータにおいて該第1の情報とは異なる第2の情報が所定の演算処理に従い各グループ毎にそれぞれ埋め込まれており、かつ、各グループに埋め込まれた前記第2の情報は同一であり、
前記入力した第1の情報に含まれる前記イベントデータを前記2以上のグループに分類するステップと、
前記分類されたイベントデータのうち少なくとも一つのグループから該グループに含まれるイベントデータに埋め込まれている前記第2の情報を前記所定の演算処理に基づいて復号し抽出するステップと、
前記抽出した第2の情報を出力するステップと
からなる電子情報処理方法。 - 2以上のイベント種別でなる複数のイベントデータで構成される第1の情報を入力するステップであって、該第1の情報には、2以上のグループに分類された前記イベントデータにおいて該第1の情報とは異なる第2の情報が所定の演算処理に従い各グループ毎にそれぞれ埋め込まれており、かつ、各グループに埋め込まれている前記第2の情報は同一であり、
前記入力した第1の情報に含まれる前記イベント種別毎に前記イベントデータを前記2以上のグループに分類するステップと、
前記分類されたイベントデータのうち少なくとも一つのグループから該グループに含まれるイベントデータに埋め込まれている前記第2の情報を前記所定の演算処理に基づいて復号し抽出するステップと、
前記抽出した第2の情報を出力するステップと
からなる電子情報処理方法。 - それぞれ所定のパラメータを含む複数のイベントデータで構成される第1の情報を入力するステップであって、該第1の情報には、2以上のグループに分類された前記イベントデータにおいて該第1の情報とは異なる第2の情報が所定の演算処理に従い各グループ毎にそれぞれ埋め込まれており、かつ、各グループに埋め込まれている前記第2の情報は同一であり、
前記入力した第1の情報に含まれる前記パラメータの内容に応じて前記イベントデータを前記2以上のグループに分類するステップと、
前記分類されたイベントデータのうち少なくとも一つのグループから該グループに含まれるイベントデータに埋め込まれている前記第2の情報を前記所定の演算処理に基づいて復号し抽出するステップと、
前記抽出した第2の情報を出力するステップと
からなる電子情報処理方法。 - 複数のイベントデータで構成される第1の情報を入力するステップであって、該第1の情報には、2以上のグループに分類された前記イベントデータにおいて該第1の情報とは異なる第2の情報が、各グループ毎にそれぞれ異なる所定の演算処理に従い、各グループ毎にそれぞれ埋め込まれており、かつ、各グループに埋め込まれている前記第2の情報は同一であり、
前記入力した第1の情報に含まれる前記イベントデータを前記2以上のグループに分類するステップと、
前記分類されたイベントデータのうち少なくとも一つのグループから、当該グループに含まれるイベントデータに埋め込まれている前記第2の情報を、当該グループについての前記所定の演算処理に基づいて、復号し抽出するステップと、
前記抽出した第2の情報を出力するステップと
からなる電子情報処理方法。 - 請求項1乃至8のいずれかに記載の方法をコンピュータに実行させるためのプログラムを記憶した機械読み取り可能な記憶媒体。
- 複数のイベントデータで構成される第1の情報を入力する手段と、
前記イベントデータを2以上のグループに分類する手段と、
前記第1の情報とは異なる第2の情報を入力する手段と、
前記分類されたグループ毎に、イベントデータの内容を同じ前記第2の情報に基づいて変更することにより、前記第1の情報に前記第2の情報を埋め込む手段と、
前記第2の情報が埋め込まれた前記第1の情報を出力する手段と
からなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込むことを特徴とする電子情報処理装置。 - 2以上のイベント種別でなる複数のイベントデータで構成される第1の情報を入力する手段と、
前記イベント種別毎に前記イベントデータを2以上のグループに分類する手段と、
前記第1の情報とは異なる第2の情報を入力する手段と、
前記分類されたグループ毎に、イベントデータの内容を同じ前記第2の情報に基づいて変更することにより、前記第1の情報に前記第2の情報を埋め込む手段と、
前記第2の情報が埋め込まれた前記第1の情報を出力する手段と
からなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込むことを特徴とする電子情報処理装置。 - それぞれ所定のパラメータを含む複数のイベントデータで構成される第1の情報を入力する手段と、
前記パラメータの内容に応じて前記イベントデータを2以上のグループに分類する手段と、
前記第1の情報とは異なる第2の情報を入力する手段と、
前記分類されたグループ毎に、イベントデータの内容を同じ前記第2の情報に基づいて変更することにより、前記第1の情報に前記第2の情報を埋め込む手段と、
前記第2の情報が埋め込まれた前記第1の情報を出力する手段と
からなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込むことを特徴とする電子情報処理装置。 - 複数のイベントデータで構成される第1の情報を入力する手段と、
前記イベントデータを2以上のグループに分類する手段と、
前記第1の情報とは異なる第2の情報を入力する手段と、
前記2以上に分類された各グループ毎に、当該グループに含まれるイベントデータの内容を、同じ前記第2の情報を用いて演算処理により変更することにより、前記第1の情報に前記第2の情報を埋め込む手段と、
前記第2の情報が埋め込まれた前記第1の情報を出力する手段と
からなり、前記第1の情報の中に同じ前記第2の情報を複数のグループ間で重複して埋め込み、かつ、前記演算処理を各グループ毎に異ならせることを特徴とする電子情報処理装置。 - 複数のイベントデータで構成される第1の情報を入力する手段であって、該第1の情報には、2以上のグループに分類された前記イベントデータにおいて該第1の情報とは異なる第2の情報が所定の演算処理に従い各グループ毎にそれぞれ埋め込まれており、かつ、各グループに埋め込まれた前記第2の情報は同一であり、
前記入力した第1の情報に含まれる前記イベントデータを前記2以上のグループに分類する手段と、
前記分類されたイベントデータのうち少なくとも一つのグループから該グループに含まれるイベントデータに埋め込まれている前記第2の情報を前記所定の演算処理に基づいて復号し抽出する手段と、
前記抽出した第2の情報を出力する手段と
からなる電子情報処理装置。 - 2以上のイベント種別でなる複数のイベントデータで構成される第1の情報を入力する手段であって、該第1の情報には、2以上のグループに分類された前記イベントデータにおいて該第1の情報とは異なる第2の情報が所定の演算処理に従い各グループ毎にそれぞれ埋め込まれており、かつ、各グループに埋め込まれている前記第2の情報は同一であり、
前記入力した第1の情報に含まれる前記イベント種別毎に前記イベントデータを前記2以上のグループに分類する手段と、
前記分類されたイベントデータのうち少なくとも一つのグループから該グループに含まれるイベントデータに埋め込まれている前記第2の情報を前記所定の演算処理に基づいて復号し抽出する手段と、
前記抽出した第2の情報を出力する手段と
からなる電子情報処理装置。 - それぞれ所定のパラメータを含む複数のイベントデータで構成される第1の情報を入力する手段であって、該第1の情報には、2以上のグループに分類された前記イベントデータにおいて該第1の情報とは異なる第2の情報が所定の演算処理に従い各グループ毎にそれぞれ埋め込まれており、かつ、各グループに埋め込まれている前記第2の情報は同一であり、
前記入力した第1の情報に含まれる前記パラメータの内容に応じて前記イベントデータを前記2以上のグループに分類する手段と、
前記分類されたイベントデータのうち少なくとも一つのグループから該グループに含まれるイベントデータに埋め込まれている前記第2の情報を前記所定の演算処理に基づいて復号し抽出する手段と、
前記抽出した第2の情報を出力する手段と
からなる電子情報処理装置。 - 複数のイベントデータで構成される第1の情報を入力する手段であって、該第1の情報には、2以上のグループに分類された前記イベントデータにおいて該第1の情報とは異なる第2の情報が、各グループ毎にそれぞれ異なる所定の演算処理に従い、各グループ毎にそれぞれ埋め込まれており、かつ、各グループに埋め込まれている前記第2の情報は同一であり、
前記入力した第1の情報に含まれる前記イベントデータを前記2以上のグループに分類する手段と、
前記分類されたイベントデータのうち少なくとも一つのグループから、当該グループに含まれるイベントデータに埋め込まれている前記第2の情報を、当該グループについての前記所定の演算処理に基づいて、復号し抽出する手段と、
前記抽出した第2の情報を出力する手段と
からなる電子情報処理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001036206A JP4304870B2 (ja) | 1996-07-02 | 2001-02-13 | 電子情報処理方法及び装置並びに記録媒体 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP19152896 | 1996-07-02 | ||
JP14861297 | 1997-05-22 | ||
JP8-191528 | 1997-05-22 | ||
JP9-148612 | 1997-05-22 | ||
JP2001036206A JP4304870B2 (ja) | 1996-07-02 | 2001-02-13 | 電子情報処理方法及び装置並びに記録媒体 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP19312897A Division JP3178378B2 (ja) | 1996-07-02 | 1997-07-02 | 電子情報処理システム及び方法並びに記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001296863A JP2001296863A (ja) | 2001-10-26 |
JP4304870B2 true JP4304870B2 (ja) | 2009-07-29 |
Family
ID=27319587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001036206A Expired - Lifetime JP4304870B2 (ja) | 1996-07-02 | 2001-02-13 | 電子情報処理方法及び装置並びに記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4304870B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4790216B2 (ja) * | 2001-12-21 | 2011-10-12 | ソニー デーアーデーツェー オーストリア アクチェンゲゼルシャフト | 異なる待ち時間を有する記録媒体 |
WO2014101169A1 (zh) * | 2012-12-31 | 2014-07-03 | 北京印声科技有限公司 | 提供增强音频数据流的方法及装置 |
-
2001
- 2001-02-13 JP JP2001036206A patent/JP4304870B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2001296863A (ja) | 2001-10-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7485795B2 (en) | Method and device for storing main information with associated additional information incorporated therein | |
US7849319B2 (en) | Method and device for incorporating additional information into main information through electronic watermarking technique | |
US7078607B2 (en) | Dynamically changing music | |
US7612276B2 (en) | Method and system for synthesizing electronic transparent audio | |
JP3178378B2 (ja) | 電子情報処理システム及び方法並びに記録媒体 | |
JP2008197678A (ja) | オンライン作曲のためのシステム、方法及びコンピュータ読取り可能な記録媒体 | |
JP4304870B2 (ja) | 電子情報処理方法及び装置並びに記録媒体 | |
JP3180788B2 (ja) | 電子情報付与及び検出のための装置及び方法 | |
Lee | Issues surrounding the preservation of digital music documents | |
JP4370725B2 (ja) | 電子情報処理方法及び装置 | |
JP3180789B2 (ja) | 電子情報処理方法及び装置 | |
JP3870700B2 (ja) | 電子情報処理方法及び装置 | |
JP3180643B2 (ja) | 通信カラオケ装置の楽曲データの登録・削除・設定変更方法 | |
JPH10124046A (ja) | 自動演奏データ変換システム及びプログラムを記録した媒体 | |
GB2354860A (en) | Storing music information with associated additional information incorporated therein | |
US6476305B2 (en) | Method and apparatus for modifying musical performance data | |
US20050160047A1 (en) | Music content using apparatus | |
Bianchini et al. | Virtual sound | |
JP3905743B2 (ja) | 電子透かし埋め込み方法 | |
JP2000092042A (ja) | 楽曲データ提供システム及び楽曲データ復号装置 | |
JPH11249670A (ja) | カラオケ装置及びカラオケ端末装置 | |
JPH11288275A (ja) | 演奏情報変換装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040402 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060509 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060710 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061010 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061207 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20080408 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20080610 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20090407 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090420 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120515 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130515 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140515 Year of fee payment: 5 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |