JP2000338973A - 演奏情報圧縮方法、演奏情報伸張方法及び演奏情報伝送方法 - Google Patents
演奏情報圧縮方法、演奏情報伸張方法及び演奏情報伝送方法Info
- Publication number
- JP2000338973A JP2000338973A JP2000127578A JP2000127578A JP2000338973A JP 2000338973 A JP2000338973 A JP 2000338973A JP 2000127578 A JP2000127578 A JP 2000127578A JP 2000127578 A JP2000127578 A JP 2000127578A JP 2000338973 A JP2000338973 A JP 2000338973A
- Authority
- JP
- Japan
- Prior art keywords
- file
- performance information
- pointer
- variable
- tag
- 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.)
- Granted
Links
Landscapes
- Reverberation, Karaoke And Other Acoustics (AREA)
- Electrophonic Musical Instruments (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
演奏情報を圧縮することをできる演奏情報圧縮を提供す
る。 【構成】 演奏情報を所定のパート毎に分割し、先
頭のパートから順次データ比較を行い、同一のパートに
同一パート番号を付与しファイルAを作成し、ファイル
Aの先頭からパート番号を調べ、重複する番号が出現し
たときは、それを削除した新たなファイルBを作成し、
ファイルAとファイルBを先頭のパートからパート単位
でパート番号の比較を行い、互いに相違するパート番号
が出現したら、ジャンプマークと移動先であるタグの各
々のレベルをインクリメントすると共に、ファイルB中
の相違するパート番号の直前にレベルのインクリメント
されたジャンプマークを挿入し、かつファイルA中の相
違するパート番号と同一のファイルB中のパート番号の
直前にレベルのインクリメントされたタグを挿入する。
Description
び伝送に関し、特に楽音を構成する音の音程と発音時間
を指定する演奏情報のデータ量を少なくするための圧縮
方法と、一旦圧縮された演奏情報の伸長方法、及び圧縮
された演奏情報の伝送方法に関する。
定する演奏情報として例えばMIDI信号がある。MI
DI信号はSMF(スタンダードMIDIファイル)と
いう形式でメモリ等に蓄積されたり、伝送されたりす
る。かかるMIDI信号は従来の光ディスク等の記憶媒
体に記録されたデータを読み出す方式のカラオケ装置に
代って通信カラオケといわれているシステムに用いられ
ている。
詞、関連する画像(動画又は静止画)等を光ディスク等
から出力された信号の情報の形態でそのまま送信する
と、データ量が膨大であることから、楽音情報について
はMIDI信号としてステーションから各ユーザーの使
用場所に設けた端末へ送信し、歌詞については文字コー
ドとして送信するもので、必要に応じて所望の曲のデー
タを配信するものである。かかる例として株式会社エク
シング製の「JOYSOUND」システムが知られてい
る。なお、音符、信号よりなるメロディの楽譜データに
ついて繰り返し部分を効率よく処理する技術が特公昭6
1−91697号公報に示されているが、これはMID
I信号を前提とするものではなく、繰り返し等の記号を
用いた楽譜が存在することを前提としたものであり、S
MFで表現されるような既にある演奏情報を圧縮する技
術ではない。さらに特開平4−147192号公報には
楽譜の繰り返し部分をパターン化する技術が示されてい
るが、十分なデータの圧縮は期待できない。
め、これまでに提案されたシステムは次の表1のように
分類される。
に、MIDI信号を用いた場合、CD、LD等から再生
された音の品質とは同一ではないが、品質を向上させよ
うとすればデータ量が増大することがわかる。データ量
が多いと、ISDNのような高速デジタル回線を用いな
ければリアルタイム通信が不可能となり、またデータの
蓄積、保存の上でも必要メモリー容量が大きくなりコス
トの上昇につながってしまう。かかる問題は、通信カラ
オケシステムが一般家庭へ普及していくための障害とな
っている。また、通信上の問題とは別に、ハードディス
ク等の大容量メモリに多数の曲の演奏情報を蓄積してお
く、所謂パッケージカラオケシステムにおいても、デー
タ量の圧縮が求められている。
うに、演奏が一定のパターンで繰り返されることが多
い。ところがMIDI信号のような演奏情報では時間軸
上に発生する次々のイベントの順列をそのままの形で扱
っているので、一般的なデジタル信号の圧縮技術による
データ量の圧縮を行うにとどまっていた。このため演奏
情報を配信する通信カラオケやメモリに多数曲のデータ
を蓄積したパッケージ形式のカラオケシステム等では、
データ量の圧縮・削減によるコスト低減、通信時間の短
縮等が求められている。
音程と発音時間を指定する演奏情報のデータ量を大幅に
削減すべく演奏情報を圧縮することのできる演奏情報圧
縮方法と、かかる方法で圧縮された演奏情報を伸張して
基の演奏情報を得ることのできる演奏情報伸張方法を提
供することを目的とする。
に本発明では、演奏情報が一定の時間単位で繰り返さ
れ、重複部分があることに着目し、かかる繰り返し部分
を検出し、これを削除するとともに、再生時に圧縮情報
を正しく再現できるよう、削除された繰り返し部分の位
置等を示す信号を挿入するようにし、再生時には、この
信号を用いて圧縮された演奏情報を伸張して、元の演奏
情報を得るようにしたものである。
音の音程と発音時間を指定する演奏情報が複数のパート
に分割されてなるパート列の先頭パートからパート単位
で順次データの比較を行い、前記パート列において実質
的に同一のデータのパートに同一のパート番号を付与し
たファイルAを作成する第1のステップと、前記ファイ
ルAにおいて、先頭からパート番号を調べ、重複する番
号が出現したときは、その重複するパート及びそのパー
トに付与されたパート番号を削除して新たなファイルB
を作成する第2のステップと、前記ファイルAと前記フ
ァイルBとを先頭パートからパート単位でパート番号の
比較を行い、互いに相違するパート番号が出現したとき
には、前記ファイルB中の相違するパート番号の直前に
パートを移動することを示す第1のジャンプマークを挿
入し、かつ前記ファイルA中の相違するパート番号と同
一の前記ファイルB中のパート番号の直前に前記第1の
ジャンプマークからの移動先である第1のタグを挿入す
る第3のステップと、前記ファイルA中の前記相違する
パート番号以降のパートと前記ファイルBの前記第1の
タグの挿入された以降のパートとを引き続きパート単位
でパート番号の比較を行い、互いに相違するパート番号
が出現したときには、前記ファイルB中の相違するパー
ト番号の直前にパートを移動することを示す第2のジャ
ンプマークを挿入し、かつ前記ファイルA中の相違する
パート番号と同一の前記ファイルB中のパート番号の直
前に前記第2のジャンプマークの移動先である第2のタ
グを挿入する第4のステップとを有する演奏情報圧縮方
法を提供する。
を指定する演奏情報が複数のパートに分割されてなるパ
ート列の先頭パートからパート単位で順次データの比較
を行い、実質的に同一のデータのパートに同一のパート
番号を付与してファイルAを作成する第1のステップ
と、当初内容のないファイルCを作成する第2のステッ
プと、前記ファイルC内での位置を示すファイルCのポ
インタを前記ファイルCの末尾に設定する第3のステッ
プと、当初内容のないパートリストを作成する第4のス
テップと、変数iに前記ファイルAの最初のパート番号
を設定する第5のステップと、前記変数iが前記パート
リストにあるか否かを判断するパート番号確認ステップ
と、前記パート番号確認ステップにて前記変数iで示さ
れるパート番号が存在しないときには、前記ポインタが
前記ファイルCの末尾にあるか否かを判断するポインタ
位置第1判断ステップと、前記ポインタ位置第1判断ス
テップにて前記ポインタが前記ファイルCの末尾以外に
あると判断されたときには、前記ポインタが現在ある位
置にジャンプマークJUMP(n)を挿入し、前記ポイ
ンタを前記ファイルCの末尾へ移動させ、その後前記ポ
インタの位置に前記ジャンプマークJUMP(n)の移
動先であるタグTAG(n)を挿入し、前記変数nを1
つインクリメントする第6のステップと、前記ポインタ
位置第1判断ステップにて前記ポインタが前記ファイル
Cの末尾にあると判断されたときには、前記ファイルC
に前記ファイルAの前記変数iで示されるパートの演奏
情報を付加し、前記パートリストに前記変数iを付加
し、前記ポインタを前記ファイルCの末尾に移動させる
第7のステップと、前記パート番号確認ステップにて前
記変数iで示されるパート番号があると判断されたとき
には、前記ポインタが前記ファイルCの変数iで示され
るパートの先頭にあるか否かを判断するポインタ位置第
2判断ステップと、前記ポインタ位置第2判断ステップ
にて前記ポインタが前記ファイルCの変数iで示される
パートの先頭以外にあると判断されたときには、前記ポ
インタが現在存在する位置にジャンプマークJUMP
(n)を挿入し、前記ポインタを前記ファイルCの変数
iで示されるパートの先頭位置へ移動させ、その後前記
ポインタの位置にタグTAG(n)を挿入し、前記変数
nを1つインクリメントする第8のステップと、前記ポ
インタ位置第2判断ステップにて前記ポインタが前記フ
ァイルCの変数iで示されるパートの先頭にあると判断
されたときには、前記ポインタを次のパートの先頭位置
へ移動させる第9のステップと、前記第7のステップ及
び前記第9のステップの後に、前記ファイルAの中の次
のパートを検索し、存在する場合は前記変数iに前記フ
ァイルAの次のパート番号を設定する次パート番号設定
ステップとを有し、以後前記ファイルAの次のパートが
存在しなくなるまで、前記パート番号確認ステップから
前記次パート番号設定ステップまでを繰り返し実行する
ようにしたことを特徴とする演奏情報圧縮方法を提供す
る。
る演奏情報を再生するために前記演奏情報を圧縮した圧
縮演奏情報ファイルを伸張する演奏情報伸張方法であっ
て、再生する優先順位が定義付けられた複数の異なるパ
ートと、前記パートを移動するための複数のジャンプマ
ークと、前記各ジャンプマークの移動先をそれぞれ示す
複数のタグとからなる圧縮演奏情報ファイルをメモリに
ロードするステップと、前記メモリにロードされた前記
圧縮演奏情報ファイルについて前記タグを検出するステ
ップと、前記メモリにロードされた前記圧縮演奏情報フ
ァイルについて前記ジャンプマークをそのレベル順に検
出するステップと、前記ジャンプマークが検出されたと
き、先に検出された前記タグから前記ジャンプマークの
レベルと同じレベルのタグを特定し、そのタグで指定さ
れる前記メモリのアドレスからの前記パートのデータの
読み出し制御を行うステップとを有する演奏情報伸張方
法を提供する。
で成る演奏情報を再生するために前記演奏情報を圧縮し
た圧縮演奏情報ファイルを伝送する圧縮演奏情報伝送方
法であって、再生する優先順位が定義付けられた複数の
異なるパートと、前記パートを移動するための複数のジ
ャンプマークと、前記各ジャンプマークの移動先をそれ
ぞれ示す複数のタグとを有する圧縮演奏情報ファイルを
伝送することを特徴とする圧縮演奏情報伝送方法を提供
する。
実施例について説明する。図1は本発明の演奏情報圧縮
方法の第1実施例を示すフローチャートである。図1の
フローチャートについて説明する前に、本発明の適用さ
れる例として通信カラオケシステムについて図2、図3
を用いて説明する。図2は本発明の演奏情報圧縮方法に
より、カラオケ情報としてのMIDI情報を圧縮してス
テーション(ホスト)から各端末へ送信する通信カラオ
ケシステムの一例を示す模式ブロック図である。図3は
ステーションが圧縮しないデータと、本発明の演奏情報
圧縮方法により事前に圧縮してあるデータの双方を送信
/蓄積ファイルA、Bの2種類用意しておき、端末や回
線の能力に応じて2つのファイルを使い分ける構成例を
示す模式ブロック図である。どちらのファイルから読み
出して送信するかの判断は、通信回線(ネットワーク)
がISDN等の高速回線か一般公衆回線かを判断した
り、端末側の伸張能力を検出することにより行う。な
お、図2、図3いずれのシステムにおいても、端末側の
ハードディスク等のメモリにパッケージとして予め数千
曲分のカラオケ情報を本発明の演奏情報圧縮方法により
圧縮したMIDI情報として蓄積しておくことができ
る。この場合、新譜やリクエスト頻度の低い曲で端末の
メモリに蓄積されていない曲の情報を通信回線を用いて
ステーションから端末へ送信することができる。
Fを圧縮して圧縮ファイルを作成する手順の全体概念を
示すブロック図である。多数曲分のSMFは例えばハー
ドディスク等のメモリに記憶されており、この内、図示
しない制御系により指定された1曲分のSMF1がMI
DI CH (チャンネル)分離ブロック2にてチャン
ネル毎に分離される。すなわち演奏すべき楽器(音源)
に対応するチャンネル毎に以下の処理は行われる。ブロ
ック3は(△t+event)ブロックリピートを検出
するものである。すなわち、後述する演奏情報のパター
ンに繰り返し(リピート)があるとき、これを検出する
ものである。次のブロック4はR(リピート)符号化処
理を行うもので、ブロック3で検出された重複部分につ
いて重複しないよう削除して、かつ必要な信号を付加す
る処理が行われる。次のマージ処理ブロック5は多チャ
ンネル分のR符号化処理の行われた信号を元のSMF形
式のように合体するものであり、その結果△t(デルタ
タイム)が一本化されて、圧縮ファイル6が作られる。
を検出し、重複部分を削除して、圧縮した結果得られる
圧縮ファイルを作成する場合のデータ列の変化態様を示
す図である。図5中"EVENT"はMIDI信号の"イ
ベント"を示し、"T"は"△t"と同様の時間情報を、"
R"は"リピート(繰り返し)"を示している。図6は図
5に示した情報"T"又は"R"のフォーマットを示してい
る。このデータは図示のように8ビット構成であり、各
ビットは図示の内容を示す。図7は1つの例として、繰
り返し部分のある楽譜を示している。この例では第2小
節と第3小節が同一のパターンとなっている。
明の演奏情報圧縮方法の第1実施例について説明する。
このフローは図4で示したブロック3とブロック4に相
当する。ステップS1にてチャンネル単位で先頭から△
tで表記し、ステップS2で△t(e)の累計であるΣ
△t(e)と個々のイベントを示す変数eをそれぞれ0
にイニシャライズする。ステップS3では△t(e)を
読み込み、ステップS4では△t(e)だけインクリメ
ントし、ステップS5ではΣ△t(e)が1920を超
えたか否かを判断する。この数値1920は4分音符1
個あたりのティクス(Ticks)数を480とし、1
小節が4分音符4個分の長さ(すなわち拍子記号が4/
4)とした場合の1小節の長さに相当する。なおTic
kはSMFにおける最小時間単位である。このステップ
S5は演奏情報であるSMFを所定時間単位のパート
(この例では1小節)毎に分割するものである。ステッ
プS5で1小節が経過するまでの間にステップS6を繰
り返し実行し、イベントマップ(EVENT MAP)
iを作成する。イベントマップiはパート毎のイベント
の集合である。ステップS7ではeを1つインクリメン
トする。1小節が終了するとステップS8で△tの累計
から1920を減じ、次のステップS9で前の小節(i
−1)のイベントマップ(i−1)と、現在の小節iの
イベントマップiの内容が一致するか否かを判断する。
一致しないときはステップS11でiを1つインクリメ
ントする、一致するときはステップS10で重複データ
の後ろの方を削除し、リピートイベント(Repeat
Event)を作成する。リピートイベントは図5に
示す"R"に相当し、図6のデータフォーマットを有す
る。図6で(ID1,ID0)=(0,0)及び(ID
1,ID0)=(0,1)の場合がT、(ID1,ID
0)=(1,0)及び(ID1,ID0)=(1,1)
の場合がRである。単純リピート及び区間指定リピート
はチャンネル単位で行い、チャンネルはリピートバイト
の直前のイベントに基づいて決定される。図6の−△t
sはマイナス△t−start、−△teはマイナス△
t−endの意味であり、−△ts及び−△teはマイ
ナスを取って絶対値で表現している。なお、ステップS
10では、リピート検出回数を計数し、図6中のリピー
トイベント中のリピート回数として記述する。ステップ
S10の後はステップS11が実行される。ステップS
11の後にはステップS12にてeを0としてステップ
S6へ行く。なお、ステップS13では全データについ
てイベントマップが作成されたか否かを判断し、YES
ならこのフローを終了する。
る曲の演奏情報を処理すると、イベントマップ同志の比
較から、同一の音程、同一の発音時間を示すパートの繰
り返しとして、第2小節と第3小節が検出される。図1
の実施例では演奏情報の時間軸方向の変化のパターンが
2パート以上連続したとき、すなわちイベントマップの
内容が完全に一致したとき、繰り返しがあると判断して
いるが、他の例として、部分的な一致を検出したとき
も、繰り返しとみなし、異なる部分はそのまま記述する
ようにすることもできる。
度を粗くし、すなわち音程と発音時間の照合において所
定の誤差許容範囲を設けるようにしてもよい。このよう
にすることにより、わずかなノイズや演奏ミスにより、
本来繰り返し部分であるのに、非同一パターンと認識さ
れてしまうことを防止でき、結果として繰り返しと認識
されるパート数を増加させることができ、圧縮効率を高
めることができる。さらに、演奏上の時間軸のゆらぎ、
あるいは演奏の強さのゆらぎなどの許容範囲を演奏再現
時(再生時)にあまり影響を与えない程度に広げること
により、圧縮効率を高めることもできる。また、パート
同志の比較の他に、同一パート内で所定の音程が繰り返
し出現するような場合、例えばドラムなどの打楽器の演
奏情報の場合、これを検出して重複しないよう削除し、
図1で示した処理と同様の処理にて音程単位で記述する
こともできる。本発明では所定時間単位のパート毎の検
出が行われるが、この1パートは必ずしも1小節と同一
である必要はなく、その数分の1としたり、数倍とする
こともできる。さらに、パートの時間を2種類以上設
け、例えば1小節単位の検出を行いつつ、その2分の1
の時間単位でも繰り返しの検出を行うようにすることも
できる。
トの内容が一致している場合に繰り返しであると判断し
ているが、いくつかの小節にわたったメロディーが繰り
返される場合も多い。このような場合にも圧縮可能な手
法について第2実施例と第3実施例で説明する。 図2
3は圧縮前のSMFで8つのパートからなるものを模式
的に示した図である。図23において、第2番目乃至第
4番目のパートと第5番目乃至第7番目のパートが重複
している。したがって冗長性を除くために、考えられる
1つの手法として、重複する3つのパートを削除すると
図24に示すように5つのパートのみとなる。この場
合、「先頭から(t1+t2+t3+t4)の時間だけ
再生したら、先頭からt1経過時点までジャンプする」
という内容を記述しておくことになる。すなわち各パー
トの△tの総和をそれぞれ計算しておき、再生開始時点
からの経過時間によって再生位置を再設定するような記
述を設けている。しかし、この方法によると、パートの
再編集の必要性が生じた場合、記述部を同様に編集しな
くてはならない。また記述が複雑であるほど時間の再計
算も複雑化してしまう。
は、楽譜の省略記号をコード化し、音符情報と共に記憶
し、再生時に省略記号に従って制御を行うようにしてい
る。これによれば冗長性の問題と再編集の問題は解決す
るものの、現代の楽曲は構成が複雑化しており、省略記
号を単にコード化しただけでは楽曲構成を正しく表記で
きない場合が生じてくる。図25に示した例のように、
D.S.(ダルセーニョ)によって戻って再度演奏する
場合に繰り返しを省くことがよく行われるが、このよう
に注釈によって指示される選択的な演奏情報を表記する
ことは上記公報の技術では不可能である。また、上記公
報の技術は前述のように繰り返し等の記号を用いた楽譜
を前提としいる。
2実施例及び第3実施例では、複数回重複して記述され
る同一パートを含み直列状に記述されている演奏情報に
対して、演奏情報と識別可能なジャンプマークとタグを
設け、楽曲の繰り返しを示すことによって、少ない情報
量で記述するようにしている。また、ジャンプマークに
条件値(レベル)を含めることによって複雑な演奏情報
を記述することができる。
す図である。いずれも、非演奏情報ID、チャンネルI
D、レベルIDを有している。レベルIDは同一マーク
の相互間の識別を行うか、又は順序を示すものである。
なお第2実施例と第3実施例は、共に複数のパート(各
実施例では小節)にわたる演奏情報が繰り返されるとき
に、繰り返しを削除してジャンプマークとタグを挿入
し、結果として同じ圧縮ファイルを作るものである。第
2実施例は元のファイルAの他に重複のないファイルB
を一旦作成する必要がある点で後述する第3実施例より
手順が多い。しかし、圧縮の手順を理解するためには適
当であるので、まず第2実施例について説明し、その
後、より利用価値の高い第3実施例について説明する。
図14と図15は同一パートの検出と削除の概念を示す
図である。図14の1部の楽譜に示すように7小節と省
略記号で記述された曲を展開すると図14の下部に示す
ようなものとなる。なお丸印の中の数字は便宜的に記入
したものであって、どの小節とどの小節の演奏情報が同
一であるのかは、この時点ではわかっていない。
奏情報があるとき、このデータ列から重複部分を検出す
る手法を示す図である。演奏情報は小節単位で時間軸上
に図15の上段に示すように並んでいる。ここで先頭の
小節xから以降の小節に対してデータの比較を行う。一
致したなら若い順にパート番号(この場合1)をふる。
演奏情報の作成がパートのコピーによって行われない場
合は時間軸方向の揺らぎ等が含まれるため、データのフ
ァイリングやクォンタイズ、認識的手法が用いられる。
このようにしてパート番号のふられた情報を納めたファ
イルをA、重複したパートを削除した情報を納めたファ
イルをBとする。図16はこの2つのファイルA、Bと
本発明の演奏情報圧縮方法の第2実施例により最終的に
作成される圧縮ファイルを示している。両方のファイル
A、Bを読み進め、異なるパートが出現したら、レベル
nをインクリメントしファイルBにおいて、ジャンプマ
ークJ(n)を挿入しファイルAの次に出現するパート
に戻ってタグT(n)を挿入する。
それぞれにおいて相互識別をするためのものであり、自
然数で1、2、3…とインクリメントする。図16の下
方には、ジャンプマークJとタグTを挿入する手法が示
されている。すなわち、ファイルAとファイルBを先頭
のパートからパート単位でパート番号の比較を行い、互
いに相違するパート番号が出現したら、又はファイルA
のパートと比較するファイルBのパートが存在しないと
きは、挿入すべきジャンプマークとタグの各々における
識別のためのレベルnをインクリメントし、ファイルB
中の相違するパート番号の直前にレベルのインクリメン
トされたジャンプマークを挿入し、かつ前記ファイルA
中の相違するパート番号と同一のファイルB中のパート
番号の直前にレベルのインクリメントされたタグを挿入
する。ファイルA中の相違するパート番号以後とファイ
ルBのタグの挿入された直後のパート番号とをパート単
位でパート番号の比較を行い、互いに相違するパート番
号が出現したら、上記の挿入動作と同様の挿入が行われ
る。
て複雑な繰り返しのある曲の演奏情報を圧縮することが
できる例を示す図であり、図17はかかる複雑構成の曲
の例を示し、図18は圧縮前のファイルA、Bと圧縮フ
ァイルを示す図である。
SMFとSMFを変形して上記ジャンプマーク、タグを
挿入してゆく手法について説明する。SMFは以下のも
のを含む。 ・MIDIイベント : 演奏情報 ・METAイベント : 非演奏情報 どちらのイベントも時間情報△tを持っているので、M
ETA(メタ)イベントは、MIDIイベントとの相対
的な時間的位置を指定して、挿入することができる。ま
た、METAイベントは、これが持つデータフォーマッ
トを規定することができる。通常のSMFでは、パート
の概念はないが、パートの先頭であるという識別子(P
ART ID)を持ったメタイベントを定義することに
よって、SMF中にパート番号を記述することができ
る。
ば1小節に相当する各々のパートは図15に示されるよ
うにパート番号により指定される。したがって各パート
はMETAイベントから始る、SMF中の一連のMID
Iイベント群である。このMETAイベントを、MET
A(PART,x)と略記する。 META(PART,x)→△t:META ID:P
ART ID:PARTNO x とする。比較のため
に、MIDIイベントのNote on(打鍵)は、N
ote on→△t:MIDI Note on I
D:MIDIチャンネル:音程:音量 SMFの構成は図19に示すようになっている。
自由であるが、繰り返しの検出に用いるので、繰り返し
が予想される単位以下で挿入するのが良い。例えば、図
20に示すような楽譜をもとにSMFを作成する場合、
作成者は、"A,B,C,D,E"それぞれのMIDI演
奏情報を作成し、実際の演奏手順に従って、データのコ
ピーペースト等の手法で"A B C D A B C
E"となったMIDI演奏情報列をSMFに収めるが、
楽譜上の繰り返し記号と、META(PART,x)の
入れ方の規約を作ることによって、図21に示すような
SMFを作成することが可能である。
に全く関知しない通常のSMFを作成する場合、繰り返
し部分を自動的に検出するためには、SMFを受け取っ
た側で1小節=1パートとなるように、META(PA
RT,x)を挿入するのが良い。SMF中の小節の切れ
目は既にSMFフォーマット中に定められている。ME
TA(time signature)等の情報を、S
MFから読み出すことによって、簡単に知ることができ
る。前出の例によれば、META(PART,x)が挿
入されたらSMFは図22に示すようになる。どちらの
場合でも、繰り返し部分の検出は問題なく行われる。ま
た、META(PART,x)は、検出のために挿入さ
れたものであるから、最終的に圧縮記述されたファイル
中に存在していなくても演奏の再生に対して、全く問題
がない。
例について説明する。前述の手順によりMETA(PA
RT,x)が挿入されたSMFをSMF Aとし、SM
FAを圧縮した圧縮ファイルをSMF Cとする。な
お、この圧縮ファイルSMFCは、スタンダードMID
Iファイルの形式とは異なるので、SMFと呼ぶことは
必ずしも適当ではないが、ここでは便宜的にSMF C
としておく。
PART LIST(パートリスト):パート番号の列
である。 (b)fpC(ファイルポインタ):圧縮ファイルSM
F Cの内容の任意の位置を差し示すもの。
ントを用いて次のように記述する。 META(JUMP,Ch,y) META(TAG,Ch,z) これらを一組として圧縮ファイルSMF Cに次のよう
に記述する。 META(JUMP,Ch,y)→△t:META I
D:JUMP ID:MIDIチャンネル Ch:レベ
ルy META(TAG,Ch,z)→△t:META I
D:TAG ID:MIDIチャンネル Ch:レベル
z なお、ジャンプマークとタグのそれぞれにレベルを付加
することによって、複雑な演奏手順に対しても、統一的
な書式で記述し、正しく再生することができる。
する。MIDIでは、複数の楽器が同時に演奏されてい
る情報を伝送できるように、MIDIのイベントに対し
て、MIDIチャンネル(Ch)が付加されている。例
えば、ピアノに関するイベントはCh=1、ベースはC
h=2とし、受信側ではチャンネルによってイベントを
分離し、それぞれを適切な音源へ転送することがなされ
ている。この概念は、SMFにおいても全く同様であ
る。楽器毎には、別の演奏を行うも、SMF上では、混
在しているため繰り返しの検出においてはSMF A中
のイベントをチャンネル毎に分離し、各チャンネル独立
に圧縮記述を行い、この後に、最終的なSMF Cへ、
合成しながら、記録することが望ましい。合成後にも、
各チャンネルのジャンプマークとタグが識別できるよう
に、各イベントにMIDIチャンネルを持つのである。
本明細書では説明の簡略のために、SMF Aは単一の
チャンネルのイベントのみを含むものとして説明してい
る。
チャートを示す図8及び図9を用いて説明する。圧縮手
順のフローには2つのパスがある。1つめのパスは図8
に示すように、SMF A中の同一パートを検出し、M
ETA(PART,x)の書換を行うものである。2つ
のパートを同じものと見なすために、比較を行う段階で
MIDIフィルタリング、MIDIクォンタイズを用い
てもよい。これは、SMFの内容が演奏者の実演奏等を
記録したものであるとき、特に効果がある。すなわち、
同一パートを演奏しようとした場合でも、実演奏では全
く同じMIDIイベント群にはなり得ないため、MID
Iフィルタリング、MIDIクォンタイズを行い、同一
パートの検出率を向上させ、ひいては圧縮率を向上させ
るものである。MIDIフィルタリングは、演奏者が意
図しない、極めて短い音に対応するMIDIイベントを
削除すること等である。MIDIクォンタイズは発音の
時間的な揺れを、大きなタイムスロットに量子化し直す
ことによって、検出率を向上させるものである。また、
音量に対しても同様のことが適用できる。上記は、比較
の際に用いる手法であり、最終的に生成されるファイル
の内容に対しては用いられないのは当然である。2つ目
のパスは図9に示すように、SMF Aから、SMF
Cを生成するものである。
インクリメントするステップである。変数iは比較する
元のパートを示し、変数jは比較する対象のパートを示
している。このフローではパートiとパートjの内容が
一致したとき、繰り返しがあると判断しMETA(PA
RT,j)をMETA(PART,i)に変更してい
る。
説明する。この第3実施例では先の第2実施例で説明し
た図16に示すファイルBに相当するものは用いる必要
がない。すなわち、図16のファイルAに相当するSM
F AからファイルBを用いることなく最終的に圧縮さ
れた圧縮ファイルSMF Cを得るものである。
C(SMF C)を作成し、ファイルC内の位置を示す
ファイルCのポインタをファイルCの先頭に設定し、当
初内容のないパートリストを作成する。このとき、ファ
イルCには内容がないので、ファイルC内の位置を示す
ポインタの位置はファイルCの先頭にあるともいえる
し、ファイルCの末尾にあるともいえる。そして、次の
ステップS22で変数iにファイルAの最初のパート番
号を設定し、次のステップS23で変数iが前記パート
リストにあるか否かを判断する。変数iで示されるパー
ト番号がないときは、ポインタfpCがファイルCの末
尾にあるか否かをステップS24で判断し、ポインタf
pC位置が前記ファイルCの末尾以外のときは、ステッ
プS25でポインタfpCが現在ある位置にジャンプマ
ーク(n)を挿入し、次にポインタfpCをファイルC
の末尾へ移動させ、その後ポインタfpCの位置にタグ
TAG(n)を挿入し、変数nを1つインクリメントす
る。ポインタfpC位置がファイルCの末尾であるとき
は、ステップS26でファイルCに前記ファイルAの変
数iで示されるパートの情報を付加し、パートリストに
変数iを付加し、ポインタを前記ファイルCの末尾に移
動させる。
れるパート番号があるときは、ポインタfpCがファイ
ルCの変数iで示されるパートの先頭にあるか否かをス
テップS29で判断する。次のステップS30でポイン
タfpCの位置が前記ファイルCの変数iで示されるパ
ートの先頭以外のときは、ポインタfpCが現在ある位
置にジャンプマークJUMP(n)を挿入し、次にポイ
ンタfpCをファイルCの変数iで示されるパートの先
頭位置へ移動させ、その後ポインタfpCの位置にタグ
TAG(n)を挿入し、変数nを1つインクリメントす
る。ポインタfpCが前記ファイルCの変数iで示され
るパートの先頭であるときは、ステップS31でポイン
タfpCを次のパートの先頭位置へ移動させる。この2
つの移動させるステップS28又はS31の一方の後
に、ステップS32でファイルAの中の次のパートを検
索し、存在する場合は、変数iにファイルAの次のパー
ト番号を設定する。以後、ファイルA中に次のパートが
なくなるまで、パート番号確認ステップS23以降、次
パート番号設定ステップS32までを繰り返し実行す
る。
F Aと、その終了後に得られるSMF Aを、さらに
図9に示すパス2の終了後に得られるSMF Cを示す
図である。図中、A、B、C…は各パートの内容を示
し、数字1、2、3…はパート番号を示している。また
SMF Cはジャンプマークとタグの付加された様子を
示している。
報を、例えば通信カラオケの端末側等で再生するために
伸張する方法について説明する。図11は本発明の演奏
情報伸張方法を実現するために用いられる演奏情報再生
装置(伸張装置)の実施例を示すブロック図である。記
憶装置10は例えば大容量ハードディスクで、この中に
図10に示す圧縮ファイルSMF Cが多数格納されて
いるものとする。このうち所望の曲のSMF Cが図示
しない制御装置のアドレス指示に従って読み出され、メ
モリ12にロードされる。この後、再生に先立ち、SM
F C中のタグのサーチが行われる。すなわち、リーダ
ー14は、アドレスカウンタ16の指示に従ってメモリ
12の内容を読んで行き、タグのサーチを行う。分離器
18は、リーダー14の出力信号、すなわちSMF C
からMIDIイベント、ジャンプレベル値、タグレベル
値を分離抽出するものである。サーチの結果、タグを検
出する毎に、タグアドレスメモリ26は分離器18から
与えられるタグレベル値と、アドレスカウンタ16から
与えられるアドレスを関係付けて図12に示すテーブル
のような形で格納して行く。こうして、1つのSMF
Cを全部サーチして図12に示すテーブルを完成させ
る。
レスカウンタ16とレベルカウンタ22を初期化する。
再生時には、分離器18からのタグレベル値はタグアド
レスメモリ26に書込まない(又は分離器18からタグ
レベル値を出力しない)。分離器18から出力されるM
IDIイベントは各対応する(チャンネル毎の)図示し
ない音源に与えられる。分離器18の出力信号の1つと
してレベル比較器20にはジャンプレベル値が与えられ
る。レベルカウンタ22はそのカウント値をレベル比較
器20へ出力し、レベル比較器20は2つの入力レベル
を比較し、一致するとレベルカウンタ22を1つインク
リメントさせる信号を出力するとともにゲート24へゲ
ート信号を与える。ゲート24はレベルカウンタ22の
出力カウント値、すなわち、検出されたジャンプマーク
のレベル値(一致レベル値)をゲート信号を受けたと
き、選択器28へ与える。選択器28はタグアドレスメ
モリ26からジャンプレベルに対応したタグのアドレス
を読み出して、アドレスカウンタ16にロードする。ア
ドレスカウンタ16は、ロードされたアドレスに従って
順次メモリ12内のデータを読み出して行く。
MF Cの内容を読みながらMIDIイベントを順次出
力することにより伸張動作が行われ、SMF Cの全て
のデータを読み出すことにより一曲分の再生を終了す
る。
に先立ってタグの位置をサーチして、そのアドレスを予
めロードする方法を用いているが、伸張装置の処理能力
が十分なものであれば、予めタグを読み込まず、タグを
サーチしながら再生を同時に行うようにすることもでき
る。かかる構成の場合は、図11に示したタグアドレス
メモリ26は不要となる。
奏情報圧縮方法によれば、MIDI信号のように楽音を
構成する音の音程と発音時間を指定する演奏情報のデー
タ量を、メロディーの繰り返しを削除することにより、
大幅に削減することができ、また本発明の演奏情報伸張
方法によれば、かかる削減により圧縮された演奏情報を
伸張して元の繰り返しのある演奏情報を再生することが
でき、よって通信コストの削減、メモリ容量の問題の解
消がなされる。また、通信カラオケシステム等におい
て、画像情報や文字情報を本来の演奏情報信号とともに
送信したり、メモリに蓄積する場合に、演奏情報のデー
タ量が削減できるので、これらの付加的情報の取り扱い
が容易となる。
フローチャートである。
法の適用される一例としての通信カラオケシステムのブ
ロック図である。
法の適用される一例としての通信カラオケシステムの他
の構成例を示すブロック図である。
ク図である。
である。
られる信号のフォーマット図である。
しようとする曲の一部の楽譜である。
を示すフローチャートである。
一部を示すフローチャートである。
ける圧縮ファイル作成過程を説明する図である。
の一例を示すブロック図である。
示す図である。
けるジャンプマークとタグのデータ構成を示す図であ
る。
縮手順を説明する図である。
縮手順を説明する図である。
縮手順を説明する図である。
縮手順を説明する図である。
縮手順を説明する図である。
縮手順を説明する図である。
縮手順を説明する図である。
縮手順を説明する図である。
縮手順を説明する図である。
を模式的に示す図である。
を圧縮する1つの手法を説明する図である。
を示す図である。
Claims (4)
- 【請求項1】楽音を構成する音の音程と発音時間を指定
する演奏情報が複数のパートに分割されてなるパート列
の先頭パートからパート単位で順次データの比較を行
い、前記パート列において実質的に同一のデータのパー
トに同一のパート番号を付与したファイルAを作成する
第1のステップと、 前記ファイルAにおいて、先頭からパート番号を調べ、
重複する番号が出現したときは、その重複するパート及
びそのパートに付与されたパート番号を削除して新たな
ファイルBを作成する第2のステップと、 前記ファイルAと前記ファイルBとを先頭パートからパ
ート単位でパート番号の比較を行い、互いに相違するパ
ート番号が出現したときには、前記ファイルB中の相違
するパート番号の直前にパートを移動することを示す第
1のジャンプマークを挿入し、かつ前記ファイルA中の
相違するパート番号と同一の前記ファイルB中のパート
番号の直前に前記第1のジャンプマークからの移動先で
ある第1のタグを挿入する第3のステップと、 前記ファイルA中の前記相違するパート番号以降のパー
トと前記ファイルBの前記第1のタグの挿入された以降
のパートとを引き続きパート単位でパート番号の比較を
行い、互いに相違するパート番号が出現したときには、
前記ファイルB中の相違するパート番号の直前にパート
を移動することを示す第2のジャンプマークを挿入し、
かつ前記ファイルA中の相違するパート番号と同一の前
記ファイルB中のパート番号の直前に前記第2のジャン
プマークの移動先である第2のタグを挿入する第4のス
テップとを有する演奏情報圧縮方法。 - 【請求項2】楽音を構成する音の音程と発音時間を指定
する演奏情報が複数のパートに分割されてなるパート列
の先頭パートからパート単位で順次データの比較を行
い、実質的に同一のデータのパートに同一のパート番号
を付与してファイルAを作成する第1のステップと、 当初内容のないファイルCを作成する第2のステップ
と、 前記ファイルC内での位置を示すファイルCのポインタ
を前記ファイルCの末尾に設定する第3のステップと、 当初内容のないパートリストを作成する第4のステップ
と、 変数iに前記ファイルAの最初のパート番号を設定する
第5のステップと、 前記変数iが前記パートリストにあるか否かを判断する
パート番号確認ステップと、 前記パート番号確認ステップにて前記変数iで示される
パート番号が存在しないときには、前記ポインタが前記
ファイルCの末尾にあるか否かを判断するポインタ位置
第1判断ステップと、 前記ポインタ位置第1判断ステップにて前記ポインタが
前記ファイルCの末尾以外にあると判断されたときに
は、前記ポインタが現在ある位置にジャンプマークJU
MP(n)を挿入し、前記ポインタを前記ファイルCの
末尾へ移動させ、その後前記ポインタの位置に前記ジャ
ンプマークJUMP(n)の移動先であるタグTAG
(n)を挿入し、前記変数nを1つインクリメントする
第6のステップと、 前記ポインタ位置第1判断ステップにて前記ポインタが
前記ファイルCの末尾にあると判断されたときには、前
記ファイルCに前記ファイルAの前記変数iで示される
パートの演奏情報を付加し、前記パートリストに前記変
数iを付加し、前記ポインタを前記ファイルCの末尾に
移動させる第7のステップと、 前記パート番号確認ステップにて前記変数iで示される
パート番号があると判断されたときには、前記ポインタ
が前記ファイルCの変数iで示されるパートの先頭にあ
るか否かを判断するポインタ位置第2判断ステップと、 前記ポインタ位置第2判断ステップにて前記ポインタが
前記ファイルCの変数iで示されるパートの先頭以外に
あると判断されたときには、前記ポインタが現在存在す
る位置にジャンプマークJUMP(n)を挿入し、前記
ポインタを前記ファイルCの変数iで示されるパートの
先頭位置へ移動させ、その後前記ポインタの位置にタグ
TAG(n)を挿入し、前記変数nを1つインクリメン
トする第8のステップと、 前記ポインタ位置第2判断ステップにて前記ポインタが
前記ファイルCの変数iで示されるパートの先頭にある
と判断されたときには、前記ポインタを次のパートの先
頭位置へ移動させる第9のステップと、 前記第7のステップ及び前記第9のステップの後に、前
記ファイルAの中の次のパートを検索し、存在する場合
は前記変数iに前記ファイルAの次のパート番号を設定
する次パート番号設定ステップとを有し、 以後前記ファイルAの次のパートが存在しなくなるま
で、前記パート番号確認ステップから前記次パート番号
設定ステップまでを繰り返し実行するようにしたことを
特徴とする演奏情報圧縮方法。 - 【請求項3】複数のパートが時系列的に並んで成る演奏
情報を再生するために前記演奏情報を圧縮した圧縮演奏
情報ファイルを伸張する演奏情報伸張方法であって、 再生する優先順位が定義付けられた複数の異なるパート
と、前記パートを移動するための複数のジャンプマーク
と、前記各ジャンプマークの移動先をそれぞれ示す複数
のタグとからなる圧縮演奏情報ファイルをメモリにロー
ドするステップと、 前記メモリにロードされた前記圧縮演奏情報ファイルに
ついて前記タグを検出するステップと、 前記メモリにロードされた前記圧縮演奏情報ファイルに
ついて前記ジャンプマークをそのレベル順に検出するス
テップと、 前記ジャンプマークが検出されたとき、先に検出された
前記タグから前記ジャンプマークのレベルと同じレベル
のタグを特定し、そのタグで指定される前記メモリのア
ドレスからの前記パートのデータの読み出し制御を行う
ステップとを有する演奏情報伸張方法。 - 【請求項4】複数のパートが時系列的に並んで成る演奏
情報を再生するために前記演奏情報を圧縮した圧縮演奏
情報ファイルを伝送する圧縮演奏情報伝送方法であっ
て、 再生する優先順位が定義付けられた複数の異なるパート
と、 前記パートを移動するための複数のジャンプマークと、 前記各ジャンプマークの移動先をそれぞれ示す複数のタ
グとを有する圧縮演奏情報ファイルを伝送することを特
徴とする圧縮演奏情報伝送方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000127578A JP3219150B2 (ja) | 1994-09-17 | 2000-04-27 | 演奏情報圧縮方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2000127578A JP3219150B2 (ja) | 1994-09-17 | 2000-04-27 | 演奏情報圧縮方法 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP24887594A Division JP3322763B2 (ja) | 1994-09-17 | 1994-09-17 | 演奏情報圧縮方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000338973A true JP2000338973A (ja) | 2000-12-08 |
JP3219150B2 JP3219150B2 (ja) | 2001-10-15 |
Family
ID=18637154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2000127578A Expired - Fee Related JP3219150B2 (ja) | 1994-09-17 | 2000-04-27 | 演奏情報圧縮方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3219150B2 (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6590694B2 (en) | 2001-04-11 | 2003-07-08 | Minebea Co., Ltd. | Faraday rotator |
CN113157655A (zh) * | 2020-01-22 | 2021-07-23 | 阿里巴巴集团控股有限公司 | 一种数据压缩、解压方法、装置、电子设备和存储介质 |
-
2000
- 2000-04-27 JP JP2000127578A patent/JP3219150B2/ja not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6590694B2 (en) | 2001-04-11 | 2003-07-08 | Minebea Co., Ltd. | Faraday rotator |
CN113157655A (zh) * | 2020-01-22 | 2021-07-23 | 阿里巴巴集团控股有限公司 | 一种数据压缩、解压方法、装置、电子设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
JP3219150B2 (ja) | 2001-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5402339A (en) | Apparatus for making music database and retrieval apparatus for such database | |
KR100245325B1 (ko) | 음악 데이터 기록 방법 및 그 재생 장치 | |
JPH06202675A (ja) | オムニバスカラオケ演奏装置 | |
JP2003519845A (ja) | 音楽検索エンジン | |
CA2259369A1 (en) | Automatic improvisation system and method | |
US7169999B2 (en) | Digital signal processing method and apparatus thereof, control data generation method and apparatus thereof, and program recording medium | |
JP2001092464A (ja) | 楽音生成方法、楽音生成用データ記録方法および楽音生成用データを記録した記録媒体 | |
US5672837A (en) | Automatic performance control apparatus and musical data storing device | |
JP2522343B2 (ja) | 自動演奏装置 | |
JPH11175062A (ja) | 情報出力装置、情報編集装置、及び記録媒体 | |
JPH0411288A (ja) | 楽曲検索機能付きカラオケ装置 | |
JP3219150B2 (ja) | 演奏情報圧縮方法 | |
JP3322763B2 (ja) | 演奏情報圧縮方法 | |
JP3120675B2 (ja) | 演奏情報圧縮装置 | |
JP3180643B2 (ja) | 通信カラオケ装置の楽曲データの登録・削除・設定変更方法 | |
JPS58220189A (ja) | 自動演奏装置 | |
JPH11288282A (ja) | 演奏情報変換装置 | |
JP3211646B2 (ja) | 演奏情報記録方法及びその演奏情報の再生装置 | |
KR950010336B1 (ko) | 음악 데이타의 압축방법과 재생 방법 | |
JP2000056759A (ja) | シーケンスデータ処理装置、及びコンピュータ読み取り可能な記録媒体 | |
JPH04313800A (ja) | 電子音楽再生装置 | |
KR100283800B1 (ko) | 컴퓨터 가요반주 시스템의 신곡연습 제어 방법 | |
US7214869B2 (en) | Method for generating and playing a musical file and a computer-readable media storing the musical file | |
JPH11288273A (ja) | 演奏情報変換装置 | |
JPH08185164A (ja) | 自動演奏制御装置及びそれに使用する楽曲データ記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080810 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080810 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090810 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090810 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100810 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110810 Year of fee payment: 10 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 11 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120810 Year of fee payment: 11 |
|
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: 20120810 Year of fee payment: 11 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130810 Year of fee payment: 12 |
|
LAPS | Cancellation because of no payment of annual fees |