JP3486185B1 - Performance information compression device, performance information decoding device, performance information compression method, performance information decoding method, performance information compression program, performance information decoding program - Google Patents
Performance information compression device, performance information decoding device, performance information compression method, performance information decoding method, performance information compression program, performance information decoding programInfo
- Publication number
- JP3486185B1 JP3486185B1 JP2002143620A JP2002143620A JP3486185B1 JP 3486185 B1 JP3486185 B1 JP 3486185B1 JP 2002143620 A JP2002143620 A JP 2002143620A JP 2002143620 A JP2002143620 A JP 2002143620A JP 3486185 B1 JP3486185 B1 JP 3486185B1
- Authority
- JP
- Japan
- Prior art keywords
- code
- information
- channel
- event
- decoding
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 337
- 230000006835 compression Effects 0.000 title claims abstract description 196
- 238000007906 compression Methods 0.000 title claims abstract description 161
- 238000000926 separation method Methods 0.000 claims description 60
- 239000000284 extract Substances 0.000 claims description 35
- 238000000605 extraction Methods 0.000 description 203
- 230000008569 process Effects 0.000 description 149
- 238000010586 diagram Methods 0.000 description 28
- 238000004458 analytical method Methods 0.000 description 21
- 230000005540 biological transmission Effects 0.000 description 13
- 230000000694 effects Effects 0.000 description 11
- 238000003860 storage Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 4
- 239000002131 composite material Substances 0.000 description 4
- 230000000593 degrading effect Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000002349 favourable effect Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000000717 retained effect Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 101100326509 Catharanthus roseus CYP76B6 gene Proteins 0.000 description 1
- 229910017435 S2 In Inorganic materials 0.000 description 1
- 101100477784 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SMF2 gene Proteins 0.000 description 1
- 101100326510 Swertia mussotii CYP76B10 gene Proteins 0.000 description 1
- 238000004587 chromatography analysis Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000001771 impaired effect Effects 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC MUSICAL INSTRUMENTS; INSTRUMENTS IN WHICH THE TONES ARE GENERATED BY ELECTROMECHANICAL MEANS OR ELECTRONIC GENERATORS, OR IN WHICH THE TONES ARE SYNTHESISED FROM A DATA STORE
- G10H1/00—Details of electrophonic musical instruments
- G10H1/0033—Recording/reproducing or transmission of music for electrophonic musical instruments
- G10H1/0041—Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
- G10H1/0058—Transmission between separate instruments or between individual components of a musical system
- G10H1/0066—Transmission between separate instruments or between individual components of a musical system using a MIDI interface
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
- Electrophonic Musical Instruments (AREA)
Abstract
【要約】
【課題】復号後においても各演奏情報の順番を回復さ
せ、復号された演奏情報が元の演奏情報と一致しない等
といった事態が生じるのを防止し、一部の演奏情報の記
録を省略する等して1次符号のサイズを小さくするこ
と。
【解決手段】本発明の演奏情報圧縮装置等は、SMF等
をチャネル毎に少なくともイベント間の相対時間の情報
と、発音開始音程の情報と、音の強さの情報と、発音終
了音程の情報と、その他の情報とに分離し、チャネルに
関係なく上記各情報毎にまとめ、当該まとめられた上記
各情報をそれぞれ独立した領域に配置した1次符号を生
成する1次符号生成部2と、この1次符号生成部2によ
り生成された1次符号の各領域の情報をLZ符号化法及
びハフマン符号化法の復号方式により圧縮する2次符号
生成部3と、を有する。Abstract: [PROBLEMS] To recover the order of each piece of performance information even after decoding, to prevent a situation in which the decoded performance information does not match the original performance information, and to record a part of the performance information. Reduce the size of the primary code by omitting it. A performance information compression device or the like according to the present invention uses an SMF or the like for each channel for at least information on a relative time between events, information on a sounding start pitch, information on a sound intensity, and information on a sounding end pitch. A primary code generation unit 2 that generates a primary code in which each of the information is separated into independent information regardless of the channel, and the collected information is arranged in an independent area. And a secondary code generation unit 3 for compressing information of each area of the primary code generated by the primary code generation unit 2 by a decoding method such as an LZ encoding method and a Huffman encoding method.
Description
【0001】[0001]
【発明の属する技術分野】本発明は、例えば演奏情報等
を圧縮し又は復号する技術に係り、特に演奏情報のデー
タ量を効率的に圧縮する演奏情報圧縮装置、演奏情報復
号装置、演奏情報圧縮方法、演奏情報復号方法、演奏情
報圧縮プログラム、演奏情報復号プログラムに関する。BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a technique for compressing or decoding performance information and the like, and particularly to a performance information compression device, a performance information decoding device, and a performance information compression device for efficiently compressing the amount of performance information data. The present invention relates to a method, a performance information decoding method, a performance information compression program, and a performance information decoding program.
【0002】[0002]
【従来の技術】従来、例えば楽器等からの演奏情報をデ
ジタルで通信する為のインターフェースに関する規格と
して、MIDI(Musical Instrument Digital Interfa
ce)規格が一般に知られている。そして、このMIDI
規格で定義されたデータを保存するファイルとしては、
例えばスタンダードMIDIファイル(以下、SMFと
称する)が一般に知られており、既に種々の分野で汎用
されている。2. Description of the Related Art Conventionally, MIDI (Musical Instrument Digital Interface) has been used as a standard relating to an interface for digitally communicating performance information from a musical instrument or the like.
ce) standards are generally known. And this MIDI
As a file to save the data defined by the standard,
For example, a standard MIDI file (hereinafter referred to as SMF) is generally known and is already widely used in various fields.
【0003】このSMFでは、各演奏情報は、1バイト
のキャラクタをいくつか組み合わせたMIDIメッセー
ジにより表現されており、当該MIDIメッセージは、
MIDI規格により1バイトのステータスが定義され、
これにより演奏情報が区別されている。更にステータス
バイトにはデータバイトが続き、各データバイト数は演
奏情報の種別により異なっている。尚、ステータスバイ
トには、上記の他、ステータスの種類、チャネル番号に
係る情報が含まれている。In this SMF, each performance information is represented by a MIDI message in which several 1-byte characters are combined, and the MIDI message is
The MIDI standard defines a 1-byte status,
This distinguishes the performance information. Further, the status byte is followed by data bytes, and the number of each data byte differs depending on the type of performance information. In addition to the above, the status byte contains information related to the status type and channel number.
【0004】しかるに、今日では、このSMFのファイ
ルサイズが比較的大きくなってしまうことに鑑みて、当
該SMFを例えば多数の楽曲データを記録して伝送する
システム等に適用する場合に、このSMFに含まれる各
演奏情報のデータ量を効率的に圧縮することが嘱望さ
れ、その為の技術開発が進められている。However, in view of the fact that the SMF file size becomes relatively large today, when the SMF is applied to, for example, a system for recording and transmitting a large number of music data, the SMF is applied to the SMF. It is hoped that the amount of data of each performance information included will be efficiently compressed, and technical development for that purpose is underway.
【0005】ここで、符号化された情報を復号して完全
に元の情報と一致させる符号化法である可逆的符号化法
としては、例えば、LZ(Lempel-Zif)符号化法やハフ
マン符号化法、ランレングス符号化法、更には、これら
を複合した方式(例えばLHAやZIP等)が一般に知
られており、汎用されている。As a reversible coding method which is a coding method for decoding the coded information and completely matching the original information, for example, the LZ (Lempel-Zif) coding method and the Huffman code are used. A coding method, a run length coding method, and a method in which these are combined (for example, LHA, ZIP, etc.) are generally known and widely used.
【0006】これらのうち、先ず、LZ方式は、データ
パターンが繰り返すことを利用して繰り返し分を圧縮す
るものであることから、入力されたデータの中の所定範
囲内に出現する同一のデータパターンの数が多い場合に
は、その圧縮率が低くなるといった特質がある。ここ
で、圧縮率とは、圧縮前のデータサイズに対する圧縮後
のデータサイズの割合をいうものとする。そして、圧縮
率が低くなるということは、圧縮効率が高くなる(良く
なる)ことを意味するものとする。Of these, first, the LZ method compresses the repeated portion by utilizing the repetition of the data pattern, and therefore, the same data pattern appearing in a predetermined range in the input data. When there are many numbers, the compression rate becomes low. Here, the compression rate means the ratio of the data size after compression to the data size before compression. And, the reduction of the compression rate means that the compression efficiency is increased (improved).
【0007】更に、ハフマン符号化方式は、データパタ
ーンには拠らず、バイト毎の符号の出現頻度によって重
み付けした所定のツリーを構成して、より重みのある符
号に関して少ないビット数で記録できるように符号化す
るものであることから、バイト毎の符号の出現頻度に偏
りがあるデータに有効である。Further, the Huffman coding system constructs a predetermined tree that is weighted by the frequency of appearance of the code for each byte regardless of the data pattern so that a more weighted code can be recorded with a smaller number of bits. Since it is encoded into, it is effective for data in which the appearance frequency of codes for each byte is biased.
【0008】また、これらLZ方式やハフマン符号化方
式を複合したLHA符号化法は、上記LZ方式やハフマ
ン符号化方式の利点のいずれをも備える。The LHA coding method which is a combination of these LZ method and Huffman coding method has all of the advantages of the above LZ method and Huffman coding method.
【0009】ここで、上記SMFでは、各演奏情報がデ
ルタタイム(以下、Δタイムと称する)とイベントとに
より構成されており、更に、各イベントにはノートオン
又はノートオフのステータスや音程、音の強さ等の情報
が含まれている。Here, in the SMF, each performance information is composed of a delta time (hereinafter referred to as Δtime) and an event, and each event has a note-on or note-off status, pitch, and note. It includes information such as the strength of.
【0010】一般に、楽曲は同様のフレーズの繰り返し
で構成される事が多いが、楽曲製作者は、楽曲が単調に
なるのを避けるべく、例えば音の強さや音の長さを微妙
に変化させる場合がある。また、仮に異なるチャネルに
同じパターンのフレーズが存在していたとしても、SM
Fの各演奏情報のイベントがチャネル番号に係る情報を
含んでいれば、記録データは異なるパターンとなってし
まう。In general, music is often composed of repetitions of similar phrases, but the music producer slightly changes, for example, the sound intensity or the sound length in order to avoid the music becoming monotonous. There are cases. Also, even if phrases with the same pattern exist in different channels, SM
If the event of each performance information of F includes the information related to the channel number, the recorded data will have a different pattern.
【0011】このように、SMFでは、データ記録の最
小単位であるイベントに複数の情報が含まれている事に
より生じる上記事情から、汎用圧縮方式によって圧縮す
る場合においては、その圧縮効率を高めるべく更なる工
夫が必要とされる。As described above, in the SMF, in order to improve the compression efficiency in the case of compressing by the general-purpose compression method from the above-mentioned circumstances caused by the fact that the event, which is the minimum unit of data recording, includes a plurality of information. Further ingenuity is needed.
【0012】かかる点に鑑みて、例えば特開平9−16
168号公報では、1次符号生成手段により、演奏情報
を、音程の情報と音の強さの情報、音の長さの情報、そ
の他の情報に分離し、各情報をそれぞれ独立した領域に
配置することで、その後のLZ方式による圧縮効率を高
めることを特徴とした演奏情報圧縮装置及び演奏情報復
号装置に関する技術が開示されている。In view of this point, for example, Japanese Patent Laid-Open No. 9-16
According to Japanese Patent No. 168, performance information is separated into pitch information, sound intensity information, sound length information, and other information by a primary code generating means, and each information is arranged in an independent area. By doing so, a technique relating to a performance information compression device and a performance information decoding device, which is characterized by increasing the compression efficiency by the LZ method thereafter, is disclosed.
【0013】[0013]
【発明が解決しようとする課題】しなしながら、上述し
た特開平9−16168号公報により開示された技術で
は、1次符号化時に各演奏情報を時間的に独立させてい
るにも関わらず当該各演奏情報の順番に係る情報を保存
していないことから、符号化された演奏情報を復号した
場合に上記各演奏情報の順番が入れ替わることがある。
即ち、復号された演奏情報が完全に元の演奏情報と一致
しない場合が生じ得る。However, in the technique disclosed in the above-mentioned Japanese Patent Laid-Open No. 9-16168, the performance information is made independent in spite of being temporally independent at the time of primary encoding. Since the information related to the order of the performance information is not stored, the order of the performance information may be changed when the encoded performance information is decoded.
That is, there may be a case where the decoded performance information does not completely match the original performance information.
【0014】本発明は、上記問題に鑑みてなされたもの
で、その目的とするところは、復号後においても各演奏
情報の順番を回復させ、復号された演奏情報が元の演奏
情報と一致しない等といった事態が生じるのを防止し、
一部の演奏情報の記録を省略する等して1次符号のサイ
ズを小さくし、更には、汎用圧縮方式との組み合わせに
より演奏情報のデータ量を効率的に圧縮又は伸長するこ
とが可能な、演奏情報圧縮装置、演奏情報復号装置、演
奏情報圧縮方法、演奏情報復号方法、演奏情報圧縮プロ
グラム、演奏情報復号プログラムを提供することにあ
る。The present invention has been made in view of the above problems, and an object thereof is to recover the order of performance information even after decoding so that the decoded performance information does not match the original performance information. To prevent situations such as
It is possible to reduce the size of the primary code by omitting recording of some performance information, and further to efficiently compress or decompress the data amount of performance information in combination with a general-purpose compression method. A performance information compression device, a performance information decoding device, a performance information compression method, a performance information decoding method, a performance information compression program, and a performance information decoding program.
【0015】[0015]
【課題を解決するための手段】上記目的を達成するため
に、請求項1の発明は、少なくとも発音開始音程の情
報、音の強さの情報、発音終了音程の情報、その他の情
報からなるイベントと、該イベント間の相対時間の情報
とを含んでいる複数のトラックデータを有するファイル
の入力を受け、当該ファイルを圧縮する演奏情報圧縮装
置において、上記ファイルの複数のトラックデータを、
各チャネルに帰属するトラックデータ毎に分離し、復号
化のときに参照する為のチャネルへの帰属を示す情報を
保持しつつ、各チャネルに帰属するトラックデータの情
報を種別毎に更に分離し、この分離された種別毎の情報
を種別毎にまとめ、種別毎に独立した領域に配置するこ
とで1次符号を生成する1次符号生成手段と、上記1次
符号生成手段により生成された1次符号の各領域に配置
された各情報を所定の圧縮方法により圧縮する2次符号
生成手段と、を有することを特徴とする演奏情報圧縮装
置としたものである。請求項2の発明は、少なくとも音
程の情報、音の強さの情報、音の長さの情報、その他の
情報からなるイベントと、該イベント間の相対時間の情
報とを含んでいる複数のトラックデータを有するファイ
ルの入力を受け、当該ファイルを圧縮する演奏情報圧縮
装置において、上記ファイルの複数のトラックデータ
を、各チャネルに帰属するトラックデータ毎に分離し、
復号化のときに参照する為のチャネルへの帰属を示す情
報を保持しつつ、各チャネルに帰属するトラックデータ
の情報を種別毎に更に分離し、この分離された種別毎の
情報を種別毎にまとめ、種別毎に独立した領域に配置す
ることで1次符号を生成する1次符号生成手段と、上記
1次符号生成手段により生成された1次符号の各領域に
配置された各情報を所定の圧縮方法により圧縮する2次
符号生成手段と、を有することを特徴とする演奏情報圧
縮装置としたものである。 請求項3の発明は、上記1次
符号生成手段は、上記イベント間の相対時間の情報に基
づき、上記トラックデータに同時刻に係る複数のイベン
トが記録されていると判断した場合には上記複数のイベ
ントからなるイベント群の最後尾に記録されるイベント
について、又は所定時刻に係るイベントが単一であると
判断した場 合には当該イベントについて、チャネルへの
帰属を示す情報を保持する対象から除外することを更な
る特徴とする請求項1又は2に記載の演奏情報圧縮装置
としたものである。 請求項4の発明は、上記1次符号生
成手段は、イベント種別識別符号を上記トラックデータ
に含まれる各イベント毎に割り当て、当該イベント種別
識別符号をまとめて、独立した領域に配置することを更
なる特徴とする請求項1又は2に記載の演奏情報圧縮装
置としたものである。 請求項5の発明は、上記1次符号
生成手段は、演奏情報ファイルに記録されているイベン
ト群に含まれるイベントのうち、少なくとも最も使用頻
度の高いイベントのイベント種別の識別情報を、1次符
号の相対時間符号に含めて記録することを更なる特徴と
する請求項1又は2に記載の演奏情報圧縮装置としたも
のである。 請求項6の発明は、上記1次符号生成手段
は、上記イベントが所定のタイプである場合には、チャ
ネルへの帰属を示す情報の代わりにイベントクラス情報
を記録することを更なる特徴とする請求項2に記載の演
奏情報圧縮装置としたものである。 請求項7の発明は、
請求項1に記載の演奏情報圧縮装置により圧縮され生成
された2次符号を所定の復号方法により1次符号に復号
し、更に当該1次符号をファイルに復号する演奏情報復
号装置において、上記2次符号を1次符号に復号する2
次符号復号手段と、上記1次符号について、独立した領
域に配置されている種別毎の各情報を当該種別毎に抽出
し、上記チャネルへの帰属を示す情報を参照しつつ、抽
出した各情報を各チャネルに帰属する複数のトラックデ
ータとして構成し、更にファイルのトラックデータとし
て構成することでファイルに復号する1次符号復号手段
と、を有することを特徴とする演奏情報復号装置とした
ものである。 請求項8の発明は、請求項2に記載の演奏
情報圧縮装置により圧縮され生成された2次符号を所定
の復号方法により1次符号に復号し、更に当該1次符号
をファイルに復号する演奏情報復号装置において、上記
2次符号を1次符号に復号する2次符号復号手段と、上
記1次符号について、独立した領域に配置されている 種
別毎の各情報を当該種別毎に抽出し、上記チャネルへの
帰属を示す情報を参照しつつ、抽出した各情報を各チャ
ネルに帰属する複数のトラックデータとして構成し、更
にファイルのトラックデータとして構成することでファ
イルに復号する1次符号復号手段と、を有することを特
徴とする演奏情報復号装置としたものである。 請求項9
の発明は、上記1次符号復号手段は、上記復号のときに
は、独立した領域に配置されている各イベントの種別
を、各イベント毎に割り当てられたイベント種別識別符
号に基づいて識別する、ことを更なる特徴とする請求項
7又は8に記載の演奏情報復号装置としたものである。
請求項10の発明は、上記1次符号復号手段は、イベン
トが所定のタイプである場合には、上記チャネルへの帰
属を示す情報の代わりにイベントクラス情報を参照しつ
つトラックデータを構成する、ことを更なる特徴とする
請求項8に記載の演奏情報復号装置としたものである。
請求項11の発明は、少なくとも発音開始音程の情報、
音の強さの情報、発音終了音程の情報、その他の情報か
らなるイベントと、該イベント間の相対時間の情報とを
含んでいる複数のトラックデータを有するファイルの入
力を受け、当該ファイルを圧縮する演奏情報圧縮方法に
おいて、1次符号生成手段により、上記ファイルの複数
のトラックデータを、各チャネルに帰属するトラックデ
ータ毎に分離し、復号化のときに参照する為のチャネル
への帰属を示す情報を保持しつつ、各チャネルに帰属す
るトラックデータの情報を種別毎に更に分離し、この分
離された種別毎の情報を種別毎にまとめ、種別毎に独立
した領域に配置することで1次符号を生成するステップ
と、2次符号生成手段により、上記1次符号生成手段に
より生成された1次符号の各領域に配置された各情報を
所定の圧縮方法により圧縮するステップと、を有するこ
とを特徴とする演奏情報圧縮方法としたものである。 請
求項12の発明は、少なくとも音程の情報、音の強さの
情報、音の長さの情報、その他の情報からなるイベント
と、該イベント間の相対時間の情報とを含んでいる複数
のトラックデータを有するファイルの入力を受け、当該
ファイルを圧縮する演奏情報圧縮方法において、1次符
号生成手段により、上記ファイルの複 数のトラックデー
タを、各チャネルに帰属するトラックデータ毎に分離
し、復号化のときに参照する為のチャネルへの帰属を示
す情報を保持しつつ、各チャネルに帰属するトラックデ
ータの情報を種別毎に更に分離し、この分離された種別
毎の情報を種別毎にまとめ、種別毎に独立した領域に配
置することで1次符号を生成するステップと、2次符号
生成手段により、上記1次符号生成手段により生成され
た1次符号の各領域に配置された各情報を所定の圧縮方
法により圧縮するステップと、を有することを特徴とす
る演奏情報圧縮方法としたものである。 請求項13の発
明は、上記1次符号生成手段により、上記イベント間の
相対時間の情報に基づき、上記トラックデータに同時刻
に係る複数のイベントが記録されていると判断した場合
には上記複数のイベントからなるイベント群の最後尾に
記録されるイベントについて、又は所定時刻に係るイベ
ントが単一であると判断した場合には当該イベントにつ
いて、チャネルへの帰属を示す情報を保持する対象から
除外するステップ、を更に有することを特徴とする請求
項11又は12に記載の演奏情報圧縮方法としたもので
ある。 請求項14の発明は、上記1次符号生成手段によ
り、イベント種別識別符号を上記トラックデータに含ま
れる各イベント毎に割り当て、当該イベント種別識別符
号をまとめて、独立した領域に配置するステップ、を更
に有することを特徴とする請求項11又は12に記載の
演奏情報圧縮方法としたものである。 請求項15の発明
は、上記1次符号生成手段により、演奏情報ファイルに
記録されているイベント群に含まれるイベントのうち、
少なくとも最も使用頻度の高いイベントのイベント種別
の識別情報を、1次符号の相対時間符号に含めて記録す
ることステップ、を更に有することを特徴とする請求項
11又は12に記載の演奏情報圧縮方法としたものであ
る。 請求項16の発明は、上記1次符号生成手段によ
り、上記イベントが所定のタイプである場合には、チャ
ネルへの帰属を示す情報の代わりにイベントクラス情報
を記録するステップ、を更に有することを特徴とする請
求項12に記載の演奏情報圧縮方法としたものである。
請求項17の発明は、請求項11に記載の演奏情報圧縮
方法により圧縮され生成された2次符号を所定の復号方
法により1次符号に復号し、更に当該1次符号 をファイ
ルに復号する演奏情報復号方法において、2次符号復号
手段により、上記2次符号を1次符号に復号するステッ
プと、1次符号復号手段により、上記1次符号につい
て、独立した領域に配置されている種別毎の各情報を当
該種別毎に抽出し、上記チャネルへの帰属を示す情報を
参照しつつ、抽出した各情報を各チャネルに帰属する複
数のトラックデータとして構成し、更にファイルのトラ
ックデータとして構成することでファイルに復号するス
テップと、を有することを特徴とする演奏情報復号方法
としたものである。 請求項18の発明は、請求項12に
記載の演奏情報圧縮方法により圧縮され生成された2次
符号を所定の復号方法により1次符号に復号し、更に当
該1次符号をファイルに復号する演奏情報復号方法にお
いて、2次符号復号手段により、上記2次符号を1次符
号に復号するステップと、1次符号復号手段により、上
記1次符号について、独立した領域に配置されている種
別毎の各情報を当該種別毎に抽出し、上記チャネルへの
帰属を示す情報を参照しつつ、抽出した各情報を各チャ
ネルに帰属する複数のトラックデータとして構成し、更
にファイルのトラックデータとして構成することでファ
イルに復号するステップと、を有することを特徴とする
演奏情報復号方法としたものである。 請求項19の発明
は、上記1次符号復号手段により、上記復号のときに
は、独立した領域に配置されている各イベントの種別
を、各イベント毎に割り当てられた、イベント種別識別
符号に基づいて識別するステップを更に有することを特
徴とする請求項17又は18に記載の演奏情報復号方法
としたものである。 請求項20の発明は、上記1次符号
復号手段により、イベントが所定のタイプである場合に
は、上記チャネルへの帰属を示す情報の代わりにイベン
トクラス情報を参照しつつトラックデータを構成するス
テップを更に有することを特徴とする請求項18に記載
の演奏情報復号方法としたものである。 請求項21の発
明は、少なくとも発音開始音程の情報、音の強さの情
報、発音終了音程の情報、その他の情報からなるイベン
トと、該イベント間の相対時間の情報とを含んでいる複
数のトラックデータを有するファイルの入力を受け、当
該ファイルを圧縮する演奏情報圧縮プログラムにおい
て、コンピュータに、上記ファイルの複数のトラックデ
ータを、各チャネルに帰属するトラックデータ毎に分 離
し、復号化のときに参照する為のチャネルへの帰属を示
す情報を保持しつつ、各チャネルに帰属するトラックデ
ータの情報を種別毎に更に分離し、この分離された種別
毎の情報を種別毎にまとめ、種別毎に独立した領域に配
置することで1次符号を生成するステップと、この生成
された1次符号の各領域に配置された各情報を所定の圧
縮方法により圧縮するステップと、を実行させるための
演奏情報圧縮プログラムとしたものである。 請求項22
の発明は、少なくとも音程の情報、音の強さの情報、音
の長さの情報、その他の情報からなるイベントと、該イ
ベント間の相対時間の情報とを含んでいる複数のトラッ
クデータを有するファイルの入力を受け、当該ファイル
を圧縮する演奏情報圧縮プログラムにおいて、コンピュ
ータにより、上記ファイルの複数のトラックデータを、
各チャネルに帰属するトラックデータ毎に分離し、復号
化のときに参照する為のチャネルへの帰属を示す情報を
保持しつつ、各チャネルに帰属するトラックデータの情
報を種別毎に更に分離し、この分離された種別毎の情報
を種別毎にまとめ、種別毎に独立した領域に配置するこ
とで1次符号を生成するステップと、この生成された1
次符号の各領域に配置された各情報を所定の圧縮方法に
より圧縮するステップと、を実行させるための演奏情報
圧縮プログラムとしたものである。 請求項23の発明
は、上記コンピュータに、上記イベント間の相対時間の
情報に基づき、上記トラックデータに同時刻に係る複数
のイベントが記録されていると判断した場合には上記複
数のイベントからなるイベント群の最後尾に記録される
イベントについて、又は所定時刻に係るイベントが単一
であると判断した場合には当該イベントについて、チャ
ネルへの帰属を示す情報を保持する対象から除外するス
テップを更に実行させる、ことを特徴とする請求項21
又は22に記載の演奏情報圧縮プログラムとしたもので
ある。 請求項24の発明は、上記コンピュータに、イベ
ント種別識別符号を上記トラックデータに含まれる各イ
ベント毎に割り当て、当該イベント種別識別符号をまと
めて、独立した領域に配置するステップを更に実行させ
る、ことを特徴とする請求項21又は22に記載の演奏
情報圧縮プログラムとしたものである。 請求項25の発
明は、上記コンピュータに、演奏情報ファイルに記録さ
れてい るイベント群に含まれるイベントのうち、少なく
とも最も使用頻度の高いイベントのイベント種別の識別
情報を、1次符号の相対時間符号に含めて記録すること
ステップを更に実行させる、ことを特徴とする請求項2
1又は22に記載の演奏情報圧縮プログラムとしたもの
である。 請求項26の発明は、上記コンピュータに、上
記イベントが所定のタイプである場合には、チャネルへ
の帰属を示す情報の代わりにイベントクラス情報を記録
するステップを更に実行させる、ことを特徴とする請求
項22に記載の演奏情報圧縮プログラムとしたものであ
る。 請求項27の発明は、請求項21に記載の演奏情報
圧縮プログラムにより圧縮され生成された2次符号を所
定の復号方法により1次符号に復号し、更に当該1次符
号をファイルに復号する演奏情報復号プログラムにおい
て、コンピュータに、上記2次符号を1次符号に復号す
るステップと、上記1次符号について、独立した領域に
配置されている種別毎の各情報を当該種別毎に抽出し、
上記チャネルへの帰属を示す情報を参照しつつ、抽出し
た各情報を各チャネルに帰属する複数のトラックデータ
として構成し、更にファイルのトラックデータとして構
成することでファイルに復号するステップと、を実行さ
せることを特徴とする演奏情報復号プログラムとしたも
のである。 請求項28の発明は、請求項22に記載の演
奏情報圧縮プログラムにより圧縮され生成された2次符
号を所定の復号方法により1次符号に復号し、更に当該
1次符号をファイルに復号する演奏情報復号プログラム
において、コンピュータに、上記2次符号を1次符号に
復号するステップと、上記1次符号について、独立した
領域に配置されている種別毎の各情報を当該種別毎に抽
出し、上記チャネルへの帰属を示す情報を参照しつつ、
抽出した各情報を各チャネルに帰属する複数のトラック
データとして構成し、更にファイルのトラックデータと
して構成することでファイルに復号するステップと、を
実行させることを特徴とする演奏情報復号プログラムと
したものである。 請求項29の発明は、上記コンピュー
タに、上記復号のときには、独立した領域に配置されて
いる各イベントの種別を、各イベント毎に割り当てられ
た、イベント種別識別符号に基づいて識別するステップ
を更に実行させる、ことを特徴と する請求項27又は2
8に記載の演奏情報復号プログラムとしたものである。
請求項30の発明は、上記コンピュータに、イベントが
所定のタイプである場合には、上記チャネルへの帰属を
示す情報の代わりにイベントクラス情報を参照しつつト
ラックデータを構成するステップを更に実行させること
を特徴とする請求項28に記載の演奏情報復号プログラ
ムとしたものである。 In order to achieve the above-mentioned object, the invention of claim 1 is an event consisting of at least sounding start pitch information, sound intensity information, sounding end pitch information, and other information. And a file having a plurality of track data including information of relative time between the events, and a performance information compression device for compressing the file, the plurality of track data of the file are
Separating the belt rack every data attributable to each channel, decoding
The information of the track data belonging to each channel is retained while retaining the information indicating the attribution to the channel for reference when converting.
The information is further separated into each type, and the information for each of the separated types
A summary for each different species, a primary code generating means for generating a primary code by placing in a separate area for each separate species, arranged in each region of the primary code generated by the primary code generation means And a secondary code generation means for compressing each of the generated information by a predetermined compression method. The invention of claim 2 is at least a sound
Information, sound intensity information, sound duration information, etc.
Information consisting of information and relative time information between the events
A file with multiple track data containing
Performance information compression that receives the input of the file and compresses the file
In the device, multiple track data of the above file
Is separated for each track data belonging to each channel,
Information indicating attribution to the channel for reference when decoding
Track data belonging to each channel while maintaining information
Information is further separated for each type, and for each separated type
Information is grouped by type and placed in an independent area for each type.
A primary code generating means for generating a primary code by
In each area of the primary code generated by the primary code generation means
Secondary that compresses each placed information by a predetermined compression method
And a performance information pressure
This is a compression device. The invention of claim 3 is the above primary
The code generation means is based on the information on the relative time between the events.
Based on the above track data, multiple events related to the same time
If it is determined that the
Event recorded at the end of the event group consisting of
Or there is a single event for a given time
For the event is to determine the case, to the channel
It is further recommended to exclude from the subject that holds the information showing attribution.
The performance information compression apparatus according to claim 1 or 2,
It is what The invention of claim 4 is the above-mentioned primary code raw.
The composition means uses the event type identification code as the track data.
Assigned to each event included in
It is recommended to put identification codes together and place them in independent areas.
The performance information compression apparatus according to claim 1 or 2, wherein
It is a place. The invention of claim 5 is the above-mentioned primary code.
The means of generation is the event recorded in the performance information file.
Of the events included in the group
The primary code is the identification information of the event type of the high frequency event.
A further feature is that it is included in the relative time code of the
The performance information compression device according to claim 1 or 2.
Of. According to a sixth aspect of the present invention, the primary code generating means is provided.
If the above event is of a given type,
Event class information instead of information indicating belonging to Nell
The performance of claim 2, further characterized by recording
This is a performance information compression device. The invention of claim 7 is
Generated by the performance information compression device according to claim 1.
The generated secondary code into a primary code by a predetermined decoding method
Then, the performance information is restored by decoding the primary code into a file.
No. 2 device for decoding the above secondary code into a primary code 2
An independent area is provided for the next code decoding means and the primary code.
Extracts each type of information placed in the area for each type
Then, while referring to the information showing attribution to the above channel,
Each piece of information output is assigned to multiple track data belonging to each channel.
Data as a track data of the file.
Primary code decoding means for decoding into a file by configuring
And a performance information decoding device characterized by having
It is a thing. The invention of claim 8 is the performance according to claim 2.
Predetermine the secondary code compressed and generated by the information compression device
To the primary code by the decoding method of
In the performance information decoding device for decoding the
A secondary code decoding means for decoding the secondary code into a primary code;
Regarding the primary code, seeds placed in independent areas
Extract each type of information for each type,
While referring to the information indicating attribution, each extracted information is
It is configured as multiple track data belonging to the
File as track data of the file.
And a primary code decoding means for decoding into a file.
It is used as a performance information decoding device. Claim 9
According to the invention, the primary code decoding means is
Is the type of each event placed in an independent area
Is the event type identification code assigned to each event.
Identifying further based on the number.
The performance information decoding apparatus described in 7 or 8 is used.
According to a tenth aspect of the present invention, the primary code decoding means is an event
Channel is of a given type, the
Refer to event class information instead of the information indicating the genus
It is a further feature that the two track data are configured.
The performance information decoding apparatus according to claim 8 is used.
According to the invention of claim 11, at least information on the pitch at which the pronunciation is started,
Information about the strength of the sound, information about the ending pitch, or other information
And the information of the relative time between the events.
Import a file with multiple track data containing
The performance information compression method that receives the force and compresses the file
In the above, by the primary code generation means,
Track data of each track
Channel to be separated for each data and used for reference when decoding
Belonging to each channel while retaining the information indicating attribution to
The information of the track data that is
Information on each separated type is collected for each type and independent for each type
To generate a primary code by arranging in a specified area
And the secondary code generation means causes the primary code generation means to
Each information placed in each area of the primary code generated by
Compressing with a predetermined compression method.
The performance information compression method is characterized by Contract
The invention of claim 12 requires at least pitch information and sound intensity.
Event consisting of information, duration information, and other information
And a plurality of information including relative time information between the events.
Input the file containing the track data of
In the performance information compression method that compresses a file, the primary code
The No. generation means, the track data of several of the file
Data is separated for each track data belonging to each channel
And show attribution to the channel for reference when decoding.
Track information belonging to each channel
The data of the data is further separated for each type, and the separated type
Information for each type is collected for each type and placed in an independent area for each type.
Generating a primary code by placing the secondary code
Generated by the generating means by the primary code generating means
Compressed each information placed in each area of the primary code
Compressing by the method, and
This is a performance information compression method. From claim 13
Ming is between the events by the primary code generation means.
Same time as the above track data based on relative time information
When it is determined that multiple events related to are recorded
At the end of the event group consisting of the above multiple events
Events recorded, or events related to a predetermined time
If it is determined that there is only one event,
From the target that holds the information that indicates attribution to the channel
Further comprising the step of excluding.
The performance information compression method described in item 11 or 12 is used.
is there. According to a fourteenth aspect of the present invention, there is provided the above primary code generation means.
The event type identification code is included in the above track data.
Assigned to each event that is generated, the event type identification mark
The steps to assemble the issues and place them in independent areas.
13. The method according to claim 11 or 12, characterized in that
This is a performance information compression method. Invention of Claim 15
Is recorded in the performance information file by the primary code generating means.
Of the events included in the recorded event group,
Event type of at least the most frequently used event
The identification information of is recorded in the relative time code of the primary code.
The method further comprising the step of:
The performance information compression method described in 11 or 12 is used.
It According to a sixteenth aspect of the present invention, there is provided the above primary code generation means.
If the above event is of a given type,
Event class information instead of information indicating belonging to Nell
And a step of recording
The performance information compression method according to claim 12 is used.
The invention of claim 17 is the performance information compression according to claim 11.
Decoding the secondary code compressed and generated by the method
Decodes the primary code by law, further phi the primary code
In the performance information decoding method for
Means for decoding the secondary code into a primary code.
And the primary code decoding means
Information of each type placed in an independent area.
Information indicating the attribution to the above channels is extracted for each type.
While referring to each extracted information,
Number of track data, and the file
File that is decrypted into a file by configuring
And a performance information decoding method comprising:
It is what The invention of claim 18 relates to claim 12.
Secondary generated by compression using the performance information compression method described
The code is decoded into a primary code by a predetermined decoding method, and
In a performance information decoding method for decoding the primary code into a file
Then, the secondary code is decoded by the secondary code decoding means.
And the primary code decoding means.
Regarding the primary code, seeds placed in independent areas
Extract each type of information for each type,
While referring to the information indicating attribution, each extracted information is
It is configured as multiple track data belonging to the
File as track data of the file.
And decrypting into a file.
This is a performance information decoding method. Invention of Claim 19
When the decoding is performed by the primary code decoding means,
Is the type of each event placed in an independent area
Event type identification assigned to each event
The method further comprises the step of identifying based on the code.
The performance information decoding method according to claim 17 or 18,
It is what The invention according to claim 20 is the above primary code
If the event is of a given type by the decryption means
Instead of the information showing attribution to the above channel,
Class that composes track data while referring to class information
19. The method according to claim 18, further comprising a step.
This is the performance information decoding method. From claim 21
Akira means at least information about the starting pitch and information on the strength of the sound.
Event, consisting of information, end tone pitch information, and other information
And information about the relative time between the events.
The input of a file containing several track data
A performance information compression program that compresses the file
On your computer.
The chromatography data, separation for each track data belonging to each channel
And show attribution to the channel for reference when decoding.
Track information belonging to each channel
The data of the data is further separated for each type, and the separated type
Information for each type is collected for each type and placed in an independent area for each type.
The step of generating a primary code by
Each information placed in each area of the generated primary code is given a predetermined pressure.
A step of compressing by a shrinking method, and
This is a performance information compression program. Claim 22
Invention, at least pitch information, sound intensity information, sound
Event consisting of length information and other information
Multiple traps containing information on relative time between vents and
Input the file containing the data
The performance information compression program that compresses
Data of multiple tracks in the above file
Decode by separating each track data belonging to each channel
Information that indicates attribution to the channel for reference when
Information of track data belonging to each channel while being retained
The information is further separated into each type, and the information for each of the separated types
Can be grouped by type and placed in an independent area for each type.
And a step of generating a primary code with
Each information placed in each area of the next code is converted into a predetermined compression method.
Performance information for executing more compression steps and
It is a compression program. Invention of Claim 23
Of the relative time between the events to the computer
Based on the information, multiple items related to the same time in the above track data
If it is determined that the event of
Recorded at the end of an event group consisting of several events
There is only one event or event related to a given time
If it is determined that the event is
Exclude from holding the information indicating attribution to
22. The step is further executed.
Or the performance information compression program described in 22
is there. According to a twenty-fourth aspect of the present invention, the computer is provided with an event
The event type identification code is used for each event included in the track data.
Assigned to each event and put the event type identification code
And then perform the step of placing it in a separate area.
23. The performance according to claim 21 or 22, characterized in that
This is an information compression program. Claim 25
Akira is recorded in the performance information file on the computer.
Among the events to be included in the event group that has been, at least
The event type of the most frequently used event
To record information by including it in the relative time code of the primary code
3. The method according to claim 2, further comprising executing the steps.
The performance information compression program described in 1 or 22
Is. The invention of claim 26 is the above computer,
If the event is of a given type, go to the channel
Record event class information instead of attribution information
The method further comprising the step of:
It is the performance information compression program described in Item 22.
It The invention of claim 27 is the performance information according to claim 21.
The secondary code compressed and generated by the compression program
Decoding to a primary code by a fixed decoding method,
In the performance information decoding program that decodes the issue into a file
And the computer decodes the secondary code into a primary code.
And the primary code above
Extract each information for each type that is placed, for each type,
While referring to the information showing attribution to the above channel,
Multiple track data that attribute each information to each channel
As the track data of the file.
Perform the steps of decrypting to a file by
A performance information decoding program characterized by
Of. The invention of claim 28 is the operation of claim 22.
Secondary code compressed and generated by the performance information compression program
Signal into a primary code by a predetermined decoding method, and further
Performance information decoding program for decoding primary code into file
In the computer, the secondary code is converted into the primary code.
Independent of the decoding step and the above primary code
Extract each type of information placed in the area for each type.
While referring to the information showing attribution to the above channel,
Multiple tracks that attribute each extracted information to each channel
Configured as data, and also as file track data
And decrypting into a file by configuring
A performance information decoding program characterized by being executed;
It was done. The invention according to claim 29 is the above computer.
In the above decoding, it is placed in an independent area.
The type of each event is assigned to each event.
And the step of identifying based on the event type identification code
28. The method according to claim 27 , further comprising:
The performance information decoding program described in No. 8 is used.
According to the invention of claim 30, the computer is provided with an event.
If it is of a certain type, please attribute to the above channel.
Refer to the event class information instead of the information shown
Performing further steps to configure rack data
29. The performance information decoding program according to claim 28,
It is a mess.
【0016】[0016]
【0017】[0017]
【0018】[0018]
【0019】[0019]
【0020】[0020]
【0021】[0021]
【0022】[0022]
【0023】[0023]
【0024】[0024]
【0025】[0025]
【0026】[0026]
【0027】[0027]
【0028】[0028]
【0029】[0029]
【0030】[0030]
【0031】[0031]
【0032】[0032]
【0033】[0033]
【0034】[0034]
【0035】[0035]
【0036】[0036]
【0037】[0037]
【0038】[0038]
【0039】[0039]
【0040】[0040]
【0041】[0041]
【0042】[0042]
【0043】[0043]
【0044】[0044]
【0045】[0045]
【0046】[0046]
【0047】[0047]
【0048】[0048]
【0049】[0049]
【0050】[0050]
【0051】[0051]
【発明の実施の形態】以下、図面を参照して、本発明の
実施の形態について説明する。BEST MODE FOR CARRYING OUT THE INVENTION Embodiments of the present invention will be described below with reference to the drawings.
【0052】(第1の実施の形態)先ず、第1の実施の
形態に係る演奏情報圧縮装置、演奏情報復号装置、演奏
情報圧縮方法、演奏情報復号方法、演奏情報圧縮プログ
ラム、及び演奏情報復号プログラムにおいて、前提とさ
れる入力データ(楽曲ファイル)のフォーマットについ
て、詳細に説明する。この第1の実施の形態において
は、楽曲ファイルのフォーマットとしてSMFのフォー
マットを想定している。このSMFは、ヘッダ・チャン
クとトラック・チャンクに大別され、各ヘッダ・チャン
クには、MIDIファイル全体に直接関係する最小限の
情報、例えばトラックデータの数等の情報が含まれてい
る。更に、各トラック・チャンクには、最大16チャネ
ルに係るMIDIデータ(トラックデータ)を含めるこ
とができる。そして、各トラックデータは、Δタイムと
イベントといった2つの要素で構成されている。より詳
細には、このΔタイムは、可変長表記でストアされてお
り、後続のイベントまでの時間間隔を示している。即
ち、あるトラックの最初のイベントがトラックの開始と
同時に起る場合、または2つのイベントが同じタイミン
グで起る場合には、Δタイムは0となる。更に、イベン
トには、ノートオン又はノートオフのステータスや音程
(ノートナンバ)、音の強さ(ベロシティ)等といった
種々の演奏情報が含まれている。即ち、このイベント
は、MIDIチャネル・メッセージであり、詳細には、
ステータスバイトとデータバイトで構成されている。先
行しているイベントとステータスが同じである場合、当
該ステータスバイトは省略されることもある。但し、最
初のイベントは、ステータスを指定しなければならな
い。(First Embodiment) First, a performance information compression apparatus, a performance information decoding apparatus, a performance information compression method, a performance information decoding method, a performance information compression program, and a performance information decoding apparatus according to the first embodiment. The format of input data (music file) that is assumed in the program will be described in detail. In the first embodiment, the SMF format is assumed as the music file format. The SMF is roughly divided into a header chunk and a track chunk, and each header chunk contains minimum information directly related to the entire MIDI file, for example, information such as the number of track data. Furthermore, each track chunk can include MIDI data (track data) for up to 16 channels. Each track data is composed of two elements such as Δtime and event. More specifically, this Δtime is stored in variable length notation and indicates the time interval until the subsequent event. That is, if the first event of a track occurs at the same time as the start of the track, or if two events occur at the same timing, the Δtime becomes 0. Further, the event includes various performance information such as note-on or note-off status, pitch (note number), and sound intensity (velocity). That is, this event is a MIDI channel message, and more specifically,
It consists of a status byte and a data byte. If the status is the same as the preceding event, the status byte may be omitted. However, the first event must specify the status.
【0053】以上は、SMFのフォーマットの概要であ
るが、この第1の実施の形態に係る演奏情報圧縮装置等
が採用するフォーマットでは、上記演奏情報ファイルに
記録されているイベント群に含まれるイベントのうち、
少なくとも最も使用頻度の高いイベントのイベント種別
の識別情報を、1次符号の相対時間符号に含めて記録す
ることを更なる特徴としている。より詳細には、1次符
号のΔタイムをイベント種別識別可能に変換して記録す
ることで、最も使用頻度の高いイベントと使用頻度次点
のイベントの符号化時にイベント種別識別符号の符号化
を省略して1次符号のデータ量を減らしている。これ
は、第1の実施の形態に係る特徴部分の一つであること
は勿論である。The above is an outline of the format of the SMF. In the format adopted by the performance information compression apparatus and the like according to the first embodiment, the events included in the event group recorded in the performance information file are included. Out of
A further feature is that at least the identification information of the event type of the most frequently used event is included in the relative time code of the primary code and recorded. More specifically, the Δ time of the primary code is converted and recorded so that the event type can be identified, so that the event type identification code can be encoded when the event with the highest frequency of use and the event of the next highest frequency of use are encoded. It is omitted to reduce the data amount of the primary code. This is, of course, one of the characteristic portions according to the first embodiment.
【0054】(演奏情報圧縮装置等)以下、図1乃至図
25を参照して、楽曲ファイルより1次符号、更には2
次符号を生成する第1の実施の形態に係る演奏情報圧縮
装置、演奏情報圧縮方法、演奏情報圧縮プログラムにつ
いて、その構成及び作用を詳細に説明する。(Performance information compression device, etc.) Hereinafter, referring to FIG. 1 to FIG.
The configuration and operation of the performance information compression device, performance information compression method, and performance information compression program according to the first embodiment that generate the next code will be described in detail.
【0055】尚、この演奏情報圧縮装置による作用は、
第1の実施の形態に係る演奏情報圧縮方法、演奏情報圧
縮プログラムに相当するものである。当該演奏情報圧縮
プログラムは、汎用のコンピュータ等により実行可能な
ものである。The operation of this performance information compression device is as follows.
It corresponds to the performance information compression method and the performance information compression program according to the first embodiment. The performance information compression program can be executed by a general-purpose computer or the like.
【0056】先ず、図1には、本発明の第1の実施の形
態に係る演奏情報圧縮装置の構成を示し説明する。図1
に示されるように、この演奏情報圧縮装置1は、1次符
号生成部2と2次符号生成部3からなる。尚、請求項記
載の1次符号生成手段とはこの1次符号生成部2等に相当
し、請求項記載の2次符号生成手段とはこの2次符号生
成部3等に相当するものである。但し、これには限定さ
れない。First, FIG. 1 shows the configuration of a performance information compression apparatus according to the first embodiment of the present invention, and will be described. Figure 1
As shown in FIG. 1, the performance information compression device 1 includes a primary code generation unit 2 and a secondary code generation unit 3. The primary code generating means described in the claims corresponds to the primary code generating section 2 and the like, and the secondary code generating means in the claims corresponds to the secondary code generating section 3 and the like. . However, it is not limited to this.
【0057】この1次符号生成部2は、2次符号生成部
3での圧縮効率を高めるべく、上述したフォーマットの
楽曲ファイル4に含まれる演奏情報を並び替えて、1次
符号5を生成するものである。そして、2次符号生成部
3は、上記1次符号5を汎用圧縮方式により圧縮して、
2次符号6を生成するものである。The primary code generator 2 rearranges the performance information contained in the music file 4 in the above-mentioned format to generate the primary code 5 in order to improve the compression efficiency of the secondary code generator 3. It is a thing. Then, the secondary code generation unit 3 compresses the primary code 5 by a general-purpose compression method,
The secondary code 6 is generated.
【0058】即ち、1次符号生成部2は、上記ファイル
のトラックデータを各チャネルに帰属する複数のトラッ
クデータに分離し、当該チャネルへの帰属を示す情報を
保持しつつ、各チャネルに帰属するトラックデータを上
記各情報毎に更に分離し、この分離された各情報を当該
チャネルへの帰属に関係なく各情報の種別毎にまとめ
て、その種別毎に独立した領域に配置することで1次符
号5を生成する。2次符号生成部3は、この1次符号5
の各領域に配置された各情報を所定の圧縮方法により圧
縮することで2次符号6を生成することになる。That is, the primary code generation unit 2 separates the track data of the file into a plurality of track data belonging to each channel, and holds the information indicating the belonging to the channel while belonging to each channel. The track data is further separated for each of the above information, the separated information is grouped for each type of information regardless of belonging to the channel, and is arranged in an independent area for each type. The code 5 is generated. The secondary code generation unit 3 uses the primary code 5
The secondary code 6 is generated by compressing each piece of information arranged in each area of 1 by a predetermined compression method.
【0059】この第1の実施の形態では、2次符号生成
部3において採用する汎用圧縮方式として、例えばLZ
符号化法やハフマン符号化法、ランレングス符号化法、
更には、これらを複合した方式(例えばLHAやZIP
等)を採用することを想定しているが、これらに限定さ
れないことは勿論である。In the first embodiment, as a general-purpose compression method adopted in the secondary code generator 3, for example, LZ is used.
Encoding method, Huffman encoding method, run-length encoding method,
Furthermore, a method that combines these (for example, LHA or ZIP
Etc.) is adopted, but the invention is not limited to these.
【0060】ここで、1次符号生成部2の詳細な構成
は、図2に示される通りである。Here, the detailed configuration of the primary code generator 2 is as shown in FIG.
【0061】即ち、この1次符号生成部2は、トラック
分離部7とチャネル分離及びチャネル番号符号生成部
8、チャネル番号以外の符号生成部9、符号配置部10
を有している。以下、これら各部7乃至10の構成及び
作用を詳述する。That is, the primary code generating section 2 includes a track separating section 7, a channel separating and channel number code generating section 8, a code generating section 9 other than the channel number, and a code arranging section 10.
have. Hereinafter, the configuration and operation of each of these units 7 to 10 will be described in detail.
【0062】先ず、トラック分離部7の詳細な構成は、
図3に示される通りである。First, the detailed structure of the track separating section 7 is as follows.
As shown in FIG.
【0063】即ち、このトラック分離部7は、ファイル
解析部7aを有している。That is, the track separation section 7 has a file analysis section 7a.
【0064】このファイル解析部7aは、楽曲ファイル
4のヘッダ・チャンクに含まれるトラックデータの数の
情報に基づき、楽曲ファイル4のトラック・チャンクに
複数のトラックデータが含まれているか否かを判断す
る。そして、複数のトラックデータが含まれていると判
断した場合には、トラック・チャンクを、それぞれのト
ラックデータに分離する。この図3では、楽曲ファイル
4のトラック・チャンクを、m+1個のトラックデー
タ、即ち、トラック0データ11−0、トラック1デー
タ11−1、…、トラックmデータ11−mに分離する
例を示している。The file analysis unit 7a determines whether or not the track chunk of the music file 4 includes a plurality of track data, based on the information on the number of track data included in the header chunk of the music file 4. To do. When it is determined that a plurality of track data are included, the track chunk is separated into each track data. FIG. 3 shows an example in which the track chunk of the music file 4 is separated into m + 1 track data, that is, track 0 data 11-0, track 1 data 11-1, ..., Track m data 11-m. ing.
【0065】以下、図4のフローチャートを参照して、
このトラック分離部7(ファイル解析部7aを含む)に
よるトラック分離の処理の流れを更に詳細に説明する。Hereinafter, with reference to the flowchart of FIG.
The flow of the track separation processing by the track separation unit 7 (including the file analysis unit 7a) will be described in more detail.
【0066】即ち、このトラック分離の処理を開始する
と、先ず、トラック分離部7は、入力された楽曲ファイ
ル4のヘッダ・チャンクの情報を読み込み、当該ヘッダ
・チャンクの一部に記録されているトラック数(図3で
はm+1個)を変数Mに代入する(ステップS1)。続
いて、トラック分離部7は、入力された楽曲ファイル4
のトラック・チャンクから上記トラック数のトラック0
データ11−0、トラック1データ11−1、…、トラ
ックmデータ11−mを順次読み込み、各々を配列Trac
k[0]、Track[1]、…、Track[m]に順次格納し(ステップ
S2乃至S5)、こうして、トラック分離部7はトラッ
ク分離の処理を終了することになる。That is, when the track separation processing is started, first, the track separation unit 7 reads the information of the header chunk of the inputted music file 4 and the track recorded in a part of the header chunk. The number (m + 1 in FIG. 3) is substituted for the variable M (step S1). Then, the track separation unit 7 receives the input music file 4
Track chunks from the above track chunk
Data 11-0, track 1 data 11-1, ..., Track m data 11-m are sequentially read, and each is arranged in an array Trac.
The tracks are sequentially stored in k [0], Track [1], ..., Track [m] (steps S2 to S5), and the track separation unit 7 thus ends the track separation processing.
【0067】次に、チャネル分離及びチャネル番号符号
生成部8の詳細な構成は、図5に示される通りであり、
当該チャネル分離及びチャネル番号符号生成部8は、ト
ラック解析部8aとチャネル番号符号生成部8bとを有
している。Next, the detailed configuration of the channel separation and channel number code generator 8 is as shown in FIG.
The channel separation / channel number code generation unit 8 has a track analysis unit 8a and a channel number code generation unit 8b.
【0068】このトラック解析分離部8aは、先にトラ
ック分離部7によって分割されたトラック0データ11
−0、トラック1データ11−1、…、トラックmデー
タ11−mの各々について、複数のチャネルに係るトラ
ックデータが含まれているか否かを解析し、含まれてい
ると解析した場合には、それぞれを単一のチャネルから
なるトラックデータに分離する。この第1の実施の形態
では、トラック解析分離部8aは、入力されたトラック
xデータ11−xを、チャネル0のみのトラックxデー
タ12−0、チャネル1のみのトラックxデータ12−
1、…、チャネルnのみのトラックxデータ12−nに
分離する。このとき、チャネル番号符号生成部8bは、
各データのチャネル番号符号X13を生成する。このチ
ャネル番号符号X13は、請求項記載のチャネルへの帰
属を示す情報に相当する。The track analysis / separation unit 8a uses the track 0 data 11 previously divided by the track separation unit 7.
For each of the track data 0, track 1 data 11-1, ..., Track m data 11-m, it is analyzed whether or not track data related to a plurality of channels is included. , And separates each into track data consisting of a single channel. In the first embodiment, the track analysis / separation unit 8a converts the input track x data 11-x into track x data 12-0 only for channel 0 and track x data 12-only for channel 1.
, ..., Track x data 12-n of only channel n are separated. At this time, the channel number code generator 8b
The channel number code X13 of each data is generated. The channel number code X13 corresponds to information indicating attribution to the channel described in the claims.
【0069】ここで、SMFには1つのトラックデータ
に最大16チャネルを含めることができることは前述し
た通りであるが、SMFフォーマットでは、チャネルに
属するイベントとチャネルに属しないイベント(全体に
影響が及ぶイベント等)を記述することができるように
なっている。これに鑑みて、この第1の実施の形態で
は、チャネルに属しないイベントについては、チャネル
0として処理するようにしている。即ち、チャネルに属
しないイベントについては、チャネル0のみのトラック
xデータに含められる。但し、これには限定されない。Here, as described above, one track data can include a maximum of 16 channels in the SMF, but in the SMF format, an event belonging to a channel and an event not belonging to a channel (the whole is affected. Events etc.) can be described. In view of this, in the first embodiment, an event that does not belong to a channel is processed as channel 0. That is, an event that does not belong to a channel is included in the track x data of only channel 0. However, it is not limited to this.
【0070】また、第1の実施の形態では、イベントが
存在しないトラックの全てを符号化すると膨大なトラッ
ク数になるので、イベントが存在しないトラックは削除
し、1次符号には記録しないこととしている。In the first embodiment, if all the tracks in which no event exists are encoded, the number of tracks becomes huge. Therefore, the tracks in which no event exists are deleted and are not recorded in the primary code. There is.
【0071】以下、図6のフローチャートを参照して、
このチャネル分離及びチャネル番号符号生成部8(トラ
ック解析分離部8a、チャネル番号符号生成部8b)に
よるチャネル分離及びチャネル番号符号生成に係る処理
の流れを詳細に説明する。Hereinafter, with reference to the flowchart of FIG.
The flow of processing relating to channel separation and channel number code generation by the channel separation and channel number code generation unit 8 (track analysis separation unit 8a, channel number code generation unit 8b) will be described in detail.
【0072】即ち、この処理を開始すると、先ず、チャ
ネル分離及びチャネル番号符号生成部8は、トラック番
号に係る変数Iに0を代入した後(ステップS11)、
この変数Iと最大トラック数Mとを比較する(ステップ
S12)。このステップS12において、チャネル分離
及びチャネル番号符号生成部8は、I<Mの関係が成立
すると判断した場合には、このステップS12よりYe
s側に進み、続いてチャネル番号に係る変数Jに0を代
入し(ステップS13)、このチャネル番号に係る変数
Jと最大チャネル数MAX_CHとを比較する(ステップS1
4)。That is, when this processing is started, first, the channel separation / channel number code generation unit 8 substitutes 0 into the variable I relating to the track number (step S11),
This variable I is compared with the maximum track number M (step S12). In step S12, if the channel separation / channel number code generation unit 8 determines that the relationship of I <M is satisfied, the determination result in step S12 is Yes.
Proceeding to the s side, subsequently, 0 is assigned to the variable J relating to the channel number (step S13), and the variable J relating to this channel number and the maximum channel number MAX_CH are compared (step S1).
4).
【0073】続いて、ステップS14において、チャネ
ル分離及びチャネル番号符号生成部8は、J<MAX_CHの
関係が成立すると判断した場合には、Tick[J]を0とし
た後に(ステップS15)、チャネル番号に係る変数J
を1つインクリメントして(ステップS16)、上記ス
テップS14に戻る。ここで、上記Tick[J]は符号化中
であるトラックデータJの現在符号化位置における経過
時間を意味する。各トラックは、それぞれ独立した時間
軸を有していることから、このような配列Tick[J]に関
する処理が必要となる。チャネル分離及びチャネル番号
符号生成部8は、上記ステップS14乃至S16の処理
を、1つのトラックデータから分離される全ての単一チ
ャネルトラックデータについて実行する。Subsequently, in step S14, when the channel separation / channel number code generation section 8 determines that the relationship of J <MAX_CH is established, after setting Tick [J] to 0 (step S15), the channel is Variable J related to number
Is incremented by 1 (step S16), and the process returns to step S14. Here, Tick [J] means the elapsed time at the current coding position of the track data J being coded. Since each track has an independent time axis, such processing for the array Tick [J] is required. The channel separation / channel number code generation unit 8 executes the processes of steps S14 to S16 for all single channel track data separated from one track data.
【0074】例えば、図5との関係では、トラックxデ
ータ11−xには、チャネル0〜nに属するイベント群
が含まれていることを想定しているので、チャネル分離
及びチャネル番号符号生成部8は、上記ステップS14
乃至S16の処理を繰り返すことにより、Tick[0]、Tic
k[1]、…、Tick[n]を0とする。For example, in the relationship with FIG. 5, since it is assumed that the track x data 11-x includes the event group belonging to channels 0 to n, the channel separation and channel number code generation unit. 8 is the above step S14
By repeating the processes from S16 to S16, Tick [0], Tic
Let k [1], ..., Tick [n] be 0.
【0075】上記処理の後、ステップS14をNo側に
進むと、チャネル分離及びチャネル番号符号生成部8
は、変数MasterTickに0を代入し、変数Bchに−1を代
入する(ステップS17)。このBchは、処理中のイベ
ントの直前(1つ手前)のイベントのチャネル番号を示
す変数である。また、Bchに代入される−1は、処理中
のイベントが先頭につき直前のイベントが存在しないこ
とを示す値である。After the above processing, if step S14 is advanced to No, the channel separation and channel number code generator 8
Substitutes 0 for the variable MasterTick and -1 for the variable Bch (step S17). This Bch is a variable indicating the channel number of the event immediately before (one before) the event being processed. Further, -1 assigned to Bch is a value indicating that the event being processed is at the head and that the immediately preceding event does not exist.
【0076】続いて、Track[I]にストアされているトラ
ックIデータにイベントがまだ有るか否かを判断する
(ステップS18)。尚、上記MasterTickは、分離元と
なる複数チャネルに属するイベント群が格納されたトラ
ックデータの現在パース位置における経過時間に係る変
数を意味している。Then, it is determined whether or not there is an event in the track I data stored in Track [I] (step S18). The MasterTick means a variable relating to the elapsed time at the current purse position of the track data in which the event groups belonging to the plurality of separation source channels are stored.
【0077】そして、上記ステップS18において、チ
ャネル分離及びチャネル番号符号生成部8が、Track[I]
のトラックIデータにイベントがまだ有ると判断した場
合には、当該トラックIデータからΔタイムやイベント
を読み出し、変数DeltaにΔタイム、変数Eventにイベン
トを順次ストアし(ステップS20)、更に、変数Even
tにストアされているイベントに含まれているチャネル
番号を変数Chにストアする(ステップS21)。続い
て、チャネル分離及びチャネル番号符号生成部8は、変
数DeltaにストアされているΔタイムが0であるか、即
ち直前のイベントが同時刻に記録されているか否かを判
断する(ステップS22)。そして、このステップS2
2において、チャネル分離及びチャネル番号符号生成部
8は、Δタイムが0であると判断した場合には、変数Bc
hが−1であるか、即ち直前のイベントが存在するか否
かを判断することとしている(ステップS23)。Then, in step S18, the channel separation / channel number code generation unit 8 causes Track [I]
If it is determined that there is still an event in the track I data of, the Δtime and the event are read from the track I data, Δtime is stored in the variable Delta and the event is sequentially stored in the variable Event (step S20). Even
The channel number included in the event stored in t is stored in the variable Ch (step S21). Subsequently, the channel separation / channel number code generation unit 8 determines whether the Δtime stored in the variable Delta is 0, that is, whether the immediately preceding event is recorded at the same time (step S22). . And this step S2
In 2, when the channel separation and channel number code generation unit 8 determines that the Δtime is 0, the variable Bc
It is determined whether h is −1, that is, whether there is a previous event (step S23).
【0078】そして、ステップS23において、チャネ
ル分離及びチャネル番号符号生成部8は、変数Bchが−
1、即ち直前のイベントが存在しない(処理中のイベン
トが先頭にある)と判断した場合には、ステップS24
以降の処理に進む。一方、上記ステップS23におい
て、チャネル分離及びチャネル番号符号生成部8は、変
数Bchが−1でない、即ち処理中のイベントが先頭でな
いと判断した場合には、チャネル番号符号[I]の末尾に
変数Bchに代入されているチャネル番号を符号化して、
ステップS24以降の処理に進むことになる(ステップ
S27)。Then, in step S23, the channel separation and channel number code generator 8 sets the variable Bch to-.
1, that is, when it is determined that the immediately preceding event does not exist (the event being processed is at the head), step S24
Proceed to the subsequent processing. On the other hand, in step S23, when the channel separation / channel number code generation unit 8 determines that the variable Bch is not −1, that is, the event being processed is not the head, the variable is added to the end of the channel number code [I]. Encode the channel number assigned to Bch,
The process proceeds to step S24 and subsequent steps (step S27).
【0079】続いて、チャネル分離及びチャネル番号符
号生成部8は、図示の3つの処理を実行し(ステップS
24)、Track[I][Ch]の末尾に変数Cdeltaにストアされ
た値と変数Eventにストアされているイベントとを追記
し(ステップS25)、さらに処理中のイベントの直前
のイベントのチャネル番号符号に係る変数Bchに、現在
処理中のチャネル番号に係る変数Chに代入されているチ
ャネル番号を代入した後に(ステップS26)、上記ス
テップS18に戻ることになる。Subsequently, the channel separation / channel number code generation section 8 executes the three processes shown in the figure (step S
24), the value stored in the variable Cdelta and the event stored in the variable Event are added to the end of Track [I] [Ch] (step S25), and the channel number of the event immediately before the event being processed is added. After the channel number assigned to the variable Ch relating to the channel number currently being processed is assigned to the variable Bch relating to the sign (step S26), the process returns to step S18.
【0080】チャネル分離及びチャネル番号符号生成部
8は、以上の処理を、Track[I]のトラックIデータにイ
ベントが存在する限りにおいて繰り返す(ステップS1
8乃至S26)。そして、上記ステップS18におい
て、Track[I]にストアされているトラックIデータには
他のイベントがないと判断した場合には、トラック番号
に係る変数Iを1つインクリメントした後(ステップS
19)、上記ステップS12に戻り、上記同様の処理を
次のトラックデータについて実行する。The channel separation / channel number code generation section 8 repeats the above processing as long as an event exists in the track I data of Track [I] (step S1).
8 to S26). When it is determined in step S18 that there is no other event in the track I data stored in Track [I], the variable I related to the track number is incremented by 1 (step S18).
19) and returns to step S12 to execute the same processing as described above for the next track data.
【0081】そして、チャネル分離及びチャネル番号符
号生成部8は、先に示した図3との関係では、Track[m]
に格納されているトラックmデータ11−mまで上記し
た処理を繰り返すと、本処理を終了する。このような一
連の処理により、図5との関係では、チャネル分離及び
チャネル番号符号生成部8は、入力されたトラックxデ
ータ11−xを、チャネル0のみのトラックxデータ1
2−0、チャネル1のみのトラックxデータ12−1、
…、チャネルnのみのトラックxデータ12−nに分離
すると共に、各データのチャネル番号符号Xを生成す
る。Then, the channel separation and channel number code generation unit 8 has the relationship of Track [m] in the relationship with FIG.
When the above-described processing is repeated up to the track m data 11-m stored in, the present processing ends. With such a series of processing, in relation to FIG. 5, the channel separation / channel number code generation unit 8 converts the input track x data 11-x into track x data 1 of channel 0 only.
2-0, track x data 12-1 of channel 1 only,
.. is separated into the track x data 12-n of only the channel n, and the channel number code X of each data is generated.
【0082】尚、上記処理では、処理中のイベントのチ
ャネル番号ではなく、直前のイベントのチャネル番号を
符号化することで、同時刻のイベントグループの末尾の
チャネル番号符号を符号化しないように工夫をしてい
る。In the above process, the channel number of the immediately preceding event is encoded instead of the channel number of the event being processed so that the channel number code at the end of the event group at the same time is not encoded. Are doing
【0083】ここで、図7を参照して、上述したチャネ
ル分離及びチャネル番号符号生成部8(トラック解析分
離部8a、チャネル番号符号生成部8b)によるチャネ
ル分離及びチャネル番号符号生成に係る処理による効果
を説明する。Here, with reference to FIG. 7, the processing relating to channel separation and channel number code generation by the channel separation and channel number code generation section 8 (track analysis separation section 8a, channel number code generation section 8b) described above is performed. Explain the effect.
【0084】いま、あるトラックxのトラックxデータ
が、図7(a)のように構成されているものとする。こ
の例に挙げたトラックxデータには、図示のようにチャ
ネル4,0,2に係るトラックxデータが混在している
ことから、上述した処理により各チャネルのみのトラッ
クxデータに分離されることになるが、分離後の様子
は、図7(b)に示される。即ち、図7(b)の上段
は、単一チャネル0からなるトラックxデータ、中段は
単一チャネル2からなるトラックxデータ、下段は単一
チャネル4からなるトラックxデータをそれぞれ示して
いる。Now, it is assumed that the track x data of a certain track x is constructed as shown in FIG. 7 (a). Since the track x data related to channels 4, 0, and 2 are mixed in the track x data illustrated in this example, the track x data for each channel is separated by the above-described processing. However, the state after separation is shown in FIG. That is, the upper part of FIG. 7B shows track x data consisting of a single channel 0, the middle part shows track x data consisting of a single channel 2, and the lower part shows track x data consisting of a single channel 4.
【0085】これを元の情報に戻すべく復号化する場
合、図7(b)に示される情報のみであると、イベント
A乃至Cがどのような順番で並んでいたのか認識するこ
とができないことが判る。例えば、チャネル番号の順で
並べると、イベントB,C,Aの順番となり、トラック
分割前とは異なってしまうことになる。When decoding this to restore the original information, it is impossible to recognize the order in which the events A to C are arranged if only the information shown in FIG. 7B is used. I understand. For example, when the channels are arranged in the order of the channel numbers, the events B, C, and A are in the order, which is different from that before the track division.
【0086】かかる点に鑑みて、第1の実施の形態で
は、イベントA,B,Cの順番を復号時に認識可能とす
る為に、チャネル番号符号Xを採用している。このチャ
ネル番号符号Xは、同時刻に発生するイベントが複数あ
る場合に限り、図7(c)に示されるような態様で符号
化される。即ち、イベントの並びの順番で、イベントA
に関するチャネル番号、イベントBに関するチャネル番
号が符号化される。In view of this point, in the first embodiment, the channel number code X is adopted so that the order of the events A, B and C can be recognized at the time of decoding. The channel number code X is coded in the manner as shown in FIG. 7C only when there are a plurality of events that occur at the same time. That is, in the order of the sequence of events, event A
A channel number for event B and a channel number for event B are encoded.
【0087】例えば、図7(a)の例では、イベント
B、イベントCのΔタイムが0であることから、これら
イベントA,B,Cは同時刻であることが判るが、3つ
のイベントA,B,Cのうち、先頭から2つの順番が定
まれば、残り1つの順番は不要であることが分る。そこ
で、第1の実施の形態では、同時刻にn個のイベントが
存在する場合おいては、n−1個のチャネル番号符号を
符号化する。For example, in the example of FIG. 7A, since the Δtime of event B and event C is 0, it is known that these events A, B, and C have the same time, but three event A , B, and C, if the order of the two from the beginning is determined, it is understood that the order of the remaining one is unnecessary. Therefore, in the first embodiment, when there are n events at the same time, n-1 channel number codes are encoded.
【0088】即ち、この図7(c)の例では、イベント
Cに係るチャネル番号は符号化しない。より詳細には、
上記1次符号生成部2は、イベント間の相対時間の情報
(Δタイムの先頭バイト)に基づき、上記トラックデー
タに同時刻に係る複数のイベントが記録されていると判
断した場合には、上記同時刻のイベントグループの末尾
に記録されているイベントについては、チャネルへの帰
属を示す情報を保持する対象から除外する。かかる工夫
によっても、データ量の削減を実現している。That is, in the example of FIG. 7C, the channel number related to the event C is not encoded. More specifically,
When the primary code generation unit 2 determines that a plurality of events at the same time are recorded in the track data based on the information on the relative time between events (the first byte of Δtime), The event recorded at the end of the event group at the same time is excluded from the target holding the information indicating the attribution to the channel. The amount of data is also reduced by such a device.
【0089】尚、イベントが存在しないトラック全てを
符号化すると、膨大なトラック数になることから、第1
の実施の形態では、イベントが存在しないトラックは1
次符号生成時に削除し、1次符号5には含めないことと
している。It should be noted that if all the tracks in which no event exists are encoded, the number of tracks will be huge, so the first
In the embodiment of the present invention, the number of the tracks having no event is 1
It is deleted when the next code is generated and is not included in the primary code 5.
【0090】次に、チャネル番号以外の符号生成部9の
詳細な構成は図8に示される通りである。即ち、このチ
ャネル番号以外の符号生成部9は、図示の如くイベント
種別解析識別部21と、Δタイム符号生成部22、Note
On音程符号生成部23、Note Off音程符号生成部2
4、ベロシティ値符号生成部25、差分ベンド値符号生
成部26、差分エクスプレッション値符号生成部27、
イベント種別識別符号生成部28、その他情報符号生成
部29を有している。Next, the detailed construction of the code generator 9 other than the channel number is as shown in FIG. That is, the code generation unit 9 other than the channel number includes the event type analysis / identification unit 21, the Δ time code generation unit 22, and the Note
On pitch code generation unit 23, Note Off pitch code generation unit 2
4, velocity value code generation unit 25, differential bend value code generation unit 26, differential expression value code generation unit 27,
The event type identification code generation unit 28 and the other information code generation unit 29 are included.
【0091】以下、図9のフローチャートを参照して、
このチャネル番号以外の符号生成部9(各部21乃至2
9を含む)による処理の流れを詳細に説明する。Hereinafter, with reference to the flowchart of FIG.
Code generators 9 other than this channel number (each part 21 to 2
The flow of processing by (including 9) will be described in detail.
【0092】この処理を開始すると、先ずチャネル番号
以外の符号生成部9は、トラック番号に係る変数Iに0
をセットし(ステップS31)、この変数Iと最大トラ
ック数M(図3の例では、m+1)とを比較する(ステ
ップS32)。When this process is started, the code generator 9 other than the channel number first sets the variable I relating to the track number to 0.
Is set (step S31), and this variable I is compared with the maximum number of tracks M (m + 1 in the example of FIG. 3) (step S32).
【0093】そして、チャネル番号以外の符号生成部9
は、I<Mの関係が成立すると判断した場合には、チャ
ネル番号に係る変数Jに0を代入し(ステップS3
3)、当該チャネル番号に係る変数Jと予め定められた
最大チャネル数MAX_CHとを比較する(ステップS3
4)。このループの1巡目では、先にステップS334
においてJ=0とされているので、チャネル番号以外の
符号生成部9は、J<MAX_CHの関係を満たすものと判断
し、Track[0][0]に格納されているチャネル0のみのト
ラック0データについて符号化を行う(ステップS3
6)。Then, the code generator 9 other than the channel number
When it is determined that the relationship of I <M is established, 0 is substituted for the variable J related to the channel number (step S3
3) The variable J relating to the channel number is compared with a predetermined maximum number of channels MAX_CH (step S3).
4). In the first round of this loop, step S334 is performed first.
Since J = 0 in the above, the code generation unit 9 other than the channel number determines that the relationship of J <MAX_CH is satisfied, and the track 0 of only the channel 0 stored in Track [0] [0] is determined. The data is encoded (step S3)
6).
【0094】そして、チャネル番号以外の符号生成部9
は、チャネル番号に係る変数Jを1つインクリメントし
てJ=1とした後、上記ステップS34乃至36の処理
を繰り返す(ステップS37)。ここで、この第1の実
施の形態では、最大チャネル数MAX_CHは16と定められ
ているので、チャネル番号以外の符号生成部9は、上記
Track[0][0]、Track[0][1]、…、Track[0][15]に格納さ
れている、チャネル0のみのトラック0データ、チャネ
ル1のみのトラック0データ、…、チャネル15のみの
トラック0データについて順次符号化を行うことにな
る。Then, the code generation unit 9 other than the channel number
After incrementing the variable J related to the channel number by 1 to J = 1, repeats the processes of steps S34 to S36 (step S37). Here, in the first embodiment, since the maximum number of channels MAX_CH is set to 16, the code generation unit 9 other than the channel number is
, Track [0] [0], Track [0] [1], ..., Track [0] [15] stored in Track [0] [1] ,. Only the track 0 data of 15 will be sequentially encoded.
【0095】そして、チャネル番号以外の符号生成部9
は、このトラック0データに関する処理の後は、トラッ
ク番号に係る変数Iを1つインクリメントしてI=1と
した後(ステップS35)、Track[1][0]、Track[1]
[1]、…、Track[1][15]に格納されている、チャネル0
のみのトラック1データ、チャネル1のみのトラック1
データ、…、チャネル15のみのトラック1データにつ
いて順次符号化を行うこととしている(ステップS32
乃至S37)。こうして、チャネル番号以外の符号生成
部9は、Track[m][0]、Track[m][1]、…、Track[m][15]
に格納されている、チャネル0のみのトラックmデー
タ、チャネル1のみのトラックmデータ、…、チャネル
15のみのトラックmデータについてまで上記同様の処
理により符号化を行うと(ステップS32乃至S3
7)、この処理を終了する。Then, the code generator 9 other than the channel number
After the processing relating to the track 0 data, the variable I relating to the track number is incremented by 1 to set I = 1 (step S35), then Track [1] [0], Track [1]
[1], ..., Channel 0 stored in Track [1] [15]
Only track 1 data, channel 1 only track 1
Data, ..., Track 1 data of only channel 15 is to be sequentially encoded (step S32).
Through S37). Thus, the code generation unit 9 other than the channel number has Track [m] [0], Track [m] [1], ..., Track [m] [15].
When the track m data only for channel 0, the track m data only for channel 1, ..., The track m data only for channel 15 stored in the above are encoded by the same processing as described above (steps S32 to S3).
7) and this process ends.
【0096】ここで、図10のフローチャートを参照し
て、図9の上記ステップS36で実行されるTrack[I]
[J]の符号化の処理について更に詳細に説明する。Here, referring to the flowchart of FIG. 10, Track [I] executed in step S36 of FIG.
The encoding process of [J] will be described in more detail.
【0097】このTrack[I][J]の符号化の処理を開始す
ると、チャネル番号以外の符号生成部9は、Track[I]
[J]にストアされているJチャネルのみのトラックIデ
ータにイベントが存在するか否かを判断する(ステップ
S40)。このステップS40において、チャネル番号
以外の符号生成部9は、JチャネルのみのトラックIデ
ータにイベントが存在すると判断した場合には、Track
[I][J]のデータからΔタイムとイベントを読み込み、変
数DeltaにΔタイム、変数Eventにイベントをストアする
(ステップS41)。そして、チャネル番号以外の符号
生成部9は、このEventにストアされたイベントの種別
を判別する(ステップS42)。When the encoding process of Track [I] [J] is started, the code generator 9 for channels other than the channel number is in Track [I]
It is determined whether an event exists in the track I data of only the J channel stored in [J] (step S40). In step S40, if the code generation unit 9 other than the channel number determines that an event exists in the track I data of only the J channel, the Track
The Δtime and the event are read from the data of [I] [J], the Δtime is stored in the variable Delta, and the event is stored in the variable Event (step S41). Then, the code generation unit 9 other than the channel number determines the type of the event stored in this Event (step S42).
【0098】このイベント種別の判別は、Eventに含ま
れるデータ列をSMFのフォーマット(後述する第2の
実施の形態ではSMFの改良フォーマット)仕様に基づ
いて判別する。即ち、上記ステップS42において、チ
ャネル番号以外の符号生成部9は、変数Eventにストア
されているイベントが図79におけるタイプ1に該当す
るイベントであると判断した場合には、Δタイム符号
[I][J]の末尾にタイプ1で変数デルタにストアされてい
るΔタイムを符号化する(ステップS43)。これに対
して、上記ステップS42において、チャネル番号以外
の符号生成部9は、変数Eventにストアされているイベ
ントが図79におけるタイプ2に該当するイベントであ
ると判断した場合には、Δタイム符号[I][J]の末尾にタ
イプ2で変数デルタにストアされているデルタタイムを
符号化する(ステップS44)。The discrimination of the event type discriminates the data string contained in the Event based on the SMF format (the SMF improved format in the second embodiment described later) specification. That is, in step S42, when the code generator 9 other than the channel number determines that the event stored in the variable Event is the event corresponding to type 1 in FIG. 79, the Δtime code
At the end of [I] [J], the Δtime stored in the variable delta of type 1 is encoded (step S43). On the other hand, in step S42, when the code generation unit 9 other than the channel number determines that the event stored in the variable Event is the event corresponding to type 2 in FIG. 79, the Δ time code. The delta time stored in the variable delta of type 2 is encoded at the end of [I] [J] (step S44).
【0099】一方、上記ステップS42において、チャ
ネル番号以外の符号生成部9は、変数Eventにストアさ
れているイベントが図79におけるタイプ3に該当する
イベントであると判断した場合には、Δタイム符号[I]
[J]の末尾にタイプ3で変数デルタにストアされている
デルタタイムを符号化し(ステップS45)、更にイベ
ント種別識別符号[I][J]の末尾に変数Eventの種別に応
じた符号を符号化することとしている(ステップS4
6)。このように、イベント種別を識別できる独自のΔ
タイムを定義して符号化を行うことで、ステップS42
においてタイプ1とタイプ2のイベントであると判別し
た場合にはステップS46で記録するようなイベント種
別識別符号を省略することができるので、データ量の削
減につながる。On the other hand, in step S42, when the code generator 9 other than the channel number determines that the event stored in the variable Event is the event corresponding to type 3 in FIG. 79, the Δ time code. [I]
The delta time stored in the variable delta of type 3 is encoded at the end of [J] (step S45), and the code corresponding to the type of the variable Event is encoded at the end of the event type identification code [I] [J]. (Step S4)
6). In this way, a unique Δ that can identify the event type
By defining the time and performing encoding, step S42
When it is determined that the event is a type 1 or type 2 event, the event type identification code recorded in step S46 can be omitted, leading to a reduction in the amount of data.
【0100】こうして、詳細は後述するが、チャネル番
号以外の符号生成部9は、イベント種別毎の符号化を行
ない(ステップS47)、以上の処理(ステップS40
乃至S47)をTrack[I][J]にイベントが存在する限り
において繰り返し、全てのイベントについて上記処理を
行うと(ステップS40)、このTrack[I][J]の符号化
の処理を終了し、図9の上記ステップS36にリターン
する。Thus, although the details will be described later, the code generation unit 9 other than the channel number performs the coding for each event type (step S47), and the above processing (step S40).
Through S47) are repeated as long as there are events in Track [I] [J], and the above processing is performed for all events (step S40), the processing for encoding Track [I] [J] is completed. , And returns to step S36 in FIG.
【0101】ここで、上記1次符号生成部2は、各イベ
ント間の相対時間の情報、即ちΔタイムの最大公約数を
算出し、当該Δタイムを上記最大公約数で除算した数値
を符号化することとしている。即ち、上記1次符号生成
部2は、Δタイムを可変長符号にするときに、Δタイム
を上記最大公約数で除算した値を符号化する。これによ
り、楽曲全体で容量を削減することを実現している。Here, the primary code generation unit 2 calculates information on relative time between events, that is, the greatest common divisor of Δtime, and encodes the numerical value obtained by dividing the Δtime by the greatest common divisor. I am going to do it. That is, the primary code generation unit 2 encodes a value obtained by dividing the Δtime by the greatest common divisor when the Δtime is a variable length code. As a result, it is possible to reduce the capacity of the entire song.
【0102】次に、図11のフローチャートを参照し
て、図10の上記ステップS47で実行されるイベント
種別毎の符号化の処理について更に詳細に説明する。Next, the encoding process for each event type executed in step S47 of FIG. 10 will be described in more detail with reference to the flowchart of FIG.
【0103】さて、このイベント種別毎の符号化を開始
すると、チャネル番号以外の符号生成部9は、変数Even
tにストアされているイベントの種別を識別し(ステッ
プS50)、これ以降、チャネル番号以外の符号生成部
9は、識別したイベント毎に異なった符号化処理を行う
(ステップS51乃至S58)。Now, when the coding for each event type is started, the code generator 9 for channels other than the channel number uses the variable Even
The type of the event stored in t is identified (step S50), and thereafter, the code generation unit 9 other than the channel number performs different encoding processing for each identified event (steps S51 to S58).
【0104】即ち、チャネル番号以外の符号生成部9
は、イベントの種別がNote Onであると判断した場合に
は、Note On音程符号[I][J]の末尾に音程値を符号化し
(ステップS51)、ベロシティ値符号[I][J]の末尾に
ベロシティ値を符号化する(ステップS52)。一方、
チャネル番号以外の符号生成部9は、イベントの種別が
Note Offであると判断した場合には、Note Off音程符号
[I][J]の末尾に音程値を符号化する(ステップS5
3)。チャネル番号以外の符号生成部9は、イベントの
種別がピッチベンドであると判断した場合には、差分ベ
ンド値符号[I][J]の末尾に直前のベンド値からの差分ベ
ンド値を符号化する(ステップS54)。That is, the code generator 9 other than the channel number
If it is determined that the event type is Note On, the pitch value is encoded at the end of the Note On pitch code [I] [J] (step S51), and the velocity value code [I] [J] The velocity value is encoded at the end (step S52). on the other hand,
The code generation unit 9 other than the channel number
If it is determined to be Note Off, note off pitch code
The pitch value is encoded at the end of [I] [J] (step S5)
3). If the code generation unit 9 other than the channel number determines that the event type is pitch bend, it encodes the difference bend value from the immediately preceding bend value at the end of the difference bend value code [I] [J]. (Step S54).
【0105】また、チャネル番号以外の符号生成部9
は、イベントの種別がエクスプレッションであると判断
した場合には、差分エクスプレッション値符号[I][J]の
末尾に直前のエクスプレッション値からの差分エクスプ
レッション値を符号化する(ステップS55)。そし
て、チャネル番号以外の符号生成部9は、イベントの種
別がその他であると判断した場合には、続いて、イベン
トの種別識別符号が0x08(図21参照)以上であるか否
かを判断する(ステップS56)。The code generation unit 9 other than the channel number
If it is determined that the event type is expression, the code the difference expression value from the immediately preceding expression value at the end of the difference expression value code [I] [J] (step S55). When the code generation unit 9 other than the channel number determines that the event type is other, then it determines whether the event type identification code is 0x08 (see FIG. 21) or more. (Step S56).
【0106】そして、ステップS56において、チャネ
ル番号以外の符号生成部9は、当該符号が0x08(図21
参照)以上であると判断した場合には、その他情報符号
[I][J]の末尾に変数Eventにストアされているイベント
の3バイト目以降の情報を符号化する(ステップS5
7)。一方、上記ステップS56において、チャネル番
号以外の符号生成部9は、当該符号(16進数)が0x08
(図21参照)未満であると判断した場合には、その他
情報符号[I][J]の末尾に変数Eventにストアされている
イベントの2バイト目以降の情報を符号化する(ステッ
プS57)。Then, in step S56, the code generator 9 other than the channel number has the code 0x08 (see FIG. 21).
(Refer to) Other information code when it is judged as above
Information on the third and subsequent bytes of the event stored in the variable Event is encoded at the end of [I] [J] (step S5).
7). On the other hand, in step S56, the code generator 9 other than the channel number sets the code (hexadecimal number) to 0x08.
If it is determined that it is less than (see FIG. 21), the information after the second byte of the event stored in the variable Event is encoded at the end of the other information code [I] [J] (step S57). .
【0107】こうして、チャネル番号以外の符号生成部
9は、イベント種別毎の符号化の処理を終了する。尚、
この第1の実施の形態では、上述したイベント種別毎の
符号化処理では、Note Offのベロシティは一般には使用
されないことから、Note Offのベロシティは符号化せず
に切り捨て、データ量の削減を図っている。Thus, the code generation unit 9 other than the channel number ends the encoding process for each event type. still,
In the first embodiment, note off velocities are not generally used in the above-described encoding processing for each event type. Therefore, note off velocities are not encoded and are discarded, thereby reducing the amount of data. ing.
【0108】以上説明したように、チャネル番号以外の
符号生成部9(各生成部22乃至29を含む)は、上記
一連の処理により、Δタイム符号、Note On音程符号、N
oteOff音程符号、ベロシティ値符号、差分ベンド値符
号、差分エクスプレッション値符号、イベント種別識別
符号、その他情報符号を生成する。そして、これら全て
の符号は、図12に示されるように、符号配置部10に
入力される。そして、符号配置部10は、各符号種別毎
に配置し、1次符号5を生成する。As described above, the code generation unit 9 (including the generation units 22 to 29) other than the channel number performs the Δ time code, Note On pitch code, N
The oteOff pitch code, velocity value code, differential bend value code, differential expression value code, event type identification code, and other information code are generated. Then, all these codes are input to the code arrangement unit 10 as shown in FIG. Then, the code arrangement unit 10 arranges each code type and generates the primary code 5.
【0109】以下、図13乃至図23を参照して、第1
の実施の形態に係る演奏情報圧縮装置1の符号配置部1
0による符号配置の処理の流れを更に詳細に説明する。Hereinafter, referring to FIGS. 13 to 23, the first
Code placement section 1 of performance information compression apparatus 1 according to the embodiment of
The flow of the code arrangement processing by 0 will be described in more detail.
【0110】さて、本処理を開始すると、符号配置部1
0は、先ずヘッダ・チャンクの符号を配置する(ステッ
プS60)。以降、各符号の配置を実行する。Now, when this processing is started, the code arrangement unit 1
For 0, first, the code of the header chunk is arranged (step S60). After that, the arrangement of each code is executed.
【0111】先ず、符号配置部10は、Δタイム符号を
配置する(ステップS61)。First, the code arrangement unit 10 arranges the Δtime code (step S61).
【0112】即ち、図14のフローチャートに詳細に示
されるように、この符号配置部10は、先ずトラック番
号に係る変数Iに0を代入した後(ステップS70)、
このIがトラック数Mより小さいか否かを判断する(ス
テップS71)。That is, as shown in detail in the flowchart of FIG. 14, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S70),
It is determined whether this I is smaller than the number M of tracks (step S71).
【0113】1巡面では、上記ステップS70でI=0
と設定されているので、符号配置部10は、ステップS
71よりYes側に進む。そして、符号配置部10は、
次いでチャネル番号に係るJに0を代入する(ステップ
S72)。In the first round, I = 0 in step S70.
Is set, the code arrangement unit 10 determines that
From 71 proceed to the Yes side. Then, the code arrangement unit 10
Next, 0 is substituted for J related to the channel number (step S72).
【0114】続いて、符号配置部10は、このチャネル
番号に係る変数Jが最大チャネル数MAX_CHよりも小さい
か否かを判断する(ステップS73)。Subsequently, the code arrangement unit 10 determines whether or not the variable J relating to this channel number is smaller than the maximum channel number MAX_CH (step S73).
【0115】そして、1巡面では、上記ステップS72
でJ=0と設定されているので、符号配置部10は、ス
テップS73よりYes側に進む。そして、符号配置部
10は、Δタイム符号[0][0]を配置した後(ステップS
74)、チャネル番号に係る変数Jを1つインクリメン
トしてJ=1とする(ステップS75)。Then, in one round, the above step S72
Since J = 0 is set, the code arrangement unit 10 proceeds from Step S73 to the Yes side. Then, the code arrangement unit 10 arranges the Δtime code [0] [0] (step S
74), the variable J related to the channel number is incremented by 1 to set J = 1 (step S75).
【0116】この第1の実施の形態では、最大チャネル
数MAX_CHが16と設定されているので、符号配置部10
は、上記ステップS73乃至S75の処理を繰り返し、
Δタイム符号[0][1]、Δタイム符号[0][2]、…、Δタイ
ム符号[0][15]を順次配置することになる。そして、Δ
タイム符号[0][15]を配置した後、符号配置部10は、
ステップS73よりNo側に進み、トラック番号に係る
変数Iを1つインクリメントしてI=1とした後、再び
ステップS71乃至S75の処理を繰り返し、続いてΔ
タイム符号[1][1]、Δタイム符号[1][2]、…、Δタイム
符号[1][15]を順次配置することとしている。ところ
で、この例では、先に図3で示したようにトラック数に
係るMにm+1が設定されていることを想定している。In the first embodiment, the maximum channel number MAX_CH is set to 16, so the code arrangement unit 10
Repeats the processing of steps S73 to S75,
Δ time code [0] [1], Δ time code [0] [2], ..., Δ time code [0] [15] are sequentially arranged. And Δ
After arranging the time codes [0] [15], the code arrangement unit 10
The process proceeds from step S73 to No, the variable I relating to the track number is incremented by 1 to set I = 1, then the processes of steps S71 to S75 are repeated again, and then Δ
Time code [1] [1], Δ time code [1] [2], ..., Δ time code [1] [15] are sequentially arranged. By the way, in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG.
【0117】よって、符号配置部10は、上記したステ
ップS71乃至S75の処理を繰り返して、最終的にト
ラックmデータに係るΔタイム符号[m][1]、Δタイム符
号[m][2]、…、Δタイム符号[m][15]を順次配置する
と、このデルタタイム符号配置処理を終了し、図13の
ステップS61にリターンする。Therefore, the code arranging unit 10 repeats the processes of steps S71 to S75, and finally the Δ time code [m] [1] and Δ time code [m] [2] relating to the track m data. , .., .DELTA. Time codes [m] [15] are sequentially arranged, the delta time code arrangement processing is ended, and the process returns to step S61 in FIG.
【0118】続いて、符号配置部10は、Note On音程
符号を配置する(ステップS62)。Subsequently, the chord arranging section 10 lays out the Note On pitch code (step S62).
【0119】即ち、図15のフローチャートに詳細に示
されるように、この符号配置部10は、トラック番号に
係る変数Iに0を代入した後(ステップS80)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS81)。That is, as shown in detail in the flow chart of FIG. 15, the code arrangement unit 10 substitutes 0 for the variable I relating to the track number (step S80), and then this variable I is more than the number M of tracks. It is determined whether or not it is small (step S81).
【0120】1巡面では、上記ステップS80でI=0
と設定されているので、符号配置部10は、ステップS
81よりYes側に進む。そして、符号配置部10は、
チャネル番号に係る変数Jに0を代入する(ステップS
82)。In one round, I = 0 in step S80.
Is set, the code arrangement unit 10 determines that
From 81, go to the Yes side. Then, the code arrangement unit 10
Substitute 0 for the variable J related to the channel number (step S
82).
【0121】続いて、符号配置部10は、このチャネル
番号に係る変数Jが最大チャネル数MAX_CHよりも小さい
か否かを判断する(ステップS83)。Subsequently, the code arrangement unit 10 determines whether or not the variable J relating to this channel number is smaller than the maximum channel number MAX_CH (step S83).
【0122】そして、1巡面では、上記ステップS82
でJ=0と設定されているので、符号配置部10は、ス
テップS83よりYes側に進み、続いて、Note On音
程符号[0][0]を配置した後(ステップS84)、チャネ
ル番号に係る変数Jを1つインクリメントしてJ=1と
する(ステップS85)。この第1の実施の形態では、
最大チャネル数MAX_CHは16に設定されているので、符
号配置部10は、上記ステップS83乃至S85の処理
を繰り返し、Note On音程符号[0][1]、Note On音程符号
[0][2]、…、Note On音程符号[0][15]を順次配置する。Then, in one round, the above step S82
Since J = 0 is set in step S11, the code arrangement unit 10 proceeds to Yes from step S83, and after arranging Note On pitch code [0] [0] (step S84), sets the channel number. The variable J is incremented by 1 to set J = 1 (step S85). In this first embodiment,
Since the maximum number of channels MAX_CH is set to 16, the code arranging unit 10 repeats the processes of steps S83 to S85 to repeat Note On interval code [0] [1], Note On interval code.
[0] [2], ..., Note On Pitch code [0] [15] are sequentially arranged.
【0123】次いで、符号配置部10は、Note On音程
符号[0][15]を配置した後は、ステップS83よりNo
側に進むことになる。そして、符号配置部10は、トラ
ック番号に係るIを1つインクリメントしてI=1とし
た後に、上記ステップS81乃至S85の処理を繰り返
し、続いてNote On音程符号[1][1]、Note On音程符号
[1][2]、…、Note On音程符号[1][15]を順次配置するこ
ととしている。Next, the code arranging section 10 arranges the Note On pitch codes [0] [15], and then No from step S83.
I will proceed to the side. Then, the code arrangement unit 10 increments I related to the track number by 1 to set I = 1, and then repeats the processing of steps S81 to S85, and then Note On pitch code [1] [1], Note On pitch code
[1] [2], ..., Note On pitch code [1] [15] are arranged in sequence.
【0124】ところで、この例では、先に図3で示した
ようにトラック数Mにm+1が設定されている。よっ
て、符号配置部10は、上記ステップS71乃至S75
の処理を繰り返し、最終的にトラックmデータに係るNo
te On音程符号[m][1]、Note On音程符号[m][2]、…、No
te On音程符号[m][15]を順次配置すると、このNote On
音程符号配置処理を終了し、図13のステップS62に
リターンする。By the way, in this example, the number of tracks M is set to m + 1 as shown in FIG. Therefore, the code arrangement unit 10 performs the steps S71 to S75.
Is repeated, and finally No related to track m data
te On pitch code [m] [1], Note On pitch code [m] [2], ..., No
te On When the pitch code [m] [15] is arranged sequentially, this Note On
The pitch code arrangement process is terminated, and the process returns to step S62 in FIG.
【0125】続いて、符号配置部10は、Note Off音程
符号を配置する(ステップS63)。Subsequently, the code arranging section 10 arranges Note Off pitch codes (step S63).
【0126】即ち、図16のフローチャートに詳細に示
されるように、この符号配置部10は、先ずトラック番
号に係る変数Iに0を代入した後(ステップS90)、
この変数Iがトラック数Mよりも小さいか否かを判断す
る(ステップS91)。That is, as shown in detail in the flowchart of FIG. 16, the code arrangement section 10 first substitutes 0 into the variable I relating to the track number (step S90),
It is determined whether this variable I is smaller than the number M of tracks (step S91).
【0127】先ず、1巡面では、上記ステップS90で
I=0と設定されているので、符号配置部10は、ステ
ップS91よりYes側に進み、符号配置部10は、チ
ャネル番号に係る変数Jに0を代入する(ステップS9
2)。First, in one round, since I = 0 is set in step S90, the code arranging unit 10 proceeds to Yes from step S91, and the code arranging unit 10 sets the variable J related to the channel number. 0 is substituted for (step S9
2).
【0128】続いて、符号配置部10は、このチャネル
番号に係る変数Jが最大チャネル数MAX_CHよりも小さい
か否かを判断する(ステップS93)。Subsequently, the code arrangement unit 10 determines whether or not the variable J relating to this channel number is smaller than the maximum channel number MAX_CH (step S93).
【0129】そして、1巡面では、上記ステップS92
でJ=0と設定されているので、符号配置部10は、ス
テップS93よりYes側に進み、Note Off音程符号
[0][0]を配置した後(ステップS94)、チャネル番号
に係るJを1つインクリメントしてJ=1とする(ステ
ップS95)。ここで、この第1の実施の形態では、最
大チャネル数MAX_CHに16が予め設定されているので、
以降、符号配置部10は、ステップS93乃至S95の
処理を繰り返し、Note Off音程符号[0][1]、NoteOff音
程符号[0][2]、…、Note Off音程符号[0][15]を順次配
置する。Then, in one round, the above step S92
Since J = 0 is set in step S11, the code arrangement unit 10 proceeds from step S93 to the Yes side, and notes off the pitch code.
After arranging [0] and [0] (step S94), J related to the channel number is incremented by 1 to set J = 1 (step S95). Here, in the first embodiment, since 16 is set in advance in the maximum channel number MAX_CH,
After that, the code arrangement unit 10 repeats the processing of steps S93 to S95, and Note Off interval code [0] [1], Note Off interval code [0] [2], ..., Note Off interval code [0] [15]. Are sequentially arranged.
【0130】そして、符号配置部10は、Note Off音程
符号[0][15]を配置した後は、ステップS93よりNo
側に分岐し、トラック番号に係るIを1つインクリメン
トしてI=1とした後、再びステップS91乃至S95
の処理を繰り返し、Note Off音程符号[1][1]、Note Off
音程符号[1][2]、…、Note Off音程符号[1][15]を順次
配置することとしている。ところで、この例では、先に
図3で示したようにトラック数に係るMにm+1が設定
されていることを想定している。After arranging the Note Off pitch code [0] [15], the code arranging section 10 returns No from step S93.
After branching to the side and incrementing I for the track number by 1 to set I = 1, steps S91 to S95 are performed again.
Repeat the process of Note Off, pitch code [1] [1], Note Off
Pitch code [1] [2], ..., Note Off Pitch code [1] [15] are arranged sequentially. By the way, in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG.
【0131】よって、符号配置部10は、上記ステップ
S91乃至S95の処理を繰り返して、最終的にトラッ
クmデータに係るNote Off音程符号[m][1]、Note Off音
程符号[m][2]、…、Note Off音程符号[m][15]を順次配
置すると、このNote Off音程符号配置処理を終了し、図
13のステップS63にリターンする。Therefore, the code arrangement unit 10 repeats the processing of steps S91 to S95, and finally the Note Off interval code [m] [1], Note Off interval code [m] [2] relating to the track m data. ], ..., When Note Off pitch codes [m] [15] are sequentially arranged, this Note Off pitch code arrangement processing is terminated, and the process returns to step S63 in FIG.
【0132】続いて、符号配置部10は、ベロシティ値
符号を配置する(ステップS64)。Subsequently, the code arrangement unit 10 arranges velocity value codes (step S64).
【0133】即ち、図17のフローチャートに詳細に示
されるように、この符号配置部10は、先ずトラック番
号に係る変数Iに0を代入した後(ステップS10
0)、この変数Iがトラック数Mよりも小さいか否かを
判断する(ステップS101)。That is, as shown in detail in the flowchart of FIG. 17, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S10).
0), it is determined whether or not this variable I is smaller than the number M of tracks (step S101).
【0134】1巡面では、上記ステップS100でI=
0と設定されているので、符号配置部10は、ステップ
S101よりYes側に進み、次いでチャネル番号に係
るJに0を代入する(ステップS102)。続いて、符
号配置部10は、このチャネル番号に係る変数Jが最大
チャネル数MAX_CHよりも小さいか否かを判断する(ステ
ップS103)。1巡面では、上記ステップS102で
J=0と設定されているので、符号配置部10は、ステ
ップS103よりYes側に進み、ベロシティ値符号
[0][0]を配置した後(ステップS104)、チャネル番
号に係るJを1つインクリメントする(ステップS10
5)。この第1の実施の形態では、最大チャネル数に係
るMAX_CHに16が予め設定されているので、以降、符号
配置部10は、上記ステップS103乃至S105の処
理を繰り返し、ベロシティ値符号[0][1]、ベロシティ値
符号[0][2]、…、ベロシティ値符号[0][15]を順次配置
する。In one round, I = I in step S100.
Since it is set to 0, the code arrangement unit 10 proceeds to Yes from step S101, and then substitutes 0 for J related to the channel number (step S102). Subsequently, the code arrangement unit 10 determines whether the variable J related to this channel number is smaller than the maximum channel number MAX_CH (step S103). Since J = 0 is set in step S102 in the first round, the code arrangement unit 10 proceeds to Yes from step S103, and the velocity value code
After arranging [0] [0] (step S104), J related to the channel number is incremented by 1 (step S10).
5). In the first embodiment, since MAX_CH related to the maximum number of channels is set to 16 in advance, the code arrangement unit 10 thereafter repeats the processes of steps S103 to S105 to repeat the velocity value code [0] [ 1], velocity value code [0] [2], ..., Velocity value code [0] [15] are sequentially arranged.
【0135】そして、符号配置部10は、このベロシテ
ィ値符号[0][15]を配置した後は、上記ステップS10
3よりNo側に進み、トラック番号に係るIを1つイン
クリメントしてI=1とした後に、再びステップS10
1乃至S105の処理を繰り返し、続いてベロシティ値
符号[1][1]、ベロシティ値符号[1][2]、…、ベロシティ
値符号[1][15]を順次配置することとしている。この例
では、先に図3で示したようにトラック数に係るMにm
+1が設定されていることを想定している。After arranging the velocity value codes [0] [15], the code arranging unit 10 executes the above step S10.
From No. 3, the No side is incremented, I for the track number is incremented by 1 to set I = 1, and then step S10 is performed again.
The processing from 1 to S105 is repeated, and subsequently, the velocity value code [1] [1], the velocity value code [1] [2], ..., The velocity value code [1] [15] are sequentially arranged. In this example, as shown in FIG.
It is assumed that +1 is set.
【0136】よって、符号配置部10は、上記ステップ
S101乃至S105の処理を繰り返し、最終的にトラ
ックmデータに係るベロシティ値符号[m][1]、ベロシテ
ィ値符号[m][2]、…、ベロシティ値符号[m][15]を順次
配置すると、このベロシティ値符号配置処理を終了し、
図13のステップS64にリターンする。Therefore, the code arrangement unit 10 repeats the processing of steps S101 to S105, and finally the velocity value code [m] [1], the velocity value code [m] [2], ... , When the velocity value codes [m] [15] are sequentially arranged, this velocity value code arrangement processing is finished,
The process returns to step S64 in FIG.
【0137】続いて、符号配置部10は差分ベンド値符
号を配置する(ステップS65)。Subsequently, the code arrangement unit 10 arranges the differential bend value code (step S65).
【0138】即ち、図18のフローチャートに詳細に示
されるように、この符号配置部10は、先ずトラック番
号に係る変数Iに0を代入した後(ステップS11
0)、この変数Iがトラック数Mよりも小さいか否かを
判断する(ステップS111)。That is, as shown in detail in the flowchart of FIG. 18, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S11).
0), it is determined whether or not this variable I is smaller than the number M of tracks (step S111).
【0139】1巡面では、上記ステップS110でI=
0と設定されているので、符号配置部10は、ステップ
S111よりYesに進む。そして、符号配置部10
は、チャネル番号に係る変数Jに0を代入する(ステッ
プS112)。In one round, I = I in step S110.
Since it is set to 0, the code arrangement unit 10 proceeds from step S111 to Yes. Then, the code arrangement unit 10
Substitutes 0 for the variable J related to the channel number (step S112).
【0140】続いて、符号配置部10は、このチャネル
番号に係る変数Jが最大チャネル数MAX_CHよりも小さい
か否かを判断する(ステップS113)。Subsequently, the code arrangement unit 10 determines whether or not the variable J relating to this channel number is smaller than the maximum channel number MAX_CH (step S113).
【0141】1巡面では、上記ステップS112でJ=
0と設定されているので、符号配置部10は、ステップ
S113よりYesに進み、差分ベンド値符号[0][0]を
配置した後(ステップS114)、チャネル番号に係る
変数Jを1つインクリメントしてJ=1とする(ステッ
プS115)。この第1の実施の形態では、最大チャネ
ル数に係るMAX_CHに16が予め設定されているので、符
号配置部10は、ステップS113乃至S115の処理
を繰り返し、差分ベンド値符号[0][1]、差分ベンド値符
号[0][2]、…、差分ベンド値符号[0][15]を順次配置す
る。In the first round, J = J in step S112.
Since it is set to 0, the code arrangement unit 10 proceeds from step S113 to Yes, arranges the differential bend value code [0] [0] (step S114), and then increments the variable J related to the channel number by one. Then, J = 1 is set (step S115). In the first embodiment, since MAX_CH related to the maximum number of channels is set to 16 in advance, the code arrangement unit 10 repeats the processing of steps S113 to S115, and the differential bend value code [0] [1]. , The differential bend value code [0] [2], ..., The differential bend value code [0] [15] are sequentially arranged.
【0142】そして、符号配置部10は、差分ベンド値
符号[0][15]を配置した後は、ステップS113をNo
側に進み、トラック番号Iを1つインクリメントしてI
=1とした後、再びステップS111乃至S115の処
理を繰り返し、続いて差分ベンド値符号[1][1]、差分ベ
ンド値符号[1][2]、…、差分ベンド値符号[1][15]を順
次配置することとしている。ところで、この例では、先
に図3で示したようにトラック数Mにm+1が設定され
ていることを想定している。After arranging the differential bend value codes [0] [15], the code arranging section 10 returns No to step S113.
To the side and increment the track number I by 1
= 1, the processes of steps S111 to S115 are repeated again, and then the differential bend value code [1] [1], the differential bend value code [1] [2], ..., The differential bend value code [1] [ 15] will be arranged sequentially. By the way, in this example, it is assumed that the number of tracks M is set to m + 1 as shown in FIG.
【0143】よって、符号配置部10は、上記ステップ
S111乃至S115の処理を繰り返し、最終的にトラ
ックmデータに係る差分ベンド値符号[m][1]、差分ベン
ド値符号[m][2]、…、差分ベンド値符号[m][15]を順次
配置すると、この差分ベンド値符号配置処理を終了し、
図13のステップS65にリターンする。Therefore, the code arrangement unit 10 repeats the processing of steps S111 to S115, and finally the differential bend value code [m] [1] and the differential bend value code [m] [2] relating to the track m data. ,,, When the differential bend value codes [m] [15] are sequentially arranged, this differential bend value code arrangement processing is finished,
It returns to step S65 of FIG.
【0144】続いて、符号配置部10は、差分エクスプ
レッション値符号を配置する(ステップS66)。即
ち、図19のフローチャートに詳細に示されるように、
符号配置部10は、トラック番号に係る変数Iに0を代
入した後(ステップS120)、この変数Iがトラック
数Mよりも小さいか否かを判断する(ステップS12
1)。Next, the code arrangement unit 10 arranges the differential expression value code (step S66). That is, as shown in detail in the flowchart of FIG.
After substituting 0 for the variable I relating to the track number (step S120), the code arrangement unit 10 determines whether or not this variable I is smaller than the number M of tracks (step S12).
1).
【0145】1巡面では、上記ステップS120でI=
0と設定されているので、符号配置部10は、ステップ
S121よりYes側に進み、次いでチャネル番号に係
る変数Jに0を代入する(ステップS122)。続い
て、符号配置部10は、このチャネル番号に係る変数J
が最大チャネル数MAX_CHよりも小さいか否かを判断する
(ステップS123)。1巡面では、上記ステップS1
22でJ=0と設定されているので、符号配置部10
は、ステップS123よりYes側に進む。In the first round, I = I in step S120.
Since it is set to 0, the code arrangement unit 10 proceeds to Yes from step S121, and then substitutes 0 into the variable J related to the channel number (step S122). Subsequently, the code arrangement unit 10 determines the variable J related to this channel number.
Is smaller than the maximum number of channels MAX_CH (step S123). In one round, the above step S1
Since J = 0 is set in step 22, the code arrangement unit 10
Proceeds from Step S123 to the Yes side.
【0146】そして、符号配置部10は、差分エクスプ
レッション値符号[0][0]を配置した後(ステップS12
4)、チャネル番号に係るJを1つインクリメントして
J=1とする(ステップS125)。なお、第1の実施
の形態では、最大チャネル数に係るMAX_CHに16が予め
設定されているので、符号配置部10は、これ以降、ス
テップS123乃至S125の処理を繰り返し、差分エ
クスプレッション値符号[0][1]、差分エクスプレッショ
ン値符号[0][2]、…、差分エクスプレッション値符号
[0][15]を順次配置する。そして、符号配置部10は、
差分エクスプレッション値符号[0][15]を配置した後
は、ステップS123よりNo側に進み、トラック番号
に係る変数Iを1つインクリメントしてI=1とした
後、再びステップS121乃至S125の処理を繰り返
し、続いて差分エクスプレッション値符号[1][1]、差分
エクスプレッション値符号[1][2]、…、差分エクスプレ
ッション値符号[1][15]を順次配置する。ところで、こ
の例では、先に図3で示したようにトラック数Mにm+
1が設定されていることを想定している。Then, the code arrangement unit 10 arranges the differential expression value codes [0] [0] (step S12).
4), J related to the channel number is incremented by 1 to set J = 1 (step S125). In the first embodiment, since MAX_CH related to the maximum number of channels is set to 16 in advance, the code arrangement unit 10 repeats the processing of steps S123 to S125 thereafter, and the differential expression value code [0 ] [1], differential expression value code [0] [2], ..., differential expression value code
[0] [15] are sequentially arranged. Then, the code arrangement unit 10
After arranging the differential expression value code [0] [15], the process proceeds to No side from step S123, increments the variable I relating to the track number by 1 to set I = 1, and then performs the processing of steps S121 to S125 again. Then, the differential expression value code [1] [1], the differential expression value code [1] [2], ..., And the differential expression value code [1] [15] are sequentially arranged. By the way, in this example, as shown in FIG.
It is assumed that 1 is set.
【0147】よって、符号配置部10は、上記ステップ
S121乃至S125の処理を繰り返し、最終的にトラ
ックmデータに係る差分エクスプレッション値符号[m]
[1]、差分エクスプレッション値符号[m][2]、…、差分
エクスプレッション値符号[m][15]を順次配置すると、
差分エクスプレッション値符号配置処理を終了し、図1
3のステップS66にリターンする。Therefore, the code arranging section 10 repeats the processes of steps S121 to S125, and finally the differential expression value code [m] relating to the track m data.
When [1], the differential expression value code [m] [2], ..., The differential expression value code [m] [15] are sequentially arranged,
The differential expression value code arrangement processing is terminated, and
It returns to step S66 of 3.
【0148】続いて、符号配置部10は、イベント種別
識別符号を配置する(ステップS67)。即ち、図20
のフローチャートに詳細に示されるように、この符号配
置部10は、先ずトラック番号に係る変数Iに0を代入
した後(ステップS130)、変数Iがトラック数Mよ
りも小さいか否かを判断する(ステップS131)。Subsequently, the code arrangement unit 10 arranges the event type identification code (step S67). That is, FIG.
As shown in detail in the flowchart of 1., the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S130), and then determines whether the variable I is smaller than the number M of tracks. (Step S131).
【0149】1巡面では、上記ステップS130でI=
0と設定されているので、符号配置部10は、ステップ
S131よりYesに進み、チャネル番号に係る変数J
に0を代入する(ステップS132)。続いて、符号配
置部10は、このチャネル番号に係る変数Jが最大チャ
ネル数MAX_CHよりも小さいか否かを判断する(ステップ
S133)。先ず、1巡面では、上記ステップS132
でJ=0と設定されているので、符号配置部10は、ス
テップS133よりYes側に進み、イベント種別識別
符号[0][0]を配置した後(ステップS134)、チャネ
ル番号に係るJを1つインクリメントしてJ=1とする
(ステップS135)。In the first round, I =
Since the value is set to 0, the code arrangement unit 10 proceeds from step S131 to Yes and sets the variable J related to the channel number.
0 is substituted for (step S132). Subsequently, the code arrangement unit 10 determines whether or not the variable J related to this channel number is smaller than the maximum channel number MAX_CH (step S133). First, in one round, the above step S132
Since J = 0 is set in step S133, the code arrangement unit 10 proceeds to Yes from step S133, arranges the event type identification code [0] [0] (step S134), and then determines J related to the channel number. It is incremented by 1 to set J = 1 (step S135).
【0150】この第1の実施の形態では、最大チャネル
数に係るMAX_CHに16が予め設定されているので、符号
配置部10は、以降、ステップS133乃至S135の
処理を繰り返して、これ以降、イベント種別識別符号
[0][1]、イベント種別識別符号[0][2]、…、イベント種
別識別符号[0][15]を順次配置する。In the first embodiment, since MAX_CH related to the maximum number of channels is set to 16 in advance, the code arrangement unit 10 thereafter repeats the processing of steps S133 to S135, and thereafter, the event Type identification code
[0] [1], event type identification code [0] [2], ..., Event type identification code [0] [15] are sequentially arranged.
【0151】そして、符号配置部10は、イベント種別
識別符号[0][15]を配置した後、ステップS133より
No側に進み、トラック番号に係る変数Iを1つインク
リメントしてI=1とした後、再び上記ステップS13
1乃至S135の処理を繰り返し、続いてイベント種別
識別符号[1][1]、イベント種別識別符号[1][2]、…、イ
ベント種別識別符号[1][15]を順次配置する。ところ
で、この例では、先に図3で示したようにトラック数M
にm+1が設定されていることを想定している。After arranging the event type identification codes [0] [15], the code arranging unit 10 proceeds to the No side from step S133, increments the variable I relating to the track number by 1 and sets I = 1. And then again in step S13
The processes from 1 to S135 are repeated, and subsequently the event type identification code [1] [1], the event type identification code [1] [2], ..., The event type identification code [1] [15] are sequentially arranged. By the way, in this example, as shown in FIG.
Is assumed to be set to m + 1.
【0152】よって、符号配置部10は、上記ステップ
S131〜S135の処理を繰り返し、最終的にトラッ
クmデータに係るイベント種別識別符号[m][1]、イベン
ト種別識別符号[m][2]、…、イベント種別識別符号[m]
[15]を順次配置すると、イベント種別識別符号配置処理
を終了し、図13のステップS67にリターンする。Therefore, the code arrangement unit 10 repeats the processing of steps S131 to S135, and finally the event type identification code [m] [1] and the event type identification code [m] [2] relating to the track m data. ,…, Event type identification code [m]
When [15] is sequentially arranged, the event type identification code arrangement process is ended, and the process returns to step S67 in FIG.
【0153】尚、イベント種別識別符号は、図21に示
されるようなイベント種別識別符号符号化表により、そ
のイベント種別に応じて適宜割り当てられる。この例で
は0x08以上はコントロールチェンジに係るイベントに割
り当てている。The event type identification code is appropriately assigned according to the event type by the event type identification code encoding table as shown in FIG. In this example, 0x08 and above are assigned to events related to control changes.
【0154】また、符号化時にイベント種別出現頻度に
応じて動的に割り当てることも可能である。即ち、この
場合、上記1次符号生成部2は、出現頻度の高低により
異なるイベント種別識別符号を上記トラックデータに含
まれる各イベント毎に割り当て、当該イベント種別識別
符号をまとめて、独立した領域に配置する。このような
1次符号化時における工夫によっても、後続の2次符号
化時のハフマン符号化による圧縮効率は高められること
は勿論である。Also, it is possible to dynamically allocate in accordance with the event type appearance frequency at the time of encoding. That is, in this case, the primary code generation unit 2 allocates different event type identification codes for each event included in the track data depending on the frequency of appearance, and collects the event type identification codes into independent areas. Deploy. It is needless to say that the compression efficiency by the Huffman coding at the time of the subsequent secondary coding can be improved even by the device at the time of the primary coding.
【0155】続いて、符号配置部10は、チャネル番号
符号を配置する(ステップS68)。Subsequently, the code arrangement unit 10 arranges the channel number code (step S68).
【0156】即ち、図22のフローチャートに詳細に示
されるように、この符号配置部10は、先ずトラック番
号に係る変数Iに0を代入した後(ステップS14
0)、この変数Iがトラック数Mよりも小さいか否かを
判断する(ステップS141)。That is, as shown in detail in the flowchart of FIG. 22, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S14).
0), it is determined whether or not this variable I is smaller than the number M of tracks (step S141).
【0157】先ず、1巡面では、上記ステップS140
でI=0と設定されているので、符号配置部10は、ス
テップS141よりYes側に進み、チャネル番号符号
[0]を配置した後(ステップS142)、トラック番号
に係る変数Iを1つインクリメントしてI=1とする
(ステップS143)。そして、符号配置部10は、再
びステップS141乃至S143の処理を繰り返し、続
いてチャネル番号符号符号[1]を配置する。ところで、
この例では、先に図3で示したようにトラック数に係る
Mにm+1が設定されていることを想定している。よっ
て、この符号配置部10は、上記ステップS141乃至
S143の処理を繰り返し、最終的にトラックmデータ
に係るチャネル番号符号符号[m]を配置すると、チャネ
ル番号符号配置処理を終了し、図13のステップS68
にリターンする。First, in one round, the above step S140.
Since I = 0 is set in step S1, the code arrangement unit 10 advances from step S141 to the Yes side, and the channel number code
After arranging [0] (step S142), the variable I relating to the track number is incremented by 1 to set I = 1 (step S143). Then, the code arrangement unit 10 repeats the processing of steps S141 to S143 again, and subsequently arranges the channel number code code [1]. by the way,
In this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, when the code arrangement unit 10 repeats the processing of steps S141 to S143 and finally arranges the channel number code code [m] relating to the track m data, the channel number code arrangement processing is ended, and the code number arrangement processing of FIG. Step S68
Return to.
【0158】続いて、符号配置部10は、その他情報符
号を配置する(ステップS69)。Subsequently, the code arrangement unit 10 arranges other information codes (step S69).
【0159】即ち、図23のフローチャートに詳細に示
されるように、この符号配置部10は、先ずトラック番
号に係る変数Iに0を代入した後(ステップS15
0)、この変数Iがトラック数Mよりも小さいか否かを
判断する(ステップS151)。That is, as shown in detail in the flowchart of FIG. 23, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S15).
0), it is determined whether or not this variable I is smaller than the number M of tracks (step S151).
【0160】1巡面では、上記ステップS150でI=
0と設定されているので、符号配置部10は、ステップ
S151よりYes側に進み、次いでチャネル番号に係
るJに0を代入する(ステップS152)。続いて、符
号配置部10は、このチャネル番号に係る変数Jが最大
チャネル数MAX_CHよりも小さいか否かを判断する(ステ
ップS153)。そして、1巡面では、上記ステップS
152でJ=0と設定されているので、符号配置部10
は、ステップS153よりYesに進み、その他情報符
号[0][0]を配置した後に(ステップS154)、チャネ
ル番号に係るJを1つインクリメントしてJ=1とする
(ステップS155)。In the first round, I =
Since it is set to 0, the code arrangement unit 10 proceeds to Yes from step S151, and then substitutes 0 for J related to the channel number (step S152). Subsequently, the code arrangement unit 10 determines whether or not the variable J related to this channel number is smaller than the maximum channel number MAX_CH (step S153). And in one round, the above step S
Since J = 0 is set in 152, the code arrangement unit 10
Advances from step S153 to Yes, and after arranging the other information code [0] [0] (step S154), increments J related to the channel number by 1 to set J = 1 (step S155).
【0161】この第1の実施の形態では、最大チャネル
数に係るMAX_CHに16が予め設定されているので、符号
配置部10は、以降、ステップS153乃至S155の
処理を繰り返し、その他情報符号[0][1]、その他情報符
号[0][2]、…、その他情報符号[0][15]を順次配置す
る。そして、符号配置部10は、その他情報符号[0][1
5]を配置した後は、ステップS153よりNo側に進
み、トラック番号に係る変数Iを1つインクリメントし
てI=1とした後、再びステップS151乃至S155
の処理を繰り返し、その他情報符号[1][1]、その他情報
符号[1][2]、…、その他情報符号[1][15]を順次配置す
ることになる。In the first embodiment, since MAX_CH related to the maximum number of channels is set to 16 in advance, the code arrangement unit 10 repeats the processing of steps S153 to S155 thereafter, and the other information code [0 ] [1], other information code [0] [2], ..., Other information code [0] [15] are sequentially arranged. Then, the code arrangement unit 10 causes the other information code [0] [1
5], the process proceeds to the No side from step S153, the variable I relating to the track number is incremented by 1 to set I = 1, and then steps S151 to S155 are performed again.
By repeating the above process, the other information code [1] [1], the other information code [1] [2], ..., And the other information code [1] [15] are sequentially arranged.
【0162】ところで、この例では、先に図3で示した
ようにトラック数Mにm+1が設定されていることを想
定している。よって、符号配置部10は、上記ステップ
S151乃至S155の処理を繰り返し、最終的にトラ
ックmデータに係るその他情報符号[m][1]、その他情報
符号[m][2]、…、その他情報符号[m][15]を順次配置す
ると、その他情報符号配置処理を終了する。こうして、
符号配置部10は、符号配置に係る全ての処理を終了す
ることになる。By the way, in this example, it is assumed that the number of tracks M is set to m + 1 as shown in FIG. Therefore, the code arrangement unit 10 repeats the processes of steps S151 to S155, and finally, the other information code [m] [1], the other information code [m] [2], ..., Other information related to the track m data. When the codes [m] [15] are sequentially arranged, the other information code arrangement processing ends. Thus
The code arrangement unit 10 ends all the processing related to code arrangement.
【0163】以上の処理により、図24に示されるよう
な基本配置順序で各符号が配列され1次符号5が生成さ
れる。即ち、図24の例では、より詳細には、1次符号
5の基本配列順序は、Δタイム符号、Note On音程符
号、Note Off音程符号、ベロシティ値符号、差分ベンド
値符号、差分エクスプレッション値符号、イベント種別
識別符号、その他情報符号の順となっている。更に、各
符号の内部配列は、図25(a)に示されるように、ト
ラック0データ(チャネル番号順、以下同じ)、トラッ
ク1データ、…、トラックmデータに係る符号の順とな
っている。また、チャネル番号符号の内部配置順序は図
25(b)に示される通りである。By the above processing, the codes are arranged in the basic arrangement order as shown in FIG. 24, and the primary code 5 is generated. That is, in more detail, in the example of FIG. 24, the basic arrangement order of the primary code 5 is Δ time code, Note On interval code, Note Off interval code, velocity value code, differential bend value code, differential expression value code. , Event type identification code, and other information code. Further, the internal arrangement of each code is, as shown in FIG. 25A, the order of codes relating to track 0 data (in order of channel number, the same hereinafter), track 1 data, ..., Track m data. . The internal arrangement order of channel number codes is as shown in FIG.
【0164】この1次符号5自体、上述した処理により
無駄が省かれ、しかもSMFの音楽的な特性は全く損な
われることなく、かなり圧縮されたデータ量となる。The primary code 5 itself is wasteful by the above-mentioned processing, and the music characteristic of the SMF is not impaired at all, resulting in a considerably compressed data amount.
【0165】そして、このように配置された1次符号5
は、SMFに比して同一データパターンの出現頻度が高
く、同一データパターンが隣接され、更に同じ種別の符
号内で同じデータパターンが出現する確率が高くなるこ
とから、詳細は後述するような2次符号生成部3による
圧縮の効率も高まることになる。The primary code 5 arranged in this way
Has a higher appearance frequency of the same data pattern than the SMF, the same data pattern is adjacent, and the probability that the same data pattern appears in the code of the same type is high. The efficiency of compression by the next code generation unit 3 is also increased.
【0166】この1次符号5は2次符号生成部3に入力
され、2次符号生成部3は汎用圧縮方式による圧縮を行
う。この例では、汎用圧縮技術として、LZ符号化法や
ハフマン符号化法、ランレングス符号化法、更には、こ
れらを複合した方法(例えばLHAやZIP等)を採用
することができる。The primary code 5 is input to the secondary code generation section 3, and the secondary code generation section 3 performs compression by the general-purpose compression method. In this example, the LZ coding method, the Huffman coding method, the run length coding method, and a method combining these (for example, LHA, ZIP, etc.) can be adopted as the general-purpose compression technology.
【0167】より詳細には、例えばLZ符号化法を採用
する場合を想定すると、先ず、1次符号5の先頭から処
理を開始し、処理対象位置のデータパターンと先に処理
された所定範囲内のデータパターンとを比較する。そし
て、両者が一致する場合には処理対象位置から当該デー
タパターンまでの距離や一致したデータパターンの長さ
等の情報を2次符号6として出力する。これに対して、
両者が一致しない場合には、1次符号5を2次符号6と
してそのまま出力する。More specifically, assuming that the LZ encoding method is adopted, for example, first, the processing is started from the beginning of the primary code 5, and the data pattern of the processing target position and the previously processed predetermined range are set. Compare with the data pattern of. When the two match, the information such as the distance from the processing target position to the data pattern and the length of the matched data pattern is output as the secondary code 6. On the contrary,
If they do not match, the primary code 5 is output as it is as the secondary code 6.
【0168】このような一連の処理を1次符号5の先頭
から最後まで繰り返す。Such a series of processing is repeated from the beginning to the end of the primary code 5.
【0169】第1の実施の形態では、前述したように各
情報を情報種別毎かつチャネル毎に時間的に独立した領
域に配置した1次符号5を生成していることから、デー
タパターンが繰り返すことを利用して繰り返し分を圧縮
するLZ符号化法にも好適であり、圧縮率を低くするこ
とができる。さらに、例えばイベント種別識別符号につ
いては、イベント種別の出現頻度に応じて符号を動的に
割り当てることも可能としていることから、バイト毎の
符号の出現頻度によって重み付けして重みのある符号に
関して少ないビット数で記録できるように符号化するハ
フマン符号化法にも好適であって、圧縮率を低くするこ
とができる。また、この他、ベロシティ情報は、SMF
フォーマットの下では値の分布に偏りが出ることが多い
ことから、ベロシティ情報を独立して纏めて記録したこ
とで、ハフマン符号化法による符号化の効率に好影響を
及ぼしている。In the first embodiment, as described above, since the primary code 5 in which each information is arranged in the region which is temporally independent for each information type and each channel is generated, the data pattern is repeated. This is also suitable for the LZ encoding method in which the repeated portion is compressed by utilizing this fact, and the compression rate can be lowered. Further, for example, with regard to the event type identification code, since it is possible to dynamically assign the code according to the frequency of occurrence of the event type, weighting is performed according to the frequency of occurrence of the code for each byte, and a small number of bits are assigned to a code having a weight. It is also suitable for the Huffman coding method for coding so that it can be recorded as a number, and the compression rate can be lowered. In addition to this, the velocity information is SMF.
Since the distribution of values is often biased under the format, recording the velocity information independently and collectively has a favorable effect on the efficiency of encoding by the Huffman encoding method.
【0170】尚、第1の実施の形態では、LZ法及びハ
フマン符号化の複合方式(LHA)を採用することを想
定しているが、その場合には、上述した双方の効果が奏
されることは勿論である。In the first embodiment, it is assumed that the LZ method and the Huffman coding composite method (LHA) are adopted, but in that case, both effects described above are exhibited. Of course.
【0171】(演奏情報復号装置等)次に、図26乃至
図47を参照して、1次符号又は2次符号を復号する第
1の実施の形態に係る演奏情報復号装置、演奏情報復号
方法、演奏情報復号プログラムについて詳細に説明す
る。尚、演奏情報復号装置による作用は、第1の実施の
形態に係る演奏情報復号方法、演奏情報復号プログラム
に相当する。(Performance Information Decoding Device) Next, with reference to FIGS. 26 to 47, the performance information decoding device and the performance information decoding method according to the first embodiment for decoding the primary code or the secondary code. The performance information decoding program will be described in detail. The operation of the performance information decoding device corresponds to the performance information decoding method and the performance information decoding program according to the first embodiment.
【0172】先ず、図26には本発明の第1の実施の形
態に係る演奏情報復号装置の構成を示し説明する。この
図26に示されるように、この演奏情報復号装置50
は、2次符号復号部51と1次符号復号部52からな
る。尚、請求項記載の1次符号復号手段とはこの1次符号
復号部52等に相当し、請求項記載の2次符号復号手段
とはこの2次符号復号部51等に相当する。但し、これ
には限定されない。First, FIG. 26 shows the configuration of a performance information decoding apparatus according to the first embodiment of the present invention, and will be described. As shown in FIG. 26, this performance information decoding device 50
Is composed of a secondary code decoding unit 51 and a primary code decoding unit 52. The primary code decoding means described in the claims corresponds to the primary code decoding section 52 and the like, and the secondary code decoding means described in the claims corresponds to the secondary code decoding section 51 and the like. However, it is not limited to this.
【0173】この2次符号復号部51は、上述した汎用
圧縮方式により圧縮された上記2次符号6を1次符号5
に復号するものである。即ち、より詳細には、1次符号
復号部52は、2次符号復号部51で復号された1次符
号5を上述したフォーマットの楽曲ファイル4に復号す
るものである。即ち、2次符号復号部51により2次符
号6が1次符号5に復号されると、1次符号復号部52
により、上記1次符号5について、独立した領域に配置
されている種別毎の各情報を当該種別毎に抽出し、上記
チャネルへの帰属を示す情報を参照しつつ、抽出した各
情報を各チャネルに帰属する複数のトラックデータとし
て構成し、更にファイルのトラックデータとして構成す
ることで楽曲ファイル4に復号されることになる。The secondary code decoding unit 51 converts the secondary code 6 compressed by the general-purpose compression method described above into the primary code 5
To decrypt. That is, in more detail, the primary code decoding unit 52 decodes the primary code 5 decoded by the secondary code decoding unit 51 into the music file 4 in the above-mentioned format. That is, when the secondary code 6 is decoded into the primary code 5 by the secondary code decoder 51, the primary code decoder 52
Thus, with respect to the primary code 5, each type of information arranged in an independent region is extracted for each type, and the extracted information is referenced for each channel while referring to the information indicating attribution to the channel. By being configured as a plurality of track data belonging to the above, and further configured as the track data of the file, the music file 4 is decoded.
【0174】ここで、1次符号復号部51の詳細な構成
は、図27に示される。Here, the detailed structure of the primary code decoding unit 51 is shown in FIG.
【0175】即ち、この1次符号復号部51は、チャネ
ル別符号抽出部53、トラック復号部54、トラックマ
ージ及びチャネル番号符号復号部55、トラック配置部
56を有している。以下、これら各部53乃至56の構
成及び作用を詳述する。That is, the primary code decoding unit 51 has a channel code extraction unit 53, a track decoding unit 54, a track merge and channel number code decoding unit 55, and a track arrangement unit 56. Hereinafter, the configuration and operation of each of these units 53 to 56 will be described in detail.
【0176】先ず、チャネル別符号抽出部53の詳細な
構成は、図28に示される通りであり、チャネル別符号
抽出部53は、1次符号5に含まれる各符号をチャネル
別に抽出するものである。つまり、チャネル別符号抽出
部53は、1次符号5よりトラック0,チャネル0の符
号群、トラック0,チャネル1の符号群、…、トラック
m,チャネルnの符号群をチャネル別に順次抽出する。
尚、各符号群には、Δタイム符号、Note On音程符号、N
ote Off音程符号、ベロシティ値符号、差分ベンド値符
号、差分エクスプレッション値符号、イベント種別識別
符号、その他情報符号がそれぞれ含まれていることは勿
論である。First, the detailed configuration of the channel code extraction unit 53 is as shown in FIG. 28. The channel code extraction unit 53 extracts each code included in the primary code 5 for each channel. is there. That is, the code extraction unit 53 for each channel sequentially extracts the code group of track 0 and channel 0, the code group of track 0 and channel 1, ..., The code group of track m and channel n from the primary code 5 for each channel.
In addition, each code group includes Δ time code, Note On pitch code, N
Of course, the ote Off pitch code, velocity value code, differential bend value code, differential expression value code, event type identification code, and other information code are included.
【0177】以下、図29のフローチャートを参照し
て、このチャネル別符号抽出部53によるチャネル別符
号の抽出に係る処理の流れを詳細に説明する。Hereinafter, the flow of processing relating to the extraction of the code for each channel by the code for each channel extracting unit 53 will be described in detail with reference to the flowchart of FIG.
【0178】さて、本処理に入ると、先ずチャネル別符
号抽出部53はヘッダ・チャンクの符号を抽出する(ス
テップS160)。以降、各符号を抽出する。Now, when entering this processing, the channel-specific code extraction section 53 first extracts the code of the header chunk (step S160). After that, each code is extracted.
【0179】先ず、チャネル別符号抽出部53は、Δタ
イム符号を抽出する(ステップS161)。即ち、図3
0のフローチャートに詳細に示されるように、先ずチャ
ネル別符号抽出部53は、トラック番号に係る変数Iに
0を代入した後(ステップS170)、この変数Iがト
ラック数Mよりも小さいか否かを判断する(ステップS
171)。1巡面では、上記ステップS170でI=0
と設定されているので、チャネル別符号抽出部53は、
ステップS171よりYes側に進み、次いでチャネル
番号に係る変数Jに0を代入する(ステップS17
2)。First, the channel code extraction unit 53 extracts the Δ time code (step S161). That is, FIG.
As shown in detail in the flowchart of 0, the channel-specific code extraction unit 53 first substitutes 0 into the variable I related to the track number (step S170), and then determines whether this variable I is smaller than the number M of tracks. Is determined (step S
171). In one round, I = 0 in step S170.
Is set, the channel-specific code extraction unit 53
The process proceeds from Step S171 to Yes, and then 0 is substituted into the variable J related to the channel number (Step S17
2).
【0180】続いて、チャネル別符号抽出部53は、こ
のチャネル番号に係る変数Jが最大チャネル数MAX_CHよ
りも小さいか否かを判断する(ステップS173)。Subsequently, the channel code extraction unit 53 determines whether or not the variable J relating to this channel number is smaller than the maximum channel number MAX_CH (step S173).
【0181】1巡面では、上記ステップS172でJ=
0と設定されているので、チャネル別符号抽出部53
は、ステップS173よりYes側に進み、Δタイム符
号[0][0]を抽出した後(ステップS174)、チャネル
番号に係る変数Jを1つインクリメントしてJ=1とす
る(ステップS175)。この第1の実施の形態では、
最大チャネル数に係るMAX_CHに16が予め設定されてい
るので、以降、チャネル別符号抽出部53は、上記ステ
ップS173乃至S175の処理を繰り返し、Δタイム
符号[0][1]、Δタイム符号[0][2]、…、Δタイム符号
[0][15]を順次抽出する。In one round, J = J in step S172.
Since it is set to 0, the channel-specific code extraction unit 53
Advances from Step S173 to the Yes side, extracts the Δ time code [0] [0] (Step S174), and then increments the variable J related to the channel number by 1 to set J = 1 (Step S175). In this first embodiment,
Since 16 is set in advance in MAX_CH related to the maximum number of channels, the channel-by-channel code extraction unit 53 repeats the processing of steps S173 to S175, and then the Δ time code [0] [1], Δ time code [ 0] [2], ..., Δ time code
[0] [15] are sequentially extracted.
【0182】そして、チャネル別符号抽出部53は、Δ
タイム符号[0][15]を抽出した後、ステップS173よ
りNo側に進み、トラック番号に係る変数Iを1つイン
クリメントした後、上記ステップS171乃至S175
の処理を繰り返し、Δタイム符号[1][1]、Δタイム符号
[1][2]、…、Δタイム符号[1][15]を順次抽出する。Then, the channel code extraction unit 53
After the time code [0] [15] is extracted, the process proceeds to the No side from step S173, the variable I relating to the track number is incremented by 1, and then the above steps S171 to S175.
Repeat the process of Δ time code [1] [1], Δ time code
[1] [2], ..., ΔTime codes [1] [15] are sequentially extracted.
【0183】ところで、この第1の実施の形態では、先
に図3で示したようにトラック数Mにm+1が設定され
ていることを想定している。By the way, in the first embodiment, it is assumed that the number of tracks M is set to m + 1 as shown in FIG.
【0184】よって、チャネル別符号抽出部53は、上
記ステップS171乃至S175の処理を繰り返し、最
終的にトラックmデータに係るΔタイム符号[m][1]、Δ
タイム符号[m][2]、…、Δタイム符号[m][15]を順次抽
出すると、このΔタイム符号抽出処理を終了し、図29
のステップS161にリターンする。Therefore, the channel code extraction unit 53 repeats the processing of steps S171 to S175, and finally the Δ time codes [m] [1], Δ relating to the track m data.
When the time code [m] [2], ..., And the Δ time code [m] [15] are sequentially extracted, this Δ time code extraction processing is terminated, and
And returns to step S161.
【0185】続いて、チャネル別符号抽出部53はNote
On音程符号を抽出する(ステップS162)。即ち、
図31のフローチャートに詳細に示されるように、チャ
ネル別符号抽出部53は、先ずトラック番号に係る変数
Iに0を代入した後(ステップS180)、この変数I
がトラック数Mよりも小さいか否かを判断する(ステッ
プS181)。先ず、1巡面では、上記ステップS18
0でI=0と設定されているので、チャネル別符号抽出
部53は、ステップS181よりYes側に進み、次い
でチャネル番号に係るJに0を代入する(ステップS1
82)。Next, the channel-specific code extraction section 53
The On pitch code is extracted (step S162). That is,
As shown in detail in the flow chart of FIG. 31, the channel-specific code extraction unit 53 first substitutes 0 into the variable I relating to the track number (step S180), and then the variable I
Is smaller than the number M of tracks (step S181). First, in one round, the above step S18
Since 0 is set as I = 0, the channel code extraction unit 53 proceeds to Yes from step S181, and then substitutes 0 for J related to the channel number (step S1).
82).
【0186】続いて、チャネル別符号抽出部53は、こ
のチャネル番号に係る変数Jが最大チャネル数MAX_CHよ
りも小さいか否かを判断する(ステップS183)。Subsequently, the channel code extraction unit 53 determines whether or not the variable J relating to this channel number is smaller than the maximum channel number MAX_CH (step S183).
【0187】1巡面では、上記ステップS182でJ=
0と設定されているので、チャネル別符号抽出部53
は、ステップS183よりYes側に進み、Note On音
程符号[0][0]を抽出した後(ステップS184)、チャ
ネル番号に係る変数Jを1つインクリメントしてJ=1
とすることとしている(ステップS185)。[0187] In the first round, J = J in step S182.
Since it is set to 0, the channel-specific code extraction unit 53
Proceeds from Step S183 to the Yes side, and after extracting Note On pitch code [0] [0] (Step S184), the variable J related to the channel number is incremented by 1 and J = 1.
(Step S185).
【0188】この第1の実施の形態では、最大チャネル
数MAX_CHに16が予め設定されているので、以降、チャ
ネル別符号抽出部53は、ステップS183乃至S18
5の処理を繰り返し、Note On音程符号[0][1]、Note On
音程符号[0][2]、…、Note On音程符号[0][15]を順次抽
出する。チャネル別符号抽出部53は、このNote On音
程符号[0][15]を抽出した後は、ステップS183より
No側に進み、トラック番号に係る変数Iを1つインク
リメントしてI=1とした後、再びステップS181乃
至S185の処理を繰り返し、続いてNote On音程符号
[1][1]、Note On音程符号[1][2]、…、Note On音程符号
[1][15]を順次抽出する。In the first embodiment, the maximum number of channels MAX_CH is set to 16 in advance, so that the channel-by-channel code extraction unit 53 will subsequently perform steps S183 to S18.
Repeat the process of 5 and repeat Note On pitch code [0] [1], Note On
Pitch code [0] [2], ..., Note On Pitch code [0] [15] are sequentially extracted. After extracting the Note On pitch code [0] [15], the channel code extraction unit 53 proceeds to No side from step S183, increments the variable I related to the track number by 1 and sets I = 1. After that, the processing of steps S181 to S185 is repeated again, and then the Note On pitch code
[1] [1], Note On pitch code [1] [2], ..., Note On pitch code
[1] [15] are sequentially extracted.
【0189】ところで、この例では、先に図3で示した
ようにトラック数に係るMにm+1が設定されているこ
とを想定している。よって、このチャネル別符号抽出部
53は、上記ステップS181乃至S185の処理を繰
り返し、最終的にトラックmデータに係るNote On音程
符号[m][1]、Note On音程符号[m][2]、…、Note On音程
符号[m][15]を順次抽出すると、このNote On音程符号抽
出処理を終了し、図29のステップS162にリターン
する。By the way, in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 53 repeats the processing of steps S181 to S185, and finally the Note On pitch code [m] [1] and Note On pitch code [m] [2] related to the track m data. , ..., Note On pitch codes [m] [15] are sequentially extracted, the Note On pitch code extraction processing is terminated, and the process returns to step S162 in FIG.
【0190】続いて、チャネル別符号抽出部53は、No
te Off音程符号を抽出する(ステップS163)。即
ち、図32のフローチャートに詳細に示されるように、
チャネル別符号抽出部53は、先ずトラック番号に係る
変数Iに0を代入した後(ステップS190)、この変
数Iがトラック数Mよりも小さいか否かを判断する(ス
テップS191)。1巡面では、ステップS190でI
=0と設定されているので、チャネル別符号抽出部53
は、ステップS191よりYes側に進み、次いでチャ
ネル番号に係る変数Jに0を代入する(ステップS19
2)。Next, the channel-specific code extraction section 53
The te Off pitch code is extracted (step S163). That is, as shown in detail in the flowchart of FIG.
The channel-specific code extraction unit 53 first substitutes 0 into the variable I relating to the track number (step S190), and then determines whether this variable I is smaller than the number M of tracks (step S191). On the first round, in step S190, I
= 0, the channel-specific code extraction unit 53
Proceeds from Step S191 to the Yes side, and then assigns 0 to the variable J related to the channel number (Step S19).
2).
【0191】続いて、チャネル別符号抽出部53は、こ
のチャネル番号に係る変数Jが最大チャネル数MAX_CHよ
りも小さいか否かを判断する(ステップS193)。Subsequently, the channel code extraction unit 53 determines whether or not the variable J relating to this channel number is smaller than the maximum channel number MAX_CH (step S193).
【0192】1巡面では、上記ステップS192でJ=
0と設定されているので、チャネル別符号抽出部53
は、ステップS193よりYes側に進み、Note Off音
程符号[0][0]を抽出した後(ステップS194)、チャ
ネル番号に係る変数Jを1つインクリメントしてJ=1
とすることになる(ステップS195)。In the first round, J = J in step S192.
Since it is set to 0, the channel-specific code extraction unit 53
Proceeds from Step S193 to Yes, extracts Note Off interval code [0] [0] (Step S194), increments the variable J related to the channel number by 1 and J = 1.
(Step S195).
【0193】この第1の実施の形態では、最大チャネル
数に係るMAX_CHに16が予め設定されているので、チャ
ネル別符号抽出部53は、これ以降、上記ステップS1
93乃至S195の処理を繰り返し、Note Off音程符号
[0][1]、Note Off音程符号[0][2]、…、Note Off音程符
号[0][15]を順次抽出する。In this first embodiment, since MAX_CH related to the maximum number of channels is set to 16 in advance, the channel-specific code extraction unit 53 will thereafter perform the above step S1.
Repeat the processing from 93 to S195 to repeat Note Off pitch code
[0] [1], Note Off pitch code [0] [2], ..., Note Off pitch code [0] [15] are sequentially extracted.
【0194】そして、チャネル別符号抽出部53は、こ
のNote Off音程符号[0][15]を抽出した後は、ステップ
S193よりNo側に進み、トラック番号に係る変数I
を1つインクリメントしてI=1とした後、再びステッ
プS191乃至S195の処理を繰り返し、続いてNote
Off音程符号[1][1]、Note Off音程符号[1][2]、…、No
te Off音程符号[1][15]を順次抽出する。After extracting the Note Off pitch code [0] [15], the channel-specific code extraction unit 53 proceeds to No side from step S193 and sets the variable I related to the track number.
Is incremented by 1 to set I = 1, and then the processes of steps S191 to S195 are repeated, and then Note
Off pitch code [1] [1], Note Off pitch code [1] [2], ..., No
te Off Pitch code [1] [15] is sequentially extracted.
【0195】ところで、この第1の実施の形態では、先
に図3で示したようにトラック数に係るMにm+1が設
定されていることを想定している。よって、このチャネ
ル別符号抽出部53は、上記ステップS191乃至S1
95の処理を繰り返し、最終的にトラックmデータに係
るNote Off音程符号[m][1]、Note Off音程符号[m][2]、
…、Note Off音程符号[m][15]を順次抽出すると、このN
ote Off音程符号抽出処理を終了し、図29のステップ
S163にリターンする。By the way, in the first embodiment, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 53 uses the steps S191 to S1.
The processing of 95 is repeated, and finally the Note Off pitch code [m] [1], Note Off pitch code [m] [2], which relates to the track m data,
…, Note Off interval codes [m] [15] are extracted sequentially, and this N
The ote Off pitch code extraction process is terminated, and the process returns to step S163 in FIG.
【0196】続いて、チャネル別符号抽出部53は、ベ
ロシティ値符号を抽出する(ステップS164)。即
ち、図33のフローチャートに詳細に示されるように、
チャネル別符号抽出部53は、先ずトラック番号に係る
変数Iに0を代入した後(ステップS200)、この変
数Iがトラック数Mよりも小さいか否かを判断する(ス
テップS201)。先ず、1巡面では、上記ステップS
200でI=0と設定されているので、チャネル別符号
抽出部53は、ステップS201よりYesに進み、次
いでチャネル番号に係る変数Jに0を代入する(ステッ
プS202)。Then, the channel code extraction unit 53 extracts the velocity value code (step S164). That is, as shown in detail in the flowchart of FIG.
The channel-specific code extraction unit 53 first substitutes 0 into the variable I relating to the track number (step S200), and then determines whether this variable I is smaller than the number M of tracks (step S201). First, in one round, the above step S
Since I = 0 is set in 200, the channel-specific code extraction unit 53 proceeds to Yes from step S201, and then substitutes 0 into the variable J related to the channel number (step S202).
【0197】続いて、チャネル別符号抽出部53は、こ
のチャネル番号に係る変数Jが最大チャネル数MAX_CHよ
りも小さいか否かを判断する(ステップS203)。Subsequently, the channel code extraction unit 53 determines whether or not the variable J relating to this channel number is smaller than the maximum channel number MAX_CH (step S203).
【0198】そして、1巡面では、ステップS202で
J=0と設定されているので、チャネル別符号抽出部5
3は、ステップS203よりYes側に進み、ベロシテ
ィ値符号[0][0]を抽出した後(ステップS204)、チ
ャネル番号に係るJを1つインクリメントしてJ=1と
することになる(ステップS205)。In the first round, since J = 0 is set in step S202, the code extraction unit for each channel 5
3 proceeds to Yes from step S203, extracts velocity value code [0] [0] (step S204), and increments J associated with the channel number by 1 to set J = 1 (step S204). S205).
【0199】この第1の実施の形態では、最大チャネル
数に係るMAX_CHに16が予め設定されているので、チャ
ネル別符号抽出部53は、これ以降、上記ステップS2
03乃至S205の処理を繰り返し、ベロシティ値符号
[0][1]、ベロシティ値符号[0][2]、…、ベロシティ値符
号[0][15]を順次抽出する。In the first embodiment, since MAX_CH related to the maximum number of channels is set to 16 in advance, the channel-by-channel code extraction unit 53 will thereafter perform the above step S2.
The processing of 03 to S205 is repeated, and the velocity value sign
[0] [1], velocity value code [0] [2], ..., Velocity value code [0] [15] are sequentially extracted.
【0200】そして、チャネル別符号抽出部53は、ベ
ロシティ値符号[0][15]を抽出した後は、ステップS2
03よりNo側に進み、トラック番号に係る変数Iを1
つインクリメントしてI=1とした後、再びステップS
201乃至S205の処理を繰り返し、続いてベロシテ
ィ値符号[1][1]、ベロシティ値符号[1][2]、…、ベロシ
ティ値符号[1][15]を順次抽出することになる。After extracting the velocity value codes [0] [15], the channel-specific code extraction unit 53 executes step S2.
From 03, go to the No side and set the variable I related to the track number to 1
Is incremented by one to set I = 1, and then step S is performed again.
The processing from 201 to S205 is repeated, and subsequently, the velocity value code [1] [1], the velocity value code [1] [2], ..., The velocity value code [1] [15] are sequentially extracted.
【0201】ところで、この例では、先に図3で示した
ようにトラック数に係るMにm+1が設定されているこ
とを想定している。よって、このチャネル別符号抽出部
53は、上記ステップS201乃至S205の処理を繰
り返し、最終的にトラックmデータに係るベロシティ値
符号[m][1]、ベロシティ値符号[m][2]、…、ベロシティ
値符号[m][15]を順次抽出すると、このベロシティ値符
号抽出処理を終了し、図29のステップS164にリタ
ーンする。By the way, in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 53 repeats the processing of steps S201 to S205, and finally the velocity value code [m] [1], the velocity value code [m] [2], ... , The velocity value code [m] [15] is sequentially extracted, the velocity value code extraction processing is ended, and the process returns to step S164 in FIG.
【0202】そして、続いて差分ベンド値符号の抽出が
なされる(ステップS165)。Subsequently, the differential bend value code is extracted (step S165).
【0203】即ち、図34のフローチャートに詳細に示
されるように、チャネル別符号抽出部53は、トラック
番号に係る変数Iに0を代入した後(ステップS21
0)、この変数Iがトラック数Mよりも小さいか否かを
判断する(ステップS211)。That is, as shown in detail in the flowchart of FIG. 34, the channel code extraction unit 53 substitutes 0 into the variable I relating to the track number (step S21).
0), it is determined whether or not this variable I is smaller than the number M of tracks (step S211).
【0204】1巡面では、上記ステップS210でI=
0と設定されているので、チャネル別符号抽出部53
は、ステップS211よりYes側に進み、次いでチャ
ネル番号に係るJに0を代入する(ステップS21
2)。続いて、チャネル別符号抽出部53は、このチャ
ネル番号に係る変数Jが最大チャネル数MAX_CHよりも小
さいか否かを判断する(ステップS213)。1巡面で
は、上記ステップS212でJ=0と設定されているの
で、チャネル別符号抽出部53はステップS213より
Yes側に進み、差分ベンド値符号[0][0]を抽出した後
(ステップS214)、チャネル番号に係る変数Jを1
つインクリメントする(ステップS215)。In the first round, I = I in step S210.
Since it is set to 0, the channel-specific code extraction unit 53
Proceeds from Step S211 to the Yes side, and then substitutes 0 for J related to the channel number (Step S21
2). Subsequently, the channel code extraction unit 53 determines whether or not the variable J related to this channel number is smaller than the maximum channel number MAX_CH (step S213). In the first round, since J = 0 is set in step S212, the channel-specific code extraction unit 53 proceeds from step S213 to the Yes side, and after extracting the differential bend value code [0] [0] (step S214), the variable J related to the channel number is set to 1
Is incremented by one (step S215).
【0205】この第1の実施の形態では、最大チャネル
数に係るMAX_CHに16が予め設定されているので、チャ
ネル別符号抽出部53は、これ以降、上記ステップS2
13乃至S215の処理を繰り返して、差分ベンド値符
号[0][1]、差分ベンド値符号[0][2]、…、差分ベンド値
符号[0][15]を順次抽出する。In this first embodiment, since MAX_CH related to the maximum number of channels is set to 16 in advance, the channel-specific code extraction unit 53 will thereafter perform the above-mentioned step S2.
By repeating the processing from 13 to S215, the differential bend value code [0] [1], the differential bend value code [0] [2], ..., The differential bend value code [0] [15] are sequentially extracted.
【0206】そして、チャネル別符号抽出部53は、差
分ベンド値符号[0][15]を抽出した後は、ステップS2
13よりNo側に進み、トラック番号に係る変数Iを1
つインクリメントしてI=1とした後、再びステップS
211乃至S215の処理を繰り返し、続いて差分ベン
ド値符号[1][1]、差分ベンド値符号[1][2]、…、差分ベ
ンド値符号[1][15]を順次抽出することになる。After extracting the differential bend value codes [0] [15], the channel-specific code extraction unit 53 executes step S2.
From No. 13, proceed to the No side and set the variable I related to the track number to 1
Is incremented by one to set I = 1, and then step S is performed again.
The processing from 211 to S215 is repeated, and subsequently the differential bend value code [1] [1], the differential bend value code [1] [2], ..., The differential bend value code [1] [15] are sequentially extracted. Become.
【0207】ところで、この例では、先に図3で示した
ようにトラック数に係るMにm+1が設定されているこ
とを想定している。よって、このチャネル別符号抽出部
53は、上記ステップS211乃至S215の処理を繰
り返し、最終的にトラックmデータに係る差分ベンド値
符号[m][1]、差分ベンド値符号[m][2]、…、差分ベンド
値符号[m][15]を順次抽出すると、この差分ベンド値符
号抽出処理を終了し、図29のステップS165にリタ
ーンする。By the way, in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 53 repeats the processes of steps S211 to S215, and finally the differential bend value code [m] [1] and the differential bend value code [m] [2] related to the track m data. ..., when the differential bend value codes [m] [15] are sequentially extracted, the differential bend value code extraction processing is ended, and the process returns to step S165 of FIG.
【0208】続いて、チャネル別符号抽出部53は、差
分エクスプレッション値符号を抽出する(ステップS1
66)。即ち、図35のフローチャートに詳細に示され
るように、このチャネル別符号抽出部53は、先ずトラ
ック番号に係る変数Iに0を代入した後(ステップS2
20)、このIがトラック数Mよりも小さいか否かを判
断する(ステップS221)。1巡面では、上記ステッ
プS220でI=0と設定されているので、チャネル別
符号抽出部53はステップS221よりYes側に進
み、次いでチャネル番号に係る変数Jに0を代入する
(ステップS222)。Subsequently, the channel code extraction unit 53 extracts the differential expression value code (step S1).
66). That is, as shown in detail in the flowchart of FIG. 35, the channel-specific code extraction unit 53 first substitutes 0 into the variable I relating to the track number (step S2).
20), it is determined whether or not this I is smaller than the number M of tracks (step S221). In the first round, since I = 0 is set in step S220, the channel-specific code extraction unit 53 advances to Yes from step S221, and then substitutes 0 into the variable J related to the channel number (step S222). .
【0209】続いて、チャネル別符号抽出部53は、こ
のチャネル番号に係る変数Jが最大チャネル数MAX_CHよ
りも小さいか否かを判断する(ステップS223)。Subsequently, the channel code extraction unit 53 determines whether or not the variable J relating to this channel number is smaller than the maximum channel number MAX_CH (step S223).
【0210】1巡面では、上記ステップS222でJ=
0と設定されているので、チャネル別符号抽出部53
は、ステップS223よりYes側に進み、差分エクス
プレッション値符号[0][0]を抽出した後(ステップS2
24)、チャネル番号に係るJを1つインクリメントし
てJ=1とする(ステップS225)。In the first round, J = J in step S222.
Since it is set to 0, the channel-specific code extraction unit 53
Proceeds from Step S223 to the Yes side, and after extracting the differential expression value code [0] [0] (Step S2
24), J related to the channel number is incremented by 1 to set J = 1 (step S225).
【0211】この第1の実施の形態では、最大チャネル
数に係るMAX_CHに16が予め設定されているので、チャ
ネル別符号抽出部53は、これ以降、上記ステップS2
23乃至S225の処理を繰り返し、差分エクスプレッ
ション値符号[0][1]、差分エクスプレッション値符号
[0][2]、…、差分エクスプレッション値符号[0][15]を
順次抽出することになる。そして、チャネル別符号抽出
部53は、差分エクスプレッション値符号[0][15]を抽
出した後は、ステップS123よりNo側に進み、トラ
ック番号に係る変数Iを1つインクリメントしてI=1
とした後、再びステップS221乃至S225の処理を
繰り返して、続いて差分エクスプレッション値符号[1]
[1]、差分エクスプレッション値符号[1][2]、…、差分
エクスプレッション値符号[1][15]を順次抽出すること
になる。この例では、先に図3で示したようにトラック
数に係るMにm+1が設定されていることを想定してい
る。In this first embodiment, 16 is set in advance for MAX_CH related to the maximum number of channels, so that the channel-specific code extraction unit 53 hereafter performs the above step S2.
23 to S225 are repeated, and the differential expression value code [0] [1], the differential expression value code
[0] [2], ..., The differential expression value codes [0] [15] are sequentially extracted. After extracting the differential expression value code [0] [15], the channel-specific code extraction unit 53 proceeds to No side from step S123, increments the variable I related to the track number by one, and I = 1.
After that, the processing of steps S221 to S225 is repeated again, and then the differential expression value code [1]
[1], the differential expression value code [1] [2], ..., The differential expression value code [1] [15] are sequentially extracted. In this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG.
【0212】よって、チャネル別符号抽出部53は、上
記ステップS221乃至S225の処理を繰り返し、最
終的にトラックmデータに係る差分エクスプレッション
値符号[m][1]、差分エクスプレッション値符号[m][2]、
…、差分エクスプレッション値符号[m][15]が順次抽出
すると、差分エクスプレッション値符号抽出処理を終了
し、図29のステップS166にリターンする。Therefore, the channel-specific code extraction unit 53 repeats the processing of steps S221 to S225, and finally the differential expression value code [m] [1] and the differential expression value code [m] [relating to the track m data. 2],
..., when the differential expression value codes [m] [15] are sequentially extracted, the differential expression value code extraction processing is terminated, and the process returns to step S166 in FIG.
【0213】続いて、チャネル別符号抽出部53は、イ
ベント種別識別符号を抽出する(ステップS167)。
即ち、図36のフローチャートに詳細に示されるよう
に、チャネル別符号抽出部53は、先ずトラック番号に
係る変数Iに0を代入した後(ステップS230)、こ
の変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS231)。先ず、1巡面では、上記ステッ
プS230でI=0と設定されているので、チャネル別
符号抽出部53は、ステップS231よりYes側に進
み、次いでチャネル番号に係る変数Jに0を代入する
(ステップS232)。Subsequently, the channel code extraction unit 53 extracts the event type identification code (step S167).
That is, as shown in detail in the flowchart of FIG. 36, the channel-specific code extraction unit 53 first substitutes 0 into the variable I relating to the track number (step S230), and then this variable I is smaller than the number M of tracks. It is determined whether or not (step S231). First, in one round, since I = 0 is set in step S230, the channel-specific code extraction unit 53 proceeds to Yes from step S231, and then substitutes 0 into the variable J relating to the channel number ( Step S232).
【0214】続いて、チャネル別符号抽出部53は、こ
のチャネル番号に係る変数Jが最大チャネル数に係るMA
X_CHよりも小さいか否かを判断する(ステップS23
3)。Subsequently, the channel-specific code extraction unit 53 determines that the variable J related to this channel number is the MA related to the maximum number of channels.
It is determined whether it is smaller than X_CH (step S23).
3).
【0215】そして、1巡面では、ステップS232で
J=0と設定されているので、チャネル別符号抽出部5
3は、ステップS233よりYes側に進み、イベント
種別識別符号[0][0]を抽出した後(ステップS22
4)、チャネル番号に係るJを1つインクリメントして
J=1とする(ステップS235)。In the first round, since J = 0 is set in step S232, the channel-specific code extraction unit 5
3 proceeds to Yes from step S233, and after extracting the event type identification code [0] [0] (step S22
4), J related to the channel number is incremented by 1 to set J = 1 (step S235).
【0216】この第1の実施の形態では、最大チャネル
数に係るMAX_CHに16が予め設定されているので、チャ
ネル別符号抽出部53は、以降、ステップS233乃至
S235の処理を繰り返し、イベント種別識別符号[0]
[1]、イベント種別識別符号[0][2]、…、イベント種別
識別符号[0][15]を順次抽出する。In this first embodiment, since MAX_CH related to the maximum number of channels is preset to 16, the channel-specific code extraction unit 53 thereafter repeats the processing of steps S233 to S235 to identify the event type. Sign [0]
[1], event type identification code [0] [2], ..., Event type identification code [0] [15] are sequentially extracted.
【0217】そして、チャネル別符号抽出部53は、こ
のイベント種別識別符号[0][15]を抽出した後は、ステ
ップS233よりNo側に進み、トラック番号に係るI
を1つインクリメントしてI=1とした後に、再びステ
ップS231乃至S235の処理を繰り返し、続いてイ
ベント種別識別符号[1][1]、イベント種別識別符号[1]
[2]、…、イベント種別識別符号[1][15]を順次抽出す
る。After extracting the event type identification code [0] [15], the channel code extraction section 53 proceeds to No side from step S233 and sets the track number I
After incrementing by 1 to set I = 1, the processes of steps S231 to S235 are repeated again, and then the event type identification code [1] [1] and the event type identification code [1]
[2], ..., Event type identification codes [1] [15] are sequentially extracted.
【0218】ところで、この第1の実施の形態では、先
に図3で示したようにトラック数に係るMにm+1が設
定されていることを想定している。よって、このチャネ
ル別符号抽出部53は、上記ステップS231乃至S2
35の処理を繰り返し、最終的にトラックmデータに係
るイベント種別識別符号[m][1]、イベント種別識別符号
[m][2]、…、イベント種別識別符号[m][15]を順次抽出
すると、イベント種別識別符号抽出処理を終了し、図2
9のステップS167にリターンする。By the way, in the first embodiment, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 53 uses the steps S231 to S2.
The processing of step 35 is repeated, and finally the event type identification code [m] [1] and the event type identification code related to the track m data
[m] [2], ..., Event type identification codes [m] [15] are sequentially extracted, the event type identification code extraction processing is terminated, and
It returns to step S167 of 9.
【0219】続いて、チャネル別符号抽出部53は、チ
ャネル番号符号を抽出する(ステップS168)。即
ち、図37のフローチャートに詳細に示されるように、
チャネル別符号抽出部53は、先ずトラック番号に係る
変数Iに0を代入した後(ステップS240)、この変
数Iがトラック数Mよりも小さいか否かを判断する(ス
テップS241)。そして、1巡面では、上記ステップ
S240でI=0と設定されているので、このチャネル
別符号抽出部53は、ステップS241よりYesに分
岐し、チャネル番号符号[0]を抽出した後(ステップS
242)、トラック番号に係る変数Iを1つインクリメ
ントしてI=1とする(ステップS243)。Subsequently, the channel code extraction section 53 extracts the channel number code (step S168). That is, as shown in detail in the flowchart of FIG.
The channel-specific code extraction unit 53 first substitutes 0 into the variable I relating to the track number (step S240), and then determines whether or not this variable I is smaller than the number M of tracks (step S241). Then, in the first round, since I = 0 is set in step S240, the channel-specific code extraction unit 53 branches to Yes in step S241 and extracts the channel number code [0] (step S240). S
242), the variable I relating to the track number is incremented by 1 to set I = 1 (step S243).
【0220】そして、チャネル別符号抽出部53は、再
びステップS241乃至S243の処理を繰り返し、続
いてチャネル番号符号符号[1]を抽出する。Then, the channel code extraction unit 53 repeats the processing of steps S241 to S243 again, and subsequently extracts the channel number code code [1].
【0221】この例では、先に図3で示したようにトラ
ック数Mにm+1が設定されていることを想定してい
る。よって、チャネル別符号抽出部53は、上記ステッ
プS241乃至S243の処理を繰り返し、最終的にト
ラックmデータに係るチャネル番号符号符号[m]を抽出
すると、このチャネル番号符号抽出処理を終了し、図2
9のステップS168にリターンすることになる。In this example, it is assumed that the number of tracks M is set to m + 1 as shown in FIG. Therefore, when the channel-specific code extraction unit 53 repeats the processing of steps S241 to S243 and finally extracts the channel number code [m] associated with the track m data, the channel-number code extraction processing ends, and Two
The process returns to step S168 of 9.
【0222】続いて、チャネル別符号抽出部53は、そ
の他情報符号を抽出する(ステップS169)。即ち、
図38のフローチャートに詳細に示されるように、チャ
ネル別符号抽出部53は、先ずトラック番号に係る変数
Iに0を代入した後(ステップS250)、このIがト
ラック数Mよりも小さいか否かを判断する(ステップS
251)。1巡面では、上記ステップS250でI=0
と設定されているので、チャネル別符号抽出部53は、
ステップS251よりYes側に進み、次いでチャネル
番号に係る変数Jに0を代入する(ステップS25
2)。Subsequently, the channel-specific code extraction section 53 extracts other information codes (step S169). That is,
As shown in detail in the flowchart of FIG. 38, the channel-specific code extraction unit 53 first substitutes 0 into the variable I relating to the track number (step S250), and then determines whether this I is smaller than the number M of tracks. Is determined (step S
251). In one round, I = 0 in step S250.
Is set, the channel-specific code extraction unit 53
The process proceeds from Step S251 to Yes, and then 0 is substituted into the variable J related to the channel number (Step S25
2).
【0223】続いて、チャネル別符号抽出部53は、こ
のチャネル番号に係る変数Jが最大チャネル数MAX_CHよ
りも小さいか否かを判断する(ステップS253)。Then, the channel code extraction unit 53 determines whether or not the variable J related to this channel number is smaller than the maximum channel number MAX_CH (step S253).
【0224】そして、1巡面では、ステップS252で
J=0と設定されているので、チャネル別符号抽出部5
3は、ステップS253よりYes側に進み、その他情
報符号[0][0]を抽出した後(ステップS254)、チャ
ネル番号に係る変数Jを1つインクリメントしてJ=1
とする(ステップS255)。Since J = 0 is set in step S252 in the first round, the code extraction unit for each channel 5
3 proceeds to the Yes side from step S253 and, after extracting the other information code [0] [0] (step S254), increments the variable J related to the channel number by 1 and J = 1.
(Step S255).
【0225】この第1の実施の形態では、最大チャネル
数に係るMAX_CHに16が予め設定されているので、チャ
ネル別符号抽出部53は、以降、ステップS253乃至
S255の処理を繰り返し、その他情報符号[0][1]、そ
の他情報符号[0][2]、…、その他情報符号[0][15]を順
次配置することになる。In the first embodiment, since MAX_CH related to the maximum number of channels is set to 16 in advance, the channel-by-channel code extraction unit 53 repeats the processing of steps S253 to S255, and then the other information code. [0] [1], other information code [0] [2], ..., Other information code [0] [15] are sequentially arranged.
【0226】そして、このチャネル別符号抽出部53
は、その他情報符号[0][15]を抽出した後は、ステップ
S253よりNo側に進み、トラック番号に係る変数I
を1つインクリメントした後、再びステップS251乃
至S255の処理を繰り返し、続いてその他情報符号
[1][1]、その他情報符号[1][2]、…、その他情報符号
[1][15]を順次抽出することになる。ところで、この例
では、先に図3で示したようにトラック数に係るMにm
+1が設定されていることを想定している。Then, the code extraction unit 53 for each channel
After extracting the other information code [0] [15], the process proceeds to No side from step S253, and the variable I relating to the track number
Is incremented by 1, the processes of steps S251 to S255 are repeated again, and then the other information code
[1] [1], other information code [1] [2], ..., other information code
[1] and [15] will be sequentially extracted. By the way, in this example, as shown in FIG.
It is assumed that +1 is set.
【0227】よって、チャネル別符号抽出部53は、上
記ステップS251乃至S255の処理を繰り返し、最
終的にトラックmデータに係るその他情報符号[m][1]、
その他情報符号[m][2]、…、その他情報符号[m][15]を
順次抽出すると、その他情報符号抽出処理を終了し、こ
うして、チャネル別符号抽出部53によるチャネル別の
符号抽出に係る一連の処理を終了する。以上の処理によ
り、単一チャネルからなる符号群(各符号群は、Δタイ
ム符号、Note On音程符号、Note Off音程符号、ベロシ
ティ値符号、差分ベンド値符号、差分エクスプレッショ
ン値符号、イベント種別識別符号、その他情報符号をそ
れぞれ含む)が抽出される。Therefore, the channel-specific code extraction unit 53 repeats the processing of steps S251 to S255, and finally the other information code [m] [1] relating to the track m data,
When the other information code [m] [2], ..., And the other information code [m] [15] are sequentially extracted, the other information code extraction processing is ended, and thus, the code extraction for each channel is performed by the code extraction unit for each channel 53. The series of processes is ended. By the above processing, a code group consisting of a single channel (each code group includes Δ time code, Note On pitch code, Note Off pitch code, velocity value code, differential bend value code, differential expression value code, event type identification code , And other information codes) are extracted.
【0228】次に、トラック復号部54の詳細な構成
は、図39に示される通りである。Next, the detailed structure of the track decoding unit 54 is as shown in FIG.
【0229】このトラック符号部54は、Δタイム符号
復号部60、Note On音程符号復号部61、Note Off音
程符号復号部62、ベロシティ値符号復号部63、差分
ベンド値符号復号部64、差分エクスプレッション値符
号復号部65、イベント種別識別符号復号部66、その
他情報符号復号部67、そしてイベント書き出し部68
を有している。これら各部60乃至67は、各符号を復
号し、イベント書き出し部68により当該各符号につい
てイベントの書き出しを実行し、こうして単一のチャネ
ルからなるトラックデータ69を生成する。The track encoder 54 includes a Δ time code decoder 60, a Note On interval code decoder 61, a Note Off interval code decoder 62, a velocity value code decoder 63, a differential bend value code decoder 64, and a differential expression. Value code decoding unit 65, event type identification code decoding unit 66, other information code decoding unit 67, and event writing unit 68
have. Each of these units 60 to 67 decodes each code and causes the event writing unit 68 to write an event for each code, thus generating track data 69 consisting of a single channel.
【0230】以下、図40のフローチャートを参照し
て、このトラック復号部54によるトラック復号に係る
処理の流れを詳細に説明する。The flow of processing relating to track decoding by the track decoding unit 54 will be described in detail below with reference to the flowchart in FIG.
【0231】この処理を開始すると、トラック復号部5
4は、先ずトラック番号に係る変数Iに0を代入し(ス
テップS260)、このトラック番号に係る変数Iとト
ラック数Mとを比較する(ステップS261)。そし
て、トラック復号部54は、I<Mの関係が成立するも
のと判断すると、チャネル番号に係る変数Jに0を代入
した後(ステップS262)、当該チャネル番号に係る
Jが最大チャネル数MAX_CHよりも小さいか否かを判断す
る(ステップS263)。When this process is started, the track decoding unit 5
4 first substitutes 0 into the variable I relating to the track number (step S260), and compares the variable I relating to this track number with the number M of tracks (step S261). Then, when the track decoding unit 54 determines that the relationship of I <M is established, 0 is substituted for the variable J related to the channel number (step S262), and the J related to the channel number is determined from the maximum channel number MAX_CH. Is also small (step S263).
【0232】そして、一巡目では、先にステップS26
2において、J=0とされているので、トラック復号部
54は、J<MAX_CHの関係を満たすものと判断し、Trac
k[0][0]にストアされているチャネル0のみのトラック
0データについて、復号を実行する(ステップS26
5)。そして、トラック復号部54は、チャネル番号に
係る変数Jを1つインクリメントしてJ=1とした後、
上記ステップS263乃至266の処理を繰り返すこと
になる(ステップS266)。Then, in the first round, the step S26 is performed first.
2, the track decoding unit 54 determines that the relationship of J <MAX_CH is satisfied, and Trac is Trac.
Decoding is performed on the track 0 data of only channel 0 stored in k [0] [0] (step S26).
5). Then, the track decoding unit 54 increments the variable J related to the channel number by 1 to set J = 1, and then
The processing of steps S263 to 266 is repeated (step S266).
【0233】この第1の実施の形態では、MAX_CH=16
と予め定められているので、このトラック復号部54
は、Track[0][0]、Track[0][1]、…、Track[0][15]に格
納されている、チャネル0のみのトラック0データ、チ
ャネル1のみのトラック0データ、…、チャネル15の
みのトラック0データの夫々を復号する。次いで、トラ
ック復号部54は、トラック番号Iを1つインクリメン
トした後、Track[1][0]、Track[1][1]、…、Track[1][1
5]に格納されている、チャネル0のみのトラック1デー
タ、チャネル1のみのトラック1データ、…、チャネル
15のみのトラック1データを順次復号することになる
(ステップS261乃至S266)。In this first embodiment, MAX_CH = 16
Since this is predetermined, the track decoding unit 54
, Track [0] [0], Track [0] [1], ..., Track [0] [15] are stored in Track0 data only for channel 0, Track0 data only for channel1, ... , And decodes track 0 data of channel 15 only. Next, the track decoding unit 54 increments the track number I by 1, and then Track [1] [0], Track [1] [1], ..., Track [1] [1
5], track 1 data only for channel 0, track 1 data only for channel 1, ..., Track 1 data only for channel 15 are sequentially decoded (steps S261 to S266).
【0234】これ以降、トラック復号部54は、Track
[m][0]、Track[m][1]、…、Track[m][15]に格納されて
いる、チャネル0のみのトラックmデータ、チャネル1
のみのトラックmデータ、…、チャネル15のみのトラ
ックmデータについてまで復号すると(ステップS26
1乃至S266)、本処理を終了する。After that, the track decoding unit 54
[m] [0], Track [m] [1], ..., Track [m] [15] stored in Track [m] [15]
Only the track m data of only channel 15, ..., And the track m data of only channel 15 are decoded (step S26).
1 to S266), the present process ends.
【0235】ここで、図41のフローチャートを参照し
て、図40のステップS265においてトラック復号部
54がなすTrack[I][J]の復号に係る処理について更に
詳述する。即ち、この処理を開始すると、トラック復号
部54は、先ずΔタイム符号[I][J]に符号が存在するか
否かを判断する(ステップS270)。Now, with reference to the flowchart of FIG. 41, the processing relating to the decoding of Track [I] [J] performed by the track decoding unit 54 in step S265 of FIG. That is, when this process is started, the track decoding unit 54 first determines whether or not a code exists in the Δtime code [I] [J] (step S270).
【0236】このステップS270において、トラック
復号部54は、Δタイム符号[I][J]に符号が存在すると
判断した場合には、Δタイム符号[I][J]からΔタイムを
読み出し、変数Deltaにストアし(ステップS27
1)、変数Eventをクリアした後(ステップS27
2)、詳細は後述するイベント種別毎の復号を実行する
(ステップS273)。こうして、トラック復号部54
は、Track[I][J]の末尾に変数Deltaに係るΔタイム、変
数Eventに係るイベントを、この順に付加し、上記ステ
ップS270に戻ることになる(ステップS274)。In step S270, when the track decoding unit 54 determines that a code exists in the Δtime code [I] [J], it reads the Δtime from the Δtime code [I] [J] and sets it as a variable. Store in Delta (step S27
1) After clearing the variable Event (step S27)
2) Decryption is performed for each event type, which will be described in detail later (step S273). Thus, the track decoding unit 54
Adds the Δtime related to the variable Delta and the event related to the variable Event in this order at the end of Track [I] [J], and returns to step S270 (step S274).
【0237】トラック復号部54は、以上の処理を、デ
ルタタイム符号[I][J]に符号が存在している限りにおい
て繰り返し、全ての符号について復号すると、ステップ
S270よりNo側に進み、この処理を終了する。The track decoding unit 54 repeats the above-mentioned processing as long as there are codes in the delta time codes [I] [J], and when all the codes have been decoded, the process proceeds from Step S270 to the No side. The process ends.
【0238】次に、図42のフローチャートを参照し
て、図41のステップS273においてトラック復号部
54がなすイベント種別毎の復号に係る処理について更
に詳述する。即ち、この処理を開始すると、トラック復
号部54は、変数DeltaにストアされているΔタイムよ
りイベントの種別を判断する(ステップS280)。Next, with reference to the flowchart in FIG. 42, the process relating to the decoding for each event type performed by the track decoding unit 54 in step S273 in FIG. 41 will be described in more detail. That is, when this process is started, the track decoding unit 54 determines the event type from the Δtime stored in the variable Delta (step S280).
【0239】前述したように、第1の実施の形態では、
Δタイムの先頭バイトの情報によって、イベントの種別
を識別することができる。より詳細には、この例では、
イベントタイプを3種類、即ちノートオン(タイプ
1)、ノートオフ(タイプ2)、その他(タイプ3)の
イベントとして識別することができる。As described above, in the first embodiment,
The type of event can be identified by the information of the first byte of Δtime. More specifically, in this example,
It is possible to identify three event types, namely, note-on (type 1), note-off (type 2), and other (type 3) events.
【0240】上記ステップS280において、トラック
復号部54は、イベントがタイプ1即ちNote Onである
と判断した場合には、Note Onステータスバイト(この
例では、下位4ビットにはJが代入される)を生成して
変数Eventの末尾に付加し(ステップS281)、Note
On音程符号[I][J]から1バイトの符号を読み出して変数
Eventの末尾に付加し(ステップS282)、ベロシテ
ィ値符号[I][J]から1バイトの符号を読み出して変数Ev
entの末尾に付加する(ステップS283)。In step S280, when the track decoding unit 54 determines that the event is type 1, that is, Note On, the Note On status byte (J is assigned to the lower 4 bits in this example). Is generated and added to the end of the variable Event (step S281).
On Interval code [I] [J] read 1-byte code and variable
It is added to the end of Event (step S282), the 1-byte code is read from the velocity value code [I] [J], and the variable Ev
It is added to the end of ent (step S283).
【0241】一方、上記ステップS280において、ト
ラック復号部54は、イベントがタイプ2、即ちNote O
ffであると判断した場合には、Note Offステータスバイ
ト(この例では、下位4ビットにはJが代入される)を
生成して変数Eventの末尾に付加し(ステップS28
4)、更にNote On音程符号[I][J]から1バイトの符号
を読み出して変数Eventの末尾に付加し(ステップS2
85)、一般的なNote Offベロシティ値の符号を変数Ev
entの末尾に付加する(ステップS286)。On the other hand, in step S280, the track decoding unit 54 determines that the event is type 2, that is, Note O.
If it is determined to be ff, a Note Off status byte (J is assigned to the lower 4 bits in this example) is generated and added to the end of the variable Event (step S28).
4) Furthermore, a 1-byte code is read from Note On pitch code [I] [J] and added to the end of the variable Event (step S2).
85), the sign of the general Note Off velocity value is the variable Ev
It is added to the end of ent (step S286).
【0242】一方、上記ステップS280において、ト
ラック復号部54は、イベントがタイプ3、即ちその他
のイベントであると判断した場合には、イベント種別識
別符号[I][J]から1符号を順次読み込み(ステップS2
87)、続いて、イベントがチャネルに属するものであ
るか否かを判断する(ステップS288)。On the other hand, in step S280, when the track decoding unit 54 determines that the event is type 3, that is, other event, it sequentially reads one code from the event type identification codes [I] [J]. (Step S2
87) and subsequently, it is determined whether or not the event belongs to the channel (step S288).
【0243】ここで、イベントがチャネルに属するもの
であると判断した場合には、トラック復号部54は、イ
ベントに応じてステータスバイト(下位4ビットにはJ
が代入される)を生成して変数Eventの末尾に付加する
(ステップS289)。When it is determined that the event belongs to the channel, the track decoding unit 54 determines the status byte (J in the lower 4 bits) according to the event.
Is substituted) and added to the end of the variable Event (step S289).
【0244】続いて、トラック復号部54は、イベント
種別識別符号が0x04(図21参照)であるか否かを判断
する(ステップS290)。このステップS290に
て、トラック復号部54は、イベント種別識別符号が0x
04であると判断した場合、図21のテーブルより、イベ
ントがピッチベンドチェンジであることが判るので、差
分ベンド値符号[I][J]より2バイトの符号を読み出し、
直前のベンド値に加えたベンド値を変数Eventの末尾に
付加する(ステップS291)。Subsequently, the track decoding section 54 determines whether or not the event type identification code is 0x04 (see FIG. 21) (step S290). In step S290, the track decoding unit 54 sets the event type identification code to 0x.
If it is determined that the value is 04, it can be seen from the table in FIG. 21 that the event is a pitch bend change, so a 2-byte code is read from the differential bend value code [I] [J],
The bend value added to the immediately preceding bend value is added to the end of the variable Event (step S291).
【0245】一方、上記ステップS290において、ト
ラック復号部54は、イベント種別識別符号が0x04(図
21参照)でないと判断した場合には、次いで0x08(図
21参照)以上であるか否かを判断する(ステップS2
92)。On the other hand, in step S290, if the track decoding unit 54 determines that the event type identification code is not 0x04 (see FIG. 21), then it determines whether it is 0x08 (see FIG. 21) or more. Yes (step S2
92).
【0246】そして、このステップS292において、
トラック復号部54は、イベント種別識別符号が0x08以
上であると判断した場合には、コントロールチェンジ番
号が省略されたコントロールチェンジに係るイベントで
あることが図21のテーブルより認識されるので、コン
トロールチェンジ番号を生成し、変数Eventの末尾に付
加する(ステップS293)。Then, in this step S292,
When the track decoding unit 54 determines that the event type identification code is 0x08 or more, it recognizes from the table of FIG. 21 that the event is a control change event in which the control change number is omitted. A number is generated and added to the end of the variable Event (step S293).
【0247】次いで、トラック復号部54は、イベント
種別識別符号が0x08(図21参照)であるか否かを判断
することとしている(ステップS294)。Next, the track decoding section 54 determines whether or not the event type identification code is 0x08 (see FIG. 21) (step S294).
【0248】このステップS294において、0x08であ
ると判断した場合には、図21のテーブルより当該イベ
ントがエクスプレッションであることが判るので、差分
エクスプレッション値符号[I][J]から1バイトの符号を
読み出し、直前のエクスプレッション値に加えたエクス
プレッション値を変数Eventの末尾に付加する(ステッ
プS295)。一方、上記ステップS292でイベント
種別識別符号が0x08以上でないと判断した場合、及び上
記ステップS294で0x08でないと判断した場合には、
トラック復号部54は、冒頭で説明したようなSMFの
フォーマットに従って、イベントが完成するまで、その
他情報符号[I][J]から符号を順次読み出し、変数Event
の末尾に付加する(ステップS297)。If it is determined in this step S294 that the event is 0x08, it can be seen from the table in FIG. 21 that the event is an expression, and therefore the 1-byte code from the differential expression value code [I] [J]. The expression value read out and added to the expression value immediately before is added to the end of the variable Event (step S295). On the other hand, if it is determined in step S292 that the event type identification code is not 0x08 or more, and if it is determined in step S294 that it is not 0x08,
The track decoding unit 54 sequentially reads the codes from the other information codes [I] [J] according to the SMF format as described at the beginning until the event is completed, and the variable Event
Is added to the end (step S297).
【0249】一方、上記ステップS288において、ト
ラック復号部54は、イベントがチャネルに属しないも
のであると判断した場合には、イベントに応じたステー
タスバイトを生成してEventの末尾に付加し(ステップ
296)、上記ステップS297に移行することにな
る。こうして、トラック復号部54は、イベント種別毎
の復号に係る一連の処理を終了することになる。On the other hand, when the track decoding unit 54 determines in step S288 that the event does not belong to the channel, it generates a status byte corresponding to the event and adds it to the end of the event (step 296), the procedure moves to step S297. In this way, the track decoding unit 54 ends the series of processes related to the decoding for each event type.
【0250】次に、トラックマージ及びチャネル番号符
号復号部55の詳細な構成は、図43に示される通りで
ある。同図に示されるように、トラックマージ部55a
とチャネル番号符号復号部55bからなる。そして、か
かる構成の下、トラックマージ及びチャネル番号符号復
号部55に、チャネル0のみのトラックxデータ、チャ
ネル1のみのトラックxデータ、…、チャネルnのみの
トラックxデータ、及びチャネル番号符号Xが入力され
ると、チャネル番号符号復号部55bはチャネル番号符
号13を復号する。そして、トラックマージ部55aは
当該チャネル番号符号を加味しつつ、トラックxデータ
11−xを復号する。このとき、チャネルに属しないイ
ベントについては、符号化の説明にあるように所定のチ
ャネル(SMFはチャネル0、後述する第2の実施の形
態に係るSMFの改良フォーマットはイベントクラスに
よりチャネル0〜3)に属するイベントとして格納され
ているので、通常のチャネルに属するイベントと同様に
復号する。Next, the detailed structure of the track merge and channel number code decoding unit 55 is as shown in FIG. As shown in the figure, the track merge section 55a
And a channel number code decoding unit 55b. Then, under such a configuration, the track merge and channel number code decoding unit 55 receives track x data only for channel 0, track x data only for channel 1, ..., Track x data only for channel n, and channel number code X. When input, the channel number code decoding unit 55b decodes the channel number code 13. Then, the track merge section 55a decodes the track x data 11-x while adding the channel number code. At this time, for events that do not belong to a channel, a predetermined channel (SMF is channel 0, and the improved format of SMF according to the second embodiment described later is used for channels 0 to 3 depending on the event class, as described in encoding. ) Is stored as an event belonging to (1), and is decoded in the same manner as an event belonging to a normal channel.
【0251】以下、図44のフローチャートを参照しつ
つ、トラックマージ及びチャネル番号符号復号部55に
よる復号に係る処理の流れを説明する。The flow of processing relating to track merging and decoding by the channel number code decoding unit 55 will be described below with reference to the flowchart in FIG.
【0252】本処理を開始すると、トラックマージ及び
チャネル番号符号復号部55は、先ずトラック番号に係
るIに0を代入し(ステップS300)、このトラック
番号に係る変数Iとトラック数Mとを比較する(ステッ
プS301)。When this process is started, the track merge and channel number code decoding unit 55 first substitutes 0 for I relating to the track number (step S300), and compares the variable I relating to this track number with the number M of tracks. Yes (step S301).
【0253】そして、トラックマージ及びチャネル番号
符号復号部55は、I<Mの関係が成立すると判断する
と、変数MasterTickとチャネル番号に係る変数Jに0が
代入される(ステップS302)。この変数MasterTick
は、複合化時のトラック復元においては復元後の複数チ
ャネルに属するイベント群が格納されるトラックの現在
複合化位置における経過時間(ティック)を意味するも
のである。When the track merge and channel number code decoding unit 55 determines that the relationship of I <M is established, 0 is substituted into the variable MasterTick and the variable J related to the channel number (step S302). This variable MasterTick
Means the elapsed time (tick) at the current composite position of the track in which the event groups belonging to a plurality of channels after the recovery are stored in the track recovery at the time of the composite.
【0254】続いて、トラックマージ及びチャネル番号
符号復号部55は、当該チャネル番号に係る変数Jが最
大チャネル数MAX_CHよりも小さいか否かを判断すること
としている(ステップS303)。1巡目では、ステッ
プS302においてJ=0とされているので、トラック
マージ及びチャネル番号符号復号部55は、J<MAX_CH
の関係を満たすものと判断し、Tick[0]を0とし、更に
チャネル番号に係る変数JをインクリメントしてJ=1
とした後に(ステップS304)、上記ステップS30
3に戻る。このTick[x]は、チャネルJに属するイベン
トが格納されるトラックの現在パース位置における経過
時間を意味する。各トラックは、それぞれ独立した時間
軸を持っているので、このような配列が必要となる。Next, the track merge and channel number code decoding unit 55 determines whether or not the variable J related to the channel number is smaller than the maximum channel number MAX_CH (step S303). In the first round, since J = 0 in step S302, the track merge / channel number code decoding unit 55 causes J <MAX_CH.
It is determined that the relationship of is satisfied, Tick [0] is set to 0, the variable J related to the channel number is further incremented, and J = 1.
After that (step S304), the above step S30
Return to 3. This Tick [x] means the elapsed time at the current purse position of the track where the event belonging to channel J is stored. Since each track has an independent time axis, such an arrangement is necessary.
【0255】この例では、MAX_CH=16と予め定められ
ているので、トラックマージ及びチャネル番号符号復号
部55は、Tick[0]、Tick[1]、…、Tick[15]について上
記処理を実行する。この処理の後、トラックマージ及び
チャネル番号符号復号部55は、詳細は後述するトラッ
クマージの処理をなし(ステップS305)、変数Iを
1つインクリメントしてI=1とし(ステップS30
6)、上記ステップS301乃至S306の処理を繰り
返し、こうして、トラック1データ、トラック2デー
タ、…、トラックx、…、トラックmデータを復号す
る。In this example, since MAX_CH = 16 is predetermined, the track merge / channel number code decoding unit 55 executes the above processing for Tick [0], Tick [1], ..., Tick [15]. To do. After this process, the track merge and channel number code decoding unit 55 performs a track merge process which will be described in detail later (step S305) and increments the variable I by 1 to set I = 1 (step S30).
6) The above steps S301 to S306 are repeated, and in this way, track 1 data, track 2 data, ..., Track x, ..., Track m data are decoded.
【0256】ここで、図45のフローチャートを参照し
つつ、図44のステップS305でトラックマージ及び
チャネル番号符号復号部55(トラックマージ部55
a,チャネル番号符号復号部55bを含む)によるトラ
ックマージに係る処理について更に詳述する。この処理
を開始すると、トラックマージ及びチャネル番号符号復
号部55は、この処理で使用される各変数NextTick、Ex
istSameTimeEvent、変数Jを初期化した後(ステップS
310)、この変数Jを最大チャネル数MAX_CHと比較す
る(ステップS311)。1巡目では、ステップS31
0において変数Jに0が設定されているので、このトラ
ックマージ及びチャネル番号符号復号部55は、このス
テップS311よりYes側に進み、続いて、Track[I]
[0]の読み込みが終了しているか否かを判断することに
なる(ステップS312)。Here, referring to the flow chart of FIG. 45, in step S305 of FIG. 44, the track merge and channel number code decoding unit 55 (track merge unit 55
a, including the channel number code decoding unit 55b), the process relating to track merging will be described in more detail. When this process is started, the track merge and channel number code decoding unit 55 causes each variable NextTick, Ex used in this process.
istSameTimeEvent, after initializing the variable J (step S
310), this variable J is compared with the maximum channel number MAX_CH (step S311). In the first round, step S31
Since the variable J is set to 0 in 0, the track merge and channel number code decoding unit 55 proceeds to Yes from step S311 and then Track [I].
It is determined whether the reading of [0] is completed (step S312).
【0257】ここでは、Track[I][0]の読み込みは終了
していないので、トラックマージ及びチャネル番号符号
復号部55は、ステップS312よりNo側に進み、読
出位置を進めずにTrack[I][0]のトラックデータからΔ
タイムを読み出し、変数Deltaに格納する(ステップS
313)。続いて、トラックマージ及びチャネル番号符
号復号部55は、NextTick=Tick[J]+Deltaであるか否
かを判断し(ステップS314)、NextTick=Tick[J]
+Deltaである場合にはExistSameTimeEvent=1に設定
し(ステップS315)、NextTick=Tick[J]+Deltaで
ない場合には、NextTick>Tick[J]+Deltaであるか否か
を判断する(ステップS316)。Here, since the reading of Track [I] [0] is not completed, the track merging / channel number code decoding unit 55 proceeds to No side from step S312 and does not advance the reading position, and thus Track [I] ] [0] Track data Δ
The time is read and stored in the variable Delta (step S
313). Subsequently, the track merge and channel number code decoding unit 55 determines whether or not NextTick = Tick [J] + Delta (step S314), and NextTick = Tick [J].
If + Delta, ExistSameTimeEvent = 1 is set (step S315). If NextTick = Tick [J] + Delta is not satisfied, it is determined whether or not NextTick> Tick [J] + Delta (step S316).
【0258】この関係が成立する場合には、トラックマ
ージ及びチャネル番号符号復号部55は、NextTick=Ti
ck[J]+Delta、ExistSameTimeEvent=0、Ch=Jに設定
した後(ステップS317)、変数Jを1つインクリメ
ントしてJ=1とする(ステップS318)。そして、
トラックマージ及びチャネル番号符号復号部55は、上
記ステップS311乃至S318の処理を、Track[I]
[0]、Track[I][1]、…、Track[I][15]について繰り返す
こととなる。When this relationship is established, the track merge and channel number code decoding section 55 determines that NextTick = Ti
After setting ck [J] + Delta, ExistSameTimeEvent = 0, and Ch = J (step S317), the variable J is incremented by 1 to J = 1 (step S318). And
The track merging / channel number code decoding unit 55 performs the process of steps S311 to S318 by Track [I].
[0], Track [I] [1], ..., Track [I] [15] are repeated.
【0259】上記ステップS311をNo側に進むと、
トラックマージ及びチャネル番号符号復号部55は、Ne
xtTick=0xffffffffであるか否かを判断し(ステップS
319)、NextTick=0xffffffffの関係が成立しないも
のと判断した場合には、ExistSameTimeEvent=1である
か否かを判断する(ステップS320)。When the above step S311 proceeds to the No side,
The track merge and channel number code decoding unit 55 uses the Ne
It is determined whether xtTick = 0xffffffff (step S
319), if it is determined that the relationship of NextTick = 0xffffffff is not established, it is determined whether ExistSameTimeEvent = 1 (step S320).
【0260】そして、上記ステップS320において、
トラックマージ及びチャネル番号符号復号部55は、Ex
istSameTimeEvent=1であると判断した場合には、チャ
ネル番号符号[I]から1符号を読み出し、Chに代入し
(ステップS321)、更にTrack[I][Ch]からDeltaに
Δタイム、Eventにイベントを読み込む(ステップS3
22)。一方、ステップS320において、トラックマ
ージ及びチャネル番号符号復号部55は、ExistSameTim
eEvent=0であると判断した場合、Track[I][Ch]からDe
ltaにΔタイム、Eventにイベントを読み込み(ステップ
S323)、読出位置を進めずにTrack[I][Ch]からMdel
taに次のΔタイムを読み込み(ステップS324)、Md
elta=0であるか否かを判断する(ステップS32
5)。Then, in step S320,
The track merge and channel number code decoding unit 55
When it is determined that istSameTimeEvent = 1, one code is read from the channel number code [I] and is substituted for Ch (step S321). Further, from Track [I] [Ch] to Delta to Δtime and Event to Event. Is read (step S3
22). On the other hand, in step S320, the track merge and channel number code decoding unit 55 causes the ExistSameTim
If it is determined that eEvent = 0, Track [I] [Ch] to De
Read the Δtime in lta and the event in Event (step S323), and move from Track [I] [Ch] to Mdel without advancing the read position.
The next Δtime is read into ta (step S324), Md
It is determined whether or not elta = 0 (step S32).
5).
【0261】そして、ここで、Mdelta=0である場合に
は、トラックマージ及びチャネル番号符号復号部55
は、チャネル番号符号[I]から1符号を空読みする(ス
テップS326)。次いで、トラックマージ及びチャネ
ル番号符号復号部55は、イベントを読み込んだチャネ
ルのトラックデータに係るTickを更新し、符号化するΔ
タイムを算出してMdeltaに代入し、更にMasterTickを更
新する(ステップS327)。そして、Track[I]の末
尾にMdeltaに代入したΔタイム及びEventに代入したイ
ベントを付加し(ステップS328)、上記ステップS
310に戻り、上記処理を繰り返すことになる。そし
て、上記ステップS319において、トラックマージ及
びチャネル番号符号復号部55は、NextTick=0xffffff
ffの関係が成立するものと判断すると、この処理を終了
する。こうして、トラック毎のトラック0データ、トラ
ック1データ、・・・、トラックmデータが生成される。If Mdelta = 0, the track merge and channel number code decoding unit 55
The channel number coding [I] or al 1 codes for reading empty (step S326). Next, the track merge / channel number code decoding unit 55 updates and encodes the tick relating to the track data of the channel from which the event is read Δ
The time is calculated and assigned to Mdelta, and MasterTick is updated (step S327). Then, the Δtime assigned to Mdelta and the event assigned to Event are added to the end of Track [I] (step S328), and the above step S is performed.
Returning to 310, the above processing is repeated. Then, in step S319, the track merge and channel number code decoding unit 55 has NextTick = 0xffffff.
When it is determined that the relationship of ff is established, this process ends. In this way, track 0 data, track 1 data, ..., Track m data for each track is generated.
【0262】これらは、トラック配置部56に入力さ
れ、当該トラック配置部56にてトラック配置され、こ
うして楽曲ファイル4に復号されることになる。These are input to the track arrangement unit 56, arranged in tracks by the track arrangement unit 56, and thus decoded into the music file 4.
【0263】以下、図47のフローチャートを参照し
て、トラック配置部56によるトラック配置に係る処理
を詳細に説明する。即ち、この処理を開始すると、トラ
ック配置部56は、先ずヘッダ・チャンクを配置し(ス
テップS350)、続いてトラック番号に係るIが0を
初期化し(ステップS351)、このトラック番号に係
る変数Iとトラック数Mとを比較する(ステップS35
2)。そして、トラック配置部56は、I<Mの関係が
成立する場合には、Track[0]に格納されているトラック
0データを配置し(ステップS353)、トラック番号
に係るIをインクリメントしてI=1とした後、上記ス
テップS352乃至354の処理を繰り返す。The processing relating to the track arrangement by the track arrangement unit 56 will be described in detail below with reference to the flowchart in FIG. That is, when this process is started, the track arrangement unit 56 first arranges a header chunk (step S350), then initializes I relating to the track number to 0 (step S351), and sets a variable I relating to this track number. And the number M of tracks are compared (step S35).
2). Then, when the relationship of I <M is established, the track arrangement unit 56 arranges the track 0 data stored in Track [0] (step S353) and increments I related to the track number to I. After setting = 1, the processes of steps S352 to 354 are repeated.
【0264】この第1の実施の形態では、図46との関
係では、M=m+1であるので、トラック配置部56
は、Track[0]、Track[1]、…、Track[m]に格納されてい
る、トラック0データ、トラック1データ、…、トラッ
クmデータについてまで配置を行うと(ステップS35
2乃至S354)、こうして本処理を終了する。In the first embodiment, since M = m + 1 in the relationship with FIG. 46, the track arrangement section 56.
... arranges track 0 data, track 1 data, ..., Track m data stored in Track [0], Track [1], ..., Track [m] (step S35).
2 to S354), and this processing ends.
【0265】以上説明したような一連の処理により、2
次符号6から2次符号復号部51により1次符号5が復
号され、当該1次符号5から1次符号復号部52により
楽曲ファイル4が復号される。こうして復号された楽曲
ファイル4は、各演奏情報の順番が入れ替わることもな
く、完全に元の演奏情報と一致する。By the series of processing described above, 2
The primary code 5 is decoded by the secondary code 6 to the secondary code decoding unit 51, and the music file 4 is decoded by the primary code 5 to the primary code decoding unit 52. The musical composition file 4 thus decoded completely matches the original performance information without changing the order of the performance information.
【0266】以上説明したように、本発明の第1の実施
の形態に係る演奏情報圧縮装置、演奏情報圧縮方法、演
奏情報圧縮プログラム、演奏情報復号装置、演奏情報復
号方法、演奏情報復号プログラムでは、以下の効果が奏
される。As described above, the performance information compression apparatus, the performance information compression method, the performance information compression program, the performance information decoding apparatus, the performance information decoding method, and the performance information decoding program according to the first embodiment of the present invention are The following effects are exhibited.
【0267】即ち、演奏情報圧縮装置等では、1次符号
生成部2による処理により,楽曲ファイル4(SMF)
の無駄が省かれ、しかも楽曲ファイル4(SMF)の演
奏情報を損なうことなく、圧縮されたデータ量とした1
次符号5を生成することを実現している。更に、この1
次符号5を、SMFに比して同一データパターンの出現
頻度が高く、同一データパターンがより近い距離に記録
され、更に同一の符号バイトがより近い位置にまとめら
れるようにすることで、2次符号生成部3における汎用
圧縮方式による圧縮効率を向上させている。That is, in the performance information compression device and the like, the music file 4 (SMF) is processed by the processing by the primary code generator 2.
1 is set as the compressed data amount without waste of data and without degrading the performance information of the music file 4 (SMF).
It realizes to generate the next code 5. Furthermore, this 1
The next code 5 has a higher occurrence frequency of the same data pattern than the SMF, the same data pattern is recorded at a closer distance, and the same code bytes are grouped at a closer position, so that the secondary code is generated. The compression efficiency of the general-purpose compression method in the code generation unit 3 is improved.
【0268】この効果は、演奏情報復号装置等において
も、1次符号復号部52、2次符号復号部51にて、同
様に奏される。しかも、1次符号化時に各演奏情報を時
間的に独立させつつ、当該各演奏情報の順番に係る情報
を保存することで、符号化された演奏情報を復号した場
合に上記各演奏情報の順番が入れ替わることもない。即
ち、復号された演奏情報が完全に元の演奏情報と一致す
ることになる。In the performance information decoding device and the like, this effect is similarly exhibited in the primary code decoding unit 52 and the secondary code decoding unit 51. Moreover, by preserving the information relating to the order of each performance information while temporally making each performance information independent at the time of the primary encoding, the order of each performance information is decoded when the encoded performance information is decoded. Does not change. That is, the decrypted performance information completely matches the original performance information.
【0269】(第2の実施の形態)先ず、第2の実施の
形態に係る演奏情報圧縮装置、演奏情報復号装置、演奏
情報圧縮方法、演奏情報復号方法、演奏情報圧縮プログ
ラム、及び演奏情報復号プログラムにおいて、前提とさ
れる入力データ(楽曲ファイル)のフォーマットについ
て、詳細に説明する。この第2の実施の形態において
は、楽曲ファイルのフォーマットとしてSMFの改良フ
ォーマットを想定している。この改良フォーマットは、
ヘッダ・チャンクとトラック・チャンクに大別され、各
ヘッダ・チャンク部には、楽曲ファイル全体に直接関係
する最小限の情報、例えばトラックデータの数等の情報
が含まれている。そして、各トラック・チャンクには、
最大4チャネルに係るイベントデータ群(トラックデー
タ)を含めることができる。(Second Embodiment) First, a performance information compression apparatus, a performance information decoding apparatus, a performance information compression method, a performance information decoding method, a performance information compression program, and a performance information decoding apparatus according to the second embodiment. The format of input data (music file) that is assumed in the program will be described in detail. In the second embodiment, an improved SMF format is assumed as the music file format. This improved format is
It is roughly classified into a header chunk and a track chunk. Each header chunk portion contains minimum information directly related to the entire music file, for example, information such as the number of track data. And for each track chunk,
Event data groups (track data) relating to a maximum of 4 channels can be included.
【0270】更に、各トラックデータは、Δタイムとイ
ベントといった2つの要素で構成されている。Δタイム
には、少なくとも隣接するイベント間の相対時間等の情
報が含まれている。そして、前述したSMFでは、イベ
ントにノートオン又はノートオフのステータスや音程
(ノートナンバ)、音の強さ(ベロシティ)の演奏情報
が含まれていたが、この改良フォーマットでは、ノート
オフが省略されるのとノートオンに相当するノートメッ
セージに「音の長さ」に関する情報も含まれている点で
SMFと相違している。Further, each track data is composed of two elements such as Δtime and event. The Δtime includes at least information such as a relative time between adjacent events. In the SMF described above, the event includes the note-on or note-off status, pitch (note number), and performance information of the sound intensity (velocity), but note-off is omitted in this improved format. However, it differs from SMF in that the note message corresponding to note-on also includes information on "sound length".
【0271】尚、この第2の実施の形態でも、Δタイム
の先頭バイトの情報によって、イベントの種別を識別す
ることができるようになっている。また、このフォーマ
ットでは、ステータスにイベントクラスの情報が含まれ
ることもある。Also in the second embodiment, the type of event can be identified by the information of the first byte of Δtime. Also, in this format, the status may include event class information.
【0272】このようなフォーマットの相違から、楽曲
ファイル、1次符号、2次符号は第1の実施の形態に係
るものと相違することになるが、以下では説明の便宜
上、これらを第1の実施の形態と同一符号をもって示
し、説明に用いる。Due to the difference in the format as described above, the music file, the primary code, and the secondary code are different from those according to the first embodiment. The same reference numerals as those used in the embodiment are used for description.
【0273】(演奏情報圧縮装置等)以下、図48乃至
図61を参照して、楽曲ファイルより1次符号、更には
2次符号を生成する第2の実施の形態に係る演奏情報圧
縮装置、演奏情報圧縮方法、演奏情報圧縮プログラムに
ついて、その構成及び作用を詳細に説明する。(Performance Information Compressing Device, etc.) With reference to FIGS. 48 to 61, a performance information compressing device according to the second embodiment for generating a primary code and further a secondary code from a music file. The configuration and operation of the performance information compression method and the performance information compression program will be described in detail.
【0274】尚、この演奏情報圧縮装置による作用は、
第2の実施の形態に係る演奏情報圧縮方法、演奏情報圧
縮プログラムに相当するものである。この演奏情報圧縮
プログラム、演奏情報復号プログラムは、コンピュータ
により実行可能である。The operation of this performance information compression device is as follows.
It corresponds to a performance information compression method and a performance information compression program according to the second embodiment. The performance information compression program and the performance information decoding program can be executed by a computer.
【0275】また、ここでは重複した説明を避けるべ
く、第1の実施の形態に係る装置等と同一の構成につい
ては同一の図面をもって、説明を進めることにする。Further, here, in order to avoid duplicated description, the same configuration as that of the apparatus and the like according to the first embodiment will be described with reference to the same drawings.
【0276】この第2の実施の形態に係る演奏情報圧縮
装置70の構成は、先に示した図1の構成と略同じであ
り、1次符号生成部2と2次符号生成部3とからなる。The configuration of the performance information compression apparatus 70 according to the second embodiment is substantially the same as the configuration shown in FIG. 1 described above, and is composed of the primary code generation section 2 and the secondary code generation section 3. Become.
【0277】即ち、1次符号生成部2は、2次符号生成
部3での圧縮効率を高めるべく、上述したフォーマット
の楽曲ファイル4に含まれる演奏情報を並び替えて、1
次符号5を生成するものである。そして、2次符号生成
部3は、上記1次符号5を汎用圧縮方式により圧縮し
て、2次符号6を生成するものである。That is, the primary code generator 2 rearranges the performance information contained in the music file 4 in the above-mentioned format in order to improve the compression efficiency in the secondary code generator 3, and
The next code 5 is generated. The secondary code generation unit 3 compresses the primary code 5 by a general-purpose compression method to generate a secondary code 6.
【0278】この第2の実施の形態でも、2次符号生成
部2において採用する汎用圧縮方式として、例えばLZ
符号化法やハフマン符号化法、ランレングス符号化法、
更には、これらを複合した方式(例えばLHAやZIP
等)を採用することを想定しているが、これらに限定さ
れないことは勿論である。Also in the second embodiment, as the general-purpose compression method adopted in the secondary code generation section 2, for example, LZ
Encoding method, Huffman encoding method, run-length encoding method,
Furthermore, a method that combines these (for example, LHA or ZIP
Etc.) is adopted, but the invention is not limited to these.
【0279】1次符号生成部2の詳細な構成は、先に示
した図2の構成と略同様であり、トラック分離部7とチ
ャネル分離及びチャネル番号符号生成部8、チャネル番
号以外の符号生成部100(図48で後述)、符号配置
部10を有している。The detailed configuration of the primary code generation unit 2 is substantially the same as the configuration shown in FIG. 2 described above, and the track separation unit 7, the channel separation and channel number code generation unit 8, and the code generation other than the channel number. It has a unit 100 (described later in FIG. 48) and a code arrangement unit 10.
【0280】以下、これら各部の構成及び作用について
詳細に説明する。The configuration and operation of each of these parts will be described in detail below.
【0281】先ず、トラック分離部7の詳細な構成は、
先に図3に示した構成と略同様であり、ファイル解析部
7aを有している。このファイル解析部7aは、楽曲フ
ァイル4のヘッダ・チャンクに含まれるトラックデータ
の数の情報に基づき、楽曲ファイル4のトラック・チャ
ンクに複数のトラックデータが含まれているか否かを判
断する。そして、トラック分離部7は、複数のトラック
データが含まれていると判断された場合には、それぞれ
のトラックデータに分離する。First, the detailed structure of the track separating section 7 is as follows.
The configuration is similar to that shown in FIG. 3 and has a file analysis unit 7a. The file analysis unit 7a determines whether or not the track chunk of the music file 4 includes a plurality of track data based on the information on the number of track data included in the header chunk of the music file 4. Then, when it is determined that a plurality of track data are included, the track separating unit 7 separates the respective track data.
【0282】この例では、トラック・チャンクは、トラ
ック0データ11−0、トラック1データ11−1、
…、トラックmデータ11−mに分離されている。この
トラック分離部7によるトラック分離の処理は、先に図
4のフローチャートに示したものと略同様である為、こ
こでは、重複した説明を省略する。In this example, the track chunks are track 0 data 11-0, track 1 data 11-1,
..., track m data 11-m are separated. Since the track separation processing by the track separation unit 7 is substantially the same as that shown in the flow chart of FIG. 4, duplicate description will be omitted here.
【0283】尚、前述したように、この第2の実施の形
態では、第1の実施の形態とは異なる改良フォーマット
の入力データ(楽曲ファイル)を想定していることか
ら、分離されたトラックデータは、前述した第1の実施
の形態とは若干異なる部分があるが、ここでは説明を簡
略化するために、トラック・チャンクは、トラック0デ
ータ11−0、トラック1データ11−1、…、トラッ
クmデータ11−mと、同様の符号をもって説明を進め
ることとする。As described above, in the second embodiment, since the input data (music file) of the improved format different from that of the first embodiment is assumed, the separated track data is obtained. , There are some differences from the above-described first embodiment, but here, in order to simplify the description, the track chunks are track 0 data 11-0, track 1 data 11-1 ,. The description will proceed with the same reference numerals as the track m data 11-m.
【0284】次に、チャネル分離及びチャネル番号符号
生成部8の詳細な構成は、先に図5に示した構成と略同
様であり、トラック解析部8aとチャネル番号符号生成
部8bとを有している。上述の如くトラック分離部7で
分割されたトラック0データ11−0、トラック1デー
タ11−1、…、トラックmデータ11−mの各々につ
いて、複数のチャネルに係るトラックデータが含まれて
いる場合には、チャネル分離及びチャネル番号符号生成
部8のトラック解析分離部8aにより、それぞれが単一
のチャネルからなるトラックデータに分離される。Next, the detailed configuration of the channel separation / channel number code generation section 8 is substantially the same as the configuration shown in FIG. 5, and has a track analysis section 8a and a channel number code generation section 8b. ing. In the case where each of the track 0 data 11-0, the track 1 data 11-1, ..., The track m data 11-m divided by the track separation unit 7 as described above includes track data related to a plurality of channels. The channel analysis / separation unit 8a of the channel separation / channel number code generation unit 8 separates each into track data consisting of a single channel.
【0285】より詳細には、この第2の実施の形態に係
る演奏情報圧縮装置等では、トラック解析分離部8a
は、例えばトラックxデータ11−xを、チャネル0の
みのトラックxデータ12−0、チャネル1のみのトラ
ックxデータ12−1、…、チャネルnのみのトラック
xデータ12−nに分離する。このとき、チャネル番号
符号生成部8bは、これらのチャネル番号符号X13を
生成する。More specifically, in the performance information compression apparatus and the like according to the second embodiment, the track analysis / separation unit 8a
Divides track x data 11-x into track x data 12-0 only for channel 0, track x data 12-1 only for channel 1, ..., Track x data 12-n only for channel n. At this time, the channel number code generator 8b generates these channel number codes X13.
【0286】ここで、改良フォーマットには1つのトラ
ックデータに最大4チャネルを含めることができること
は前述した通りであるが、改良フォーマットでは、チャ
ネルに属するイベントとチャネルに属しないイベント
(全体に影響が及ぶイベント等)を記述することができ
るようになっている。これに鑑みて、この第2の実施の
形態では、チャネルに属しないイベントについては、イ
ベントクラスに応じて各チャネルに属するものとして扱
うようにしている。この例では、イベントのクラスによ
って以下のように格納するチャネルが定められる。As described above, the improved format can include a maximum of 4 channels in one track data. However, in the improved format, events belonging to the channel and events not belonging to the channel (impacted to the whole are affected). It is possible to describe the event that covers). In view of this, in the second embodiment, an event that does not belong to a channel is treated as belonging to each channel according to the event class. In this example, the class of event defines the channel to store as follows:
【0287】即ち、ノーマルクラスの場合には格納する
チャネルはチャネル0、クラスAの場合には格納するチ
ャネルはチャネル1、クラスBの場合には格納するチャ
ネルはチャネル2、クラスCの場合には格納するチャネ
ルはチャネル2、と定められることになる。そして、上
記イベントクラス情報に基づき各チャネルのみのトラッ
クxデータに含められることになる。但し、これには限
定されない。また、第2の実施の形態でも、上記第1の
実施の形態と同様に、イベントが存在しないトラックの
全てを符号化すると膨大なトラック数になるので、イベ
ントが存在しないトラックは削除し、1次符号には記録
しないこととしている。That is, in the case of the normal class, the stored channel is channel 0, in the case of class A the stored channel is channel 1, in the case of class B the stored channel is channel 2, and in the case of class C. The channel to be stored will be defined as channel 2. Then, it is included in the track x data of only each channel based on the above event class information. However, it is not limited to this. Also in the second embodiment, as in the first embodiment, if all the tracks in which no event exists are encoded, the number of tracks becomes huge, so the tracks in which no event exists are deleted. It is not recorded in the next code.
【0288】尚、前述したように、この第2の実施の形
態では、第1の実施の形態とは異なる改良フォーマット
の入力データ(楽曲ファイル)を想定していることか
ら、分離されたトラックデータは、第1の実施の形態と
は若干異なる部分があるが、ここでは説明を簡略化する
ために、トラックxデータ12−x、チャネル0のみの
トラックxデータ12−0、チャネル1のみのトラック
xデータ12−1、…、チャネルnのみのトラックxデ
ータ12−nトラック1データ11−1、…、トラック
mデータ11−mと、同様の符号をもって説明を進め
る。As described above, in the second embodiment, since the input data (music file) of the improved format different from that of the first embodiment is assumed, the separated track data is obtained. Is slightly different from that of the first embodiment, but here, in order to simplify the explanation, the track x data 12-x, the track 0 channel only x data 12-0, and the channel 1 only track are shown. .., track n data only for channel n, x data 12-n, track 1 data 11-1, ..., Track m data 11-m.
【0289】このトラック解析分離部8a、チャネル番
号符号生成部8bによるチャネル分離及びチャネル番号
符号生成に係る処理の流れは、MAX_CH=4と設定される
以外は、先に図6のフローチャートに示したものと略同
様である為、ここでは、重複した説明を省略する。ま
た、トラック解析分離部8a、チャネル番号符号生成部
8bによるチャネル分離及びチャネル番号符号生成に係
る処理による効果についても、先に図7を参照しつつ説
明した内容と同様であるので、省略する。The flow of processing relating to channel separation and channel number code generation by the track analysis / separation unit 8a and channel number code generation unit 8b is shown in the flow chart of FIG. 6 except that MAX_CH = 4 is set. Since it is substantially the same as the one described above, the duplicate description is omitted here. Further, the effects of the processing relating to the channel separation and the channel number code generation by the track analysis / separation unit 8a and the channel number code generation unit 8b are the same as the contents described above with reference to FIG.
【0290】次に、チャネル番号以外の符号生成部10
0の詳細な構成は、図48に示される通りである。即
ち、このチャネル番号以外の符号生成部100は、イベ
ント種別解析識別部101と、Δタイム符号生成部10
2、音程符号生成部103、ゲートタイム符号生成部1
04、ベロシティ値符号生成部105、差分ベンド値符
号生成部106、差分ボリューム値符号生成部107、
イベント種別識別符号生成部108、その他情報符号生
成部109からなっている。Next, the code generator 10 other than the channel number
The detailed configuration of 0 is as shown in FIG. That is, the code generation unit 100 other than the channel number includes the event type analysis / identification unit 101 and the Δ time code generation unit 10.
2, pitch code generation unit 103, gate time code generation unit 1
04, velocity value code generation unit 105, difference bend value code generation unit 106, difference volume value code generation unit 107,
The event type identification code generation unit 108 and the other information code generation unit 109 are included.
【0291】尚、このチャネル番号以外の符号生成部9
による処理の流れは、MAX_CH=4となる以外は、先に図
9のフローチャートを参照して説明した内容と略同様で
あることから、重複した説明は省略する。更に、図9の
ステップS36で実行されるTrack[I][J]の符号化の処
理についても先に図10のフローチャートを参照して説
明した内容と略同様であることから、重複した説明は省
略する。The code generation unit 9 other than this channel number
Since the flow of the processing by is almost the same as the content described above with reference to the flowchart of FIG. 9 except that MAX_CH = 4, duplicate description will be omitted. Further, the processing of encoding Track [I] [J] executed in step S36 of FIG. 9 is substantially the same as the content described above with reference to the flowchart of FIG. Omit it.
【0292】但し、図10の上記ステップS47でチャ
ネル番号以外の符号生成部9により実行されるイベント
種別毎の符号化の処理については、第1の実施の形態と
は異なるので、以下、図49のフローチャートを参照し
て、前述した第1の実施の形態との相違点を意識しつ
つ、より詳細に説明することにする。However, the encoding process for each event type executed by the code generation unit 9 other than the channel number in step S47 of FIG. 10 is different from that of the first embodiment, and therefore, hereinafter, FIG. The detailed description will be made with reference to the flowchart of FIG. 1 while being aware of the difference from the first embodiment described above.
【0293】この処理が開始されると、チャネル番号以
外の符号生成部9は、先ず変数Eventにストアされてい
るイベントの種別を判断する(ステップS360)。When this process is started, the code generator 9 other than the channel number first determines the type of event stored in the variable Event (step S360).
【0294】チャネル番号以外の符号生成部9は、イベ
ントの種別がノートメッセージであると判断した場合に
は、ベロシティ値符号[I][J]の末尾にベロシティの下位
6ビットの情報を符号化し(ステップS361)、ゲー
トタイム符号[I][J]の末尾にゲートタイムを符号化し
(ステップS362)、音程符号[I][J]の末尾に音程値
(上位2ビットにキーシフト、下位6ビットにキーナン
バ)を符号化し(ステップS363)、その他情報符号
[I][J]の末尾に変数Eventにストアされているイベント
の4バイト目以降の情報を符号化し(ステップS37
0)、処理を終了する。If the code generator 9 other than the channel number determines that the event type is a note message, it encodes the lower 6 bits of velocity information at the end of the velocity value code [I] [J]. (Step S361), the gate time is encoded at the end of the gate time code [I] [J] (step S362), and the pitch value (key shift to upper 2 bits, lower 6 bits) at the end of the pitch code [I] [J] Key number) is encoded (step S363), and other information code
At the end of [I] [J], the information from the 4th byte onward of the event stored in the variable Event is encoded (step S37).
0), the process ends.
【0295】そして、チャネル番号以外の符号生成部9
は、イベントの種別がゲートタイムエクステンションで
あると判断した場合には、上記ステップS362乃至S
370と同様の処理をなし、この処理を終了する。さら
に、チャネル番号以外の符号生成部9は、イベントがチ
ャネルピッチベンドであると判断した場合には、差分ベ
ンド値符号[I][J]の末尾に直前のピッチベンドからの差
分ピッチベンドを符号化し(ステップS364)、この
処理を終了する。また、チャネル番号以外の符号生成部
9は、イベントがチャネルボリュームであると判断した
場合には、差分ボリューム値符号[I][J]の末尾に直前の
ボリュームからの差分ボリュームを符号化し(ステップ
S364)、この処理を終了することとしている。Then, the code generation unit 9 other than the channel number
If it is determined that the event type is the gate time extension, the above steps S362 to S362 are performed.
The same processing as 370 is performed, and this processing ends. Further, when the event other than the channel number is determined to be the channel pitch bend, the code generation unit 9 encodes the differential pitch bend from the immediately preceding pitch bend at the end of the differential bend value code [I] [J] (step (S364), this process ends. When the event other than the channel number is determined to be the channel volume, the code generation unit 9 encodes the differential volume from the immediately preceding volume at the end of the differential volume value code [I] [J] (step S364), this processing is to be ended.
【0296】一方、チャネル番号以外の符号生成部9
は、イベントがその他の種別であると判断した場合には
(ステップS360)、先ずイベント種別識別符号が0x
08(図58参照)以上であるか否かを判断する(ステッ
プS366)。On the other hand, the code generator 9 other than the channel number
When it is determined that the event is of another type (step S360), first, the event type identification code is 0x.
It is determined whether it is 08 (see FIG. 58) or more (step S366).
【0297】このステップS366において、チャネル
番号以外の符号生成部9は、イベント種別識別符号が0x
08(図58参照)以上であると判断した場合には、その
他情報符号[I][J]の末尾に変数Eventにストアされてい
るイベントの3バイト目の情報を(このとき、チャネル
インデックスは0クリアされる)符号化し(ステップS
371)、この処理を終了する。一方、上記ステップS
366において、イベント種別識別符号が0x08未満であ
ると判断した場合、更にイベント種別識別符号が0x02
(図58参照)以下であるか否かを判断する(ステップ
S367)。In step S366, the code generator 9 other than the channel number sets the event type identification code to 0x.
If it is determined that the value is 08 (see FIG. 58) or more, the third byte information of the event stored in the variable Event is added to the end of the other information code [I] [J] (at this time, the channel index is Encoded (cleared to 0) (step S
371), and this processing ends. On the other hand, the above step S
If it is determined in 366 that the event type identification code is less than 0x08, the event type identification code is further 0x02.
(See FIG. 58) It is determined whether or not the following (step S367).
【0298】このステップS367において、チャネル
番号以外の符号生成部9は、イベント種別識別符号が0x
02(図58参照)以下であると判断した場合には、その
他情報符号[I][J]の末尾に変数Eventにストアされてい
るイベントの2バイト目の情報を符号化し、その他情報
符号[I][J]の末尾に変数Eventにストアされているイベ
ントの3バイト目の情報を符号化し(ステップS36
9)、更に、その他情報符号[I][J]の末尾にイベントの
4バイト目以降の情報を符号化し(ステップS36
9)、この処理を終了することとしている。In step S367, the code generator 9 other than the channel number sets the event type identification code to 0x.
If it is determined that the value is 02 (see FIG. 58) or less, the second byte information of the event stored in the variable Event is encoded at the end of the other information code [I] [J], and the other information code [ Information on the third byte of the event stored in the variable Event is encoded at the end of I] [J] (step S36).
9) Furthermore, the information from the 4th byte onward of the event is encoded at the end of the other information code [I] [J] (step S36).
9), this processing is to be ended.
【0299】これに対して、上記ステップS367にお
いて、チャネル番号以外の符号生成部9は、イベント種
別識別符号が0x02(図58参照)以下ではないと判断し
た場合には、その他情報符号[I][J]の末尾に変数Event
にストアされているイベントの3バイト目の情報を符号
化し(ステップS369)、その他情報符号[I][J]の末
尾に変数Eventにストアされているイベントの4バイト
目以降の情報を符号化して(ステップS369)、この
処理を終了することになる。On the other hand, in step S367, if the code generator 9 other than the channel number determines that the event type identification code is not 0x02 (see FIG. 58) or less, the other information code [I] Variable Event at the end of [J]
The information of the third byte of the event stored in is encoded (step S369), and the information of the fourth byte and later of the event stored in the variable Event is encoded at the end of the other information code [I] [J]. Then (step S369), this process ends.
【0300】以上説明したような各生成部102乃至1
09による一連の処理によって、Δタイム符号、音程符
号、ゲートタイム符号、ベロシティ値符号、差分ベンド
値符号、差分ボリューム値符号、イベント種別識別符
号、その他情報符号が生成されることになる。そして、
これら全ての符号は、先に示した図12と略同様の符号
配置部10に入力される。符号配置部10は、各符号種
別毎に配置し、1次符号5を生成する。尚、この符号配
置部10についても、前述した第1の実施の形態とは構
成が若干異なるが、ここでは説明を簡略化するために、
同一符号をもってその処理上の相違を中心に詳細に説明
する。Each of the generating units 102 to 1 as described above
By a series of processing by 09, the Δ time code, the pitch code, the gate time code, the velocity value code, the difference bend value code, the difference volume value code, the event type identification code, and the other information code are generated. And
All of these codes are input to the code arranging unit 10 that is substantially the same as that shown in FIG. The code arrangement unit 10 arranges each code type and generates a primary code 5. The code arrangement unit 10 also has a slightly different configuration from the first embodiment described above, but here, in order to simplify the description,
The same reference numerals will be used to explain in detail focusing on the difference in processing.
【0301】以下、図50乃至図60を参照して、実施
の形態に係る演奏情報圧縮装置70の符号配置部10に
よる符号配置の処理の流れをより詳細に説明する。The flow of code arrangement processing by the code arrangement unit 10 of the performance information compression apparatus 70 according to the embodiment will be described in more detail below with reference to FIGS. 50 to 60.
【0302】さて、本処理に入ると、符号配置部10
は、先ずヘッダ・チャンクの符号を配置する(ステップ
S380)。以降、後述するように各符号を配置する。Now, when entering this processing, the code arrangement unit 10
First arranges the code of the header chunk (step S380). Hereinafter, each code is arranged as described later.
【0303】先ず、符号配置部10は、Δタイム符号を
配置する(ステップS380)。First, the code arrangement unit 10 arranges the Δtime code (step S380).
【0304】即ち、図51のフローチャートに詳細に示
されるように、この符号配置部10は、先ずトラック番
号に係る変数Iに0を代入した後(ステップS39
0)、このIがトラック数Mよりも小さいか否かを判断
する(ステップS391)。That is, as shown in detail in the flowchart of FIG. 51, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S39).
0), it is determined whether or not this I is smaller than the number M of tracks (step S391).
【0305】1巡面では、上記ステップS390でI=
0と設定されているので、符号配置部10は、ステップ
S391よりYes側に進み、次いでチャネル番号に係
るJに0を代入する(ステップS392)。続いて、符
号配置部10は、このチャネル番号に係る変数Jが最大
チャネル数MAX_CHよりも小さいか否かを判断する(ステ
ップS393)。そして、1巡面では、上記ステップS
392でJ=0と設定されているので、符号配置部10
はステップS393よりYes側に進み、Δタイム符号
[0][0]を配置した後(ステップS394)、チャネル番
号に係る変数Jを1つインクリメントしJ=1とする
(ステップS395)。In one round, I = I in step S390.
Since it is set to 0, the code arrangement unit 10 proceeds to Yes from step S391, and then substitutes 0 for J related to the channel number (step S392). Subsequently, the code arrangement unit 10 determines whether the variable J related to this channel number is smaller than the maximum channel number MAX_CH (step S393). And in one round, the above step S
Since J = 0 is set in 392, the code arrangement unit 10
Proceeds from Step S393 to the Yes side, and Δ time code
After arranging [0] [0] (step S394), the variable J related to the channel number is incremented by 1 to set J = 1 (step S395).
【0306】この第2の実施の形態では、最大チャネル
数に係るMAX_CHに4が予め設定されているので、符号配
置部10は、ステップS393乃至S395の処理が繰
り返されて、Δタイム符号[0][1]、Δタイム符号[0]
[2]、Δタイム符号[0][3]、Δタイム符号[0][4]を順次
配置する。符号配置部10は、このΔタイム符号[0][4]
を配置した後は、上記ステップS393よりNo側に進
み、トラック番号に係る変数Iを1つインクリメントし
てI=1とした後、再びステップS391乃至S395
の処理を繰り返し、続いてΔタイム符号[1][1]、Δタイ
ム符号[1][2]、Δタイム符号[1][3]、Δタイム符号[1]
[4]を順次配置する。In this second embodiment, since MAX_CH relating to the maximum number of channels is set to 4 in advance, the code arrangement unit 10 repeats the processing of steps S393 to S395, and the Δ time code [0 ] [1], Δ time code [0]
[2], Δ time code [0] [3], and Δ time code [0] [4] are sequentially arranged. The code arrangement unit 10 uses the Δ time code [0] [4].
After arranging, the process proceeds to the No side from step S393, increments the variable I related to the track number by 1 to set I = 1, and then again performs steps S391 to S395.
Then, the Δ time code [1] [1], Δ time code [1] [2], Δ time code [1] [3], Δ time code [1]
Place [4] sequentially.
【0307】この例でも、先に図3で示したようにトラ
ック数に係るMにm+1が設定されていることを想定し
ている。よって、符号配置部10は、上記ステップS3
91乃至S395の処理を繰り返し、最終的にトラック
mデータに係るΔタイム符号[m][1]、Δタイム符号[m]
[2]、Δタイム符号[m][3]、Δタイム符号[m][4]を順次
配置すると、このデルタタイム符号配置処理を終了し、
図50のステップS381にリターンする。Also in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the code arrangement unit 10 causes the above-mentioned step S3.
The processing from 91 to S395 is repeated, and finally the Δ time code [m] [1] and Δ time code [m] relating to the track m data
When [2], Δ time code [m] [3], and Δ time code [m] [4] are sequentially arranged, this delta time code arrangement processing is finished,
It returns to step S381 of FIG.
【0308】続いて、符号配置部10は音程符号を配置
する(ステップS382)。Subsequently, the code arrangement unit 10 arranges the pitch code (step S382).
【0309】即ち、図52のフローチャートに詳細に示
されるように、符号配置部10は先ずトラック番号に係
る変数Iに0を設定した後(ステップS400)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS401)。That is, as shown in detail in the flowchart of FIG. 52, the code arrangement unit 10 first sets 0 to the variable I relating to the track number (step S400), and then this variable I is smaller than the number M of tracks. It is determined whether or not (step S401).
【0310】1巡面では、上記ステップS400でI=
0と設定されているので、符号配置部10は、ステップ
S401よりYes側に進み、チャネル番号に係る変数
Jに0を代入する(ステップS402)。続いて、符号
配置部10は、このチャネル番号に係る変数Jが最大チ
ャネル数MAX_CHよりも小さいか否かを判断する(ステッ
プS403)。そして、1巡面では、上記ステップS4
02でJ=0と設定されているので、符号配置部10
は、ステップS403よりYes側に進み、音程符号
[0][0]を配置した後(ステップS404)、チャネル番
号に係る変数Jを1つインクリメントすることとしてい
る(ステップS405)。In the first round, I =
Since it is set to 0, the code arrangement unit 10 proceeds to Yes from step S401, and substitutes 0 into the variable J related to the channel number (step S402). Subsequently, the code arrangement unit 10 determines whether or not the variable J related to this channel number is smaller than the maximum channel number MAX_CH (step S403). Then, in one round, the above step S4
Since J = 0 is set in 02, the code arrangement unit 10
Goes to the Yes side from step S403, and the pitch code
[0] After arranging [0] (step S404), the variable J related to the channel number is incremented by 1 (step S405).
【0311】この第2の実施の形態では、最大チャネル
数に係るMAX_CHに4が予め設定されているので、符号配
置部10は、以降、上記ステップS403乃至S405
の処理を繰り返し、音程符号[0][1]、音程符号[0][2]、
音程符号[0][3]、音程符号[0][4]を順次配置する。こう
して、符号配置部10は、音程符号[0][4]が配置された
後は、ステップS403よりNo側に進み、トラック番
号に係るIを1つインクリメントしてI=1とした後、
再びステップS401乃至S405の処理を繰り返し、
続いて音程符号[1][1]、音程符号[1][2]、音程符号[1]
[3]、音程符号[1][4]を順次配置することになる。この
例でも、先に図3で示したようにトラック数に係るMに
m+1が設定されていることを想定している。In this second embodiment, since MAX_CH related to the maximum number of channels is preset to 4, the code arrangement unit 10 thereafter performs the above steps S403 to S405.
Repeat the process of pitch code [0] [1], pitch code [0] [2],
The pitch code [0] [3] and the pitch code [0] [4] are sequentially arranged. In this way, the code arrangement unit 10 proceeds to No side from step S403 after the pitch code [0] [4] is arranged, increments I related to the track number by 1 and sets I = 1,
The processing of steps S401 to S405 is repeated again,
Next, pitch code [1] [1], pitch code [1] [2], pitch code [1]
[3] and pitch codes [1] and [4] will be sequentially arranged. In this example as well, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG.
【0312】よって、符号配置部10は、上記ステップ
S401乃至S405の処理を繰り返し、最終的にトラ
ックmデータに係る音程符号[m][1]、音程符号[m][2]、
音程符号[m][3]、Note On音程符号[m][4]が順次配置す
ると、この音程符号配置処理を終了し、図50のステッ
プS382にリターンする。Therefore, the code arrangement unit 10 repeats the processing of steps S401 to S405, and finally the pitch code [m] [1], the pitch code [m] [2], and the pitch code [m] [2] relating to the track m data.
When the pitch code [m] [3] and the Note On pitch code [m] [4] are sequentially arranged, this pitch code arrangement processing is ended, and the process returns to step S382 of FIG.
【0313】続いて、符号配置部10はゲートタイム符
号を配置する(ステップS383)。Subsequently, the code arrangement unit 10 arranges the gate time code (step S383).
【0314】即ち、図53のフローチャートに詳細に示
されるように、符号配置部10は先ずトラック番号に係
る変数Iに0を代入した後(ステップS410)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS411)。That is, as shown in detail in the flowchart of FIG. 53, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S410), and then this variable I is smaller than the number M of tracks. It is determined whether or not (step S411).
【0315】1巡面では、上記ステップS410でI=
0と設定されているので、符号配置部10は、ステップ
S411よりYes側に進み、チャネル番号に係る変数
Jに0を設定する(ステップS412)。続いて、符号
配置部10は、このチャネル番号に係る変数Jが最大チ
ャネル数に係るMAX_CHよりも小さいか否かを判断するこ
とになる(ステップS413)。1巡面では、上記ステ
ップS412でJ=0と設定されているので、符号配置
部10は、上記ステップS413よりYes側に進み、
ゲートタイム符号[0][0]を配置した後(ステップS41
4)、チャネル番号に係るJを1つインクリメントする
(ステップS415)。In one round, I = I in step S410.
Since it is set to 0, the code arrangement unit 10 proceeds to Yes from step S411, and sets 0 to the variable J related to the channel number (step S412). Subsequently, the code arrangement unit 10 determines whether the variable J related to this channel number is smaller than MAX_CH related to the maximum number of channels (step S413). Since J = 0 is set in step S412 in the first round, the code arrangement unit 10 advances to Yes from step S413,
After arranging the gate time codes [0] [0] (step S41
4), J related to the channel number is incremented by 1 (step S415).
【0316】この第2の実施の形態では、最大チャネル
数に係るMAX_CHに4が予め設定されているので、符号配
置部10は、以降、ステップS413乃至S415の処
理を繰り返し、ゲートタイム符号[0][1]、ゲートタイム
符号[0][2]、ゲートタイム符号[0][3]、ゲートタイム符
号[0][4]を順次配置する。In this second embodiment, since MAX_CH relating to the maximum number of channels is preset to 4, the code arrangement unit 10 thereafter repeats the processing of steps S413 to S415, and the gate time code [0 ] [1], gate time code [0] [2], gate time code [0] [3], and gate time code [0] [4] are sequentially arranged.
【0317】このゲートタイム符号[0][4]が配置された
後は、符号配置部10は、ステップS413をNo側に
進み、トラック番号に係るIを1つインクリメントして
I=1とした後、再びステップS411乃至S415の
処理を繰り返し、続いてゲートタイム符号 [1][1]、ゲ
ートタイム符号[1][2]、ゲートタイム符号[1][3]、ゲー
トタイム符号[1][4]を順次配置する。この例でも、先に
図3で示したようにトラック数に係るMにm+1が設定
されていることを想定している。よって、符号配置部1
0は、上記ステップS411乃至S415の処理を繰り
返し、最終的にトラックmデータに係るゲートタイム符
号[m][1]、ゲートタイム符号[m][2]、ゲートタイム符号
[m][3]、ゲートタイム符号[m][4]を順次配置すると、こ
のゲートタイム符号配置処理を終了し、図50のステッ
プS383にリターンする。After the gate time codes [0] [4] are arranged, the code arrangement unit 10 proceeds to step S413 to No side and increments I relating to the track number by 1 to set I = 1. After that, the processes of steps S411 to S415 are repeated again, and subsequently, the gate time code [1] [1], the gate time code [1] [2], the gate time code [1] [3], and the gate time code [1]. Place [4] sequentially. In this example as well, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the code arrangement unit 1
0 repeats the processing of steps S411 to S415, and finally the gate time code [m] [1], the gate time code [m] [2], and the gate time code related to the track m data.
When [m] [3] and the gate time code [m] [4] are sequentially arranged, this gate time code arrangement processing is ended, and the process returns to step S383 in FIG.
【0318】続いて、符号配置部10はベロシティ値符
号を配置する(ステップS384)。Subsequently, the code arrangement unit 10 arranges velocity value codes (step S384).
【0319】即ち、図54のフローチャートに詳細に示
されるように、符号配置部10は先ずトラック番号に係
る変数Iに0を代入した後(ステップS420)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS421)。That is, as shown in detail in the flowchart of FIG. 54, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S420), and then this variable I is smaller than the number M of tracks. It is determined whether or not (step S421).
【0320】1巡面では、上記ステップS420でI=
0と設定されているので、符号配置部10は、ステップ
S421よりYes側に進み、次いでチャネル番号に係
るJに0を代入する(ステップS422)。これに続い
て、符号配置部10は、このチャネル番号に係る変数J
が最大チャネル数に係るMAX_CHよりも小さいか否かを判
断する(ステップS423)。1巡面では、上記ステッ
プS422でJ=0と設定されているので、符号配置部
10は、上記ステップS423よりYes側に進み、ベ
ロシティ値符号[0][0]を配置した後(ステップS42
4)、チャネル番号に係るJを1つインクリメントする
(ステップS425)。In one round, I = I in step S420.
Since it is set to 0, the code arrangement unit 10 proceeds to Yes from step S421, and then substitutes 0 for J related to the channel number (step S422). Subsequent to this, the code arranging unit 10 sets the variable J relating to this channel number.
Is smaller than MAX_CH related to the maximum number of channels (step S423). Since J = 0 is set in step S422 in one round, the code arrangement unit 10 proceeds to Yes from step S423 and arranges velocity value codes [0] [0] (step S42).
4), J related to the channel number is incremented by 1 (step S425).
【0321】この第2の実施の形態でも、最大チャネル
数に係るMAX_CHに4が予め設定されているので、符号配
置部10は、これ以降、上記ステップS423乃至S4
25の処理を繰り返し、ベロシティ値符号[0][1]、ベロ
シティ値符号[0][2]、ベロシティ値符号[0][3]、ベロシ
ティ値符号[0][4]を順次配置する。Also in this second embodiment, since MAX_CH related to the maximum number of channels is set to 4 in advance, the code arrangement unit 10 thereafter performs the above steps S423 to S4.
The processing of 25 is repeated to sequentially arrange the velocity value code [0] [1], the velocity value code [0] [2], the velocity value code [0] [3], and the velocity value code [0] [4].
【0322】そして、符号配置部10は、ベロシティ値
符号[0][4]が配置した後は、ステップS423よりNo
側に進み、トラック番号に係るIを1つインクリメント
してI=1とした後、再びステップS421乃至S42
5の処理を繰り返し、これに続いてベロシティ値符号
[1][1]、ベロシティ値符号[1][2]、ベロシティ値符号
[1][3]、ベロシティ値符号[1][4]を順次配置する。After arranging the velocity value code [0] [4], the code arranging unit 10 returns No from step S423.
To the side, I is incremented by 1 for the track number to set I = 1, and then steps S421 to S42 are performed again.
Repeat the process of 5 and then the velocity value sign
[1] [1], velocity value sign [1] [2], velocity value sign
[1] [3] and velocity value codes [1] [4] are sequentially arranged.
【0323】この例でも、先に図3で示したようにトラ
ック数に係るMにm+1が設定されていることを想定し
ている。よって、符号配置部10は、上記ステップS4
21乃至S425の処理を繰り返し、最終的にトラック
mデータに係るベロシティ値符号[m][1]、ベロシティ値
符号[m][2]、ベロシティ値符号[m][3]、ベロシティ値符
号[m][4]を順次配置すると、このベロシティ値符号配置
処理を終了し、図50のステップS384にリターンす
る。Also in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the code arrangement unit 10 performs the above step S4.
The processing from 21 to S425 is repeated, and finally the velocity value code [m] [1], the velocity value code [m] [2], the velocity value code [m] [3], the velocity value code [ When m] [4] are sequentially arranged, this velocity value code arrangement processing ends, and the process returns to step S384 in FIG.
【0324】続いて、符号配置部10は差分ベンド値符
号を配置する(ステップS385)。Subsequently, the code arrangement unit 10 arranges the differential bend value code (step S385).
【0325】即ち、図55のフローチャートに詳細に示
されるように、符号配置部10は先ずトラック番号に係
る変数Iに0を代入した後(ステップS430)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS431)。That is, as shown in detail in the flow chart of FIG. 55, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S430), and then this variable I is smaller than the number M of tracks. It is determined whether or not (step S431).
【0326】1巡面では、上記ステップS430でI=
0と設定されているので、符号配置部10は、ステップ
S431よりYes側に進み、次いでチャネル番号に係
る変数Jに0を代入する(ステップS432)。続い
て、符号配置部10は、このチャネル番号に係る変数J
が最大チャネル数に係るMAX_CHよりも小さいか否かを判
断する(ステップS433)。1巡面では、上記ステッ
プS432でJ=0と設定されているので、符号配置部
10は、ステップS433よりYes側に進み、差分ベ
ンド値符号[0][0]を配置した後(ステップS434)、
チャネル番号に係る変数Jを1つインクリメントしてJ
=1とする(ステップS435)。In one round, I = in step S430.
Since it is set to 0, the code arrangement unit 10 proceeds to Yes from step S431, and then substitutes 0 into the variable J related to the channel number (step S432). Subsequently, the code arrangement unit 10 determines the variable J related to this channel number.
Is smaller than MAX_CH related to the maximum number of channels (step S433). Since J = 0 is set in step S432 in the first round, the code arrangement unit 10 proceeds to Yes from step S433 and arranges the differential bend value code [0] [0] (step S434). ),
Increment the variable J related to the channel number by 1 to J
= 1 (step S435).
【0327】この第2の実施の形態では、最大チャネル
数に係るMAX_CHに4が予め設定されているので、符号配
置部10は、以降、ステップS433乃至S435の処
理を繰り返して、差分ベンド値符号[0][1]、差分ベンド
値符号[0][2]、差分ベンド値符号[0][3]、差分ベンド値
符号[0][4]を順次配置する。In this second embodiment, since MAX_CH relating to the maximum number of channels is preset to 4, the code arrangement unit 10 thereafter repeats the processing of steps S433 to S435 to repeat the differential bend value code. [0] [1], differential bend value code [0] [2], differential bend value code [0] [3], and differential bend value code [0] [4] are sequentially arranged.
【0328】そして、符号配置部10は、差分ベンド値
符号[0][4]を配置した後は、ステップS433よりNo
側に進み、トラック番号に係る変数Iを1つインクリメ
ントした後、再びステップS431乃至S435の処理
を繰り返し、続いて差分ベンド値符号[1][1]、差分ベン
ド値符号[1][2]、差分ベンド値符号[1][3]、差分ベンド
値符号[1][4]を順次配置することになる。After arranging the differential bend value code [0] [4], the code arranging section 10 returns No from step S433.
After incrementing the variable I relating to the track number by 1, the processes of steps S431 to S435 are repeated again, and then the differential bend value code [1] [1] and the differential bend value code [1] [2] , The differential bend value code [1] [3], and the differential bend value code [1] [4] are sequentially arranged.
【0329】この例でも、先に図3で示したようにトラ
ック数に係るMにm+1が設定されていることを想定し
ている。よって、符号配置部10は、上記ステップS4
31乃至S435の処理を繰り返し、最終的にトラック
mデータに係る差分ベンド値符号[m][1]、差分ベンド値
符号[m][2]、差分ベンド値符号[m][3]、差分ベンド値符
号[m][4]を順次配置すると、この差分ベンド値符号配置
処理を終了し、図50のステップS385にリターンす
る。Also in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the code arrangement unit 10 performs the above step S4.
The processing from 31 to S435 is repeated, and finally the differential bend value code [m] [1], the differential bend value code [m] [2], the differential bend value code [m] [3], the differential relating to the track m data. When the bend value codes [m] [4] are sequentially arranged, this differential bend value code arrangement processing is ended, and the process returns to step S385 in FIG.
【0330】続いて、符号配置部10は、差分ボリュー
ム値符号を配置する(ステップS386)。即ち、図5
6のフローチャートに詳細に示されるように、符号配置
部10は先ずトラック番号に係る変数Iに0を代入した
後(ステップS440)、この変数Iがトラック数Mよ
りも小さいか否かを判断する(ステップS441)。Subsequently, the code arrangement unit 10 arranges the difference volume value code (step S386). That is, FIG.
As shown in detail in the flowchart of FIG. 6, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S440), and then determines whether or not this variable I is smaller than the number M of tracks. (Step S441).
【0331】1巡面では、上記ステップS440でI=
0と設定されているので、符号配置部10は、ステップ
S441よりYes側に進み、次いでチャネル番号に係
る変数Jに0を代入する(ステップS442)。続い
て、符号配置部10は、このチャネル番号に係る変数J
が最大チャネル数に係るMAX_CHよりも小さいか否かを判
断する(ステップS443)。1巡面では、上記ステッ
プS442でJ=0と設定されているので、符号配置部
10は、ステップS443よりYesに進み、差分ボリ
ューム値符号[0][0]を配置した後(ステップS44
4)、チャネル番号に係るJを1つインクリメントして
J=1とする(ステップS445)。[0331] In the first round, I = I in step S440.
Since the value is set to 0, the code arrangement unit 10 proceeds to Yes from step S441, and then substitutes 0 into the variable J related to the channel number (step S442). Subsequently, the code arrangement unit 10 determines the variable J related to this channel number.
Is smaller than MAX_CH related to the maximum number of channels (step S443). Since J = 0 is set in step S442 in the first round, the code arrangement unit 10 proceeds to Yes from step S443 and arranges the differential volume value code [0] [0] (step S44).
4), J related to the channel number is incremented by 1 to set J = 1 (step S445).
【0332】なお、第2の実施の形態では、最大チャネ
ル数に係るMAX_CHに4が予め設定されているので、符号
配置部10は、以降、ステップS443乃至S445の
処理を繰り返し、差分ボリューム値符号[0][1]、差分ボ
リューム値符号[0][2]、差分ボリューム値符号[0][3]、
差分ボリューム値符号[0][4]を順次配置する。In the second embodiment, since MAX_CH relating to the maximum number of channels is preset to 4, the code arrangement unit 10 thereafter repeats the processing of steps S443 to S445 to repeat the differential volume value code. [0] [1], differential volume value code [0] [2], differential volume value code [0] [3],
Differential volume value codes [0] [4] are sequentially arranged.
【0333】そして、符号配置部10は、差分ボリュー
ム値符号[0][4]を配置した後は、ステップS443より
No側に進み、トラック番号に係る変数Iを1つインク
リメントした後、再びステップS441乃至S445の
処理を繰り返し、続いて差分ボリューム値符号[1][1]、
差分ボリューム値符号[1][2]、差分ボリューム値符号
[1][3]、差分エボリューム値符号[1][4]を順次配置す
る。この例でも、先に図3で示したようにトラック数に
係るMにm+1が設定されていることを想定している。
よって、符号配置部10は、上記ステップS441乃至
S445の処理を繰り返し、最終的にトラックmデータ
に係る差分ボリューム値符号[m][1]、差分ボリューム値
符号[m][2]、差分ボリューム値符号[m][3]、差分ボリュ
ーム値符号[m][4]を順次配置すると、差分ボリューム値
符号配置処理を終了し、図50のステップS386にリ
ターンする。After arranging the differential volume value code [0] [4], the code arranging unit 10 proceeds to the No side from step S443, increments the variable I relating to the track number by one, and then repeats the step. The processes of S441 to S445 are repeated, and then the differential volume value code [1] [1],
Differential volume value code [1] [2], differential volume value code
[1] [3] and differential volume value codes [1] [4] are sequentially arranged. In this example as well, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG.
Therefore, the code arrangement unit 10 repeats the processes of steps S441 to S445, and finally, the differential volume value code [m] [1], the differential volume value code [m] [2], the differential volume relating to the track m data. When the value code [m] [3] and the difference volume value code [m] [4] are sequentially arranged, the difference volume value code arrangement processing is ended, and the process returns to step S386 in FIG.
【0334】続いて、符号配置部10は、イベント種別
識別符号を配置する(ステップS387)。即ち、図5
7のフローチャートに詳細に示されるように、符号配置
部10は先ずトラック番号に係る変数Iに0を代入した
後(ステップS450)、この変数Iがトラック数Mよ
りも小さいか否かを判断する(ステップS451)。Next, the code arrangement unit 10 arranges the event type identification code (step S387). That is, FIG.
As shown in detail in the flowchart of FIG. 7, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S450), and then determines whether or not this variable I is smaller than the number M of tracks. (Step S451).
【0335】1巡面では、上記ステップS450でI=
0と設定されているので、符号配置部10は、ステップ
S451よりYesに進み、次いでチャネル番号に係る
変数Jに0を代入する(ステップS452)。続いて、
符号配置部10は、このチャネル番号に係る変数Jが最
大チャネル数に係るMAX_CHよりも小さいか否かを判断す
る(ステップS453)。1巡面では、上記ステップS
452でJ=0と設定されているので、符号配置部10
は、ステップS453よりYes側に進み、イベント種
別識別符号[0][0]を配置した後(ステップS454)、
チャネル番号に係るJを1つインクリメントしてJ=1
とする(ステップS455)。In the first round, I = I in step S450.
Since it is set to 0, the code arrangement unit 10 proceeds from step S451 to Yes, and then substitutes 0 into the variable J related to the channel number (step S452). continue,
The code arrangement unit 10 determines whether or not the variable J related to this channel number is smaller than MAX_CH related to the maximum number of channels (step S453). In one round, the above step S
Since J = 0 is set in 452, the code arrangement unit 10
Advances from Step S453 to the Yes side, and after arranging the event type identification codes [0] [0] (Step S454),
The channel number J is incremented by 1 and J = 1
(Step S455).
【0336】なお、第2の実施の形態では、最大チャネ
ル数に係るMAX_CHに4が予め設定されているので、符号
配置部10は、以降、ステップS453乃至S455の
処理を繰り返し、イベント種別識別符号[0][1]、イベン
ト種別識別符号[0][2]、イベント種別識別符号[0][3]、
イベント種別識別符号[0][4]を順次配置する。In the second embodiment, since MAX_CH relating to the maximum number of channels is preset to 4, the code arrangement unit 10 thereafter repeats the processing of steps S453 to S455 to repeat the event type identification code. [0] [1], event type identification code [0] [2], event type identification code [0] [3],
Event type identification codes [0] [4] are sequentially arranged.
【0337】そして、この符号配置部10は、このイベ
ント種別識別符号[0][4]を配置した後は、ステップS4
53をNoに進み、トラック番号に係る変数Iを1つイ
ンクリメントした後、再びステップS451乃至S45
5の処理を繰り返し、続いてイベント種別識別符号[1]
[1]、イベント種別識別符号[1][2]、イベント種別識別
符号[1][3]、イベント種別識別符号[1][4]を順次配置す
ることとなる。After the event type identification code [0] [4] is placed, the code placement unit 10 proceeds to step S4.
After No in 53, the variable I relating to the track number is incremented by 1, and then the steps S451 to S45 are performed again.
The process of 5 is repeated, and then the event type identification code [1]
[1], event type identification code [1] [2], event type identification code [1] [3], event type identification code [1] [4] will be sequentially arranged.
【0338】この第2の実施の形態では、先に図3で示
したようにトラック数に係るMにm+1が設定されてい
ることを想定している。よって、符号配置部10は、上
記ステップS451乃至S455の処理を繰り返し、最
終的にトラックmデータに係るイベント種別識別符号
[m][1]、イベント種別識別符号[m][2]、イベント種別識
別符号[m][3]、イベント種別識別符号[m][4]を順次配置
すると、イベント種別識別符号配置処理を終了し、図5
0のステップS387にリターンする。In the second embodiment, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the code arrangement unit 10 repeats the processing of steps S451 to S455, and finally the event type identification code related to the track m data.
When the [m] [1], the event type identification code [m] [2], the event type identification code [m] [3], and the event type identification code [m] [4] are sequentially arranged, the event type identification code placement process is performed. Figure 5
0 returns to step S387.
【0339】ここで、イベント種別識別符号は、図58
に示されるようなイベント種別識別符号符号化表によ
り、そのイベント種別に応じて適宜割り当てられる。
尚、符号化時にイベント種別出現頻度に応じて動的に割
り当てることも可能であり、その場合、2次符号化時の
ハフマン符号化による圧縮には、より好適となる。The event type identification code is shown in FIG.
According to the event type identification code encoding table as shown in, it is appropriately assigned according to the event type.
It should be noted that it is possible to dynamically allocate according to the event type appearance frequency at the time of encoding, in which case it is more suitable for compression by Huffman encoding at the time of secondary encoding.
【0340】続いて、符号配置部10は、チャネル番号
符号を配置する(ステップS388)。Subsequently, the code arrangement unit 10 arranges the channel number code (step S388).
【0341】即ち、図59のフローチャートに詳細に示
されるように、符号配置部10は先ずトラック番号に係
る変数Iに0を代入した後(ステップS460)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS461)。That is, as shown in detail in the flowchart of FIG. 59, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S460), and then this variable I is smaller than the number M of tracks. It is determined whether or not (step S461).
【0342】1巡面では、上記ステップS460でI=
0と設定されているので、符号配置部10は、ステップ
S461よりYes側に進み、チャネル番号符号[0]を
配置した後(ステップS462)、トラック番号に係る
変数Iを1つインクリメントしてI=1とする(ステッ
プS463)。そして、符号配置部10は、再びステッ
プS461乃至S463の処理を繰り返し、続いてチャ
ネル番号符号符号[1]を配置する。この例では、先に図
3で示したようにトラック数に係るMにm+1が設定さ
れていることを想定している。よって、符号配置部10
は、上記ステップS461乃至S463の処理を繰り返
し、最終的にトラックmデータに係るチャネル番号符号
符号[m]を配置すると、チャネル番号符号配置処理を終
了し、図50のステップS388にリターンすることに
なる。In one round, I = I in step S460.
Since it is set to 0, the code arrangement unit 10 proceeds from step S461 to the Yes side, arranges the channel number code [0] (step S462), and then increments the variable I related to the track number by 1 and I = 1 (step S463). Then, the code arrangement unit 10 repeats the processing of steps S461 to S463 again, and subsequently arranges the channel number code code [1]. In this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the code arrangement unit 10
Repeats the processing of steps S461 to S463 and finally arranges the channel number code code [m] related to the track m data, terminates the channel number code arrangement processing, and returns to step S388 of FIG. Become.
【0343】続いて、符号配置部10は、その他情報符
号を配置する(ステップS389)。Subsequently, the code arrangement unit 10 arranges other information codes (step S389).
【0344】即ち、図60のフローチャートに詳細に示
されるように、符号配置部10は先ずトラック番号に係
る変数Iに0を代入した後(ステップS470)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS471)。That is, as shown in detail in the flowchart of FIG. 60, the code arrangement unit 10 first substitutes 0 into the variable I relating to the track number (step S470), and then this variable I is smaller than the number M of tracks. It is determined whether or not (step S471).
【0345】1巡面では、上記ステップS470でI=
0と設定されているので、符号配置部10は、ステップ
S471よりYes側に進み、次いでチャネル番号に係
るJに0を代入する(ステップS472)。続いて、符
号配置部10は、このチャネル番号に係る変数Jが最大
チャネル数に係るMAX_CHよりも小さいか否かを判断する
(ステップS473)。1巡面では、上記ステップS4
72でJ=0と設定されているので、符号配置部10
は、ステップS473よりYes側に進み、その他情報
符号[0][0]を配置した後(ステップS474)、チャネ
ル番号に係るJを1つインクリメントしてJ=1とする
(ステップS475)。この第2の実施の形態では、最
大チャネル数に係るMAX_CHに4が予め設定されている。In one round, I = I in step S470.
Since it is set to 0, the code arrangement unit 10 proceeds from Step S471 to the Yes side, and then substitutes 0 for J related to the channel number (Step S472). Subsequently, the code arrangement unit 10 determines whether or not the variable J related to this channel number is smaller than MAX_CH related to the maximum number of channels (step S473). In one round, the above step S4
Since J = 0 is set in 72, the code arrangement unit 10
Advances from Step S473 to Yes, arranges the other information code [0] [0] (Step S474), and increments J related to the channel number by 1 to set J = 1 (Step S475). In the second embodiment, 4 is preset in MAX_CH related to the maximum number of channels.
【0346】よって、符号配置部10は、これ以降、ス
テップS473乃至S475の処理を繰り返して、その
他情報符号[0][1]、その他情報符号[0][2]、その他情報
符号[0][3]、その他情報符号[0][4]を順次配置すること
になる。Therefore, the code arranging unit 10 thereafter repeats the processing of steps S473 to S475 to repeat the other information code [0] [1], the other information code [0] [2], and the other information code [0]. [3] and other information codes [0] [4] will be sequentially arranged.
【0347】そして、符号配置部10は、その他情報符
号[0][4]を配置した後は、ステップS473よりNo側
に進み、トラック番号に係る変数Iを1つインクリメン
トしてI=1とした後、再びステップS471乃至S4
75の処理を繰り返し、続いて、その他情報符号[1]
[1]、その他情報符号[1][2]、その他情報符号[1][3]、
その他情報符号[1][4]を順次配置することになる。After arranging the other information code [0] [4], the code arranging section 10 proceeds to the No side from step S473, increments the variable I relating to the track number by 1 and sets I = 1. And then steps S471 to S4 again.
The process of 75 is repeated, and then the other information code [1]
[1], other information code [1] [2], other information code [1] [3],
Other information codes [1] [4] will be sequentially arranged.
【0348】この例では、先に図3で示したようにトラ
ック数に係るMにm+1が設定されていることを想定し
ている。よって、符号配置部10は、上記ステップS4
71乃至S475の処理を繰り返し、最終的にトラック
mデータに係るその他情報符号[m][1]、その他情報符号
[m][2]、その他情報符号[m][3]、その他情報符号[m][4]
を順次配置すると、その他情報符号配置処理を終了し、
こうして、符号配置部10による符号配置に係る処理を
終了する。In this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the code arrangement unit 10 performs the above step S4.
The processing from 71 to S475 is repeated, and finally the other information code [m] [1] related to the track m data and the other information code
[m] [2], other information code [m] [3], other information code [m] [4]
Sequentially, the other information code allocation processing is terminated,
In this way, the code arrangement processing by the code arrangement unit 10 is completed.
【0349】以上の処理により、図61に示されるよう
な基本配置順序で各符号が配列され1次符号5が生成さ
れる。即ち、この図61の例では、より詳細には、1次
符号5の基本配列順序は、Δタイム符号、音程符号、ゲ
ートタイム符号、ベロシティ値符号、差分ベンド値符
号、差分ボリューム値符号、イベント種別識別符号、チ
ャネル番号符号、その他情報符号の順となっている。更
に、各符号の内部配列は、先に図25で示した内容と同
様であるので、ここでは重複した説明は省略する。Through the above processing, the codes are arranged in the basic arrangement order as shown in FIG. 61, and the primary code 5 is generated. That is, in the example of FIG. 61, more specifically, the basic arrangement order of the primary code 5 is as follows: Δ time code, pitch code, gate time code, velocity value code, differential bend value code, differential volume value code, event. The order is the type identification code, the channel number code, and the other information code. Further, since the internal arrangement of each code is the same as the content shown in FIG. 25, the duplicate description will be omitted here.
【0350】この1次符号5は2次符号生成部3に入力
され、汎用圧縮方式による圧縮が行われる。この第2の
実施の形態では、汎用圧縮技術として、LZ符号化法や
ハフマン符号化法、ランレングス符号化法、更には、こ
れらを複合した方式(例えばLHAやZIP等)を採用
することができる。This primary code 5 is input to the secondary code generator 3 and compressed by the general-purpose compression method. In the second embodiment, the LZ encoding method, the Huffman encoding method, the run length encoding method, and a method combining these (for example, LHA or ZIP) may be adopted as the general-purpose compression technique. it can.
【0351】より詳細には、例えばLZ符号化法を採用
する場合を想定すると、先ず、1次符号5の先頭から処
理を開始し、処理対象位置のデータパターンと先に処理
された所定範囲内のデータパターンとを比較する。そし
て、両者が一致する場合には処理対象位置から当該デー
タパターンまでの距離や一致したデータパターンの長さ
等の情報を2次符号6として出力する。これに対して、
両者が一致しない場合には、1次符号5を2次符号6と
してそのまま出力する。More specifically, assuming that the LZ encoding method is adopted, first, the processing is started from the beginning of the primary code 5, and the data pattern of the processing target position and the previously processed predetermined range are set. Compare with the data pattern of. When the two match, the information such as the distance from the processing target position to the data pattern and the length of the matched data pattern is output as the secondary code 6. On the contrary,
If they do not match, the primary code 5 is output as it is as the secondary code 6.
【0352】このような一連の処理を1次符号5の先頭
から最後まで繰り返す。The above series of processing is repeated from the beginning to the end of the primary code 5.
【0353】第2の実施の形態では、前述したように各
情報を情報種別毎かつチャネル毎に時間的に独立した領
域に配置した1次符号5を生成していることから、デー
タパターンが繰り返すことを利用して繰り返し分を圧縮
するLZ符号化法にも好適であり、圧縮率を低くするこ
とができる。さらに、例えばイベント種別識別符号につ
いては、イベント種別の出現頻度に応じて符号を動的に
割り当てることも可能としていることから、バイト毎の
符号の出現頻度によって重み付けして重みのある符号に
関して少ないビット数で記録できるように符号化するハ
フマン符号化法にも好適であって、圧縮率を低くするこ
とができる。また、この他、ベロシティ情報は、SMF
の改良フォーマットの下では値の分布に偏りが出ること
が多いことから、ベロシティ情報を独立して纏めて記録
したことで、ハフマン符号化法による符号化の効率に好
影響を及ぼしている。In the second embodiment, as described above, since the primary code 5 in which each information is arranged in a temporally independent area for each information type and each channel is generated, the data pattern is repeated. This is also suitable for the LZ encoding method in which the repeated portion is compressed by utilizing this fact, and the compression rate can be lowered. Further, for example, with regard to the event type identification code, since it is possible to dynamically assign the code according to the frequency of occurrence of the event type, weighting is performed according to the frequency of occurrence of the code for each byte, and a small number of bits are assigned to a code having a weight. It is also suitable for the Huffman coding method for coding so that it can be recorded as a number, and the compression rate can be lowered. In addition to this, the velocity information is SMF.
Since there is often a bias in the distribution of values under the improved format of (1), recording the velocity information independently and collectively has a favorable effect on the efficiency of encoding by the Huffman encoding method.
【0354】尚、第2の実施の形態では、LZ法及びハ
フマン符号化の複合方式(LHA)を採用することを想
定しているが、その場合には、上述した双方の効果が奏
されることは勿論である。In the second embodiment, it is assumed that the LZ method and the Huffman coding composite method (LHA) are adopted, but in that case, both effects described above are exhibited. Of course.
【0355】(演奏情報復号装置等)次に、図62乃至
図74を参照して、1次符号又は2次符号を復号する第
2の実施の形態に係る演奏情報復号装置、演奏情報復号
方法、演奏情報復号プログラムについて詳細に説明す
る。尚、演奏情報復号装置による作用は、第1の実施の
形態に係る演奏情報復号方法、演奏情報復号プログラム
に相当する。(Performance Information Decoding Device) Next, with reference to FIGS. 62 to 74, the performance information decoding device and the performance information decoding method according to the second embodiment for decoding the primary code or the secondary code. The performance information decoding program will be described in detail. The operation of the performance information decoding device corresponds to the performance information decoding method and the performance information decoding program according to the first embodiment.
【0356】この第2の実施の形態に係る演奏情報復号
装置80の構成は、先に図26に示した構成と略同様で
あり、2次符号復号部2と1次符号復号部52からな
る。The configuration of the performance information decoding apparatus 80 according to the second embodiment is substantially the same as the configuration shown in FIG. 26, and includes a secondary code decoding unit 2 and a primary code decoding unit 52. .
【0357】この2次符号復号部51は、上述した汎用
圧縮方式により圧縮された上記2次符号6を1次符号5
に復号するものである。The secondary code decoding section 51 converts the secondary code 6 compressed by the general-purpose compression method described above into the primary code 5
To decrypt.
【0358】更に、1次符号復号部52は、2次符号復
号部51で復号された1次符号5を上述したフォーマッ
トの楽曲ファイル4に復号するものである。尚、この1
次符号復号部51の詳細な構成は、先に示した図27の
構成と略同様であり、チャネル別符号抽出部110(図
62で後述)、トラック復号部120、トラックマージ
及びチャネル番号符号復号部55、トラック配置部56
を有している。Further, the primary code decoding section 52 decodes the primary code 5 decoded by the secondary code decoding section 51 into the music file 4 in the above-mentioned format. In addition, this 1
The detailed configuration of the next code decoding unit 51 is substantially the same as the configuration shown in FIG. 27 described above, and the code extracting unit for each channel 110 (described later in FIG. 62), the track decoding unit 120, the track merging and the channel number code decoding. 55, track placement section 56
have.
【0359】以下、これら各部の構成及び作用を詳述す
る。The structure and operation of each of these parts will be described in detail below.
【0360】先ず、チャネル別符号抽出部110の詳細
な構成は、図62に示される通りであり、1次符号5に
含まれる各符号をチャネル別に抽出するものである。First, the detailed configuration of the code-by-channel extraction section 110 is as shown in FIG. 62, and each code included in the primary code 5 is extracted for each channel.
【0361】つまり、チャネル別符号抽出部110は、
1次符号5より、トラック0,チャネル0の符号群、ト
ラック0,チャネル1の符号群、…、トラックm,チャ
ネルnの符号群をチャネル別に順次抽出する。尚、これ
ら各符号群には、Δタイム符号、音程符号、ゲートタイ
ム符号、ベロシティ値符号、差分ベンド値符号、差分ボ
リューム値符号、イベント種別識別符号、その他情報符
号が含まれる。That is, the channel code extraction section 110
From the primary code 5, track 0, channel 0 code group, track 0, channel 1 code group, ..., Track m, channel n code group are sequentially extracted for each channel. Each of these code groups includes a Δ time code, a pitch code, a gate time code, a velocity value code, a differential bend value code, a differential volume value code, an event type identification code, and other information codes.
【0362】以下、図63のフローチャートを参照し
て、このチャネル別符号抽出部110によるチャネル別
符号の抽出に係る処理の流れを詳細に説明する。The flow of the processing relating to the extraction of the channel code by the channel code extraction section 110 will be described in detail below with reference to the flowchart in FIG.
【0363】さて、本処理に入ると、チャネル別符号抽
出部110は、先ずヘッダ・チャンクの符号を抽出する
(ステップS480)。以降、各符号を抽出する。Now, when entering this processing, the channel code extraction section 110 first extracts the code of the header chunk (step S480). After that, each code is extracted.
【0364】先ず、チャネル別符号抽出部110はΔタ
イム符号を抽出する(ステップS481)。即ち、図6
4のフローチャートに詳細に示されるように、チャネル
別符号抽出部110は、先ずトラック番号に係る変数I
に0を代入した後(ステップS490)、この変数Iが
トラック数Mよりも小さいか否かを判断する(ステップ
S491)。1巡面では、上記ステップS490でI=
0と設定されているので、チャネル別符号抽出部110
は、ステップS491よりYes側に進み、次いでチャ
ネル番号に係る変数Jに0を代入する(ステップS49
2)。続いて、チャネル別符号抽出部110は、このチ
ャネル番号に係る変数Jが最大チャネル数に係るMAX_CH
よりも小さいか否かを判断する(ステップS493)。First, the channel code extraction unit 110 extracts the Δtime code (step S481). That is, FIG.
As shown in detail in the flowchart of FIG. 4, the channel-specific code extraction unit 110 first determines a variable I relating to the track number.
After substituting 0 for (step S490), it is determined whether or not this variable I is smaller than the number M of tracks (step S491). In one round, I =
Since it is set to 0, the channel-specific code extraction unit 110
Proceeds from Step S491 to Yes, and then assigns 0 to the variable J related to the channel number (Step S49
2). Next, the channel-specific code extraction unit 110 determines that the variable J related to this channel number is MAX_CH related to the maximum number of channels.
It is determined whether it is smaller than (step S493).
【0365】1巡面では、上記ステップS492でJ=
0と設定されているので、チャネル別符号抽出部110
は、ステップS173よりYes側に進み、Δタイム符
号[0][0]を抽出した後(ステップS494)、チャネル
番号に係る変数Jを1つインクリメントしてJ=1とす
る(ステップS495)。In the 1st round, J = in step S492.
Since it is set to 0, the channel-specific code extraction unit 110
Advances from Step S173 to the Yes side, extracts the Δtime code [0] [0] (Step S494), and increments the variable J related to the channel number by 1 to set J = 1 (Step S495).
【0366】この第2の実施の形態では、最大チャネル
数に係るMAX_CHに4が予め設定されているので、チャネ
ル別符号抽出部110は、これ以降、上記ステップS4
93乃至S495の処理を繰り返し、Δタイム符号[0]
[1]、Δタイム符号[0][2]、Δタイム符号[0][3]、Δタ
イム符号[0][4]を順次抽出する。In this second embodiment, since MAX_CH relating to the maximum number of channels is preset to 4, the code-by-channel code extraction unit 110 will thereafter perform the above step S4.
The processing from 93 to S495 is repeated, and the Δ time code [0]
[1], Δ time code [0] [2], Δ time code [0] [3], and Δ time code [0] [4] are sequentially extracted.
【0367】チャネル別符号抽出部110は、このΔタ
イム符号[0][4]を抽出した後は、ステップS493より
No側に進み、トラック番号に係る変数Iを1つインク
リメントした後、再び上記ステップS491乃至S49
5の処理を繰り返し、Δタイム符号[1][1]、Δタイム符
号[1][2]、Δタイム符号[1][3]、Δタイム符号[1][4]を
順次抽出する。この例でも、先に図3で示したようにト
ラック数に係るMにm+1が設定されていることを想定
している。よって、チャネル別符号抽出部110は、上
記ステップS491乃至S495の処理を繰り返して、
最終的にトラックmデータに係るΔタイム符号[m][1]、
Δタイム符号[m][2]、Δタイム符号[m][3]、Δタイム符
号[m][4]を順次抽出すると、このデルタタイム符号抽出
処理を終了して、図63のステップS481にリターン
する。After extracting the Δ time code [0] [4], the channel-specific code extraction section 110 advances from step S493 to No, increments the variable I relating to the track number by one, and then repeats the above. Steps S491 to S49
The processing of 5 is repeated, and the Δtime code [1] [1], the Δtime code [1] [2], the Δtime code [1] [3], and the Δtime code [1] [4] are sequentially extracted. In this example as well, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 110 repeats the processing of steps S491 to S495,
Finally, Δ time code [m] [1] related to track m data,
When the Δtime code [m] [2], the Δtime code [m] [3], and the Δtime code [m] [4] are sequentially extracted, this delta time code extraction processing is ended, and step S481 of FIG. 63 is performed. Return to.
【0368】続いて、チャネル別符号抽出部110は音
程符号を抽出する(ステップS482)。即ち、図65
のフローチャートに詳細に示されるように、チャネル別
符号抽出部110は、先ずトラック番号に係る変数Iに
0を代入した後(ステップS500)、この変数Iがト
ラック数Mよりも小さいか否かを判断する(ステップS
501)。1巡面では、上記ステップS500でI=0
と設定されているので、チャネル別符号抽出部110
は、ステップS501よりYes側に進み、次いでチャ
ネル番号に係るJに0を代入する(ステップS50
2)。続いて、チャネル別符号抽出部110は、このチ
ャネル番号に係る変数Jが最大チャネル数に係るMAX_CH
よりも小さいか否かを判断する(ステップS503)。Subsequently, the channel code extraction unit 110 extracts the pitch code (step S482). That is, FIG.
As shown in detail in the flowchart of FIG. 3, the channel-specific code extraction unit 110 first substitutes 0 into the variable I relating to the track number (step S500), and then determines whether this variable I is smaller than the number M of tracks. Judge (step S
501). For one round, I = 0 in step S500.
Is set, the channel-specific code extraction unit 110
Proceeds from Step S501 to Yes, and then substitutes 0 for J relating to the channel number (Step S50
2). Next, the channel-specific code extraction unit 110 determines that the variable J related to this channel number is MAX_CH related to the maximum number of channels.
It is determined whether it is smaller than (step S503).
【0369】1巡面では、上記ステップS502でJ=
0と設定されているので、チャネル別符号抽出部110
は、ステップS503よりYes側に進み、音程符号
[0][0]を抽出した後(ステップS504)、チャネル番
号に係る変数Jを1つインクリメントしてJ=1とする
こととしている(ステップS505)。[0369] In the first round, J = J in step S502.
Since it is set to 0, the channel-specific code extraction unit 110
Goes to the Yes side from step S503, and the pitch code
[0] After extracting [0] (step S504), the variable J related to the channel number is incremented by 1 to set J = 1 (step S505).
【0370】この第2の実施の形態では、最大チャネル
数に係るMAX_CHに4が予め設定されているので、チャネ
ル別符号抽出部110は、以降、ステップS503乃至
S505の処理を繰り返し、音程符号[0][1]、音程符号
[0][2]、音程符号[0][3]、音程符号[0][4]を順次抽出す
る。チャネル別符号抽出部110は、この音程符号[0]
[4]を抽出した後は、ステップS503よりNo側に進
み、トラック番号に係る変数Iを1つインクリメントし
た後、再びステップS501乃至S505の処理を繰り
返し、続いて音程符号[1][1]、音程符号[1][2]、音程符
号[1][3]、音程符号[1][4]を順次抽出することになる。
この例でも、先に図3で示したようにトラック数に係る
Mにm+1が設定されていることを想定している。In this second embodiment, since MAX_CH related to the maximum number of channels is preset to 4, the code-by-channel code extraction unit 110 thereafter repeats the processing of steps S503 to S505 to perform the pitch code [ 0] [1], pitch code
[0] [2], pitch code [0] [3], and pitch code [0] [4] are sequentially extracted. The channel code extraction unit 110 uses the pitch code [0].
After extracting [4], the process proceeds to the No side from step S503, increments the variable I relating to the track number by one, and then repeats the processes of steps S501 to S505, and then the pitch code [1] [1] The pitch code [1] [2], the pitch code [1] [3], and the pitch code [1] [4] are sequentially extracted.
In this example as well, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG.
【0371】よって、チャネル別符号抽出部110は、
上記ステップS501乃至S505の処理を繰り返し、
最終的にトラックmデータに係る音程符号[m][1]、音程
符号[m][2]、音程符号[m][3]、音程符号[m][4]を順次抽
出すると、この音程符号抽出処理を終了し、図63のス
テップS482にリターンする。Therefore, the channel code extraction section 110
Repeat the above steps S501 to S505,
Finally, when the pitch code [m] [1], the pitch code [m] [2], the pitch code [m] [3], and the pitch code [m] [4] related to the track m data are sequentially extracted, this pitch The code extraction process is terminated, and the process returns to step S482 in FIG.
【0372】続いて、チャネル別符号抽出部110はゲ
ートタイム符号を抽出する(ステップS483)。即
ち、図66のフローチャートに詳細に示されるように、
チャネル別符号抽出部110は、先ずトラック番号に係
る変数Iに0を代入した後(ステップS510)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS511)。先ず、1巡面では、上記ステッ
プS510でI=0と設定されているので、チャネル別
符号抽出部110は、ステップS511よりYes側に
進み、次いでチャネル番号に係る変数Jに0を設定する
(ステップS512)。続いて、チャネル別符号抽出部
110は、このチャネル番号に係る変数Jが最大チャネ
ル数に係るMAX_CHよりも小さいか否かを判断する(ステ
ップS513)。Subsequently, the channel code extraction unit 110 extracts the gate time code (step S483). That is, as shown in detail in the flowchart of FIG.
The channel-specific code extraction unit 110 first substitutes 0 into the variable I relating to the track number (step S510), and then determines whether or not this variable I is smaller than the number M of tracks (step S511). First, in the first round, since I = 0 is set in step S510, the channel-specific code extraction unit 110 proceeds from step S511 to the Yes side, and then sets variable J related to the channel number to 0 ( Step S512). Subsequently, the channel code extraction unit 110 determines whether the variable J related to this channel number is smaller than MAX_CH related to the maximum number of channels (step S513).
【0373】1巡面では、上記ステップS512でJ=
0と設定されているので、チャネル別符号抽出部110
は、ステップS513よりYesに進み、ゲートタイム
符号[0][0]を抽出した後(ステップS514)、チャネ
ル番号に係る変数Jを1つインクリメントしてJ=1と
することとしている(ステップS515)。For one round, J = J in step S512.
Since it is set to 0, the channel-specific code extraction unit 110
Advances from step S513 to Yes, extracts the gate time code [0] [0] (step S514), and increments the variable J related to the channel number by 1 to set J = 1 (step S515). ).
【0374】この第2の実施の形態では、最大チャネル
数に係るMAX_CHに4が予め設定されているので、チャネ
ル別符号抽出部110は、以降、ステップS513乃至
S515の処理を繰り返し、ゲートタイム符号[0][1]、
ゲートタイム符号[0][2]、ゲートタイム符号[0][2]、ゲ
ートタイム符号[0][4]を順次抽出する。In this second embodiment, since MAX_CH related to the maximum number of channels is preset to 4, the channel-by-channel code extraction unit 110 thereafter repeats the processing of steps S513 to S515 to repeat the gate time code. [0] [1],
The gate time code [0] [2], the gate time code [0] [2], and the gate time code [0] [4] are sequentially extracted.
【0375】そして、チャネル別符号抽出部110は、
このゲートタイム符号[0][4]が抽出した後は、ステップ
S513よりNo側に進み、トラック番号に係る変数I
を1つインクリメントしてI=1とした後、再びステッ
プS511乃至S515の処理を繰り返し、続いてゲー
トタイム符号[1][1]、ゲートタイム符号[1][2]、ゲート
タイム符号[1][3]、ゲートタイム符号[1][4]を順次抽出
する。Then, the code extraction unit for each channel 110
After the gate time code [0] [4] is extracted, the process proceeds to the No side from step S513, and the variable I relating to the track number.
Is incremented by 1 to set I = 1, and then the processes of steps S511 to S515 are repeated again, and subsequently, the gate time code [1] [1], the gate time code [1] [2], and the gate time code [1 ] [3] and gate time codes [1] [4] are sequentially extracted.
【0376】この例でも、先に図3で示したようにトラ
ック数に係るMにm+1が設定されていることを想定し
ている。よって、チャネル別符号抽出部110は、上記
ステップS511乃至S515の処理を繰り返して、最
終的に、トラックmデータに係るゲートタイム符号[m]
[1]、ゲートタイム符号[m][2]、ゲートタイム符号[m]
[3]、ゲートタイム符号[m][4]を順次抽出すると、このN
ote Off音程符号抽出処理を終了し、図63のステップ
S483にリターンする。Also in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 110 repeats the processing of steps S511 to S515, and finally the gate time code [m] related to the track m data.
[1], Gate time code [m] [2], Gate time code [m]
[3] and the gate time code [m] [4] are extracted sequentially, this N
The ote Off pitch code extraction process is terminated, and the process returns to step S483 in FIG.
【0377】続いて、チャネル別符号抽出部110はベ
ロシティ値符号を抽出する(ステップS484)。即
ち、図67のフローチャートに詳細に示されるように、
チャネル別符号抽出部110は、先ずトラック番号に係
る変数Iに0を代入した後(ステップS520)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS521)。1巡面では、上記ステップS5
20でI=0と設定されているので、チャネル別符号抽
出部110は、ステップS521よりYesに進み、次
いでチャネル番号に係る変数Jに0を代入する(ステッ
プS522)。続いて、チャネル別符号抽出部110
は、このチャネル番号に係る変数Jが最大チャネル数に
係るMAX_CHよりも小さいか否かを判断する(ステップS
523)。Subsequently, the channel code extraction unit 110 extracts the velocity value code (step S484). That is, as shown in detail in the flowchart of FIG.
The channel-specific code extraction unit 110 first substitutes 0 into the variable I relating to the track number (step S520), and then determines whether this variable I is smaller than the number M of tracks (step S521). In one round, the above step S5
Since I = 0 is set at 20, the channel-by-channel code extraction unit 110 proceeds to Yes from step S521, and then substitutes 0 for the variable J related to the channel number (step S522). Then, the channel-specific code extraction unit 110
Determines whether the variable J related to this channel number is smaller than MAX_CH related to the maximum number of channels (step S
523).
【0378】1巡面では、上記ステップS522でJ=
0と設定されているので、チャネル別符号抽出部110
は、ステップS523よりYesに進み、ベロシティ値
符号[0][0]を抽出した後(ステップS524)、チャネ
ル番号に係るJを1つインクリメントしてJ=1とする
こととしている(ステップS525)。[0378] In the first round, J = J in step S522.
Since it is set to 0, the channel-specific code extraction unit 110
Advances from step S523 to Yes, extracts velocity value code [0] [0] (step S524), and increments J related to the channel number by 1 to set J = 1 (step S525). .
【0379】尚、この第2の実施の形態では、最大チャ
ネル数に係るMAX_CHに4が予め設定されている。よっ
て、チャネル別符号抽出部110は、以降、ステップS
523乃至S525の処理を繰り返し、ベロシティ値符
号[0][1]、ベロシティ値符号[0][2]、ベロシティ値符号
[0][3]、ベロシティ値符号[0][4]を順次抽出する。In this second embodiment, 4 is preset in MAX_CH related to the maximum number of channels. Therefore, the channel-by-channel code extraction unit 110, after that, in step S
523 to S525 are repeated, and the velocity value code [0] [1], velocity value code [0] [2], velocity value code
[0] [3] and velocity value codes [0] [4] are sequentially extracted.
【0380】そして、チャネル別符号抽出部110は、
このベロシティ値符号[0][4]を抽出した後は、ステップ
S523よりNo側に進み、トラック番号に係る変数I
を1つインクリメントしてI=1とした後、再びステッ
プS521乃至S525の処理を繰り返し、続いてベロ
シティ値符号[1][1]、ベロシティ値符号[1][2]、ベロシ
ティ値符号[1][3]、ベロシティ値符号[1][4]を順次抽出
する。Then, the code extraction unit for each channel 110
After extracting the velocity value code [0] [4], the process proceeds to No side from step S523, and the variable I relating to the track number
Is incremented by 1 to set I = 1, and then the processes of steps S521 to S525 are repeated, and subsequently, the velocity value code [1] [1], the velocity value code [1] [2], and the velocity value code [1 ] [3] and velocity value codes [1] [4] are sequentially extracted.
【0381】この例でも、先に図3で示したようにトラ
ック数に係るMにm+1が設定されていることを想定し
ている。よって、チャネル別符号抽出部110は、上記
ステップS521乃至S525の処理を繰り返して、最
終的に、トラックmデータに係るベロシティ値符号[m]
[1]、ベロシティ値符号[m][2]、ベロシティ値符号[m]
[3]、ベロシティ値符号[m][4]を順次抽出すると、この
ベロシティ値符号抽出処理を終了し、図63のステップ
S484にリターンする。Also in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 110 repeats the processes of steps S521 to S525, and finally the velocity value code [m] related to the track m data.
[1], velocity value sign [m] [2], velocity value sign [m]
When [3] and velocity value code [m] [4] are sequentially extracted, this velocity value code extraction processing is ended, and the process returns to step S484 in FIG.
【0382】続いて、チャネル別符号抽出部110は差
分ベンド値符号を抽出する(ステップS485)。即
ち、図68のフローチャートに詳細に示されるように、
チャネル別符号抽出部110は、先ずトラック番号に係
る変数Iに0を設定した後(ステップS530)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS531)。1巡面では、上記ステップS5
30でI=0と設定されているので、チャネル別符号抽
出部110は、ステップS531よりYes側に進み、
次いでチャネル番号に係るJに0を代入する(ステップ
S532)。続いて、チャネル別符号抽出部110は、
このチャネル番号に係る変数Jが最大チャネル数に係る
MAX_CHよりも小さいか否かを判断する(ステップS53
3)。Subsequently, the channel code extraction unit 110 extracts the differential bend value code (step S485). That is, as shown in detail in the flowchart of FIG.
The channel-specific code extraction unit 110 first sets 0 to the variable I relating to the track number (step S530), and then determines whether this variable I is smaller than the number M of tracks (step S531). In one round, the above step S5
Since I = 0 is set in 30, the channel-specific code extraction unit 110 advances to Yes from step S531,
Next, 0 is substituted for J related to the channel number (step S532). Then, the channel code extraction unit 110
The variable J related to this channel number relates to the maximum number of channels
It is determined whether it is smaller than MAX_CH (step S53).
3).
【0383】1巡面では、上記ステップS532でJ=
0と設定されているので、チャネル別符号抽出部110
は、ステップS533よりYes側に進み、差分ベンド
値符号[0][0]を抽出した後(ステップS534)、チャ
ネル番号に係る変数Jを1つインクリメントしてJ=1
とする(ステップS535)。In one round, J = in step S532.
Since it is set to 0, the channel-specific code extraction unit 110
Proceeds from Step S533 to the Yes side, and after extracting the difference bend value code [0] [0] (Step S534), the variable J related to the channel number is incremented by 1 and J = 1.
(Step S535).
【0384】この第2の実施の形態では、最大チャネル
数に係るMAX_CHに4が予め設定されているので、チャネ
ル別符号抽出部110は、以降、ステップS533乃至
S535の処理を繰り返し、差分ベンド値符号[0][1]、
差分ベンド値符号[0][2]、差分ベンド値符号[0][3]、差
分ベンド値符号[0][4]を順次抽出する。In this second embodiment, since MAX_CH related to the maximum number of channels is preset to 4, the code-by-channel code extraction unit 110 thereafter repeats the processing of steps S533 to S535 to obtain the differential bend value. Code [0] [1],
The differential bend value code [0] [2], the differential bend value code [0] [3], and the differential bend value code [0] [4] are sequentially extracted.
【0385】そして、チャネル別符号抽出部110は、
この差分ベンド値符号[0][4]を抽出した後は、ステップ
S533よりNo側に進み、トラック番号に係る変数I
を1つインクリメントした後、ステップS531乃至S
535の処理を繰り返し、続いて差分ベンド値符号[1]
[1]、差分ベンド値符号[1][2]、差分ベンド値符号[1]
[3]、差分ベンド値符号[1][4]を順次抽出することにな
る。Then, the code extraction unit for each channel 110
After extracting the difference bend value code [0] [4], the process proceeds from the step S533 to the No side, and the variable I relating to the track number.
After incrementing by one, steps S531 to S531
The processing of 535 is repeated, and then the differential bend value code [1]
[1], differential bend value code [1] [2], differential bend value code [1]
[3] and differential bend value codes [1] [4] will be sequentially extracted.
【0386】この例でも、先に図3で示したようにトラ
ック数に係るMにm+1が設定されていることを想定し
ている。よって、チャネル別符号抽出部110は、上記
ステップS531乃至S535の処理を繰り返して、最
終的に、トラックmデータに係る差分ベンド値符号[m]
[1]、差分ベンド値符号[m][2]、差分ベンド値符号[m]
[3]、差分ベンド値符号[m][4]を順次抽出すると、この
差分ベンド値符号抽出処理を終了し、図63のステップ
S485にリターンする。Also in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 110 repeats the processing of steps S531 to S535, and finally the differential bend value code [m] related to the track m data.
[1], differential bend value code [m] [2], differential bend value code [m]
[3] and the differential bend value code [m] [4] are sequentially extracted, the differential bend value code extraction processing ends, and the process returns to step S485 in FIG.
【0387】続いて、チャネル別符号抽出部110は、
差分ボリューム値符号を抽出する(ステップS48
6)。即ち、図69のフローチャートに詳細に示される
ように、チャネル別符号抽出部110は、先ずトラック
番号に係る変数Iに0を代入した後(ステップS54
0)、このIがトラック数Mよりも小さいか否かを判断
する(ステップS541)。1巡面では、上記ステップ
S540でI=0と設定されているので、チャネル別符
号抽出部110は、ステップS541よりYes側に進
み、次いでチャネル番号に係る変数Jに0を代入する
(ステップS542)。続いて、チャネル別符号抽出部
110は、このチャネル番号に係る変数Jが最大チャネ
ル数に係るMAX_CHよりも小さいか否かを判断する(ステ
ップS543)。Subsequently, the channel code extraction section 110
The differential volume value code is extracted (step S48).
6). That is, as shown in detail in the flowchart of FIG. 69, the channel-specific code extraction unit 110 first substitutes 0 into the variable I relating to the track number (step S54).
0), it is determined whether or not this I is smaller than the number M of tracks (step S541). In the first round, since I = 0 is set in step S540, the channel-specific code extraction unit 110 advances to Yes from step S541, and then substitutes 0 into the variable J related to the channel number (step S542). ). Next, the channel code extraction unit 110 determines whether the variable J related to this channel number is smaller than MAX_CH related to the maximum number of channels (step S543).
【0388】この1巡面では、上記ステップS542で
J=0と設定されているので、チャネル別符号抽出部1
10は、ステップS543よりYes側に進み、差分ボ
リューム値符号[0][0]を抽出した後(ステップS54
4)、チャネル番号に係るJを1つインクリメントして
J=1とする(ステップS545)。尚、この第2の実
施の形態では、最大チャネル数に係るMAX_CHに4が予め
設定されている。In this first round, since J = 0 is set in step S542, the code extraction unit for each channel 1
In step 10, the process proceeds from step S543 to the Yes side, and after extracting the differential volume value code [0] [0] (step S54
4), J related to the channel number is incremented by 1 to set J = 1 (step S545). In the second embodiment, 4 is set in advance in MAX_CH related to the maximum number of channels.
【0389】よって、チャネル別符号抽出部110は、
以降、ステップS543乃至S545の処理を繰り返し
て、差分ボリューム値符号[0][1]、差分ボリューム値符
号[0][2]、差分ボリューム値符号[0][3]、差分ボリュー
ム値符号[0][4]を順次抽出する。チャネル別符号抽出部
110は、この差分ボリューム値符号[0][4]を抽出した
後は、ステップS543よりNo側に進み、トラック番
号に係る変数Iを1つインクリメントした後に、再びス
テップS541乃至S545の処理を繰り返し、続いて
差分ボリューム値符号[1][1]、差分ボリューム値符号
[1][2]、差分ボリューム値符号[1][3]、差分ボリューム
値符号[1][4]を順次抽出する。Therefore, the channel code extraction section 110
After that, the processes of steps S543 to S545 are repeated, and the difference volume value code [0] [1], the difference volume value code [0] [2], the difference volume value code [0] [3], the difference volume value code [ 0] [4] are sequentially extracted. After extracting this differential volume value code [0] [4], the channel-specific code extraction unit 110 proceeds to No side from step S543, increments the variable I related to the track number by one, and then repeats steps S541 to S541. The process of S545 is repeated, and then the differential volume value code [1] [1] and the differential volume value code
[1] [2], differential volume value code [1] [3], differential volume value code [1] [4] are sequentially extracted.
【0390】この例でも、先に図3で示したようにトラ
ック数に係るMにm+1が設定されていることを想定し
ている。よって、チャネル別符号抽出部110は、上記
ステップS541乃至S545の処理を繰り返し、最終
的にトラックmデータに係る差分ボリューム値符号[m]
[1]、差分ボリューム値符号[m][2]、差分ボリューム値
符号[m][3]、差分ボリューム値符号[m][4]を順次抽出す
ると、差分ボリューム値符号抽出処理を終了し、図63
のステップS486にリターンする。Also in this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 110 repeats the processing of steps S541 to S545, and finally the differential volume value code [m] related to the track m data.
When the differential volume value code [m] [2], differential volume value code [m] [3], and differential volume value code [m] [4] are sequentially extracted, the differential volume value code extraction processing ends. , FIG. 63
Return to step S486.
【0391】続いて、チャネル別符号抽出部110はイ
ベント種別識別符号を抽出する(ステップS487)。
即ち、図70のフローチャートに詳細に示されるよう
に、チャネル別符号抽出部110は、先ずトラック番号
に係る変数Iに0を代入した後(ステップS550)、
この変数Iがトラック数Mよりも小さいか否かを判断す
る(ステップS551)。先ず、1巡面では、上記ステ
ップS550でI=0と設定されているので、チャネル
別符号抽出部110は、ステップS551よりYesに
進み、次いでチャネル番号に係る変数Jに0を設定する
(ステップS552)。続いて、チャネル別符号抽出部
110は、このチャネル番号に係る変数Jが最大チャネ
ル数に係るMAX_CHよりも小さいか否かを判断する(ステ
ップS553)。Next, the channel code extraction section 110 extracts the event type identification code (step S487).
That is, as shown in detail in the flowchart of FIG. 70, the channel-specific code extraction unit 110 first substitutes 0 into the variable I relating to the track number (step S550),
It is determined whether or not this variable I is smaller than the number M of tracks (step S551). First, in one round, since I = 0 is set in step S550, the channel-specific code extraction unit 110 proceeds to Yes from step S551, and then sets 0 to the variable J related to the channel number (step S551). S552). Subsequently, the channel code extraction unit 110 determines whether the variable J related to this channel number is smaller than MAX_CH related to the maximum number of channels (step S553).
【0392】1巡面では、上記ステップS552でJ=
0と設定されているので、チャネル別符号抽出部110
は、ステップS553よりYes側に進み、イベント種
別識別符号[0][0]を抽出した後(ステップS554)、
チャネル番号に係るJを1つインクリメントしてJ=1
とする(ステップS555)。In the first round, J = J in step S552.
Since it is set to 0, the channel-specific code extraction unit 110
Proceeds from Step S553 to the Yes side, and after extracting the event type identification code [0] [0] (Step S554),
The channel number J is incremented by 1 and J = 1
(Step S555).
【0393】なお、第2の実施の形態では、最大チャネ
ル数に係るMAX_CHに4が予め設定されているので、チャ
ネル別符号抽出部110は、以降、ステップS553乃
至S555の処理を繰り返し、イベント種別識別符号
[0][1]、イベント種別識別符号[0][2]、イベント種別識
別符号[0][3]、イベント種別識別符号[0][4]を順次抽出
する。チャネル別符号抽出部110は、このイベント種
別識別符号[0][4]を抽出した後は、ステップS553よ
りNo側に進み、トラック番号に係るIを1つインクリ
メントした後、再びステップS551乃至S555の処
理を繰り返し、続いてイベント種別識別符号[1][1]、イ
ベント種別識別符号[1][2]、イベント種別識別符号[1]
[3]、イベント種別識別符号[1][4]を順次抽出する。In the second embodiment, since MAX_CH relating to the maximum number of channels is preset to 4, the channel-specific code extraction unit 110 thereafter repeats the processing of steps S553 to S555 to determine the event type. Identification code
[0] [1], event type identification code [0] [2], event type identification code [0] [3], and event type identification code [0] [4] are sequentially extracted. After extracting the event type identification code [0] [4], the channel code extraction unit 110 proceeds to No side from step S553, increments I related to the track number by 1, and then again steps S551 to S555. The above process is repeated, and then event type identification code [1] [1], event type identification code [1] [2], event type identification code [1]
[3] and event type identification codes [1] and [4] are sequentially extracted.
【0394】この例では、先に図3で示したようにトラ
ック数に係るMにm+1が設定されていることを想定し
ている。よって、チャネル別符号抽出部110は、上記
ステップS551乃至S555の処理を繰り返し、最終
的にトラックmデータに係るイベント種別識別符号[m]
[1]、イベント種別識別符号[m][2]、イベント種別識別
符号[m][3]、イベント種別識別符号[m][4]を順次抽出す
ると、イベント種別識別符号抽出処理を終了し、図63
のステップS487にリターンする。In this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 110 repeats the processing of steps S551 to S555, and finally the event type identification code [m] related to the track m data.
When [1], the event type identification code [m] [2], the event type identification code [m] [3], and the event type identification code [m] [4] are sequentially extracted, the event type identification code extraction process ends. , FIG. 63
Return to step S487.
【0395】続いて、チャネル別符号抽出部110は、
チャネル番号符号を抽出する(ステップS488)。即
ち、図71のフローチャートに詳細に示されるように、
チャネル別符号抽出部110は、先ずトラック番号に係
る変数Iに0を代入した後(ステップS560)、この
変数Iがトラック数Mよりも小さいか否かを判断する
(ステップS561)。先ず、1巡面では、上記ステッ
プS560でI=0と設定されているので、チャネル別
符号抽出部110は、ステップS561よりYes側に
進み、チャネル番号符号[0]を抽出した後(ステップS
562)、トラック番号に係る変数Iを1つインクリメ
ントしI=1とする(ステップS563)。Subsequently, the channel code extraction section 110
The channel number code is extracted (step S488). That is, as shown in detail in the flowchart of FIG.
The channel-specific code extraction unit 110 first substitutes 0 into the variable I relating to the track number (step S560), and then determines whether or not this variable I is smaller than the number M of tracks (step S561). First, in the first round, since I = 0 is set in step S560, the channel-specific code extraction unit 110 proceeds to Yes from step S561 and extracts the channel number code [0] (step S561).
562), the variable I relating to the track number is incremented by 1 to set I = 1 (step S563).
【0396】そして、チャネル別符号抽出部110は、
再びステップS561乃至S563の処理を繰り返し、
続いてチャネル番号符号符号[1]を抽出する。Then, the code extraction unit for each channel 110
The processing of steps S561 to S563 is repeated again,
Then, the channel number code code [1] is extracted.
【0397】この例では、先に図3で示したようにトラ
ック数に係るMにm+1が設定されていることを想定し
ている。よって、チャネル別符号抽出部110は、上記
ステップS561乃至S563の処理を繰り返し、最終
的にトラックmデータに係るチャネル番号符号符号[m]
を抽出すると、チャネル番号符号抽出処理を終了し、図
63のステップS488にリターンする。In this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG. Therefore, the channel-specific code extraction unit 110 repeats the processing of steps S561 to S563, and finally the channel number code code [m] relating to the track m data.
When is extracted, the channel number code extraction processing is ended, and the process returns to step S488 in FIG.
【0398】続いて、チャネル別符号抽出部110は、
その他情報符号を抽出する(ステップS489)。即
ち、図72のフローチャートに詳細に示されるように、
チャネル別符号抽出部110は、先ずトラック番号に係
る変数Iに0を代入した後(ステップS570)、この
Iがトラック数Mよりも小さいか否かを判断する(ステ
ップS571)。先ず、1巡面では、上記ステップS5
70でI=0と設定されているので、チャネル別符号抽
出部110は、上記ステップS571よりYes側に進
み、次いでチャネル番号に係る変数Jに0を代入する
(ステップS572)。Subsequently, the channel code extraction section 110
Other information codes are extracted (step S489). That is, as shown in detail in the flowchart of FIG.
The channel-specific code extraction unit 110 first substitutes 0 into the variable I relating to the track number (step S570), and then determines whether this I is smaller than the number M of tracks (step S571). First, in one round, the above step S5
Since I = 0 is set at 70, the channel-specific code extraction unit 110 proceeds to Yes from step S571, and then substitutes 0 for the variable J related to the channel number (step S572).
【0399】続いて、チャネル別符号抽出部110は、
このチャネル番号に係る変数Jが最大チャネル数MAX_CH
よりも小さいか否かを判断する(ステップS573)。Subsequently, the channel code extraction section 110
The variable J related to this channel number is the maximum number of channels MAX_CH
It is determined whether it is smaller than (step S573).
【0400】この1巡面では、上記ステップS572で
J=0と設定されているので、チャネル別符号抽出部1
10は、ステップS573よりYes側に進み、その他
情報符号[0][0]を抽出した後(ステップS574)、チ
ャネル番号に係る変数Jを1つインクリメントしてJ=
1とする(ステップS575)。In this first round, since J = 0 is set in step S572, the code extraction unit for each channel 1
In step 10, the process proceeds from step S573 to the Yes side, and after extracting the other information code [0] [0] (step S574), the variable J related to the channel number is incremented by 1 and J =
1 (step S575).
【0401】尚、第2の実施の形態では、最大チャネル
数に係るMAX_CHに4が予め設定されているので、チャネ
ル別符号抽出部110は、以降、ステップS573乃至
S575の処理を繰り返し、その他情報符号[0][1]、そ
の他情報符号[0][2]、その他情報符号[0][3]、その他情
報符号[0][4]を順次配置する。In the second embodiment, since MAX_CH related to the maximum number of channels is preset to 4, the channel-by-channel code extraction unit 110 thereafter repeats the processing of steps S573 to S575 to obtain other information. Code [0] [1], other information code [0] [2], other information code [0] [3], and other information code [0] [4] are sequentially arranged.
【0402】チャネル別符号抽出部110は、その他情
報符号[0][4]を抽出した後は、ステップS573をNo
側に進み、トラック番号に係る変数Iを1つインクリメ
ントした後、再びステップS571乃至S575の処理
を繰り返し、続いてその他情報符号[1][1]、その他情報
符号[1][2]、その他情報符号[1][3]、その他情報符号
[1][4]を順次抽出する。この例では、先に図3で示した
ようにトラック数に係るMにm+1が設定されているこ
とを想定している。After extracting the other information code [0] [4], the channel code extraction section 110 returns No to step S573.
After incrementing the variable I relating to the track number by 1, the process of steps S571 to S575 is repeated again, and subsequently, other information code [1] [1], other information code [1] [2], etc. Information code [1] [3], other information code
[1] [4] are sequentially extracted. In this example, it is assumed that m + 1 related to the number of tracks is set to m + 1 as shown in FIG.
【0403】よって、チャネル別符号抽出部110は、
上記ステップS251乃至S255の処理を繰り返し、
最終的にトラックmデータに係るその他情報符号[m]
[1]、その他情報符号[m][2]、…、その他情報符号[m][1
5]を順次抽出すると、その他情報符号抽出処理を終了
し、こうして、チャネル別符号抽出部110によるチャ
ネル別の符号抽出に係る一連の処理を終了することにな
る。Therefore, the channel code extraction unit 110
By repeating the processes of steps S251 to S255,
Finally, other information code [m] related to track m data
[1], other information code [m] [2], ..., other information code [m] [1
5] is sequentially extracted, the other information code extraction process is ended, and thus, a series of processes related to the code extraction for each channel by the code extraction unit for each channel 110 is ended.
【0404】即ち、以上の処理により、単一チャネルか
らなる符号群(各符号群は、Δタイム符号、音程符号、
ゲートタイム符号、ベロシティ値符号、差分ベンド値符
号、差分ボリューム値符号、イベント種別識別符号、そ
の他情報符号をそれぞれ含むことは勿論である)が抽出
されることになる。That is, by the above processing, a code group consisting of a single channel (each code group is a Δ time code, a pitch code,
The gate time code, the velocity value code, the difference bend value code, the difference volume value code, the event type identification code, and the other information code are included, of course).
【0405】次に、トラック復号部120の詳細な構成
は、図73に示した通りであり、Δタイム符号復号部1
21、音程符号復号部122、ゲートタイム符号復号部
123、ベロシティ値符号復号部124、差分ベンド値
符号復号部125、差分ボリューム値符号復号部12
6、イベント種別識別符号復号部127、その他情報符
号復号部128、そしてイベント書き出し部129を有
している。Next, the detailed structure of the track decoding unit 120 is as shown in FIG.
21, pitch code decoding unit 122, gate time code decoding unit 123, velocity value code decoding unit 124, differential bend value code decoding unit 125, differential volume value code decoding unit 12
6, an event type identification code decoding unit 127, an other information code decoding unit 128, and an event writing unit 129.
【0406】そして、このような構成の下で、これら各
部121乃至128は、各符号を復号し、イベント書き
出し部129は、当該各符号についてイベントの書き出
しを行ない、こうして単一のチャネルからなるトラック
データを生成する。Under such a configuration, each of these units 121 to 128 decodes each code, and the event writing unit 129 writes an event for each code, thus making a track consisting of a single channel. Generate data.
【0407】このトラック復号部54によるトラック復
号に係る処理の流れは、先に示した図40と略同様であ
り、図40のステップS265においてなされるTrack
[I][J]の復号に係る処理についても図41と略同様であ
る。但し、イベント種別毎の復号に係る処理について
は、図42とは異なる。[0407] The flow of the process relating to the track decoding by the track decoding unit 54 is substantially the same as that shown in Fig. 40 described above, and Track performed at step S265 of Fig. 40.
The processing relating to the decoding of [I] [J] is also substantially the same as in FIG. However, the process related to decryption for each event type is different from that in FIG. 42.
【0408】そこで、以下、図74のフローチャートを
参照しつつ、第2の実施の形態によるイベント種別毎の
復号に係る処理を詳細に説明する。Therefore, hereinafter, with reference to the flowchart of FIG. 74, the process relating to the decoding for each event type according to the second embodiment will be described in detail.
【0409】即ち、この処理を開始すると、トラック復
号部54は、Δタイムよりイベントの種別を判断する
(ステップS600)。この第2の実施の形態では、Δ
タイムの先頭バイトの情報によって、イベントの種別を
識別することができる。[0409] That is, when this process is started, the track decoding unit 54 determines the type of event from the Δtime (step S600). In the second embodiment, Δ
The type of event can be identified by the information in the first byte of the time.
【0410】この例では、イベントタイプを3種類(タ
イプ1〜タイプ3)のイベントとして識別することがで
きる。よって、トラック復号部54は、当該Δタイムの
先頭バイトの情報に基づいてイベントの種別を判断する
ことになる。In this example, the event types can be identified as three types (type 1 to type 3) of events. Therefore, the track decoding unit 54 determines the type of event based on the information of the first byte of the Δtime.
【0411】上記ステップS600において、トラック
復号部54は、イベントがタイプ1であると判断した場
合には、音程符号[I][J]から1バイトの情報を読み出
し、上位2ビットにJ、下位6ビットにキーナンバを代
入し、Eventの末尾にアペンドする(ステップS60
1)。このとき、キーシフトは保存する。[0411] In step S600, when the track decoding unit 54 determines that the event is type 1, the track decoding unit 54 reads 1-byte information from the pitch code [I] [J], and the upper 2 bits are J and the lower 2 bits. Assign the key number to 6 bits and append to the end of Event (step S60)
1). At this time, the key shift is saved.
【0412】次いで、トラック復号部54は、ゲートタ
イム符号[I][J]から1バイトの情報を読み出し、Event
の末尾にアペンドする(ステップS602)。さらに、
トラック復号部54は、ベロシティ値符号[I][J]から1
バイトの情報を読み出し、上位6ビットにベロシティ、
下位2ビットにキーシフトを代入し、Eventの末尾にア
ペンドし(ステップS603)、ステップS620に進
む。Next, the track decoding section 54 reads 1-byte information from the gate time code [I] [J],
Is appended to the end (step S602). further,
The track decoding unit 54 determines 1 from the velocity value code [I] [J].
Reads the byte information, the upper 6 bits are velocity,
The key shift is assigned to the lower 2 bits, the event is appended to the end of the event (step S603), and the process proceeds to step S620.
【0413】上記ステップS600において、トラック
復号部54は、イベントがタイプ2であると判断した場
合には、ステータスバイト0xffを生成し、Eventの末尾
にアペンドする(ステップS604)。そして、トラッ
ク復号部54は、上位6ビットには0、下位2ビットに
はJを代入したコマンドバイトを生成し、Eventの末尾
にアペンドする(ステップS605)。さらに、トラッ
ク復号部54は、音程符号[I][J]から1バイトの情報を
読み出し、Eventの末尾にアペンドし(ステップS60
6)、ゲートタイム符号[I][J]から1バイトの情報を読
み出し、Eventの末尾にアペンドし(ステップS60
7)、ステップS620に進む。When it is determined in step S600 that the event is of type 2, the track decoding unit 54 generates a status byte 0xff and appends it to the end of the event (step S604). Then, the track decoding unit 54 generates a command byte in which 0 is assigned to the upper 6 bits and J is assigned to the lower 2 bits, and the command byte is appended to the end of the Event (step S605). Further, the track decoding unit 54 reads 1-byte information from the pitch code [I] [J] and appends it to the end of Event (step S60).
6) Read 1-byte information from the gate time code [I] [J] and append it to the end of Event (step S60
7) and proceeds to step S620.
【0414】一方、上記ステップS600において、ト
ラック復号部54は、イベントがタイプ3であると判断
した場合には、イベント種別識別符号[I][J]から1符号
を順次読み込み(ステップS608)、イベント種別識
別符号が0x08以上であるか否かがを判断する(ステップ
S609)。ここで、イベント種別識別符号が0x08以上
であるならば、トラック復号部54は、ステータスバイ
ト0xffを生成し、Eventの末尾にアペンドし(ステップ
S610)、イベント種別識別符号に応じたコマンドバ
イトを生成し、Eventの末尾にアペンドし(ステップS
611)、イベント種別識別符号が0x0dであるか否かを
判断する(ステップS612)。On the other hand, in step S600, when the track decoding section 54 determines that the event is type 3, the track decoding part 54 sequentially reads one code from the event type identification codes [I] [J] (step S608), It is determined whether the event type identification code is 0x08 or more (step S609). Here, if the event type identification code is 0x08 or more, the track decoding unit 54 generates a status byte 0xff, appends it to the end of Event (step S610), and generates a command byte corresponding to the event type identification code. And append to the end of Event (step S
611), and it is determined whether the event type identification code is 0x0d (step S612).
【0415】このステップS612で、イベント種別識
別符号が0x0dであるならば、トラック復号部54は、差
分ベンド値符号[I][J]から1バイトを読み出し、直前の
ベンド値に加えた値を下位6ビットに、上位2ビットに
Jを代入し、Eventの末尾にアペンドし(ステップS6
13)、ステップS620に進む。If the event type identification code is 0x0d in step S612, the track decoding unit 54 reads 1 byte from the differential bend value code [I] [J], and adds the value added to the immediately preceding bend value. Substitute 6 for the lower 6 bits and J for the upper 2 bits, and append to the end of the Event (step S6
13) and proceeds to step S620.
【0416】一方、上記ステップS612において、イ
ベント種別識別符号が0x0dでないならば、トラック復号
部54は、続いてイベント種別識別符号が0x0bであるか
否かを判断し(ステップS614)、0x0bであるなら
ば、差分ボリューム値符号[I][J]から1バイトを読み出
し、直前のボリューム値に加えた値を下位6ビットに、
上位2ビットにJを代入し、Eventの末尾にアペンドし
(ステップS615)、ステップS620に進む。これ
に対して、上記ステップS614において、イベント種
別識別符号が0x0bでないならば、トラック復号部54
は、続いてその他情報符号[I][J]から1バイトの情報を
読み出し、下位6ビットに0、上位2ビットにJを代入
し、Eventの末尾にアペンドし(ステップS616)、
ステップS620に進むことになる。上記ステップS6
09において、イベント種別識別符号が0x08未満である
ならば、トラック復号部54は、Jに応じたステータス
バイトを生成し、Eventの末尾にアペンドし(ステップ
S617)、イベント種別識別情報が0x03以上であるか
否かを判断する(ステップS618)。On the other hand, if the event type identification code is not 0x0d in step S612, the track decoding unit 54 subsequently determines whether the event type identification code is 0x0b (step S614), and it is 0x0b. Then, 1 byte is read from the differential volume value code [I] [J], and the value added to the immediately preceding volume value is set to the lower 6 bits,
Substitute J for the upper 2 bits, append to the end of Event (step S615), and proceed to step S620. On the other hand, if the event type identification code is not 0x0b in step S614, the track decoding unit 54
Then reads 1-byte information from the other information code [I] [J], substitutes 0 for the lower 6 bits and J for the upper 2 bits, and appends to the end of the Event (step S616).
The process proceeds to step S620. Step S6 above
In 09, if the event type identification code is less than 0x08, the track decoding unit 54 generates a status byte according to J, appends it to the end of Event (step S617), and the event type identification information is 0x03 or more. It is determined whether or not there is (step S618).
【0417】ここで、Jはチャネル番号を示すが、先に
説明したように、SMFの改良フォーマットの符号化時
には、イベントクラスに応じて、Class Normalならチ
ャネル0、ClassAならチャネル1、ClassBならチャネ
ル2、ClassCならチャネル3に属するイベントとして
扱うことになることから、上記ステップS617ではイ
ベントクラスに応じたステータスバイトを復元生成する
ことになる。Here, J indicates a channel number, but as described above, when encoding the improved format of SMF, depending on the event class, channel 0 is for Class Normal, channel 1 for Class A, and channel for Class B. If 2, Class C is handled as an event belonging to channel 3, in step S617, the status byte corresponding to the event class is restored and generated.
【0418】このステップS618において、イベント
種別識別符号が0x03以上であるならば、トラック復号部
54は、イベント種別識別符号に応じたコマンドバイト
を生成し、Eventの末尾にアペンドし(ステップS61
9)、ステップS620に進む。これに対して、ステッ
プS618において、イベント種別識別符号が0x03未満
であるならば、トラック復号部54はそのままステップ
S620に進む。こうして、ステップS620では、ト
ラック復号部54は、前述したファイルの仕様に従い、
イベントが完成するまでその他情報符号[I][J]から符号
を読み出し、Eventの末尾にアペンドし(ステップS6
20)、この処理を終了する。If the event type identification code is 0x03 or more in step S618, the track decoding unit 54 generates a command byte corresponding to the event type identification code and appends it to the end of the event (step S61).
9) and proceeds to step S620. On the other hand, if the event type identification code is less than 0x03 in step S618, the track decoding unit 54 proceeds directly to step S620. Thus, in step S620, the track decoding unit 54 follows the specifications of the file described above.
The code is read from the other information code [I] [J] until the event is completed, and the code is appended to the end of the event (step S6).
20) and this process is completed.
【0419】次に、トラックマージ及びチャネル番号符
号復号部55の詳細な構成は、先に図43に示した構成
と略同様であり、トラックマージ部55aとチャネル番
号符号復号部55bからなる。かかる構成の下、チャネ
ル番号符号復号部55bはチャネル番号符号13を復号
し、トラックマージ部55aは当該チャネル番号符号を
加味しつつ、トラックxデータ11−xを復号する。こ
のとき、チャネルに属しないイベントについては、符号
化の説明で述べたとおりイベントクラスにより対応する
チャネル0〜3に属するものとしてチャネル番号符号1
3に記録されているので、この対応をとって復号するこ
とになる。このトラックマージ部55による復号に係る
処理の流れは、先に図44、図45のフローチャートに
示した通りであるので、ここでは重複した説明は省略す
る。Next, the detailed structure of the track merge / channel number code decoding unit 55 is substantially the same as the structure shown in FIG. 43, and includes a track merge unit 55a and a channel number code decoding unit 55b. Under such a configuration, the channel number code decoding unit 55b decodes the channel number code 13, and the track merge unit 55a decodes the track x data 11-x while adding the channel number code. At this time, as for the event that does not belong to the channel, as described in the description of encoding, it is assumed that the event belongs to the channels 0 to 3 corresponding to the event class, and the channel number code 1
Since it is recorded in No. 3, it will be decrypted by taking this correspondence. The flow of the processing relating to the decoding by the track merging unit 55 is as previously shown in the flowcharts of FIGS. 44 and 45, and therefore, the duplicate description will be omitted here.
【0420】こうして、トラック毎のトラック0デー
タ、トラック1データ、…、トラックmデータが生成さ
れると、これらは、トラック配置部56に入力され、当
該トラック配置部56にて楽曲ファイル4に配列され
る。Thus, when track 0 data, track 1 data, ..., Track m data for each track is generated, these are input to the track arranging section 56 and arranged in the music file 4 by the track arranging section 56. To be done.
【0421】このトラック配置部56によるトラック配
置に係る処理を詳細は、先に図47のフローチャートに
示した通りであるので、重複した説明は省略する。The details of the processing relating to the track arrangement by the track arrangement unit 56 are the same as those shown in the flow chart of FIG. 47, and the duplicated description will be omitted.
【0422】以上説明したような一連の処理により、2
次符号6から2次符号復号部51により1次符号5が復
号され、当該1次符号5から1次符号復号部52により
楽曲ファイル4が復号されることになる。By the series of processing described above, 2
The secondary code 6 to the secondary code decoding unit 51 decodes the primary code 5, and the primary code 5 to the primary code decoding unit 52 decodes the music file 4.
【0423】以上説明したように、本発明の第2の実施
の形態に係る演奏情報圧縮装置、演奏情報圧縮方法、演
奏情報圧縮プログラム、演奏情報復号装置、演奏情報復
号方法、演奏情報復号プログラムでは、以下の効果が奏
される。As described above, the performance information compression apparatus, the performance information compression method, the performance information compression program, the performance information decoding apparatus, the performance information decoding method, and the performance information decoding program according to the second embodiment of the present invention are The following effects are exhibited.
【0424】即ち、演奏情報圧縮装置等では、1次符号
生成部2による処理により,楽曲ファイル4(SMFの
改良)の無駄が省かれ、しかも楽曲ファイル4(SMF
の改良)の演奏情報を損なうことなく、圧縮されたデー
タ量とした1次符号5を生成することを実現している。
更に、この1次符号5を、楽曲ファイル4(SMFの改
良)に比して同一データパターンの出現頻度が高く、同
一データパターンがより近い距離に記録され、更に同じ
種別の符号内で同じデータパターンが出現する確率が高
いものとすることで、2次符号生成部3における汎用圧
縮方式による圧縮効率を向上させている。That is, in the performance information compression device and the like, the processing by the primary code generation unit 2 eliminates waste of the music file 4 (improvement of SMF), and furthermore, the music file 4 (SMF).
It is realized that the primary code 5 having the compressed data amount is generated without degrading the performance information in (1.
Further, the primary code 5 has a higher appearance frequency of the same data pattern than the music file 4 (improved SMF), the same data pattern is recorded at a closer distance, and the same data is recorded in the code of the same type. Since the probability that the pattern appears is high, the compression efficiency by the general-purpose compression method in the secondary code generation unit 3 is improved.
【0425】この効果は、演奏情報復号装置等において
も、1次符号復号部52、2次符号復号部51にて、同
様に奏される。しかも、1次符号化時に各演奏情報を時
間的に独立させつつ、当該各演奏情報の順番に係る情報
を保存することで、符号化された演奏情報を復号した場
合に上記各演奏情報の順番が入れ替わることもない。即
ち、復号された演奏情報が完全に元の演奏情報と一致す
ることになる。This effect is similarly exhibited in the performance information decoding device and the like in the primary code decoding unit 52 and the secondary code decoding unit 51. Moreover, by preserving the information relating to the order of each performance information while temporally making each performance information independent at the time of the primary encoding, the order of each performance information is decoded when the encoded performance information is decoded. Does not change. That is, the decrypted performance information completely matches the original performance information.
【0426】(第3の実施の形態)第3の実施の形態で
は、前述した第1及び第2の実施の形態に係る演奏情報
圧縮装置、演奏情報圧縮方法、演奏情報圧縮プログラ
ム、演奏情報復号装置、演奏情報復号方法、演奏情報復
号プログラムを、携帯端末装置に着信メロディをダウン
ロードさせるようなシステムに適用する例を示し、説明
する。(Third Embodiment) In the third embodiment, the performance information compression apparatus, the performance information compression method, the performance information compression program, and the performance information decoding according to the first and second embodiments described above. An example in which the device, the performance information decoding method, and the performance information decoding program are applied to a system in which a mobile terminal device downloads an incoming melody will be shown and described.
【0427】尚、この第3の実施の形態では、入力デー
タのフォーマットとして、SMF及びその改良フォーマ
ットの他、MFi、SMAF、コンパクトMIDI等と
いった着信メロディ専用フォーマットにも適用可能なも
のとする。In the third embodiment, the format of the input data can be applied not only to the SMF and its improved format but also to the ringing melody dedicated format such as MFi, SMAF, and compact MIDI.
【0428】先ず、図75には第3の実施の形態にかか
るシステムの第1構成例を示す。First, FIG. 75 shows a first structural example of a system according to the third embodiment.
【0429】演奏情報としてSMF200と歌詞ファイ
ル201は、変換部202に入力され、演奏情報ファイ
ル203に変換される。この歌詞ファイル201には、
歌詞文字のテキスト情報、テキストの色変更のタイミン
グ情報、テキストの表示位置や書体、ページの切替えタ
イミング等が記述されている。そして、演奏情報ファイ
ル203は、音程の情報と、音の強さの情報と、音の長
さの情報と、その他の情報とを記述することが可能な専
用のファイルフォーマットであっても、着信メロディ専
用フォーマットであっても、SMFであってもよい。こ
の演奏情報ファイル203は、1次符号生成部204に
よって1次符号化され、更に2次符号生成部206によ
って2次符号化され、圧縮ファイル208が生成され
る。[0429] The SMF 200 and the lyrics file 201 as performance information are input to the conversion section 202 and converted into a performance information file 203. In this lyrics file 201,
It describes the text information of the lyric character, the timing information of the color change of the text, the display position and typeface of the text, the page switching timing and the like. Even if the performance information file 203 is a dedicated file format capable of describing pitch information, sound intensity information, sound length information, and other information It may be a melody-dedicated format or SMF. The performance information file 203 is primary-coded by the primary code generation unit 204, and then secondary-coded by the secondary code generation unit 206 to generate a compressed file 208.
【0430】この2次符号化の際には、再生プレーヤ
(ソフトウェア)205も併せて圧縮ファイル208に
含められる。1次符号生成部204としては、第1及び
第2の実施の形態に係る1次符号生成部2を採用するこ
とができ、2次符号生成部206としては、第1及び第
2の実施の形態に係る2次符号生成部3を採用すること
ができる。上記圧縮ファイル208は、サーバ207に
アップロードされる。At the time of this secondary encoding, the reproduction player (software) 205 is also included in the compressed file 208. As the primary code generation unit 204, the primary code generation unit 2 according to the first and second embodiments can be adopted, and as the secondary code generation unit 206, the primary code generation unit 206 of the first and second embodiments can be used. The secondary code generation unit 3 according to the mode can be adopted. The compressed file 208 is uploaded to the server 207.
【0431】そして、この圧縮ファイル208は、携帯
端末装置300からのリクエストに基づき当該携帯端末
装置300にダウンロードされる。ダウンロードされた
圧縮ファイル208は、携帯端末装置300の記憶領域
209に格納される。The compressed file 208 is downloaded to the mobile terminal device 300 based on the request from the mobile terminal device 300. The downloaded compressed file 208 is stored in the storage area 209 of the mobile terminal device 300.
【0432】この圧縮ファイル208は、2次符号復号
部210に送られ、当該2次符号復号部210において
復号が行われ、再生プレーヤ212と1次符号208に
分離される。この1次符号208は記憶領域211に格
納される。The compressed file 208 is sent to the secondary code decoding unit 210, is decoded in the secondary code decoding unit 210, and is separated into the reproduction player 212 and the primary code 208. The primary code 208 is stored in the storage area 211.
【0433】再生プレーヤ212には、1次符号復号部
213と歌詞表示部214が含まれており、上記1次符
号208は、1次符号復号部213により復号され、演
奏情報ファイル203が得られ、記憶領域215に格納
される。この演奏情報ファイル203は、更にSMF2
00と歌詞ファイル等201に分離され、SMF200
は音声再生部216に送られ、歌詞ファイル等201は
歌詞表示部214に送られる。そして、音声再生部21
6により音声再生がなされ、歌詞表示部214により歌
詞表示がなされる。尚、音声再生部216、歌詞表示部
214では、公知の手法を採用できるので、詳細な説明
は省略する。The playback player 212 includes a primary code decoding section 213 and a lyrics display section 214, and the primary code 208 is decoded by the primary code decoding section 213 to obtain a performance information file 203. , Are stored in the storage area 215. This performance information file 203 is SMF2
00 and lyrics files etc. 201 are separated, SMF200
Is sent to the voice reproduction unit 216, and the lyrics file 201 is sent to the lyrics display unit 214. Then, the audio reproduction unit 21
6, the voice is reproduced, and the lyrics display section 214 displays the lyrics. Since the voice reproducing unit 216 and the lyrics display unit 214 can adopt a known method, detailed description thereof will be omitted.
【0434】次に、図76には第3の実施の形態にかか
るシステムの第2構成例を示す。Next, FIG. 76 shows a second configuration example of the system according to the third embodiment.
【0435】この第2構成例においても、SMF200
と歌詞ファイル等210とが変換部202へ入力され、
当該変換部202において演奏情報ファイル203が生
成される点は上記第1構成例と同様である。但し、この
第2構成例では、演奏情報ファイル203が第1圧縮部
220により圧縮され、圧縮ファイル222が生成され
る。この第1圧縮部220としては、上述した第1及び
第2の実施の形態に係る演奏情報圧縮装置を採用するこ
とができる。一方、演奏情報ファイル203を再生する
ための再生プレーヤ205には、上記演奏情報ファイル
222を復号するための第1復号部225が含まれてい
る。再生プレーヤ205は、第2圧縮部221によって
圧縮され、圧縮ファイル223が生成される。これら圧
縮ファイル222,223は、サーバ207にアップロ
ードされる。Also in this second configuration example, the SMF 200
And the lyrics file 210 are input to the conversion unit 202,
The performance information file 203 is generated in the conversion unit 202 as in the first configuration example. However, in the second configuration example, the performance information file 203 is compressed by the first compression unit 220, and the compressed file 222 is generated. As the first compression unit 220, the performance information compression device according to the above-described first and second embodiments can be adopted. On the other hand, the reproduction player 205 for reproducing the performance information file 203 includes a first decoding unit 225 for decoding the performance information file 222. The reproduction player 205 is compressed by the second compression unit 221 to generate the compressed file 223. These compressed files 222 and 223 are uploaded to the server 207.
【0436】これら圧縮ファイル222,223は、い
ずれも携帯端末装置301の記憶領域209にダウンロ
ードされる。そして、このダウンロードされた圧縮ファ
イル222,223のうち、再生プレーヤに係る圧縮フ
ァイル223は、第2復号部224により復号され、再
生プレーヤ225が得られる。Both of these compressed files 222 and 223 are downloaded to the storage area 209 of the portable terminal device 301. Then, of the downloaded compressed files 222 and 223, the compressed file 223 relating to the reproducing player is decoded by the second decoding unit 224, and the reproducing player 225 is obtained.
【0437】一方、演奏情報ファイル203に係る圧縮
ファイル222は、第1復号部226により伸長され、
演奏情報ファイル203が生成される。On the other hand, the compressed file 222 relating to the performance information file 203 is decompressed by the first decoding section 226,
The performance information file 203 is generated.
【0438】そして、この演奏情報ファイル203は、
SMF200及び歌詞ファイル等201に展開され、歌
詞ファイル等201は歌詞表示部214に送られて当該
歌詞表示部214により歌詞の表示が行われ、SMF2
00は音声再生部216に送られて当該音声再生部21
6により音声の再生が行われることになる。Then, this performance information file 203 is
The SMF 200 and the lyrics file 201 are expanded, the lyrics file 201 is sent to the lyrics display unit 214, and the lyrics are displayed on the lyrics display unit 214.
00 is sent to the audio reproducing unit 216 and the audio reproducing unit 21
6, the sound is reproduced.
【0439】尚、上記第1復号部226としては、上述
した第1及び第2の実施の形態に係る演奏情報復号装置
を採用することができる。As the first decoding section 226, the performance information decoding apparatus according to the above-mentioned first and second embodiments can be adopted.
【0440】次に、図77には第3の実施の形態にかか
るシステムの第3構成例を示す。Next, FIG. 77 shows a third configuration example of the system according to the third embodiment.
【0441】ここでは、上述した第1及び第2構成例と
の相違点を中心に説明する。Here, the difference from the first and second configuration examples described above will be mainly described.
【0442】この第3構成例では、携帯端末装置302
内の再生プレーヤ228に、第2復号部226と、歌詞
表示部214、音声再生部227が内蔵されている。In this third configuration example, the mobile terminal device 302
The reproduction player 228 in the inside has a second decoding unit 226, a lyrics display unit 214, and an audio reproduction unit 227 built therein.
【0443】この第1復号部226としては、上述した
第1及び第2の実施の形態に係る演奏情報復号装置を採
用することができることは勿論である。そして、第1圧
縮部220としては、アルゴリズムを公開しない独自の
圧縮方法を用い、第1圧縮部220及び第1復号部22
6を非公開とすることで、コンテンツの不正な製作によ
る違法サーバを防止することができる。As the first decoding section 226, it is a matter of course that the performance information decoding apparatus according to the above-mentioned first and second embodiments can be adopted. The first compression unit 220 uses a unique compression method that does not disclose the algorithm, and uses the first compression unit 220 and the first decoding unit 22.
By making 6 undisclosed, it is possible to prevent an illegal server due to illegal production of contents.
【0444】次に、図78には第3の実施の形態に係る
システムの第4構成例を示す。Next, FIG. 78 shows a fourth configuration example of the system according to the third embodiment.
【0445】ここでは、上述した第1乃至第3構成例と
の相違点を中心に説明する。Here, differences from the above-described first to third configuration examples will be mainly described.
【0446】上記第2及び第3構成例では、SMF20
0と歌詞ファイル等201とが変換部202にて演奏情
報ファイル203に変換され、第1圧縮部220によっ
て圧縮されているのに対して、この第4構成例では、歌
詞ファイル201が圧縮されないで、演奏情報ファイル
203が第1圧縮部220によって圧縮された圧縮ファ
イル222に合成される。そして、この歌詞ファイル2
01が合成された演奏情報ファイル222は、サーバ2
07にアップロードされる。In the second and third configuration examples, the SMF 20
0 and the lyrics file 201 are converted into the performance information file 203 by the conversion unit 202 and compressed by the first compression unit 220, whereas the lyrics file 201 is not compressed in the fourth configuration example. The performance information file 203 is combined with the compressed file 222 compressed by the first compression unit 220. And this lyrics file 2
The performance information file 222 in which 01 is combined is stored in the server 2
It will be uploaded to 07.
【0447】この演奏情報ファイル222及び再生プレ
ーヤ205に係る圧縮ファイル223は、携帯端末装置
303の記憶領域209にダウンロードされる。そし
て、この圧縮ファイル222,223を使用する場合、
先ず圧縮ファイル223は第2復号部224によって復
号され、再生プレーヤ228が得られる。The performance information file 222 and the compressed file 223 relating to the reproduction player 205 are downloaded to the storage area 209 of the portable terminal device 303. When using the compressed files 222 and 223,
First, the compressed file 223 is decoded by the second decoding unit 224, and the reproduction player 228 is obtained.
【0448】一方、歌詞ファイル102が合成された演
奏情報ファイル222からは、歌詞ファイル201が分
離される。そして、この歌詞ファイル201が分離され
た圧縮ファイル229は、第1復号部226によって伸
長され、演奏情報ファイル203が復号され、更にSM
F200に展開され、記憶領域215に格納され、音声
再生部216にて音声の再生が行なわれる。一方、分離
された歌詞ファイル201は、歌詞表示部214に送ら
れ、ここで歌詞の表示が行なわれる。On the other hand, the lyrics file 201 is separated from the performance information file 222 in which the lyrics file 102 is combined. Then, the compressed file 229 from which the lyrics file 201 has been separated is expanded by the first decoding unit 226, the performance information file 203 is decoded, and further SM
It is expanded to F200, stored in the storage area 215, and reproduced by the sound reproducing unit 216. On the other hand, the separated lyrics file 201 is sent to the lyrics display section 214, and the lyrics are displayed here.
【0449】尚、上記第1復号部226としては、上述
した第1及び第2の実施の形態に係る演奏情報復号装置
を採用することができる。As the first decoding section 226, the performance information decoding apparatus according to the above-mentioned first and second embodiments can be adopted.
【0450】以上説明した第1乃至第4の構成例では、
圧縮された演奏情報ファイル208の復号を行うために
は再生プレーヤ106に添付されている1次符号復号部
213が必要となることから、演奏情報ファイル203
と再生プレーヤ205とを関連付け、演奏情報ファイル
203と再生プレーヤ205にIDや電子透かしを付加
して両者が一致した場合のみ再生を許可する等の処理を
行えば、圧縮された演奏情報ファイル208が単独でや
り取りされても使用不可能となる為、異なる再生プレー
ヤによる不正な再生が防止されるといった効果がある。
また、演奏情報ファイル203については、第1及び第
2の実施の形態で説明した演奏情報圧縮装置の1次符号
生成部2、2次符号生成部3による1次符号化及び2次
符号化を採用しているので、よりデータ量を削減するこ
とができることになる。In the first to fourth configuration examples described above,
In order to decode the compressed performance information file 208, the primary code decoding unit 213 attached to the reproduction player 106 is required, so the performance information file 203
If a process such as associating the reproduction information with the reproduction player 205 and adding an ID or digital watermark to the reproduction information file 203 and allowing the reproduction information to coincide with each other is performed, a compressed performance information file 208 is obtained. Since it cannot be used even if exchanged alone, there is an effect that illegal reproduction by different reproduction players is prevented.
The performance information file 203 is subjected to the primary coding and the secondary coding by the primary code generation unit 2 and the secondary code generation unit 3 of the performance information compression device described in the first and second embodiments. Since it is adopted, the amount of data can be further reduced.
【0451】更に、上記第1乃至第4の構成例では、携
帯端末装置301を例に挙げたが、これに限定されるこ
となく、家電製品、車載用端末、固定電話端末等、メモ
リ容量やネツトワークのトラフィック容量に制限を持た
せる必要のあるシステムであれば、適用可能である。ま
た、容量に制限のある、例えばメモリカードのような記
録媒体にダウンロードしたファイルをそのまま保存する
ような場合には、メモリカードの記憶容量を節約するこ
とも可能となる。Further, although the portable terminal device 301 is taken as an example in the above-mentioned first to fourth configuration examples, the present invention is not limited to this, and the memory capacity of home electric appliances, in-vehicle terminals, fixed telephone terminals, etc. It is applicable to any system that needs to limit the network traffic capacity. Further, in the case where a file having a limited capacity, for example, a file downloaded to a recording medium such as a memory card is stored as it is, the storage capacity of the memory card can be saved.
【0452】以上説明した第3の実施の形態によれば、
演奏情報ファイルのデータ量を削減することができるの
で、携帯端末装置にファイルをダウンロードする時間を
短縮し、携帯端末装置の記憶手段の容量を節約すること
ができる。According to the third embodiment described above,
Since the data amount of the performance information file can be reduced, the time for downloading the file to the mobile terminal device can be shortened and the capacity of the storage means of the mobile terminal device can be saved.
【0453】また、再生プレーヤと圧縮した演奏情報フ
ァイルとを同時に伝送し、演奏情報ファイルを他の再生
プレーヤでは再生できない仕様とすれば、演奏情報ファ
イルの不正使用が防止されることになる。また、例えば
100キロバイトのSMFを上述した第1及び及び第2
の実施の形態に係る装置等を第3の実施の形態に係るシ
ステムに適用した場合、10キロバイト程度まで圧縮可
能なことから、着信メロディの如きものをやりとりする
上では、サイズ的にもより好適なものとなる。If the reproduction player and the compressed performance information file are transmitted at the same time so that the performance information file cannot be reproduced by another reproduction player, unauthorized use of the performance information file can be prevented. Also, for example, the first and second 100-Kbyte SMFs described above are used.
When the device according to the embodiment of the present invention is applied to the system according to the third embodiment, it is possible to compress up to about 10 kilobytes, so that it is more suitable in terms of size when exchanging things such as ringing melody. It will be
【0454】以上、本発明の第1乃至第3の実施の形態
について説明したが、本発明の演奏情報圧縮装置、方
法、プログラムでは、SMF又はその改良ファイルをチ
ャネル毎に少なくともイベント間の相対時間の情報と、
発音開始音程の情報と、音の強さの情報と、発音終了音
程の情報と、その他の情報(改良ファイルでは更に音の
長さ)とに分離し、上記チャネルに関係なく上記各情報
毎にまとめ、当該まとめられた上記各情報をそれぞれ独
立した領域に配置した1次符号を生成し、当該1次符号
の各領域の情報を汎用圧縮方法により圧縮する。SMF
では、1つのトラック・チャンクは1つのトラックデー
タを含み、該トラックデータには複数のチャネルに係る
データを含むことがあるが、上述のようにチャネルに関
係なく各情報毎にまとめることで、汎用圧縮法による圧
縮により好適な1次符号を生成することができ、更には
2次符号により高効率で圧縮することが可能となる。Although the first to third embodiments of the present invention have been described above, in the performance information compression apparatus, method and program of the present invention, the SMF or its improved file is provided for each channel at least in the relative time between events. Information of
It is separated into the information of the starting pitch, the information of the strength of the sound, the information of the ending pitch of the sound, and other information (the length of the sound in the improved file), and for each of the above information regardless of the above channel. In summary, a primary code is generated by arranging the collected pieces of information in independent areas, and the information of each area of the primary code is compressed by a general-purpose compression method. SMF
However, one track chunk includes one track data, and the track data may include data related to a plurality of channels. However, as described above, by grouping each information regardless of the channel, A suitable primary code can be generated by the compression by the compression method, and further, the secondary code can be compressed with high efficiency.
【0455】さらに、本発明の演奏情報圧縮装置、方
法、プログラムでは、1次符号生成時に同一のトラック
データに同時刻に係る複数のイベントが記録されている
場合には、複数のイベントからなるイベント群の最後尾
に記録されているイベント以外のチャネルの情報を記録
する。このように、最後尾に記録されているイベントの
チャネルの情報を削除することで、データ量を縮減する
ことができる。Further, in the performance information compression apparatus, method and program of the present invention, when a plurality of events at the same time are recorded in the same track data at the time of generating the primary code, an event consisting of a plurality of events Information on channels other than the event recorded at the end of the group is recorded. In this way, the data amount can be reduced by deleting the channel information of the event recorded at the end.
【0456】また、本発明の演奏情報圧縮装置、方法、
プログラムでは、1次符号生成時に各イベントに出現頻
度の高低により異なるイベント種別識別符号を割り当
て、当該イベント種別識別符号をイベント毎に記録す
る。本発明の2次符号時にはLZ法とハフマン符号化法
を組み合わせたLHA符号化法も採用可能であるが、出
現頻度の高低によってイベント種別識別符号を割り当て
れば、動的ハフマン符号化法にはより好適なものとな
り、その結果、圧縮率を低くすることができる。The performance information compression apparatus, method, and
In the program, when the primary code is generated, different event type identification codes are assigned to each event depending on the frequency of appearance, and the event type identification code is recorded for each event. The LHA coding method that combines the LZ method and the Huffman coding method can also be used for the secondary code of the present invention, but if the event type identification code is assigned according to the frequency of occurrence, the dynamic Huffman coding method can be used. It becomes more preferable, and as a result, the compression rate can be lowered.
【0457】そして、本発明の演奏情報圧縮装置、方
法、プログラムは、1次符号生成時にイベント間の相対
時間の情報に基づいて、イベント種別を識別する。これ
によれば、例えば、Δタイムの情報に基づきイベント種
別を識別できることになり、データ量が削減され、2次
符号時の圧縮効率が更に高まることになる。Then, the performance information compression apparatus, method and program of the present invention identify the event type based on the information of the relative time between events when the primary code is generated. According to this, for example, the event type can be identified based on the Δtime information, the data amount is reduced, and the compression efficiency at the time of secondary coding is further enhanced.
【0458】さらに、本発明の演奏情報圧縮装置、方
法、プログラムは、1次符号時に各イベント間の相対時
間の最大公約数を算出し、各イベント間の相対時間を上
記最大公約数で除算した数値を符号化する。Δタイムは
各イベントと対で存在するものであるが、通常2バイト
を要していたケースでも、1バイトの使用で済ませるこ
ともできることになり、全体として容量を削減すること
ができる。尚、最大公約数が演算不能な場合には、所定
の値で代替することも考えられる。Furthermore, the performance information compression apparatus, method and program of the present invention calculate the greatest common divisor of the relative time between each event at the time of the primary code and divide the relative time between each event by the above greatest common divisor. Encode numbers. The Δtime exists as a pair with each event, but even in the case where it normally takes 2 bytes, it can be completed by using 1 byte, and the capacity can be reduced as a whole. If the greatest common denominator cannot be calculated, it may be possible to substitute a predetermined value.
【0459】また、本発明の演奏情報復号装置、方法、
プログラムは、上記演奏情報圧縮装置等により圧縮され
た2次符号を復号して1次符号を得て、更に1次符号を
復号して楽曲ファイルを得るものであることから、上記
同様の効果が奏される。Also, the performance information decoding apparatus, method, and
Since the program decodes the secondary code compressed by the performance information compression device or the like to obtain the primary code, and further decodes the primary code to obtain the music file, the same effect as described above is obtained. Played.
【0460】尚、本発明は上記第1乃至第3の実施の形
態に限定されることなく、その趣旨を逸脱しない範囲で
種々の改良・変更が可能である。The present invention is not limited to the first to third embodiments described above, and various improvements and changes can be made without departing from the spirit of the invention.
【0461】例えば、上記実施の形態では、2次符号化
時にLZ符号化法とハフマン符号化法の復号方式である
LHA符号化法等を採用することを例として挙げたが、
これに限定されることなく、種々の圧縮法を採用するこ
とができる。例えば、ランレングス符号化法、BSTW
符号化法、ZIP符号化法等の如くである。For example, in the above embodiment, the LHA coding method, which is a decoding method of the LZ coding method and the Huffman coding method, is adopted at the time of the secondary coding.
Without being limited to this, various compression methods can be adopted. For example, run length coding method, BSTW
Such as a coding method and a ZIP coding method.
【0462】尚、このLZ符号化法については、LZ7
7符号化法のほか、そのバリエーションとして、LZR
符号化法、LZSS符号化法、LZB符号化法、LZH
符号化法、LZBW符号化法、LZIT符号化法等、種
々のものがある。Regarding this LZ encoding method, LZ7
7 encoding method, as a variation, LZR
Encoding method, LZSS encoding method, LZB encoding method, LZH
There are various encoding methods such as an encoding method, an LZBW encoding method, and an LZIT encoding method.
【0463】更に、入力データ(楽曲ファイル)のフォ
ーマットは、第1及び第2の実施の形態の冒頭で各々説
明したフォーマットに限定されるものではなく、SMA
F、MFiやCMXのフォーマットにも適用可能である
ことは勿論である。Furthermore, the format of the input data (music file) is not limited to the formats described at the beginning of the first and second embodiments, but SMA
Of course, it is also applicable to F, MFi, and CMX formats.
【0464】また、各フローチャートにおける最大チャ
ネル数MAX_CHの値は、前述した値に限定されるものでは
ないことは勿論である。The value of the maximum channel number MAX_CH in each flow chart is not limited to the above value.
【0465】尚、本発明には、以下の如き技術的思想が
含まれる。The following technical ideas are included in the present invention.
【0466】第1に、少なくとも発音音程の情報、音の
強さの情報、その他の情報からなるイベントと、該イベ
ント間の相対時間の情報とを含んでおり所定のチャネル
に帰属するトラックデータを有する演奏情報ファイルの
入力を受け、当該演奏情報ファイルを圧縮し、伝送する
演奏情報伝送システムにおいて、上記演奏情報ファイル
のトラックデータを、各チャネルに帰属する複数のトラ
ックデータに分離し、当該チャネルへの帰属を示す情報
を保持しつつ、各チャネルに帰属するトラックデータを
上記各情報毎に更に分離し、この分離された各情報を当
該チャネルへの帰属に関係なく各情報の種別毎にまと
め、その種別毎に独立した領域に配置することで1次符
号を生成する1次符号生成手段と、上記1次符号生成手
段により生成された1次符号の各領域に配置された各情
報及び上記演奏情報ファイルを再生するためのプログラ
ム形態の再生プレーヤを所定の圧縮方法により圧縮し、
2次符号を生成する2次符号生成手段と、上記2次符号
を伝送する伝送手段と、を有することを特徴とする演奏
情報伝送システム、である。First, the track data belonging to a predetermined channel, which includes at least an event consisting of pitch information, sound intensity information, and other information, and information of relative time between the events, is assigned. In a performance information transmission system that receives an input of a performance information file that it has and compresses and transmits the performance information file, the track data of the performance information file is separated into a plurality of track data belonging to each channel, and the track data is assigned to the channel. While holding the information indicating the attribution of each, the track data belonging to each channel is further separated for each of the above information, and the separated information is summarized for each type of information regardless of the attribution to the channel, It is generated by the primary code generation means for generating a primary code by arranging it in an independent area for each type, and the primary code generation means. Playback player program form for reproducing the information and the performance information files placed in the area of the next code is compressed by a predetermined compression method,
A performance information transmission system, comprising: a secondary code generation means for generating a secondary code; and a transmission means for transmitting the secondary code.
【0467】第2に、少なくとも発音音程の情報、音の
強さの情報、その他の情報からなるイベントと、該イベ
ント間の相対時間の情報とを含んでおり所定のチャネル
に帰属するトラックデータを有する演奏情報ファイルと
当該演奏情報ファイルを再生するためのプログラム形態
の再生プレーヤとが圧縮され生成された2次符号を1次
符号に復号し、更に当該1次符号を演奏情報ファイルに
復号する演奏情報伝送システムにおいて、上記2次符号
を受信する伝送手段と、上記2次符号を1次符号及び上
記演奏情報ファイルを再生するためのプログラム形態の
再生プレーヤに復号する2次符号復号手段と、上記1次
符号について、独立した領域に配置されている種別毎の
各情報を当該種別毎に抽出し、上記チャネルへの帰属を
示す情報を参照しつつ、抽出した各情報を各チャネルに
帰属する複数のトラックデータとして構成し、更にファ
イルのトラックデータとして構成することでファイルに
復号する1次符号復号手段と、を有することを特徴とす
る演奏情報伝送システム、である。Secondly, track data belonging to a predetermined channel, which includes at least an event consisting of pitch information, sound intensity information, and other information, and information of relative time between the events, is assigned. A performance in which a performance information file that the player has and a playback player in a program form for reproducing the performance information file are compressed to decode a generated secondary code into a primary code, and further the primary code is decoded into a performance information file. In the information transmission system, transmitting means for receiving the secondary code, secondary code decoding means for decoding the secondary code into a primary code and a playback player in a program form for playing the performance information file, and Regarding the primary code, each type of information arranged in an independent area is extracted for each type, and the information indicating attribution to the above channel is referred to. And performance information comprising a primary code decoding means for decoding each of the extracted information as a plurality of track data belonging to each channel, and further for decoding the file as track data of the file. Transmission system.
【0468】第3に、少なくとも発音音程の情報、音の
強さの情報、その他の情報からなるイベントと、該イベ
ント間の相対時間の情報とを含んでおり所定のチャネル
に帰属するトラックデータを有する演奏情報ファイルの
入力を受け、当該演奏情報ファイルを圧縮し、伝送する
演奏情報伝送方法において、1次符号生成手段により、
上記演奏情報ファイルのトラックデータを、各チャネル
に帰属する複数のトラックデータに分離し、当該チャネ
ルへの帰属を示す情報を保持しつつ、各チャネルに帰属
するトラックデータを上記各情報毎に更に分離し、この
分離された各情報を当該チャネルへの帰属に関係なく各
情報の種別毎にまとめ、その種別毎に独立した領域に配
置することで1次符号を生成し、2次符号生成手段によ
り、上記1次符号生成手段により生成された1次符号の
各領域に配置された各情報及び上記演奏情報ファイルを
再生するためのプログラム形態の再生プレーヤを所定の
圧縮方法により圧縮し、2次符号を生成し、伝送手段に
より、上記2次符号を伝送する、ことを特徴とする演奏
情報伝送方法、である。Thirdly, track data belonging to a predetermined channel including at least an event consisting of pitch information, sound intensity information, and other information and information of relative time between the events, In a performance information transmitting method of receiving an input of a performance information file that the user has, compressing and transmitting the performance information file, the primary code generating means
The track data of the above performance information file is separated into a plurality of track data belonging to each channel, and the track data belonging to each channel is further separated for each of the above information while retaining the information indicating the belonging to the channel. Then, the separated pieces of information are grouped for each type of information regardless of belonging to the channel, and are arranged in independent areas for each type to generate a primary code, and the secondary code generation means is used. , The secondary code generated by the primary code generation means is compressed by a predetermined compression method with a reproduction player in the form of a program for reproducing each piece of information arranged in each area of the primary code and the performance information file. Is generated and the secondary code is transmitted by the transmission means.
【0469】第4に、少なくとも発音音程の情報、音の
強さの情報、その他の情報からなるイベントと、該イベ
ント間の相対時間の情報とを含んでおり所定のチャネル
に帰属するトラックデータを有する演奏情報ファイルと
当該演奏情報ファイルを再生するためのプログラム形態
の再生プレーヤとが圧縮され生成された2次符号を1次
符号に復号し、更に当該1次符号を演奏情報ファイルに
復号する演奏情報伝送方法において、伝送手段により、
上記2次符号を受信し、2次符号復号手段により、上記
2次符号を1次符号及び上記演奏情報ファイルを再生す
るためのプログラム形態の再生プレーヤに復号し、1次
符号復号手段により、上記1次符号について、独立した
領域に配置されている種別毎の各情報を当該種別毎に抽
出し、上記チャネルへの帰属を示す情報を参照しつつ、
抽出した各情報を各チャネルに帰属する複数のトラック
データとして構成し、更にファイルのトラックデータと
して構成することでファイルに復号する、ことを特徴と
する演奏情報伝送方法、である。Fourthly, track data belonging to a predetermined channel, which includes at least an event consisting of pitch information, sound intensity information, and other information, and information of relative time between the events, is assigned. A performance in which a performance information file that the player has and a playback player in a program form for reproducing the performance information file are compressed to decode a generated secondary code into a primary code, and further the primary code is decoded into a performance information file. In the information transmission method, by the transmission means,
The secondary code is received, the secondary code decoding means decodes the secondary code into a playback player in the form of a program for playing back the primary code and the performance information file, and the primary code decoding means performs the above. Regarding the primary code, each information for each type arranged in an independent area is extracted for each type, and referring to the information indicating the attribution to the channel,
A performance information transmission method, characterized in that each extracted information is configured as a plurality of track data belonging to each channel, and is further configured as file track data to be decoded into a file.
【0470】第5に、少なくとも発音音程の情報、音の
強さの情報、その他の情報からなるイベントと、該イベ
ント間の相対時間の情報とを含んでおり所定のチャネル
に帰属するトラックデータを有する演奏情報ファイルの
入力を受け、当該演奏情報ファイルを圧縮し、伝送する
演奏情報伝送プログラムにおいて、コンピュータに、上
記演奏情報ファイルのトラックデータを、各チャネルに
帰属する複数のトラックデータに分離し、当該チャネル
への帰属を示す情報を保持しつつ、各チャネルに帰属す
るトラックデータを上記各情報毎に更に分離し、この分
離された各情報を当該チャネルへの帰属に関係なく各情
報の種別毎にまとめ、その種別毎に独立した領域に配置
することで1次符号を生成するステップと、上記1次符
号生成手段により生成された1次符号の各領域に配置さ
れた各情報及び上記演奏情報ファイルを再生するための
プログラム形態の再生プレーヤを所定の圧縮方法により
圧縮し、2次符号を生成するステップと、上記2次符号
を伝送するステップと、を実行させるための演奏情報伝
送プログラム、である。Fifth, the track data belonging to a predetermined channel, which includes at least an event consisting of pitch information, sound intensity information, and other information, and information of relative time between the events, is assigned. In a performance information transmission program which receives an input of a performance information file having and compresses and transmits the performance information file, the computer divides the track data of the performance information file into a plurality of track data belonging to each channel, The track data belonging to each channel is further separated for each of the above information while retaining the information indicating the attribution to the channel, and the separated information is classified for each information type regardless of the attribution to the channel. And a step of generating a primary code by disposing each type in an independent area, and the primary code generating means Generating a secondary code by compressing a reproduction player in a program form for reproducing each piece of information arranged in each area of the generated primary code and the performance information file by a predetermined compression method; And a performance information transmission program for executing the step of transmitting the next code.
【0471】第6に、少なくとも発音音程の情報、音の
強さの情報、その他の情報からなるイベントと、該イベ
ント間の相対時間の情報とを含んでおり所定のチャネル
に帰属するトラックデータを有する演奏情報ファイルと
当該演奏情報ファイルを再生するためのプログラム形態
の再生プレーヤとが圧縮され生成された2次符号を1次
符号に復号し、更に当該1次符号を演奏情報ファイルに
復号する演奏情報伝送プログラムにおいて、コンピュー
タに、上記2次符号を受信するステップと、上記2次符
号を1次符号及び上記演奏情報ファイルを再生するため
のプログラム形態の再生プレーヤに復号するステップ
と、上記1次符号について、独立した領域に配置されて
いる種別毎の各情報を当該種別毎に抽出し、上記チャネ
ルへの帰属を示す情報を参照しつつ、抽出した各情報を
各チャネルに帰属する複数のトラックデータとして構成
し、更にファイルのトラックデータとして構成すること
でファイルに復号するステップと、を実行させるための
演奏情報伝送プログラム、である。[0471] Sixth, track data belonging to a predetermined channel including at least an event consisting of pitch information, sound intensity information and other information and information of relative time between the events, A performance in which a performance information file that the player has and a playback player in a program form for reproducing the performance information file are compressed to decode a generated secondary code into a primary code, and further the primary code is decoded into a performance information file. In the information transmission program, a step of receiving the secondary code by a computer, a step of decoding the secondary code by a playback player in a program form for playing back the primary code and the performance information file, and the primary step With respect to the code, each type of information placed in an independent area is extracted for each type, and information indicating the attribution to the above channel is extracted. , A performance information transmission program for executing the step of decoding each extracted information as a plurality of track data belonging to each channel, and further by configuring it as the track data of a file, Is.
【0472】[0472]
【発明の効果】以上詳述したように、本発明によれば、
復号後においても各演奏情報の順番を回復させ、復号さ
れた演奏情報が元の演奏情報と一致しない等といった事
態が生じるのを防止し、一部の演奏情報の記録を省略す
る等して1次符号のサイズを小さくし、更には、汎用圧
縮方式との組合せにより演奏情報のデータ量を効率的に
圧縮、伸長することが可能な、演奏情報圧縮装置、演奏
情報復号装置、演奏情報圧縮方法、演奏情報復号方法、
演奏情報圧縮プログラム、演奏情報復号プログラムを提
供することができる。As described in detail above, according to the present invention,
Even after the decoding, the order of each performance information is restored to prevent the situation in which the decoded performance information does not match the original performance information, and the recording of some performance information is omitted. A performance information compression device, a performance information decoding device, and a performance information compression method capable of reducing the size of the next code and further efficiently compressing and expanding the data amount of the performance information in combination with a general-purpose compression method. , Performance information decoding method,
A performance information compression program and a performance information decoding program can be provided.
【図1】本発明の第1の実施の形態に係る演奏情報圧縮
装置1の構成を示すブロック図である。FIG. 1 is a block diagram showing a configuration of a performance information compression device 1 according to a first embodiment of the present invention.
【図2】第1の実施の形態に係る演奏情報圧縮装置1に
おける1次符号生成部2の詳細な構成を示すブロック図
である。FIG. 2 is a block diagram showing a detailed configuration of a primary code generation unit 2 in the performance information compression device 1 according to the first embodiment.
【図3】第1の実施の形態に係る演奏情報圧縮装置1の
1次符号生成部2内のトラック分離部7の詳細な構成を
示すブロック図である。FIG. 3 is a block diagram showing a detailed configuration of a track separation unit 7 in the primary code generation unit 2 of the performance information compression device 1 according to the first embodiment.
【図4】トラック分離部7によるトラック分離に係る処
理を説明するためのフローチャートである。FIG. 4 is a flowchart for explaining a process related to track separation by a track separation unit 7.
【図5】第1の実施の形態に係る演奏情報圧縮装置1の
1次符号生成部2内のチャネル分離及びチャネル番号符
号生成部8の詳細な構成を示すブロック図である。FIG. 5 is a block diagram showing a detailed configuration of a channel separation and channel number code generation unit 8 in the primary code generation unit 2 of the performance information compression device 1 according to the first embodiment.
【図6】チャネル分離及びチャネル番号符号生成部8に
よるチャネル分離、チャネル番号符号生成に係る処理を
説明するためのフローチャートである。FIG. 6 is a flowchart for explaining a process related to channel separation and channel number code generation by a channel separation and channel number code generation unit 8.
【図7】(a)はトラックxデータの構成を示す図であ
り、(b)はトラックxデータを分離した単一チャネル
からなるトラックxデータを示す図であり、(c)はチ
ャネル分離及びチャネル番号符号生成部8によるチャネ
ル番号符号生成に係る処理による効果を説明するための
図である。7A is a diagram showing a structure of track x data, FIG. 7B is a diagram showing track x data composed of a single channel in which the track x data is separated, and FIG. FIG. 8 is a diagram for explaining an effect of a process related to channel number code generation by the channel number code generation unit 8.
【図8】第1の実施の形態に係る演奏情報圧縮装置1の
チャネル番号以外の符号生成部9の詳細な構成を示すブ
ロック図である。FIG. 8 is a block diagram showing a detailed configuration of a code generation unit 9 other than channel numbers of the performance information compression apparatus 1 according to the first embodiment.
【図9】チャネル番号以外の符号生成部9による符号化
の処理を説明するためのフローチャートである。FIG. 9 is a flowchart for explaining a coding process by the code generation unit 9 other than the channel number.
【図10】図9のステップS36において実行されるTr
ack[I][J]の符号化に係る処理を更に詳細に説明するた
めのフローチャートである。FIG. 10 is a Tr executed in step S36 of FIG.
9 is a flowchart for explaining the process related to the coding of ack [I] [J] in more detail.
【図11】図10のステップS47において実行される
イベント毎の符号化に係る処理を更に詳細に説明するた
めのフローチャートである。11 is a flowchart for explaining in more detail the processing related to the encoding for each event, which is executed in step S47 of FIG.
【図12】第1の実施の形態に係る演奏情報圧縮装置1
の1次符号生成部2内の符号配置部10の詳細な構成を
示すブロック図である。FIG. 12 is a performance information compression device 1 according to the first embodiment.
3 is a block diagram showing a detailed configuration of a code arrangement unit 10 in the primary code generation unit 2 of FIG.
【図13】符号配置置部10による符号配置の処理を説
明する為のフローチャートである。FIG. 13 is a flow chart for explaining a code arrangement process by the code arrangement unit 10.
【図14】図13のステップS61において実行される
Δタイム符号配置に係る処理を更に詳細に説明するため
のフローチャートである。FIG. 14 is a flowchart for explaining in more detail the processing relating to the Δtime code arrangement executed in step S61 of FIG.
【図15】図13のステップS62において実行される
Note On音程符号配置に係る処理を更に詳細に説明する
ためのフローチャートである。FIG. 15 is executed in step S62 of FIG.
It is a flow chart for explaining the process concerning Note On pitch code arrangement in more detail.
【図16】図13のステップS63において実行される
Note Off音程符号配置に係る処理を更に詳細に説明する
ためのフローチャートである。16 is executed in step S63 of FIG.
It is a flow chart for explaining processing concerning Note Off pitch code arrangement in more detail.
【図17】図13のステップS64において実行される
ベロシティ値符号配置に係る処理を更に詳細に説明する
ためのフローチャートである。FIG. 17 is a flowchart for explaining in more detail the processing related to velocity value code arrangement executed in step S64 of FIG.
【図18】図13のステップS65において実行される
差分ベンド値符号配置に係る処理を更に詳細に説明する
ためのフローチャートである。FIG. 18 is a flowchart for explaining in more detail the processing relating to the differential bend value code arrangement executed in step S65 of FIG.
【図19】図13のステップS66において実行される
差分エクスプレッション値符号配置に係る処理を更に詳
細に説明するためのフローチャートである。FIG. 19 is a flowchart for explaining the process relating to the differential expression value code arrangement executed in step S66 of FIG. 13 in more detail.
【図20】図13のステップS67において実行される
イベント種別識別符号配置に係る処理を更に詳細に説明
するためのフローチャートである。FIG. 20 is a flowchart for explaining in more detail the processing related to event type identification code arrangement executed in step S67 of FIG.
【図21】イベント種別識別符号表の一例を示す図であ
る。FIG. 21 is a diagram showing an example of an event type identification code table.
【図22】図13のステップS68において実行される
チャネル番号符号配置に係る処理を更に詳細に説明する
ためのフローチャートである。22 is a flowchart for explaining in more detail the processing relating to the channel number code arrangement executed in step S68 of FIG.
【図23】図13のステップS69において実行される
その他情報符号配置に係る処理を更に詳細に説明するた
めのフローチャートである。FIG. 23 is a flowchart for explaining the process relating to the other information code arrangement executed in step S69 of FIG. 13 in more detail.
【図24】1次符号生成部2により生成された1次符号
5の基本配置順序を示す図である。24 is a diagram showing the basic arrangement order of the primary codes 5 generated by the primary code generation unit 2. FIG.
【図25】(a)は1次符号生成部2により生成された
1次符号5の各符号の詳細な内部配置順序を示す図、
(b)はチャネル番号符号の内部配置順序を示す図であ
る。25A is a diagram showing a detailed internal arrangement order of each code of the primary code 5 generated by the primary code generation unit 2, FIG.
(B) is a figure which shows the internal arrangement | positioning order of a channel number code | symbol.
【図26】本発明の第1の実施の形態に係る演奏情報復
号装置50の構成を示すブロック図である。FIG. 26 is a block diagram showing a configuration of a performance information decoding device 50 according to the first embodiment of the present invention.
【図27】第1の実施の形態に係る演奏情報圧縮装置5
0における1次符号復号部51の詳細な構成を示すブロ
ック図である。FIG. 27 is a performance information compression device 5 according to the first embodiment.
FIG. 3 is a block diagram showing a detailed configuration of a primary code decoding unit 51 in 0.
【図28】第1の実施の形態に係る演奏情報圧縮装置1
の1次符号復号部51内のチャネル別符号抽出部53の
詳細な構成を示すブロック図である。FIG. 28 is a performance information compression device 1 according to the first embodiment.
3 is a block diagram showing a detailed configuration of a channel-specific code extraction unit 53 in the primary code decoding unit 51 of FIG.
【図29】チャネル別符号抽出部53による符号抽出に
係る処理を説明する為のフローチャートである。FIG. 29 is a flowchart for explaining a process related to code extraction by the channel-specific code extraction unit 53.
【図30】図29のステップS161において実行され
るΔタイム符号抽出に係る処理を更に詳細に説明するた
めのフローチャートである。FIG. 30 is a flowchart for explaining the process related to Δ time code extraction executed in step S161 of FIG. 29 in more detail.
【図31】図29のステップS162において実行され
るNote On音程符号抽出に係る処理を更に詳細に説明す
るためのフローチャートである。FIG. 31 is a flowchart for explaining in more detail the Note On pitch code extraction processing executed in step S162 of FIG. 29.
【図32】図29のステップS163において実行され
るNote Off音程符号抽出に係る処理を更に詳細に説明す
るためのフローチャートである。32 is a flowchart for explaining in more detail the processing related to Note Off pitch code extraction executed in step S163 of FIG. 29. FIG.
【図33】図29のステップS164において実行され
るベロシティ値符号抽出に係る処理を更に詳細に説明す
るためのフローチャートである。FIG. 33 is a flowchart for explaining the processing relating to velocity value code extraction executed in step S164 of FIG. 29 in more detail.
【図34】図29のステップS165において実行され
る差分ベンド値符号抽出に係る処理を更に詳細に説明す
るためのフローチャートである。FIG. 34 is a flowchart for explaining in more detail the processing relating to differential bend value code extraction executed in step S165 of FIG.
【図35】図29のステップS166において実行され
る差分エクスプレッション値符号抽出に係る処理を更に
詳細に説明するためのフローチャートである。FIG. 35 is a flow chart for explaining the processing relating to the differential expression value code extraction executed in step S166 of FIG. 29 in further detail.
【図36】図29のステップS167において実行され
るイベント種別識別符号抽出に係る処理を更に詳細に説
明するためのフローチャートである。FIG. 36 is a flow chart for explaining the process relating to the event type identification code extraction executed in step S167 of FIG. 29 in more detail.
【図37】図29のステップS168において実行され
るチャネル番号符号抽出に係る処理を更に詳細に説明す
るためのフローチャートである。FIG. 37 is a flowchart for explaining in more detail the processing related to channel number code extraction executed in step S168 of FIG.
【図38】図29のステップS169において実行され
るその他情報符号抽出に係る処理を更に詳細に説明する
ためのフローチャートである。FIG. 38 is a flow chart for explaining the process relating to the extraction of other information code executed in step S169 of FIG. 29 in more detail.
【図39】第1の実施の形態に係る演奏情報圧縮装置5
0の1次符号生成部52内のトラック復号部54の詳細
な構成を示すブロック図である。FIG. 39 is a performance information compression device 5 according to the first embodiment.
5 is a block diagram showing a detailed configuration of a track decoding unit 54 in the 0 primary code generation unit 52. FIG.
【図40】トラック復号部54による復号処理を説明す
る為のフローチャートである。FIG. 40 is a flowchart for explaining a decoding process by the track decoding unit 54.
【図41】図41のステップS266において実行され
るTrack[I][J]の復号に係る処理を更に詳細に説明する
ためのフローチャートである。41 is a flowchart for explaining in more detail the processing relating to Track [I] [J] decoding executed in step S266 of FIG. 41. FIG.
【図42】図41のステップS273において実行され
るイベント種別毎の復号に係る処理を更に詳細に説明す
るためのフローチャートである。42 is a flowchart for explaining in more detail the process related to the decoding for each event type, which is executed in step S273 in FIG. 41. FIG.
【図43】第1の実施の形態に係る演奏情報圧縮装置5
0の1次符号生成部52内のトラックマージ及びチャネ
ル番号符号復号部55の詳細構成を示すブロック図であ
る。FIG. 43 is a performance information compression device 5 according to the first embodiment.
5 is a block diagram showing a detailed configuration of a track merging and channel number code decoding unit 55 in the 0 primary code generation unit 52. FIG.
【図44】トラックマージ及びチャネル番号符号復号部
55によるトラックマージ及びチャネル番号符号の復号
に係る処理を説明するためのフローチャートである。[Fig. 44] Fig. 44 is a flowchart for describing a process related to track merge and channel number code decoding by the track merge and channel number code decoding unit 55.
【図45】図44のステップS305において実行され
るトラックマージに係る処理を更に詳細に説明するため
のフローチャートである。FIG. 45 is a flowchart for explaining in more detail the processing related to track merging executed in step S305 of FIG. 44.
【図46】第1の実施の形態に係る演奏情報圧縮装置5
0の1次符号生成部52内のトラック配置部56の詳細
な構成を示すブロック図である。FIG. 46 is a performance information compression device 5 according to the first embodiment.
5 is a block diagram showing a detailed configuration of a track arrangement unit 56 in the 0 primary code generation unit 52. FIG.
【図47】トラック配置部56によるトラック配置に係
る処理を説明するためのフローチャートである。FIG. 47 is a flowchart for explaining a process related to track arrangement by the track arrangement unit 56.
【図48】第2の実施の形態に係る演奏情報圧縮装置7
0のチャネル番号以外の符号生成部100の詳細な構成
を示すブロック図である。FIG. 48 is a performance information compression device 7 according to the second embodiment.
3 is a block diagram showing a detailed configuration of a code generation unit 100 other than a channel number of 0. FIG.
【図49】第2の実施の形態において、図10のステッ
プS47において実行されるイベント毎の符号化に係る
処理を更に詳細に説明するためのフローチャートであ
る。49 is a flowchart for explaining in more detail the processing related to the encoding for each event, which is executed in step S47 of FIG. 10 in the second embodiment.
【図50】符号配置置部10による符号配置の処理を説
明する為のフローチャートである。FIG. 50 is a flowchart for explaining a code arrangement process by the code arrangement unit 10.
【図51】図50のステップS381において実行され
るΔタイム符号配置に係る処理を更に詳細に説明するた
めのフローチャートである。51 is a flow chart for explaining the processing relating to the Δtime code arrangement executed in step S381 of FIG. 50 in more detail.
【図52】図50のステップS382において実行され
る音程符号配置に係る処理を更に詳細に説明するための
フローチャートである。52 is a flow chart for explaining the process relating to pitch code arrangement executed in step S382 of FIG. 50 in more detail.
【図53】図50のステップS383において実行され
るゲートタイム音程符号配置に係る処理を更に詳細に説
明するためのフローチャートである。53 is a flow chart for explaining the process relating to gate time pitch code arrangement executed in step S383 of FIG. 50 in further detail.
【図54】図50のステップS384において実行され
るベロシティ値符号配置に係る処理を更に詳細に説明す
るためのフローチャートである。54 is a flow chart for explaining the processing relating to the velocity value code arrangement executed in step S384 of FIG. 50 in further detail.
【図55】図50のステップS385において実行され
る差分ベンド値符号配置に係る処理を更に詳細に説明す
るためのフローチャートである。FIG. 55 is a flowchart for explaining the process relating to the differential bend value code arrangement executed in step S385 of FIG. 50 in more detail.
【図56】図50のステップS386において実行され
る差分ボリューム値符号配置に係る処理を更に詳細に説
明するためのフローチャートである。FIG. 56 is a flowchart for explaining the processing relating to the differential volume value code arrangement executed in step S386 of FIG. 50 in more detail.
【図57】図50のステップS387において実行され
るイベント種別識別符号配置に係る処理を更に詳細に説
明するためのフローチャートである。57 is a flow chart for explaining the process relating to the event type identification code arrangement executed in step S387 of FIG. 50 in more detail.
【図58】イベント種別識別符号表の一例を示す図であ
る。FIG. 58 is a diagram showing an example of an event type identification code table.
【図59】図50のステップS388において実行され
るチャネル番号符号配置に係る処理を更に詳細に説明す
るためのフローチャートである。FIG. 59 is a flowchart for explaining in more detail the processing relating to the channel number code arrangement executed in step S388 of FIG. 50.
【図60】図50のステップS389において実行され
るその他情報符号配置に係る処理を更に詳細に説明する
ためのフローチャートである。FIG. 60 is a flow chart for explaining the process relating to the other information code arrangement executed in step S389 of FIG. 50 in more detail.
【図61】第2の実施の形態において、1次符号生成部
2により生成された1次符号5の基本配置順序を示す図
である。FIG. 61 is a diagram showing a basic arrangement order of the primary codes 5 generated by the primary code generation unit 2 in the second embodiment.
【図62】第2の実施の形態に係る演奏情報復号装置8
0が採用するチャネル別符号抽出部110の詳細な構成
を示すブロック図である。FIG. 62 is a performance information decoding device 8 according to the second embodiment.
3 is a block diagram showing a detailed configuration of a channel-specific code extraction unit 110 adopted by 0. FIG.
【図63】チャネル別符号抽出部110による符号抽出
に係る処理を説明する為のフローチャートである。[Fig. 63] Fig. 63 is a flowchart for explaining a process related to code extraction by the channel-specific code extraction unit 110.
【図64】図63のステップS481において実行され
るΔタイム符号抽出に係る処理を更に詳細に説明するた
めのフローチャートである。FIG. 64 is a flowchart for explaining in more detail the process related to Δ time code extraction executed in step S481 of FIG. 63.
【図65】図63のステップS482において実行され
る音程符号抽出に係る処理を更に詳細に説明するための
フローチャートである。65 is a flow chart for explaining the process relating to pitch code extraction executed in step S482 of FIG. 63 in further detail.
【図66】図63のステップS483において実行され
るゲートタイム符号抽出に係る処理を更に詳細に説明す
るためのフローチャートである。66 is a flow chart for explaining the process relating to gate time code extraction executed in step S483 of FIG. 63 in further detail.
【図67】図63のステップS484において実行され
るベロシティ値符号抽出に係る処理を更に詳細に説明す
るためのフローチャートである。67 is a flow chart for explaining the process relating to velocity value code extraction executed in step S484 of FIG. 63 in further detail.
【図68】図63のステップS485において実行され
る差分ベンド値符号抽出に係る処理を更に詳細に説明す
るためのフローチャートである。FIG. 68 is a flowchart for explaining in more detail the processing relating to differential bend value code extraction executed in step S485 of FIG. 63.
【図69】図63のステップS486において実行され
る差分ボリューム値符号抽出に係る処理を更に詳細に説
明するためのフローチャートである。69 is a flow chart for explaining the process relating to the differential volume value code extraction executed in step S486 of FIG. 63 in further detail.
【図70】図63のステップS487において実行され
るイベント種別識別符号抽出に係る処理を更に詳細に説
明するためのフローチャートである。70 is a flowchart for explaining in more detail the processing relating to the event type identification code extraction executed in step S487 of FIG. 63. FIG.
【図71】図63のステップS488において実行され
るチャネル番号符号抽出に係る処理を更に詳細に説明す
るためのフローチャートである。71 is a flowchart for illustrating in more detail the processing relating to channel number code extraction executed in step S488 of FIG. 63. FIG.
【図72】図63のステップS489において実行され
るその他情報符号抽出に係る処理を更に詳細に説明する
ためのフローチャートである。72 is a flow chart for explaining the process relating to the extraction of other information code executed in step S489 of FIG. 63 in further detail.
【図73】第2の実施の形態に係る演奏情報復号装置8
0におけるトラック復号部120の詳細な構成を示すブ
ロック図である。FIG. 73 is a performance information decoding device 8 according to the second embodiment.
3 is a block diagram showing a detailed configuration of a track decoding unit 120 in 0. FIG.
【図74】第2の実施の形態において、図41のステッ
プS273において実行されるイベント種別毎の復号に
係る処理を更に詳細に説明するフローチャートである。[Fig. 74] Fig. 74 is a flowchart for explaining in more detail the process related to the decoding for each event type, which is executed in step S273 of Fig. 41 in the second embodiment.
【図75】第3の実施の形態に係るシステムの第1構成
例を示す図である。FIG. 75 is a diagram showing a first configuration example of a system according to a third embodiment.
【図76】第3の実施の形態に係るシステムの第2構成
例を示す図である。FIG. 76 is a diagram showing a second configuration example of the system according to the third embodiment.
【図77】第3の実施の形態に係るシステムの第3構成
例を示す図である。FIG. 77 is a diagram showing a third configuration example of the system according to the third embodiment.
【図78】第3の実施の形態に係るシステムの第4構成
例を示す図である。FIG. 78 is a diagram showing a fourth configuration example of the system according to the third embodiment.
【図79】演奏情報フォーマット別タイプ対応表を示す
図である。79 is a diagram showing a type correspondence table for each performance information format. FIG.
1 演奏情報圧縮装置 2 1次符号生成部 3 2次符号生成部 4 楽曲ファイル 5 1次符号 6 2次符号 7 トラック分離部 7aファイル解析部 8 チャネル分離及びチャネル番号符号生成部 8aトラック解析部 8bチャネル番号符号生成部 9 チャネル番号以外の符号生成部 10 符号配置部 11 トラックデータ 21 イベント種別解析識別部 22 Δタイム符号生成部 23 Note On音程符号生成部 24 Note Off音程符号生成部 25 ベロシティ値符号生成部 26 差分ベンド値符号生成部 27 差分エクスプレッション値符号生成部 28 イベント種別識別符号生成部 29 その他情報符号生成部 50 演奏情報復号装置 51 2次符号復号部 52 1次符号復号部 53 チャネル別符号抽出部 54 トラック復号部 55 トラックマージ及びチャネル番号符号復号部 55aトラックマージ部 55bチャネル番号符号復号部 56 トラック配置部 60 Δタイム符号復号部 61 Note On音程符号復号部 62 Note Off音程符号復号部 63 ベロシティ値符号復号部 64 差分ベンド値符号復号部 65 差分エクスプレッション値符号復号部 66 イベント種別識別符号復号部 67 その他情報符号復号部 68 イベント書き出し部 69 単一チャネルからなるトラックデータ 70 演奏情報圧縮装置 80 演奏情報復号装置 100 チャネル番号以外の符号生成部 101 イベント種別解析識別部 102 Δタイム符号生成部 103 音程符号生成部 104 ゲートタイム符号生成部 105 ベロシティ値符号生成部 106 差分ベンド値符号生成部 107 差分ボリューム値符号生成部 108 イベント種別識別符号生成部 109 その他情報符号生成部 110 チャネル別符号抽出部 120 チャネル番号以外の符号抽出部 121 Δタイム符号抽出部 122 音程符号抽出部 123 ゲートタイム符号抽出部 124 ベロシティ値符号抽出部 125 差分ベンド値符号抽出部 126 差分ボリューム値符号抽出部 127 イベント種別識別符号抽出部 128 その他情報符号抽出部 129 イベント書き出し部 1 Performance information compression device 2 Primary code generator 3 Secondary code generator 4 music files 5 Primary code 6 secondary code 7 Track separation section 7a file analysis section 8 channel separation and channel number code generator 8a track analysis section 8b channel number code generator 9 Code generator other than channel number 10 Code Arrangement Unit 11 track data 21 Event type analysis and identification section 22 Δ time code generator 23 Note On Pitch code generator 24 Note Off Pitch code generator 25 Velocity value code generator 26 Differential Bend Value Code Generator 27 Differential Expression Value Code Generator 28 Event type identification code generator 29 Other information code generator 50 Performance information decoding device 51 Secondary code decoding unit 52 primary code decoding unit 53 Channel-specific code extraction unit 54 track decoder 55 Track merge and channel number code decoder 55a track merge section 55b channel number code decoding unit 56 Track placement section 60 Δ time code decoding unit 61 Note On Pitch code decoding unit 62 Note Off pitch code decoding unit 63 Velocity value code decoding unit 64 Differential Bend Value Code Decoding Unit 65 Differential Expression Value Code Decoding Unit 66 Event type identification code decoding unit 67 Other information code decoding unit 68 Event writing department 69 Track data consisting of a single channel 70 Performance information compression device 80 Performance information decoding device Code generator other than 100 channel numbers 101 Event type analysis and identification section 102 Δ time code generator 103 pitch code generator 104 Gate time code generator 105 Velocity value code generator 106 differential bend value code generator 107 differential volume value code generation unit 108 Event type identification code generator 109 Other information code generator 110 Code Extractor for Each Channel 120 Code extractor other than channel number 121 Δ time code extraction unit 122 pitch code extraction unit 123 Gate time code extraction unit 124 Velocity value code extraction unit 125 Differential Bend Value Code Extraction Unit 126 Differential Volume Value Code Extraction Unit 127 Event type identification code extraction unit 128 Other information code extraction unit 129 Event writing department
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 平9−16168(JP,A) 特開 平9−153819(JP,A) 特開 平9−22285(JP,A) 特開2002−91436(JP,A) 特開2002−91437(JP,A) 特開 平8−152881(JP,A) 特開 平8−202358(JP,A) (58)調査した分野(Int.Cl.7,DB名) G10H 1/00 - 7/12 H03M 7/46 ─────────────────────────────────────────────────── ─── Continuation of the front page (56) Reference JP-A-9-16168 (JP, A) JP-A-9-153819 (JP, A) JP-A-9-22285 (JP, A) JP-A-2002-91436 (JP, A) JP 2002-91437 (JP, A) JP 8-152881 (JP, A) JP 8-202358 (JP, A) (58) Fields investigated (Int. Cl. 7 , DB name) G10H 1/00-7/12 H03M 7/46
Claims (30)
さの情報、発音終了音程の情報、その他の情報からなる
イベントと、該イベント間の相対時間の情報とを含んで
いる複数のトラックデータを有するファイルの入力を受
け、当該ファイルを圧縮する演奏情報圧縮装置におい
て、 上記ファイルの複数のトラックデータを、各チャネルに
帰属するトラックデータ毎に分離し、復号化のときに参
照する為のチャネルへの帰属を示す情報を保持しつつ、
各チャネルに帰属するトラックデータの情報を種別毎に
更に分離し、この分離された種別毎の情報を種別毎にま
とめ、種別毎に独立した領域に配置することで1次符号
を生成する1次符号生成手段と、 上記1次符号生成手段により生成された1次符号の各領
域に配置された各情報を所定の圧縮方法により圧縮する
2次符号生成手段と、 を有することを特徴とする演奏情報圧縮装置。1. An event consisting of at least information on a sounding start pitch, information on a sound intensity, information on a sounding end pitch, other information, and information on a relative time between the events.
Receives the file having a plurality of track data that are, in the performance information compression apparatus for compressing the file, a plurality of track data of the file is separated into belt each rack data attributable to each channel, decoding Sometimes come
While holding the information showing attribution to the channel to illuminate ,
The information track data belonging to each channel further separated for each type, summary information of the separated each type for each different species, to produce a primary code by placing in a separate area for each different species A primary code generating means, and a secondary code generating means for compressing each information arranged in each area of the primary code generated by the primary code generating means by a predetermined compression method. Performance information compression device.
報、音の長さの情報、その他の情報からなるイベント
と、該イベント間の相対時間の情報とを含んでいる複数
のトラックデータを有するファイルの入力を受け、当該
ファイルを圧縮する演奏情報圧縮装置において、 上記ファイルの複数のトラックデータを、各チャネルに
帰属するトラックデータ毎に分離し、復号化のときに参
照する為のチャネルへの帰属を示す情報を保持しつつ、
各チャネルに帰属するトラックデータの情報を種別毎に
更に分離し、この分離された種別毎の情報を種別毎にま
とめ、種別毎に独立した領域に配置することで1次符号
を生成する1次符号生成手段と、 上記1次符号生成手段により生成された1次符号の各領
域に配置された各情報を所定の圧縮方法により圧縮する
2次符号生成手段と、 を有することを特徴とする演奏情報圧縮装置。2. A plurality of events including at least pitch information, sound intensity information, sound length information, and other information, and relative time information between the events .
Receives the file with the track data, the performance information compression apparatus for compressing the file, a plurality of track data of the file is separated into belt rack every data attributable to each channel, when the decoding three
While holding the information showing attribution to the channel to illuminate ,
The information track data belonging to each channel further separated for each type, summary information of the separated each type for each different species, to produce a primary code by placing in a separate area for each different species A primary code generating means, and a secondary code generating means for compressing each information arranged in each area of the primary code generated by the primary code generating means by a predetermined compression method. Performance information compression device.
間の相対時間の情報に基づき、上記トラックデータに同
時刻に係る複数のイベントが記録されていると判断した
場合には上記複数のイベントからなるイベント群の最後
尾に記録されるイベントについて、又は所定時刻に係る
イベントが単一であると判断した場合には当該イベント
について、チャネルへの帰属を示す情報を保持する対象
から除外することを更なる特徴とする請求項1又は2に
記載の演奏情報圧縮装置。3. The plurality of events when the primary code generation means determines that a plurality of events related to the same time are recorded in the track data based on information of relative time between the events. For the event recorded at the end of the event group consisting of, or when it is determined that there is a single event related to a certain time, exclude that event from the target that retains information indicating attribution to the channel. The performance information compression apparatus according to claim 1 or 2, further comprising:
識別符号を上記トラックデータに含まれる各イベント毎
に割り当て、当該イベント種別識別符号をまとめて、独
立した領域に配置することを更なる特徴とする請求項1
又は2に記載の演奏情報圧縮装置。Wherein the primary code generating means assigns an event type identification code for each event included in the track data, collectively the event type identification code, comprising further placing a separate area Claim 1 characterized by
Alternatively, the performance information compression device described in 2.
イルに記録されているイベント群に含まれるイベントの
うち、少なくとも最も使用頻度の高いイベントのイベン
ト種別の識別情報を、1次符号の相対時間符号に含めて
記録することを更なる特徴とする請求項1又は2に記載
の演奏情報圧縮装置。5. The primary code generation means uses at least the event type identification information of the most frequently used event among the events included in the event group recorded in the performance information file as a relative of the primary code. 3. The performance information compression apparatus according to claim 1, further comprising recording the time information by including it in the time code.
が所定のタイプである場合には、チャネルへの帰属を示
す情報の代わりにイベントクラス情報を記録することを
更なる特徴とする請求項2に記載の演奏情報圧縮装置。 6. The primary code generation means is for the event.
Is a given type, it indicates attribution to the channel.
To record event class information instead of
The performance information compression apparatus according to claim 2, which is further characterized.
り圧縮され生成された2次符号を所定の復号方法により
1次符号に復号し、更に当該1次符号をファイルに復号
する演奏情報復号装置において、 上記2次符号を1次符号に復号する2次符号復号手段
と、 上記1次符号について、独立した領域に配置されている
種別毎の各情報を当該種別毎に抽出し、上記チャネルへ
の帰属を示す情報を参照しつつ、抽出した各情報を各チ
ャネルに帰属する複数のトラックデータとして構成し、
更にファイルのトラックデータとして構成することでフ
ァイルに復号する1次符号復号手段と、を有することを
特徴とする演奏情報復号装置。 7. The performance information compression apparatus according to claim 1.
Decompressed and generated secondary code by a predetermined decoding method
Decode to a primary code, and then decode the primary code to a file
In the performance information decoding device, a secondary code decoding means for decoding the secondary code into a primary code
And the above primary codes are arranged in independent areas.
Extract each information for each type into the above channel
While referring to the information that indicates the attribution of
Configured as multiple track data belonging to the channel,
Furthermore, by configuring it as the track data of the file,
And a primary code decoding means for decoding into a file.
Characteristic performance information decoding device.
り圧縮され生成された2次符号を所定の復号方法により
1次符号に復号し、更に当該1次符号をファイルに復号
する演奏情報復号装置において、 上記2次符号を1次符号に復号する2次符号復号手段
と、 上記1次符号について、独立した領域に配置されている
種別毎の各情報を当該種別毎に抽出し、上記チャネルへ
の帰属を示す情報を参照しつつ、抽出した各情報を各チ
ャネルに帰属する複数のトラックデータとして構成し、
更にファイルの トラックデータとして構成することでフ
ァイルに復号する1次符号復号手段と、を有することを
特徴とする演奏情報復号装置。 8. The performance information compression apparatus according to claim 2.
Decompressed and generated secondary code by a predetermined decoding method
Decode to a primary code, and then decode the primary code to a file
In the performance information decoding device, a secondary code decoding means for decoding the secondary code into a primary code
And the above primary codes are arranged in independent areas.
Extract each information for each type into the above channel
While referring to the information that indicates the attribution of
Configured as multiple track data belonging to the channel,
Furthermore , by configuring it as the track data of the file,
And a primary code decoding means for decoding into a file.
Characteristic performance information decoding device.
きには、独立した領域に配置されている各イベントの種
別を、各イベント毎に割り当てられたイベント種別識別
符号に基づいて識別する、ことを更なる特徴とする請求
項7又は8に記載の演奏情報復号装置。 9. The primary code decoding means is adapted to perform the above decoding.
The event types are arranged in separate areas.
Event type identification assigned to each event
A further feature of identifying based on a code
Item 7. The performance information decoding device according to item 7 or 8.
所定のタイプである場合には、上記チャネルへの帰属を
示す情報の代わりにイベントクラス情報を参照しつつト
ラックデータを構成する、ことを更なる特徴とする請求
項8に記載の演奏情報復号装置。 10. The event of the primary code decoding means is
If it is of a certain type, please attribute to the above channel.
Refer to the event class information instead of the information shown
Claims, characterized by the fact that they constitute rack data
Item 8. The performance information decoding device according to item 8.
強さの情報、発音終了音程の情報、その他の情報からな
るイベントと、該イベント間の相対時間の情報とを含ん
でいる複数のトラックデータを有するファイルの入力を
受け、当該ファイルを圧縮する演奏情報圧縮方法におい
て、 1次符号生成手段により、上記ファイルの複数のトラッ
クデータを、各チャネルに帰属するトラックデータ毎に
分離し、復号化のときに参照する為のチャネルへの帰属
を示す情報を保持しつつ、各チャネルに帰属するトラッ
クデータの情報を種別毎に更に分離し、この分離された
種別毎の情報を種別毎にまとめ、種別毎に独立した領域
に配置することで1次符号を生成するステップと、 2次符号生成手段により、上記1次符号生成手段により
生成された1次符号の各領域に配置された各情報を所定
の圧縮方法により圧縮するステップと、 を有することを特徴とする演奏情報圧縮方法。 11. Information on at least sounding start pitch and sound
It consists of strength information, end tone pitch information, and other information.
Event and the information of the relative time between the events
Input of a file with multiple track data
Receive the performance information compression method that compresses the file
Te, by the primary code generating unit, a plurality of tracks of the file
For each track data belonging to each channel
Separation and attribution to the channel for reference when decoding
While holding the information indicating
The data of the data is further separated by type, and this separated
Information that is classified by type is grouped by type, and an independent area for each type
To generate a primary code by arranging the primary code and the secondary code generating means, and the primary code generating means.
Predetermine each information placed in each area of the generated primary code
And a step of compressing the performance information by the above compression method.
報、音の長さの情報、その他の情報からなるイベント
と、該イベント間の相対時間の情報とを含んでいる複数
のトラックデータを有するファイルの入力を受け、当該
ファイルを圧縮する演奏情報圧縮方法において、 1次符号生成手段により、上記ファイルの複数のトラッ
クデータを、各チャネルに帰属するトラックデータ毎に
分離し、復号化のときに参照する為のチャネルへの帰属
を示す情報を保持しつつ、各チャネルに帰属するトラッ
クデータの情報 を種別毎に更に分離し、この分離された
種別毎の情報を種別毎にまとめ、種別毎に独立した領域
に配置することで1次符号を生成するステップと、 2次符号生成手段により、上記1次符号生成手段により
生成された1次符号の各領域に配置された各情報を所定
の圧縮方法により圧縮するステップと、 を有することを特徴とする演奏情報圧縮方法。 12. At least pitch information and sound intensity information
Event consisting of information, sound length information, and other information
And a plurality of information including relative time information between the events.
Input the file containing the track data of
In a performance information compression method for compressing a file, a plurality of tracks of the file are
For each track data belonging to each channel
Separation and attribution to the channel for reference when decoding
While holding the information indicating
The data of the data is further separated by type, and this separated
Information that is classified by type is grouped by type, and an independent area for each type
To generate a primary code by arranging the first code and the secondary code generation means, and the primary code generation means
Predetermine each information placed in each area of the generated primary code
And a step of compressing the performance information by the above compression method.
クデータに同時刻に係る複数のイベントが記録されてい
ると判断した場合には上記複数のイベントからなるイベ
ント群の最後尾に記録されるイベントについて、又は所
定時刻に係るイベントが単一であると判断した場合には
当該イベントについて、チャネルへの帰属を示す情報を
保持する対象から除外するステップ、 を更に有することを特徴とする請求項11又は12に記
載の演奏情報圧縮方法。 13. The primary code generation means uses the track based on information of relative time between the events.
Data, multiple events related to the same time are recorded.
If it is determined that the event consisting of the above multiple events
The event recorded at the end of the group
If it is determined that there is a single event related to a fixed time,
About the event, information showing attribution to the channel
The method according to claim 11 or 12, further comprising a step of excluding the object from being held.
Method of compressing performance information in the series.
各イベント毎に割り当て、当該イベント種別識別符号を
まとめて、独立した領域に配置するステップ、を更に有
することを特徴とする請求項11又は12に記載の演奏
情報圧縮方法。 14. An event type identification code is included in the track data by the primary code generation means.
Allocate to each event and assign the event type identification code
It also has a step of collectively arranging them in independent areas.
The performance according to claim 11 or 12, characterized in that
Information compression method.
るイベントのうち、少なくとも最も使用頻度の高いイベ
ントのイベント種別の識別情報を、1次符号の相対時間
符号に含めて記録することステップ、 を更に有することを特徴とする請求項11又は12に記
載の演奏情報圧縮方法。 15. An event group recorded in a performance information file by the primary code generating means.
Of the most frequently used events
The event type identification information as the relative time of the primary code
13. The method according to claim 11 or 12, further comprising the step of recording by including the code.
Method of compressing performance information in the series.
への帰属を示す情報の代わりにイベントクラス情報を記
録するステップ、 を更に有することを特徴とする請求項12に記載の演奏
情報圧縮方法。 16. A channel if the event is of a predetermined type by the primary code generation means.
Event class information is recorded instead of information indicating attribution to
The performance according to claim 12, further comprising a step of recording.
Information compression method.
により圧縮され生成された2次符号を所定の復号方法に
より1次符号に復号し、更に当該1次符号をファイルに
復号する演奏情報復号方法において、 2次符号復号手段により、上記2次符号を1次符号に復
号するステップと、 1次符号復号手段により、上記1次符号について、独立
した領域に配置されている種別毎の各情報を当該種別毎
に抽出し、上記チャネルへの帰属を示す情報を参照しつ
つ、抽出した各情報を各チャネルに帰属する複数のトラ
ックデータとして構成し、更にファイルのトラックデー
タとして構成することでファイルに復号するステップ
と、 を有することを特徴とする演奏情報復号方法。 17. A performance information compression method according to claim 11.
The secondary code compressed and generated by
To the primary code and then to the file.
In a performance information decoding method for decoding, the secondary code decoding means restores the secondary code to a primary code.
And a step of decoding the primary code independently by the primary code decoding means.
Information for each type that is placed in the specified area for each type
And refer to the information showing attribution to the above channels.
The multiple extracted information is assigned to each channel.
Track data of the file.
To decrypt into a file by configuring it as a
And a performance information decoding method comprising:
により圧縮され生成された2次符号を所定の復号方法に
より1次符号に復号し、更に当該1次符号をファイルに
復号する演奏情報復号方法において、 2次符号復号手段により、上記2次符号を1次符号に復
号するステップと、 1次符号復号手段により、上記1次符号について、独立
した領域に配置されている種別毎の各情報を当該種別毎
に抽出し、上記チャネルへの帰属を示す情報を参照しつ
つ、抽出した各情報を各チャネルに帰属する複数のトラ
ックデータとして構成し、更にファイルのトラックデー
タとして構成することでファイルに復号するステップ
と、 を有することを特徴とする演奏情報復号方法。 18. A performance information compression method according to claim 12.
The secondary code compressed and generated by
To the primary code and then to the file.
In a performance information decoding method for decoding, the secondary code decoding means restores the secondary code to a primary code.
And a step of decoding the primary code independently by the primary code decoding means.
Information for each type that is placed in the specified area for each type
And refer to the information showing attribution to the above channels.
The multiple extracted information is assigned to each channel.
Track data of the file.
To decrypt into a file by configuring it as a
And a performance information decoding method comprising:
号のときには、独立した領域に配置されている各イベン
トの種別を、各イベント毎に割り当てられた、イベント
種別識別符号に基づいて識別するステップを更に有する
ことを特徴とする請求項17又は18に記載の演奏情報
復号方法。 19. The decoding means for decoding by the primary code decoding means.
Issue, each event located in a separate area.
Event type assigned to each event
The method further includes the step of identifying based on the type identification code.
Performance information according to claim 17 or 18, characterized in that
Decryption method.
トが所定のタイプである場合には、上記チャネルへの帰
属を示す情報の代わりにイベントクラス情報を参照しつ
つトラックデータを構成するステップを更に有すること
を特徴とする請求項18に記載の演奏情報復号方法。 20. An event is provided by the primary code decoding means.
Channel is of a given type, the
Refer to event class information instead of the information indicating the genus
Further comprising the step of constructing one track data
19. The performance information decoding method according to claim 18, wherein:
強さの情報、発音終了音程の情報、その他の情報からな
るイベントと、該イベント間の相対時間の情報とを含ん
でいる複数のトラックデータを有するファイルの入力を
受け、当該ファイルを圧縮する演奏情報圧縮プログラム
において、 コンピュータに、 上記ファイルの複数のトラックデータを、各チャネルに
帰属するトラックデータ毎に分離し、復号化のときに参
照する為のチャネルへの帰属を示す情報を保持しつつ、
各チャネルに帰属するトラックデータの情報を種別毎に
更に分離し、この分離された種別毎の情報を種別毎にま
とめ、種別毎に独立した領域に配置することで1次符号
を生成するステップと、 この生成された1次符号の各領域に配置された各情報を
所定の圧縮方法により圧縮するステップと、 を実行させるための演奏情報圧縮プログラム。 21. At least information on a note starting pitch and a note
It consists of strength information, end tone pitch information, and other information.
Event and the information of the relative time between the events
Input of a file with multiple track data
Performance information compression program that receives and compresses the file
In the computer, multiple track data of the above file can be
Separate each track data belonging to it and refer to it when decrypting.
While holding the information showing attribution to the channel to illuminate,
Track data information belonging to each channel for each type
It is further separated, and the separated information for each type is divided into each type.
First, by arranging it in an independent area for each type, the primary code
And the information arranged in each area of the generated primary code.
A performance information compression program for executing a step of compressing by a predetermined compression method .
報、音の長さの情報、その他の情報からなるイベント
と、該イベント間の相対時間の情報とを含んでいる複数
のトラックデータを有するファイルの入力を受け、当該
ファイルを圧縮する演奏情報圧縮プログラムにおいて、 コンピュータに、 上記ファイルの複数のトラックデータを、各チャネルに
帰属するトラックデータ毎に分離し、復号化のときに参
照する為のチャネルへの帰属を示す情報を保持しつつ、
各チャネルに帰属するトラックデータの情報を種別毎に
更に分離し、この分離された種別毎の情報を種別毎にま
とめ、種別毎に独立した領域に配置することで1次符号
を生成するステップと、 この生成された1次符号の各領域に配置された各情報を
所定の圧縮方法により圧縮するステップと、 を実行させるための演奏情報圧縮プログラム。 22. At least pitch information and sound intensity information
Event consisting of information, sound length information, and other information
And a plurality of information including relative time information between the events.
Input the file containing the track data of
In a performance information compression program that compresses a file, a computer is used to store multiple track data of the above file for each channel.
Separate each track data belonging to it and refer to it when decrypting.
While holding the information showing attribution to the channel to illuminate,
Track data information belonging to each channel for each type
It is further separated, and the separated information for each type is divided into each type.
First, by arranging it in an independent area for each type, the primary code
And the information arranged in each area of the generated primary code.
A performance information compression program for executing a step of compressing by a predetermined compression method .
クデータに同時刻に係る複数のイベントが記録されてい
ると判断した場合には上記複数のイベントからなるイベ
ント群の最後尾に記録されるイベントについて、又は所
定時刻に係るイベントが単一であると判断した場合には
当該イベントについて、チャネルへの帰属を示す情報を
保持する対象から除外するステップを更に実行させる、 ことを特徴とする請求項21又は22に記載の演奏情報
圧縮プログラム。 23. Based on information on relative time between the events , the computer is allowed to track the track.
Data, multiple events related to the same time are recorded.
If it is determined that the event consisting of the above multiple events
The event recorded at the end of the group
If it is determined that there is a single event related to a fixed time,
About the event, information showing attribution to the channel
23. The performance information according to claim 21 or 22, further comprising the step of excluding the object from the holding target.
Compression program.
各イベント毎に割り当て、当該イベント種別識別符号を
まとめて、独立した領域に配置するステップを更に実行
させる、 ことを特徴とする請求項21又は22に記載の演奏情報
圧縮プログラム。 24. The computer includes an event type identification code in the track data.
Allocate to each event and assign the event type identification code
Collectively perform steps to place in independent areas
23. Performance information according to claim 21 or 22, characterized in that
Compression program.
るイベントのうち、少なくとも最も使用頻度の高いイベ
ントのイベント種別の識別情報を、1次符号の相対時間
符号に含めて記録することステップを更に実行させる、 ことを特徴とする請求項21又は22に記載の演奏情報
圧縮プログラム。 25. The computer includes a group of events recorded in a performance information file.
Of the most frequently used events
The event type identification information as the relative time of the primary code
23. The performance information according to claim 21 or 22, further comprising the step of recording by including the code.
Compression program.
への帰属を示す情報の代わりにイベントクラス情報を記
録するステップを更に実行させる、ことを特徴とする請
求項22に記載の演奏情報圧縮プログラム。 26. A channel to the computer if the event is of a predetermined type
Event class information is recorded instead of information indicating attribution to
A contract characterized by further executing the step of recording
The performance information compression program according to claim 22.
グラムにより圧縮され生成された2次符号を所定の復号
方法により1次符号に復号し、更に当該1次符号をファ
イルに復号する演奏情報復号プログラムにおいて、 コンピュータに、 上記2次符号を1次符号に復号するステップと、 上記1次符号について、独立した領域に配置されている
種別毎の各情報を当該種別毎に抽出し、上記チャネルへ
の帰属を示す情報を参照しつつ、抽出した各情報を各チ
ャネルに帰属する複数のトラックデータとして構成し、
更にファイルのトラックデータとして構成することでフ
ァイルに復号するステップと、 を実行させることを特徴とする演奏情報復号プログラ
ム。 27. A performance information compression program according to claim 21.
Predetermined decoding of secondary code generated by compression with gram
Method to the primary code and then the primary code
In the performance information decoding program for decoding the primary code, the step of decoding the secondary code into the primary code and the primary code are arranged in independent areas in the computer .
Extract each information for each type into the above channel
While referring to the information that indicates the attribution of
Configured as multiple track data belonging to the channel,
Furthermore, by configuring it as the track data of the file,
And a performance information decoding program characterized by executing the steps of
Mu.
グラムにより圧縮され生成された2次符号を所定の復号
方法により1次符号に復号し、更に当該1次符号をファ
イルに復号する演奏情報復号プログラムにおいて、 コンピュータに、 上記2次符号を1次符号に復号するステップと、 上記1次符号について、独立した領域に配置されている
種別毎の各情報を当該 種別毎に抽出し、上記チャネルへ
の帰属を示す情報を参照しつつ、抽出した各情報を各チ
ャネルに帰属する複数のトラックデータとして構成し、
更にファイルのトラックデータとして構成することでフ
ァイルに復号するステップと、 を実行させることを特徴とする演奏情報復号プログラ
ム。 28. A performance information compression program according to claim 22.
Predetermined decoding of secondary code generated by compression with gram
Method to the primary code and then the primary code
In the performance information decoding program for decoding the primary code, the step of decoding the secondary code into the primary code and the primary code are arranged in independent areas in the computer .
Extract each information for each type into the above channel
While referring to the information that indicates the attribution of
Configured as multiple track data belonging to the channel,
Furthermore, by configuring it as the track data of the file,
And a performance information decoding program characterized by executing the steps of
Mu.
イベントの種別を、各イベント毎に割り当てられた、イ
ベント種別識別符号に基づいて識別するステップを更に
実行させる、ことを特徴とする請求項27又は28に記
載の演奏情報復号プログラム。 29. Each of the computers arranged in independent areas at the time of the decoding.
The event type is assigned to each event.
Further identifying step based on the vent type identification code
29. The method according to claim 27 or 28, characterized in that
The performance information decoding program in the above.
への帰属を示す情報の代わりにイベントクラス情報を参
照しつつトラックデータを構成するステップを更に実行
させることを特徴とする請求項28に記載の演奏情報復
号プログラム。 30. The channel to the computer if the event is of a predetermined type.
Refer to event class information instead of information indicating attribution to
Further steps to compose track data while illuminating
29. The performance information restoration according to claim 28, wherein
No. program.
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002143620A JP3486185B1 (en) | 2002-05-17 | 2002-05-17 | Performance information compression device, performance information decoding device, performance information compression method, performance information decoding method, performance information compression program, performance information decoding program |
| PCT/JP2003/006070 WO2003098593A1 (en) | 2002-05-17 | 2003-05-15 | Musical performance information compression device, musical performance information decompression device, musical performance information compression program product, and musical performance information decompression program product |
| AU2003235313A AU2003235313A1 (en) | 2002-05-17 | 2003-05-15 | Musical performance information compression device, musical performance information decompression device, musical performance information compression program product, and musical performance information decompression program product |
| CN03811306.6A CN1653514A (en) | 2002-05-17 | 2003-05-15 | Musical performance information compression device, musical performance information decompression device, musical performance information compression program product, and musical performance informati |
| US10/991,306 US7081578B2 (en) | 2002-05-17 | 2004-11-17 | Musical performance information compression apparatus, and musical performance information decoding apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2002143620A JP3486185B1 (en) | 2002-05-17 | 2002-05-17 | Performance information compression device, performance information decoding device, performance information compression method, performance information decoding method, performance information compression program, performance information decoding program |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2004004155A JP2004004155A (en) | 2004-01-08 |
| JP3486185B1 true JP3486185B1 (en) | 2004-01-13 |
Family
ID=29545029
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2002143620A Expired - Fee Related JP3486185B1 (en) | 2002-05-17 | 2002-05-17 | Performance information compression device, performance information decoding device, performance information compression method, performance information decoding method, performance information compression program, performance information decoding program |
Country Status (4)
| Country | Link |
|---|---|
| JP (1) | JP3486185B1 (en) |
| CN (1) | CN1653514A (en) |
| AU (1) | AU2003235313A1 (en) |
| WO (1) | WO2003098593A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008519565A (en) * | 2004-11-04 | 2008-06-05 | モトローラ・インコーポレイテッド | Method and apparatus for closed loop data transmission |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4807662B2 (en) * | 2006-05-01 | 2011-11-02 | カシオ計算機株式会社 | Song data processing apparatus and song data processing program |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP3120675B2 (en) * | 1994-11-29 | 2000-12-25 | 日本ビクター株式会社 | Performance information compression device |
| JP3464301B2 (en) * | 1995-01-20 | 2003-11-10 | ローランド株式会社 | Automatic performance device |
| TW333644B (en) * | 1995-10-30 | 1998-06-11 | Victor Company Of Japan | The method for recording musical data and its reproducing apparatus |
| JPH09153819A (en) * | 1995-11-30 | 1997-06-10 | Ekushingu:Kk | MIDI data compression method and compression apparatus |
| JP2002091436A (en) * | 2000-09-19 | 2002-03-27 | Victor Co Of Japan Ltd | Performance information recording medium and performance information compressing device and telephone terminal equipment |
| JP2002091437A (en) * | 2000-09-19 | 2002-03-27 | Victor Co Of Japan Ltd | Performance information compressing device and performance information decoding device and telephone terminal equipment |
-
2002
- 2002-05-17 JP JP2002143620A patent/JP3486185B1/en not_active Expired - Fee Related
-
2003
- 2003-05-15 AU AU2003235313A patent/AU2003235313A1/en not_active Abandoned
- 2003-05-15 CN CN03811306.6A patent/CN1653514A/en active Pending
- 2003-05-15 WO PCT/JP2003/006070 patent/WO2003098593A1/en active Application Filing
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2008519565A (en) * | 2004-11-04 | 2008-06-05 | モトローラ・インコーポレイテッド | Method and apparatus for closed loop data transmission |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2003098593A1 (en) | 2003-11-27 |
| JP2004004155A (en) | 2004-01-08 |
| AU2003235313A1 (en) | 2003-12-02 |
| CN1653514A (en) | 2005-08-10 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN100588279C (en) | Method and device for outputting audio data and score images | |
| JP3918580B2 (en) | Multimedia information encoding apparatus, multimedia information reproducing apparatus, multimedia information encoding processing program, and multimedia information reproducing process program | |
| CN100505039C (en) | Instrument for decoding compressed musical performance data | |
| US7169999B2 (en) | Digital signal processing method and apparatus thereof, control data generation method and apparatus thereof, and program recording medium | |
| KR20060049375A (en) | Content usage device, content usage method, distribution server device, information distribution method and recording medium | |
| JP3486185B1 (en) | Performance information compression device, performance information decoding device, performance information compression method, performance information decoding method, performance information compression program, performance information decoding program | |
| JP4232445B2 (en) | File delivery apparatus, file delivery method and program | |
| CN1150448C (en) | Dictation and transcription appts | |
| JP3120675B2 (en) | Performance information compression device | |
| CN1237501C (en) | Musical data compression method and program for executing it | |
| JPH1139796A (en) | Electronic information processing system and method, and recording medium | |
| US7081578B2 (en) | Musical performance information compression apparatus, and musical performance information decoding apparatus | |
| KR101468411B1 (en) | Apparatus for playing and editing MIDI music and Method for the same with user orientation | |
| WO2023010949A1 (en) | Method and apparatus for processing audio data | |
| CN115240621B (en) | Audio data processing method, computer device and storage medium | |
| JP2002091436A (en) | Performance information recording medium and performance information compressing device and telephone terminal equipment | |
| JP3219150B2 (en) | Performance information compression method | |
| JP3322763B2 (en) | Performance information compression method | |
| JP2002091437A (en) | Performance information compressing device and performance information decoding device and telephone terminal equipment | |
| JPH0822281A (en) | Musical tone information compressing and communicating device and its terminal device | |
| US7214869B2 (en) | Method for generating and playing a musical file and a computer-readable media storing the musical file | |
| CN102549575A (en) | Method for identifying and playing back an audio recording | |
| KR101365592B1 (en) | System for generating mgi music file and method for the same | |
| KR100636905B1 (en) | MIDI playback device that way | |
| JP2001296863A (en) | Method and device for processing electronic information and recording medium |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20071024 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20081024 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091024 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101024 Year of fee payment: 7 |
|
| LAPS | Cancellation because of no payment of annual fees |