KR950012086B1 - Midi data compressing and resting method - Google Patents

Midi data compressing and resting method Download PDF

Info

Publication number
KR950012086B1
KR950012086B1 KR1019930008207A KR930008207A KR950012086B1 KR 950012086 B1 KR950012086 B1 KR 950012086B1 KR 1019930008207 A KR1019930008207 A KR 1019930008207A KR 930008207 A KR930008207 A KR 930008207A KR 950012086 B1 KR950012086 B1 KR 950012086B1
Authority
KR
South Korea
Prior art keywords
data
value
pitch
negative
weakness
Prior art date
Application number
KR1019930008207A
Other languages
Korean (ko)
Inventor
변대규
Original Assignee
주식회사 건인시스템
변대규
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 건인시스템, 변대규 filed Critical 주식회사 건인시스템
Priority to KR1019930008207A priority Critical patent/KR950012086B1/en
Application granted granted Critical
Publication of KR950012086B1 publication Critical patent/KR950012086B1/en

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

The method comprises the steps of detecting tone and rhythm data from MIDI data and setting a maximum record limit value to compress the tone and rhythm data; forming data of a compressure tone and rhythm up to the maximum record limit value; coding the tone data as a value of the compressure tone data table, coding the rhythm as a value of a second data table, and converting the coded rhythm data into data of 1 byte, if the tone data is positioned in the compressure tone data table; and coding the tone data as a value except the maximum record limit value, coding the rhythm as a value of the second data table, converting the coded rhythm data into data of 1 byte, and storing the original tone data in a following data of 1 byte, if the tone data is not positioned in the compressure tone data table;

Description

미디 데이타 압축 및 재생방법MIDI data compression and playback

제1도는 본 발명의 압축 및 재생방법이 적용되는 가요 반주 시스템의 구성을 보인 실시 예시도.1 is an exemplary embodiment showing a configuration of a flexible accompaniment system to which the compression and reproducing method of the present invention is applied.

제2도의 제2a~2c도는 본 발명의 압축 및 재생방법을 설명하기 위한 미디 데이타의 구성 및 압축된 미디 데이타의 구성을 보인 도면.2A to 2C of FIG. 2 show a structure of MIDI data and a structure of compressed MIDI data for explaining the compression and reproduction method of the present invention.

제3도는 본 발명의 압축방법을 보인 신호 흐름도.3 is a signal flow diagram showing a compression method of the present invention.

제4도는 본 발명의 재생방법을 보인 신호 흐름도.4 is a signal flow diagram showing a reproduction method of the present invention.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

100 : 마이크로 프로세서 102 : 시스템 램100: microprocessor 102: system RAM

104 : 시스템 롬 106 : 키/리모콘 인터페이스104: system ROM 106: key / remote control interface

108 : 편곡 데이타 롬 109 : FM 또는 PCM방식 음원부108: Arrangement data ROM 109: FM or PCM type sound source

110 : 가사 수퍼 임포즈회로 114 : 오디오 믹서110: lyrics super impose circuit 114: audio mixer

117 : 오디오 출력단 119 : 비디오 출력단117: audio output terminal 119: video output terminal

301 : 편곡 데이타 메모리 302 : 모뎀301: Arrangement data memory 302: Modem

303 : 공중통신 회선망303: public telecommunications network

본 발명은 영상 가요 시스템에 있어서, 미디 데이타 처리하는 방법에 관한 것으로 특히 편곡 미디 데이타를 압축한 후 저장하고, 이를 원래의 데이타로 변환 출력하여 적은 용량의 편곡 데이타 메모리에 많은 양의 미디 데이타를 저장할 수 있도록 하는 미디 데이타 압축 및 재생방법에 관한 것이다.The present invention relates to a method for processing MIDI data in an image flexible system. In particular, a compressed MIDI data is compressed, stored, and converted into original data to store a large amount of MIDI data in a small amount of arranged data memory. The present invention relates to a method of compressing and playing back MIDI data.

영상 가요 반주 시스템은 최근에 일면 "노래방"으로 불려지고 있는 장소에 많이 보급되어 있는 시스템이다.The video accompaniment system is a system that is widely used in a place recently called "karaoke room".

이 영상 가요 반주 시스템은 영상 및 가요 데이타를 기억장치에 저장하고 두고, 노래를 부를 사용자의 선택에 따라 해당되는 영상 및 가요 데이타를 기억장치에서 읽어 영상 및 가사는 모니터로 출력하고, 반주 곡은 스피커로 출력하게 된다.This video accompaniment system stores video and song data in memory, and reads the corresponding video and song data from memory according to the user's choice to sing a song. Will output

그러므로 영상 가요 반주 시스템의 사용자들은 모니터에 표시된 영상 및 가사를 보면서 마이크를 사용하여 반주 곡에 따른 노래를 부르면서 즐길 수 있게 되어 있다.Therefore, the users of the video accompaniment system can enjoy the song along with the accompaniment using the microphone while watching the video and lyrics displayed on the monitor.

노래방은 남녀노소를 구분하지 않고, 모두가 즐겨 찾아 노래를 부르는 장소로서 사용자들의 모든 욕구를 충족시키기 위해서는 사용자들이 부르고자 선택하는 모든 노래의 반주 곡을 저장하고 있어야 한다.Karaoke is a place where everyone sings and sings without any distinction. In order to satisfy all the needs of users, the karaoke should store accompaniment songs of all the songs that users select to sing.

사용자의 욕구를 충족하기 위해서는 저장장치에 아주 옛날 노래부터 최근 노래까지는 물론 어린이들부터 어른들까지 모든 사람들이 즐기면서 부를 수 있는 각종 노래가 저장되어 있어야 하고, 또한 종교계(예를 들면, 기독교 및 불교등)에서 불려지는 노래도 저장되어 있어야만 이상적인 영상 가요 반주 시스템이 이루어지게 된다.In order to meet the needs of users, the storage device must store a variety of songs that can be enjoyed and enjoyed by everyone from children to adults as well as from old songs to recent songs. The songs sung in) should also be stored in order to achieve the ideal visual accompaniment system.

한편, 영상 처리는 하지 않으면서 영상 가요 반주 시스템과 동일한 효과를 얻어내는 시스템으로는 가요 반주 시스템이 있다.On the other hand, a flexible accompaniment system is a system that achieves the same effect as an image flexible accompaniment system without performing image processing.

이 가요 반주 시스템은 제1도와 같은 구성을 가진다.This flexible accompaniment system has the same configuration as that in FIG.

시스템에 전원을 인가하면, 마이크로 프로세서(100)는 초기화 동작을 실행하여 초기 상태로 된다.When power is applied to the system, the microprocessor 100 executes an initialization operation and returns to an initial state.

상기 초기화 동작은 마이크로 프로세서(100)가 시스템 롬(104)으로 부터 전체 시스템 제어용 프로그램 데이타를 읽어 시스템 램(102)에 기록한다.In the initialization operation, the microprocessor 100 reads the entire system control program data from the system ROM 104 and writes it to the system RAM 102.

상기 마이크로 프로세서(100)가 시스템 롬(104)으로 부터 시스템 제어용 프로그램 데이타를 읽는 방법은, 마이크로 프로세서(100)가 콘트롤 버스(CB)를 통해 콘트롤 신호를 발생하여 시스템 롬(104)을 리드(Read)모드로 인에이블하고, 어드레스 버스(AB)를 통해 어드레스 신호를 발생하여 데이타의 읽을 범위를 지정한 후 데이타 버스(DB)를 통해 데이타를 읽고, 시스템 램(102)으로 이동하여 기록한다.In the method in which the microprocessor 100 reads system control program data from the system ROM 104, the microprocessor 100 generates a control signal through the control bus CB to read the system ROM 104. Enable mode, generate an address signal via the address bus AB, specify the read range of the data, read the data through the data bus DB, and move to the system RAM 102 for recording.

상기 마이크로 프로세서(100)가 상기 시스템 롬(104)으로 읽은 시스템 제어용 프로그램 데이타를 시스템 램(102)에 기록하는 방법은, 콘트롤버스(CB)를 통해 콘트롤 신호를 발생하여 시스템 램(102)을 인에이블하고, 라이트(Write)모드를 지정하며, 어드레스 버스(AB)를 통해 라이트할 영역을 지정한 후 데이타 버스(DB)를 통해 시스템 롬(104)으로 부터 읽은 시스템 제어용 프로그램 데이타를 상기 시스템 램(102)의 영역에 기록한다.The method of recording the system control program data read by the microprocessor 100 into the system ROM 104 to the system RAM 102 may generate a control signal through the control bus CB to generate the system RAM 102. Enable, specify the write mode, designate the area to be written through the address bus AB, and then read the system control program data for system control read from the system ROM 104 through the data bus DB. In the area of).

그리고 키/리모콘 인터페이스부(106), 편곡 데이타 롬(108) 및 FM 또는 PCM 방식 음원부(109)를 초기화 상태로 한다.The key / remote control unit 106, the arrangement data ROM 108, and the FM or PCM system sound source unit 109 are initialized.

이와 같은 상태에서 사용자가 키입력부(도면에 도시되지 않았음) 또는 리모콘을 조작하여 부르고자 하는 노래를 지정하기 위한 노래 선택번호를 입력시키면, 이 노래 선택번호가 키/리모콘 인터페이스부(106)에 입력되고, 이를 마이크로 프로세서(100)가 읽어 가서 시스템 램(102)에 기록한 후 프로그램에 따라 처리하게 된다.In this state, when the user inputs a song selection number for designating a song to be sung by operating the key input unit (not shown in the drawing) or the remote controller, the song selection number is inputted to the key / remote control interface unit 106. The microprocessor 100 reads the data, writes it to the system RAM 102, and processes the program according to the program.

상기 마이크로 프로세서(100)는 노래 선택번호에 따라 콘트롤버스(CB)를 통해 콘트롤 신호를 발생하여 편곡 데이타 롬(108)을 리드 모드로 인에이블하고, 어드레스 버스(AB)를 통해 해당 곡 데이타가 저장되어 있는 영역을 지정하기 위한 어드레스 신호를 발생 및 편곡 데이타 롬(108)에 인가하여 노래곡 데이타를 읽은 후 상기와 같은 방법으로 FM 또는 PCM방식 음원부(109)에 입력한다.The microprocessor 100 generates a control signal through the control bus CB according to the song selection number to enable the arrangement data ROM 108 in the read mode, and stores the corresponding song data through the address bus AB. An address signal for designating a designated area is applied to the generation and arrangement data ROM 108 to read song data, and is then input to the FM or PCM type sound source unit 109 in the same manner as described above.

이때, 마이크로 프로세서(100)는 데이타 버스(DB)를 통해 상기 FM 또는 PCM방식 음원부(109)에 제어 데이타를 입력하여 상기 입력된 데이타에 따른 반주신호를 발생한다.At this time, the microprocessor 100 inputs control data to the FM or PCM type sound source unit 109 via a data bus DB to generate an accompaniment signal according to the input data.

따라서 상기 발생되는 반주신호가 오디오 믹서(114)에서 마이크단을 통해 입력되는 사용자의 음성신호와 믹싱되고, 오디오 출력단(117)을 통해 스피커로 출력된다.Therefore, the generated accompaniment signal is mixed with the user's voice signal input through the microphone stage in the audio mixer 114 and output to the speaker through the audio output terminal 117.

또한 오디오 믹서(114)를 통해 오디오 신호를 출력함과 동시에 가사 수퍼 임포즈 회로(110)를 통해 영상신호가 비디오 출력단(118)으로 출력되므로 사용자는 출력되는 영상을 보고, 반주곡에 따라 노래를 부르면서 즐기도록 되어 있다.In addition, since the audio signal is output through the audio mixer 114 and the video signal is output to the video output terminal 118 through the lyrics superimpose circuit 110, the user views the output image and sings according to the accompaniment. It is supposed to be enjoyed by calling.

상기 가사 수퍼 임포즈 회로(110)도 상기 마이크로 프로세서(100)의 제어에 의해 비디오 입력단(118)의 입력 비디오 신호를 처리하고, 비디오 출력단(118)으로 출력하여 모니터에 표시하도록 되어 있다.The lyrics superimpose circuit 110 also processes the input video signal of the video input terminal 118 under the control of the microprocessor 100, outputs the video signal to the video output terminal 118, and displays the same on the monitor.

이러한 가요 반주 시스템은 편곡 데이타를 저장하고 있는 편곡 데이타 롬(108)에 새로운 신곡 데이타를 추가하기 위해서는 기존에 저장한 노래 데이타의 새로운 신곡 데이타를 모두 저장할 수 있는 대용량의 메모리 칩을 사용해야 되고, 신곡 데이타를 저장하기 위한 추가 작업이 수시로 요구된다.In order to add new song data to the arrangement data ROM 108 that stores the arrangement data, such a flexible accompaniment system needs to use a large-capacity memory chip that can store all the new song data of previously stored song data. Additional work is required from time to time to save the data.

상기한 추가 작업은 하나의 편곡 데이타 롬(108)에 수십 내지 수백곡을 저장 할 수 있는 것에 비추어 자주 이루어질 수 없다.The additional work described above cannot be done in the light of being able to store tens or hundreds of songs in one arrangement data ROM 108.

왜냐하면 신곡을 편곡 데이타 롬(108)에 추가할 경우에 이미 편곡되어 있는 곡들은 유행이 지나 있기 때문이다.This is because, when new songs are added to the arrangement data ROM 108, already arranged songs are out of fashion.

이를 해결하기 위하여 편곡 데이타 롬(108)으로는 자유롭게 쓰고 지울 수 있는 EPROM등의 메모리 소자를 사용하고, 컴퓨터 음악을 위해 모뎀(302)을 통해 정해진 직렬 통신 프로토콜(protocol)에 따라 전송되는 신곡의 미디 데이타를 받아 유행되는 새로운 곡들을 쉽게 추가할 수 있는 방법이 강구되어 왔었다.In order to solve this problem, the arrangement data ROM 108 uses a memory device such as EPROM, which can be freely written and erased, and the MIDI of a new song transmitted through a modem 302 for computer music according to a predetermined serial communication protocol. There has been a way to easily add new songs that are popular with the data.

그러나 신곡은 수시로 많이 발표되어 그 양이 매우 많으므로 큰 용량을 가진 메모리를 사용한다고 하더라도 곧 메모리를 추가하여 신곡 데이타를 저장해야 하는 등 근본적인 해결을 보지 못하였다.However, since new songs are released a lot and the amount is very large, even if a memory with a large capacity is used, there is no fundamental solution such as the need to add new memory to store new song data.

따라서, 본 발명의 목적은 가요 반주 데이타 즉, 미디 데이타를 압축하여 한정된 메모리 용량 내에서의 저장 능력을 증가시키고, 이를 재생하더라도 기존의 미디 데이타의 영향을 주지 않도록 하는 미디 데이타 압축 및 재생방법을 제공하는 데 있다.Accordingly, an object of the present invention is to provide a method of compressing and reproducing a MIDI data that compresses flexible accompaniment data, i.e., MIDI data, to increase storage capacity within a limited memory capacity, and does not affect existing MIDI data even when the data is reproduced. There is.

이러한 목적을 달성하기 위한 본 발명의 미디 데이타 압축방법은 미디 데이타에서 음정 및 음의 강약의 데이타를 모두 검출하고 음정 및 음의 강약 데이타를 압축할 최대 기록 경계값을 설정하고, 검출한 음정 및 음의 강약 데이타를 설정된 최대 기록 경계값까지 압축 음정 데이타의 테이블 압축 음의 강약 테이블을 만들어 각기 저장하며, 읽은 음정 데이타가 압축 음정 데이타의 테이블내에 있을 경우에 음정 데이타를 압축 음정 데이타의 테이블 값으로 코드화하고 음의 강약은 제2데이타의 테이블 값으로 코드화하여 1바이트로 변환 저장하며 음정 데이타가 압축 제1데이타의 테이블 내에 없을 경우에는 제1데이타를 최대 기록 경계값 이외의 값으로 코드화하고 제2데이타의 테이블 값으로 코드화 하여 1바이트로 변환 저장하며 후속되는 1바이트에 원래의 음정 데이타를 저장하는 것을 특징으로 한다.To achieve this object, the MIDI data compression method of the present invention detects both pitch and negative intensity data in the MIDI data, sets the maximum recording boundary to compress the pitch and negative intensity data, and detects the detected pitch and tone. Compressed pitch data is stored in the compressed pitch data table up to the set maximum record threshold. If the read pitch data is in the compressed pitch data table, the pitch data is encoded as the table value of the compressed pitch data. The negative strength is encoded into the table value of the second data and converted into one byte, and if the pitch data is not in the compressed first data table, the first data is encoded into a value other than the maximum recording boundary value and the second data is stored. Encode into table value of 1 to convert into 1 byte and store in 1 byte It is characterized by storing the original pitch data.

그리고 본 발명의 미디 데이타 재생방법은 음정 데이타 및 음의 강약 데이타의 테이블 값을 읽고, 저장된 스테이터스 바이트와, 음정 데이타의 코드 값 및 음의 강약 데이타의 코드 값을 읽어 음정 데이타의 코드 값이 최대 기록 경계값 이내일 경우에 음정 데이타의 테이블에서 코드 값에 해당되는 데이타를 원래의 음정 데이타로 하고, 최대 기록 경계값 이상일 경우에는 후속되는 1바이트의 값을 음정 데이타로 하며, 음의 강약은 코드 값에 해당되는 데이타를 음의 강약 데이타 테이블에서 읽어 출력하는 것을 특징으로 한다.The MIDI data reproducing method of the present invention reads the table values of the pitch data and the negative intensity data, reads the stored status byte, the code value of the pitch data, and the code value of the negative intensity data, and records the maximum code value of the pitch data. If it is within the boundary value, the data corresponding to the code value in the table of the pitch data is the original pitch data, and if it is above the maximum recording boundary value, the following 1 byte value is the pitch data, and the negative intensity is the code value. The corresponding data is read from a negative strength and weakness data table and output.

이하 첨부된 제2도 내지 제4도의 도면을 참조하여 본 발명의 압축 및 재생방법을 상세히 설명한다.Hereinafter, the compression and reproducing method of the present invention will be described in detail with reference to the accompanying drawings of FIGS. 2 to 4.

제2도는 본 발명에 따라 압축되는 미디 데이타의 형태를 보인 것이다.2 shows the form of MIDI data compressed in accordance with the present invention.

여기서, 2a도는 일반적으로 모뎀(302)을 통해 입력되거나 저장되어 있는 미디 데이타의 구성을 보인 도면이다.Here, Figure 2a is a diagram showing the configuration of the MIDI data that is generally input or stored via the modem (302).

미디 데이타는 스테이터스 바이트(201)와, 음정을 나타내는 제1데이타(202)와, 음의 강약을 나타내는 제2데이타(203)로 이루어진다.The MIDI data consists of a status byte 201, first data 202 indicating pitch, and second data 203 indicating negative intensity.

스테이터스 바이트(201)는 상태의 변화가 발생할 경우에만 입력 예를 들면, 반주 곡 출력의 온 및 오프시와, 출력하는 악기음의 변경 등이 있을 경우에만 스테이터스 바이트(201)가 발생되고, 그렇지 않을 경우에는 제1데이타(202) 및 제2데이타(203)가 연속적으로 발생되는 것이다.The status byte 201 is generated only when there is an input change, for example, when the accompaniment song output is turned on and off, and when there is a change in the output musical instrument. In this case, the first data 202 and the second data 203 are generated continuously.

이들 데이타(201,202,203)는 각기 1바이트씩 8비트로 이루어지고, 스테이터스 바이트(201)는 최상위 비트(MSB(Most Significant Bit))가 항상 "1"이고, 제1 및 제2데이타(202,203)는 최상위 비트(MSB)가 항상 "0"으로 하여 스테이터스 바이트(201)와, 제1 및 제2데이타(202,203)는 최상위 비트(MSB)로 구분된다.Each of these data 201, 202, and 203 consists of 8 bits each, and the status byte 201 always has the most significant bit (MSB (Most Significant Bit)), and the first and second data (202, 203) have the most significant bit. The status byte 201 and the first and second data 202 and 203 are divided into most significant bits MSB with (MSB) always "0".

제1데이타(202) 및 제2데이타(203)는 제6~0비트로 '0' 부터 '127'까지의 값으로 음정 및 음의 강약 단계를 나타내는 것으로서 음의 충실도를 위해서는 제1 및 제2데이타(202,203)의 값이 '0' 부터 127까지의 단계를 모두 갖는 것이 필요한 경우도 있으나 약간의 충실도 희생으로 2개 데이타 바이트를 하나의 데이타 바이트로 압축할 수 있다.The first data 202 and the second data 203 represent pitch and negative intensity steps with values from '0' to '127' as sixth to zero bits, and the first and second data for the fidelity of the sound. It is sometimes necessary to have a value of (202, 203) from '0' to 127, but two data bytes can be compressed into one data byte at the expense of some fidelity.

이러한 미디 데이타를 본 발명에서는 제2b도와 같이 압축한다.Such MIDI data is compressed in the present invention as shown in FIG. 2B.

즉, MSB(B7)는 항상 '0'으로서 데이타 바이트임을 나타내고, 제6~3비트(B6~B3)의 4비트의 코드값은 15단계의 음정을 나타내는 데, 이것은 각 트랙에서 사용된 음정을 데이타로 가지고 있는 테이블의 인덱스로 사용된다.That is, the MSB (B7) always indicates that it is a data byte as '0', and the 4-bit code value of the 6th to 3rd bits (B6 to B3) indicates the pitch of 15 steps, which indicates the pitch used in each track. Used as an index into a table that has data.

예를 들면, 제5~3비트(B5~B3)의 값이 '0000'이면, 음정 테이블에서 0번째 항목의 음정 데이타에 해당되고, 제6~3비트(B6-B3)의 값이 '0001'이면 음정 테이블에서 1번째 항목의 음정 데이타에 해당되는 것으로 이와 같이 제6~3비트(B6-B3)의 값 '0000'에서 '1110'에 따라 음정 테이블의 0~14번째 항목의 음정 데이타에 해당된다.For example, if the value of the fifth to third bits (B5 to B3) is '0000', it corresponds to the pitch data of the zeroth item in the pitch table, and the value of the sixth to third bits (B6-B3) is '0001'. 'Corresponds to the pitch data of the first item in the pitch table. Thus, the pitch data of the 0th to 14th items of the pitch table is set according to the values' 0000' to '1110' of the 6th to 3rd bits (B6-B3). Yes.

음정 테이블은 미디 데이타의 해당 트랙에 사용된 음정들을 미리 분류하여 만드는 것으로서 이에 대해서는 후술하는 압축방법에서 상세히 설명한다.The pitch table is created by classifying the pitches used in the corresponding tracks of the MIDI data in advance, which will be described in detail in the compression method described below.

제2~0비트(B2~B0)의 3비트는 8단계의 음의 강약을 나타낸다.Three bits of the second to zero bits B2 to B0 represent negative strengths of eight levels.

예를 들면, 원래의 제2데이타(203)의 값이 OH(여기서 'H'는 15진수를 나타냄)부터 19H일 경우에는 0.20H부터 39H일 경우에는 1, 40H부터 59H일 경우에는 2, 60H부터 79H일 경우에는 3, 80H부터 99H일 경우에는 4, 100부터 119일 경우에는 5, 120H부터 122H일 경우에는 5, 122H부터 124H일 경우에는 7이라는 값을 갖도록 한다.For example, if the value of the original second data 203 is from 0 H (where 'H' represents a hexadecimal number) to 19 H , then 1, 40 H to 59 H days from 0.20 H to 39 H 2, 60 H to 79 H 3, 80 H to 99H 4, 100 to 119 5, 120 H to 122 H 5, 122 H to 124H 7 To have a value.

여기서, 음의 강약은 3비트로서 상기한 바와 같이 8단계로 구분하여 출력할 경우에 원래의 제2데이타(203)가 가지고 있는 음의 강약의 정도(resolution)보다는 약간 떨어지게 되나 실용상 아무런 문제가 발생하지 않는다.Here, the negative intensity is 3 bits, and when output is divided into 8 stages as described above, the negative intensity is slightly lower than the resolution of the negative intensity of the original second data 203, but there is no practical problem. Does not occur.

그러나 음정은 4비트로서 상기한 바와 같이 15단계로 구분하여 출력할 경우에 원음을 재생하지 못하고, 사용자에게 불쾌감을 주게 된다.However, the pitch is 4 bits, and when the output is divided into 15 stages as described above, the original sound cannot be reproduced and the user is offended.

그러므로 본 발명에서는 제6~3비트(B5-B3)를 '0000'에서 '1110'까지 15단계로 음정을 나타내고, 15단계 이상의 음정은 제2c도와 같이 제6~3비트(B5-B3)의 값을 모두 '1111'로 코드화한 후 후속되는 다음의 1바이트의 데이타에 원래의 음정 데이타를 수용하게 하였다.Therefore, in the present invention, the sixth to third bits (B5-B3) represent the pitch in 15 steps from '0000' to '1110', and the pitches of the more than 15 steps are the sixth to third bits (B5-B3) as shown in FIG. The values were all coded as '1111' and the original next data was accepted in the next one byte of data.

따라서, 본 발명에 의하면, 미디 데이타의 제1데이타(202) 및 제1데이타(203)의 압축은 음정 데이타의 크기에 따라 가변되는 것으로서 음정 데이타의 값이 설정되는 15단계의 이내 범위일 경우에 1바이트로 압축되고, 15단계를 벗어날 경우에는 2바이트로 압축되어 미디 데이타의 양은 약 1/3 정도로 줄일 수 있게 된다.Therefore, according to the present invention, the compression of the first data 202 and the first data 203 of the MIDI data is variable depending on the size of the pitch data, and when the value of the pitch data is within the range of 15 steps. If it is compressed to 1 byte and goes out of step 15, it is compressed to 2 bytes so that the amount of MIDI data can be reduced to about 1/3.

제3도는 본 발명의 압축방법을 보인 신호 흐름도이다. 이에 도시된 바와 같이, 본 발명은 모뎀(302)을 통해 전송되어 시스템 램(102)에 저장되는 소정의 미디 데이타를 마이크로 프로세서(100)가 읽어 처리하게 된다.3 is a signal flow diagram illustrating a compression method of the present invention. As shown in the drawing, according to the present invention, the microprocessor 100 reads and processes predetermined MIDI data transmitted through the modem 302 and stored in the system RAM 102.

단계(3a)에서는 마이크로 프로세서(100)가 시스템 램(102)에 저장되어 있는 상기 제2a도와 같은 데이타를 처리할 수 있도록 하는 것으로 한 트랙 내에서 제1 및 제2데이타(202)(203)인 음정 및 음의 강약에 대한 상태를 최대로 저장할 각각의 플랙과, 압축하였을 경우에 저장할 음정의 테이블 번호 및 음의 강약의 테이블 번호를 초기화한다.In step 3a, the microprocessor 100 is capable of processing data stored in the system RAM 102 as shown in FIG. 2a, which is the first and second data 202 and 203 in one track. Initialize each flag to store the state of the pitch and negative strength to the maximum, and the table number of the pitch to be stored and the table number of the negative strength and weakness when compressed.

단계(3b)에서는 스테이터스 바이트(201)를 읽고, 단계(3d)에서 이 스테이터스 바이트(201)의 값이 80H또는 90H인지를 판별한다.Step (3b), we determine that the value of the status byte 201 in reading the status byte 201, the step (3d) 80 H or 90 H.

즉, 미디 데이타에서 스테이터스 바이트(201)는 값이 80H일 경우에 음성신호의 출력을 오프하고, 90H는 음성신호 출력을 온하라는 명령이며, 80H또는 90H가 아닐 경우에 그 값은 악기의 음 등을 지정하는 명령으로 미리 규정되어 있는 것으로서 단계(3d)에서 스테이터스 바이트(201)의 값이 음성신호 출력의 온 또는 오프 명령인지를 판별한다.That is, the status byte 201 in the MIDI data is off the output of the audio signal if the value is 80 H day, and 90 H are ordered on the audio signal output, the value if is not the 80 H or 90 H As specified in advance as a command for specifying the sound of the musical instrument, it is determined in step 3d whether the value of the status byte 201 is an on or off command of the audio signal output.

스테이터스 바이트(201)의 값이 80H또는 90H가 아닌 다른 값으로서 음성신호 출력의 온 또는 오프명령이 아닐 경우에는 다음의 데이타가 음정 데이타 및 음의 강약 데이타가 아닌 것으로서 단계(3b)에서 다음의 스테이터스 바이트를 읽는 동작을 수행한다.If the value of the status byte 201 is not 80H or 90H and is not an on or off command of the audio signal output, the next data is not pitch data and negative strength and weakness data, and then in step 3b. Reads the status byte of.

단계(3d)에서 스테이터스 바이트(201)의 값이 80H또는 90H로서 음성신호 출력의 온 또는 오프 명령일 경우에 단계(3e)에서 제1데이타(202) 및 제2데이타(203)를 읽어 해당되는 플랙을 세팅한다.In the step (3d) Step (3e) in the case of turning on or off command of the audio signal output as a 80 H or 90 H value of status byte 201. In reading the first data 202 and second data 203, Set the appropriate flag.

즉, 제1데이타(202) 및 제2데이타(203)를 읽고, 그 값이 있을 경우에 제1데이타(202) 및 제2데이타(203)의 해당 플랙을 "1"로 세팅한다.That is, the first data 202 and the second data 203 are read, and if there is a value, the corresponding flag of the first data 202 and the second data 203 is set to "1".

다음에는 단계(3f)에서 스테이터스 바이트(201)의 값으로 현재 트랙의 끝인지를 판별한다.Next, in step 3f, it is determined whether the end of the current track is the value of the status byte 201.

즉, 미디 데이타에서 하나의 트랙의 끝일 경우에 스테이터스 바이트(201)의 값이 FFH이고, 연속되는 데이타 바이트의 값을 2FH로 설정하게 규정되어 있는 것으로 단계(3e)에서 스테이터스 바이트(201)의 값이 FFH이고, 다음의 데이타 바이트의 값이 2FH로 트랙의 끝인지를 판별한다.In other words, when the end of one track in the MIDI data, the value of the status byte 201 is FF H, and the value of the consecutive data byte is defined to be set to 2F H. In the step 3e, the status byte 201 is specified. Determines if the value of FF H is the end of the track, and the value of the next data byte is 2F H.

단계(3f)에서 해당 트랙의 끝이 아닐 경우에는 단계(3b)에서 스테이터스 바이트(201)를 읽는 동작부터 반복 수행하고, 해당 트랙의 끝일 경우에는 단계(3i)에서 제1데이타(202) 및 제2데이타(203)를 카운트하는 카운터를 초기화하고 압축된 제1데이타(202)의 값의 최대 기록 경계값을 초기화하고, 제1데이타(202) 및 제2데이타(203)의 플랙을 점검할 인덱스(i)를 초기화 상태로 한다.If it is not the end of the track in step 3f, the operation of reading the status byte 201 is repeatedly performed in step 3b. If it is the end of the track, the first data 202 and the first data are made in step 3i. An index for initializing a counter for counting two data 203, initializing a maximum recording boundary value of the compressed first data 202, and checking a flag of the first data 202 and the second data 203. (i) is reset.

이와 같은 상태에서 단계(3j)에서 제1데이타(202)의 i번째 플랙의 값이 "1"이고, 이를 카운트하는 제2데이타(202) 카운터의 값이 설정된 최대기록 경계값인 15보다 작은지를 점검하고, 단계(3k)에서 제2데이타의 i번째 플랙이 "1"인지를 판별한다.In this state, in step 3j, the value of the i-th flag of the first data 202 is "1", and the value of the counter of the second data 202 that counts it is smaller than 15, which is the set maximum recording boundary value. In step 3k, it is determined whether the i-th flag of the second data is "1".

상기 단계(3j)에서 플랙의 값이, "1"이고, 카운터 값이 15보다 작을 경우에 단계(3g)에서 압축 제1데이타(202)의 최대 기록 경계값으로 인덱스(i)의 번호를 저장하고, 제1데이타(202)의 테이블의 제1데이타(202)의 카운트 값으로 i번째 플랙의 데이타 값을 지정하며, 제1데이타(202)의 i번째 플랙에 제1데이타(202) 카운트 값을 저장한 후 제1데이타 카운트 값에 1을 가산한다.If the value of the flag in step 3j is " 1 " and the counter value is less than 15, in step 3g, the number of the index i is stored as the maximum recording boundary value of the compressed first data 202. The data value of the i-th flag is designated as the count value of the first data 202 of the table of the first data 202, and the first data 202 count value is assigned to the i-th flag of the first data 202. After storing, add 1 to the first data count value.

단계(3k)에서 제2데이타(203)의 i번째 플랙이 "1"일 경우에 단계(3r)에서 제2데이타 테이블의 인덱스(i)를 지정하고, 제2데이타(203)의 플랙을 제2데이타 카운트값으로 지정한 후 제2데이타 카운트값을 1증가시킨다.If the i-th flag of the second data 203 is "1" in step 3k, the index i of the second data table is designated in step 3r, and the flag of the second data 203 is removed. The second data count value is increased by one after designating it as the two data count value.

단계(3l)에서 인덱스(i)가 128에 도달하였는지를 판별하고, 인덱스(i)가 128에 도달하지 않았을 경우에는 단계(3m)에서 인덱스(i)의 값에 1을 가산한 후 이 값이 128에 도달할 때까지 단계(3j)부터 반복 수행하며, 인덱스(i)의 값이 128에 도달하였을 경우에는 단계(3n)에서 k의 값을 0으로 설정하고, 단계(30)에서 제2데이타 카운트 값이 8이상 즉, 본 발명에서는 음의 강약을 8단계로 코드화하는 것으로서 현재까지 코드화된 음의 강약이 8단계 이상인지를 판별한다.In step 3l, it is determined whether the index i has reached 128. If the index i has not reached 128, in step 3m, 1 is added to the value of the index i and then this value is 128. Repeated from step 3j until it reaches. When the value of index i reaches 128, the value of k is set to 0 in step 3n and the second data count is received in step 30. The value is 8 or more, that is, the present invention encodes the negative strength and weakness in eight steps, and determines whether the negative strength and weaknesses coded so far are eight or more levels.

단계(30)에서 제2데이타(203)의 카운트 값이 8단계 이상일 경우에 단계(3s)에서 제2데이타 테이블의 k번째에 k+1번째의 값을 저장하고, k에 1을 가산하며, k번째 이후의 제2데이타(203)의 플랙의 값을 모두 1감소시키며, 제2데이타 카운트 값에서 1을 감소시키는 동작을 제2데이타(203)의 카운트 값이 8이 될 때까지 반복 수행한다.If the count value of the second data 203 is 8 or more in step 30, in step 3s, the k + 1th value is stored in the k-th of the second data table, and 1 is added to k, and the k-th is added. Subsequently, all the values of the flags of the second data 203 are decreased by one, and the operation of decreasing the number of ones from the second data count value is repeated until the count value of the second data 203 becomes eight.

단계(3p)에서 상기와 같이 수행하여 작성한 제1 및 제2데이타(202)(203)의 테이블을 저장하고, 단계(3t)에서 트랙의 처음으로 이동한 후 단계(3v)에서 다시 스테이터스 바이트(201)를 읽어 단계(3v)에서 스테이터스 바이트(201)의 값이 80H또는 90H인지를 판별한다.In step 3p, the table of the first and second data 202 and 203 created as described above is stored, moved to the beginning of the track in step 3t, and again in step 3v, the status byte ( in step (3v) to read 201) discriminates that the value of the status byte (201) 80 H or 90 H.

스테이터스 바이트(201)의 값이 80H또는 90H가 아닐 경우에 상기한 바와 같이 음정 및 음의 강약이 아니고, 악기음 등의 지정으로서 이 스테이터스 바이트(201) 및 데이타를 그대로 저장하고, 스테이터스 바이트(201)의 값이 80H또는 90H일 경우에는 음정 및 음의 강약으로서 단계(3w)에 제1데이타(202) 및 제2데이타(203)를 읽어 제2데이타(203)의 플랙을 제2데이타(203)의 코드로 지정하고 단계(3y)에서 제1데이타(202)의 값이 최대 기록 경계값 미만인지를 판별한다.Not the intensity of the pitch and negative as described above, when the value of status byte 201 is not the 80 H or 90 H, and stored as the status byte 201 and data as specified in the musical instrument sound or the like, the status byte the flags of the first data 202 and second data, read the second data 203 to 203 in the case 201, one of the values is 80 H or 90 H, the step as the pitch and the sound intensity of the (3w) of claim A code of two data 203 is designated, and it is determined in step 3y whether the value of the first data 202 is less than the maximum recording boundary value.

단계(3y)에서 제1데이타(202)의 값이 최대 기록 경계값 미만일 경우에 단계(30b)에서 제1데이타(202)를 좌로 3을 쉬프트하고, 비트(B2~B0)에 제1데이타(202)의 코드 값을 합하여 저장 즉, 제1데이타(202)의 값이 최대 기록 경계값 미만일 경우에는 제2b도와 같이 제1데이타(202)의 음정과, 제2데이타(203)의 음의 강약을 압축하여 저장한다.In step 3y, when the value of the first data 202 is less than the maximum recording boundary value, the first data 202 is shifted 3 to the left in step 30b, and the first data (bits B2 to B0) is shifted. If the value of the first data 202 is less than the maximum recording boundary value, the pitch of the first data 202 and the negative strength of the second data 203 are stored as shown in FIG. Compress and save

단계(3y)에서 제1데이타(202)의 값이 최대 기록 경계값 미만이 아닐 경우에 단계(3z)에서 제2데이타(203)의 코드에 78H를 가산하여 제2c도와 같이 비트(B6~B3)의 값이 모두 "1"이고, 비트(B2~B0)에는 음의 강약의 코드값이 저장되게 하며, 다음의 1바이트에 원래의 음정의 값을 저장한다.First data (202) values up to record boundary adding 78 H to the code of the second data (203) in step a, if not less than the value (3z) by bit as the 2c help (B6 in step (3y) ~ The values of B3) are all " 1 ", and the negative and weak code values are stored in the bits B2 to B0, and the original pitch value is stored in the next byte.

단계(30c)에서는 트랙의 끝인지를 판별하고, 트랙의 끝이 될 때까지 단계(3v)부터 계속 반복 수행하여 제1 및 제2데이타를 압축 저장한다.In step 30c, it is determined whether or not the end of the track, and repeatedly performed from step 3v until the end of the track to compress and store the first and second data.

한편, 제4도는 상기한 바와 같이 압축하여 저장된 압축 미디 데이타를 편곡 데이타 메모리(301)로부터 읽어 원래의 제1데이타 및 제2데이타로 변환한 후 FM 또는 PCM방식 음원부(109)를 봉하고, 오디오 믹서(119)를 통해 출력하여 연주가 실행된다.On the other hand, Fig. 4 reads compressed MIDI data compressed and stored as described above from the arrangement data memory 301, converts them into original first and second data, and seals the FM or PCM type sound source unit 109, and The performance is performed by outputting through the mixer 119.

이를 위하여 단계(4a)에서 편곡 데이타 메모리(301)로 부터 제1데이타(202) 및 제2데이타(203)의 테이블 값을 읽고, 단계(4b)에서 스테이터스 바이트(201)와 제1데이타(202) 및 제2데이타(203)를 읽어 단계(4C)에서 스테이터스 바이트(201)의 값이 80H또는 90H인지를 판별한다.To do this, in step 4a, table values of the first data 202 and the second data 203 are read from the arrangement data memory 301, and in step 4b, the status byte 201 and the first data 202 are read. ) and the value of the second data 203 to read the status byte (201) in step (4C) determines whether 80 H or 90 H.

단계(4c)에서 스테이터스 바이트(201)의 값이 80H또는 90H가 아닐 경우에는 압축시킨 데이타가 아닌 것으로서 단계(4j)에서는 스테이터스 바이트(201)와, 제1데이타(202) 및 제2데이타(203)를 그대로 출력하여 FM 또는 PCM방식 음원부(109)에 입력시킨다.If it is not the value is 80 H or 90 H in the status byte (201) in step (4c) has a the step (4j) as not the data was compressed status byte 201, a first data 202 and second data 203 is output as it is and input to the FM or PCM system sound source unit 109.

그리고 단계(4c)에서 스테이터스 바이트(201)의 값이 80H또는 90H일 경우에는 압축 데이타로서 단계(4d)에서 데이타를 우로 3비트 쉬프트시켜 제1데이타(202)의 코드 즉, 비트(B6~B3)를 검출 및 제1데이타 코드로 하고, 데이타에 7H를 마스크 즉, 각각의 비트별로 7H와 논리 곱하여 비트(B2~B0)인 제2데이타(203)의 코드를 검출한다.And if the value of status byte 201. In step (4c) 80 H or 90 H, the means that the code of the first data 202 by a 3-bit shift right data in the step (4d) as compressed data, the bit (B6 a ~ B3) to the sensing and the first code data, and detects the code in the 7 H to the data mask words, for each bit 7 H and multiplying logic bit (the second data (203) B2 ~ B0).

단계(4e)에서 제1데이타(202)의 코드가 OFH인지를 비트(B5~B3) 를 우측으로 3비트 쉬프트한 값이 모두 '1111' 인지를 판별하여 '1111'이 아닐 경우에 단계(4f)에서 제1데이타(202)의 테이블에서 비트(B6~B3)를 우측으로 3비트 쉬프트 한 코드 값으로 제1데이타(201)의 값을 읽으며, 모두 '1111'일 경우에 단계(4k)에서 다음 1바이트 데이타를 제1데이타(202)로 읽는다.In step 4e, it is determined whether the code of the first data 202 is OF H or whether the values of the three bits shifted to the right by bits B5 to B3 are all '1111'. In 4f), the value of the first data 201 is read with a code value obtained by shifting bits B6 to B3 to the right from the table of the first data 202, and if all are '1111', the step 4k. Reads the next 1-byte data into the first data 202.

단계(4g)에서는 제2데이타(203)의 테이블에서 제2데이타(203)의 코드에 해당되는 제2데이타(203)의 값을 읽고, 단계(4h)에서 스테이터스 바이트(201), 음정 데이타인 제1데이타(202) 및 음의 강약 데이타인 제2데이타(203)를 순차적으로 출력하며, 단계(4i)에서 트랙의 끝인지를 판별하여 트랙의 끝이 될 때까지 단계(4b)부터 반복 수행한다.In step 4g, the value of the second data 203 corresponding to the code of the second data 203 is read from the table of the second data 203, and in step 4h, the status byte 201 and the pitch data are read. The first data 202 and the second data 203, which are negative strength and weakness data, are sequentially output, and in step 4i, it is determined whether the track is the end, and the process is repeated from step 4b until the end of the track. do.

이상에서와 같이 본 발명은 음정 데이타인 제1데이타와, 음의 강약 데이타인 제2데이타를 제1데이타의 값에 따라 1바이트 또는 2바이트의 데이타로 압축하여 저장하고, 이를 출력함으로써 미디 데이타의 양을 약 1/3정도로 줄일 수 있고, 이로 인하여 메모리 영역의 소모를 줄일 수 있을 뿐만 아니라 제한된 메모리의 영역에 많은 미디 데이타를 저장할 수 있는 이점이 있다.As described above, the present invention compresses and stores the first data, which is the pitch data, and the second data, which is negative strength and weakness data, into one or two bytes of data according to the value of the first data, and outputs the data. The amount can be reduced to about one third, thereby reducing the consumption of the memory area and having the advantage of storing a lot of MIDI data in the limited memory area.

Claims (5)

미디 데이타에서 음정 및 음의 강약의 데이타를 모두 검출하고 음정 및 음의 강약 데이타를 압축할 최대 기록 경계값을 설정하는 제1과정과, 상기 제1과정에서 검출한 음정 및 음의 강약 데이타를 설정된 최대 기록 경계값까지 압축 음정 데이타의 테이블 및 압축 음의 강약 테이블을 만들어 각기 저장하는 제2과정과, 상기 제1과정에서 읽은 음정 데이타가 상기 제2과정에서 만든 압축 음정 데이타의 테이블 내에 있을 경우에 음정 데이타를 압축 음정 데이타의 테이블 값으로 코드화하고 음의 강약은 제2데이타의 테이블 값으로 코드화하여 1바이트로 변환 저장하며 음정 데이타가 압축 제1데이타의 테이블 내에 없을 경우에는 제1데이타를 최대 기록 경계값 이외의 값으로 코드화하고 제2데이타의 테이블 값으로 코드화하여 1바이트로 변환 저장하며 후속되는 1바이트에 원래의 음정 데이타를 저장하는 것을 특징으로 하는 미디 데이타의 압축방법.A first step of detecting both pitch and negative strength and weakness data from the MIDI data and setting a maximum recording boundary value for compressing the pitch and negative strength and weakness data; and setting the pitch and negative intensity data detected in the first process A second step of creating and storing a table of compressed pitch data and a strength and weakness table of the compressed sound up to a maximum recording boundary value; and when the pitch data read in the first process is in the table of compressed pitch data created in the second process Coded data is coded as a table value of compressed pitch data, negative strength is coded as a table value of second data, converted into one byte, and stored if the pitch data is not in the compressed first data table. Coded with a value other than the boundary value, coded with the table value of the second data, converted to 1 byte, and stored A method of compressing MIDI data, comprising storing original pitch data in one byte. 제1항에 있어서, 제1과정은 한 트랙 내에서 음정 및 음의 강약 데이타의 상태를 최대로 저장할 각각의 플랙과 압축시 저장할 음정 및 음의 강약의 테이블 번호를 초기화하는 제1단계와, 스테이터스 바이트 값으로 다음의 데이타가 음정 또는 음의 강약 데이타인지를 판별하는 제2단계와, 상기 제2단계에서 다음의 데이타가 음정 데이타 및 음의 강약 데이타일 경우에 음정 데이타 및 음의 강약 데이타에 대한 플랙을 세팅하고 트랙의 끝인지를 판별하는 제3단계와, 상기 제3단계에서 트랙의 끝일 경우에 상기 제2단계부터 반복하고 트랙의 끝일 경우에 음정 및 음의 강약 데이타를 카운트하는 카운터를 초기화하고 압축된 음정 데이타의 값을 최대기록 경계값을 지정하는 제4단계로 이루어짐을 특징으로 하는 미디 데이타의 압축방법.The method of claim 1, wherein the first process comprises: a first step of initializing a table number of the pitch and the negative intensity to be stored at the time of compression and each flag to maximum store the state of the pitch and the negative intensity data in one track; A second step of determining whether the next data is pitch or negative strength data by the byte value, and when the next data in the second step is pitch data and negative strength data, Initiate a third step of setting a flag and determining whether the track is at the end of the track, and repeating the second step if the track is at the end of the track, and counting pitch and negative intensity data at the end of the track. And a fourth step of specifying a maximum recording boundary value of the compressed pitch data. 제1항에 있어서, 제2과정은 음정 데이타 플랙의 값이 '1'이고 카운트 값이 최대기록 경계값보다 작은 지를 점검하고 음의 강약 데이타의 플랙 '1'인지를 판별하는 제5단계와, 상기 제5단계에서 음정 데이타 플랙의 값이 '1'이고 카운터의 값이 최대기록 경계값보다 작을 경우에 압축 음정 데이타의 최대 기록 경계값으로 인덱스의 번호를 저장하고, 음정 데이타의 테이블에 음정 데이타의 카운트 값으로 플랙의 데이타 값을 저장하며 음정 데이타의 플랙에 음정 데이타의 카운트 값을 지정한 후 음정 데이타의 카운트 값에 1을 가산하는 제6과정과, 상기 제5과정에서 음의 강약 데이타의 플랙이 '1'일 경우에 음의 강약 데이타의 테이블에 인덱스를 지정하고 음의 강약 데이타의 플랙을 음의 강약 데이타의 카운트값으로 지정한 후 음의 강약 데이타의 카운트 값을 증가시키는 제7단계와, 상기 제6 및 제7단계에서 인덱스가 최대값에 도달하였는지를 판별하는 제8단계와, 상기 제8단계에서 인덱스가 최대값에 도달하지 않았을 경우에는 인덱스의 값을 증가한 후 상기 제5단계부터 반복 수행하는 제9단계와, 상기 제8단계에서 인덱스가 최대값에 도달하였을 경우에 코드화된 음의 강약이 8단계 이상인지를 판별하는 제10단계와, 상기 제10단계에서 8단계 이상일 경우에 2개의 값씩 짝을 이루어 하나로 코드화하면서 음의 강약 데이타 테이블을 재작성하는 제11단계와, 상기 10단계에서 음의 강약 테이블이 8단계일 경우에 상기 제6과정 및 제11과정에서 만든 음정 데이타 및 음의 강약 데이타의 테이블을 저장하는 제12단계로 이루어짐을 특징으로 하는 미디 데이타의 압축방법.The method of claim 1, wherein the second process includes: a fifth step of checking whether the value of the pitch data flag is '1' and the count value is smaller than the maximum recording boundary value and determining whether the flag of the negative intensity data flag is '1'; In the fifth step, when the value of the pitch data flag is '1' and the value of the counter is smaller than the maximum record boundary value, the index number is stored as the maximum record boundary value of the compressed pitch data, and the pitch data is stored in the table of the pitch data. A sixth step of storing the data value of the flag as a count value of and assigning the count value of the pitch data to the flag of the pitch data, and then adding 1 to the count value of the pitch data; and the flag of the negative intensity data in the fifth step. Is '1', the index is assigned to the table of negative strength and weakness data, the flag of negative strength and weakness data is designated as the count value of negative strength and weakness data, and the count of negative strength and weakness data is set. A seventh step of increasing the value, an eighth step of determining whether the index has reached a maximum value in the sixth and seventh steps, and an increase of the index value if the index has not reached the maximum value in the eighth step. A ninth step, which is repeated from the fifth step, a tenth step of determining whether the coded negative intensity is eight or more when the index reaches the maximum value in the eighth step, and the tenth step. In step 11, if the two or more pairs of values are encoded in one step, re-creating the negative strength and weakness data table, and in step 10, if the negative strength and weakness table is step 8, the sixth and eleventh steps 12. A method of compressing MIDI data, comprising a twelfth step of storing a table of pitch data and negative strength and weakness data generated in a process. 제1항에 있어서, 제3과정은 스테이터스 바이트를 읽어 음정 및 음의 강약 데이타인지를 판별하는 제13단계와, 상기 제13단계에서 음정 및 음의 강약 데이타가 아닐 경우에 스테이트 바이트와 그 다음의 데이타를 그대로 저장하는 제14단계와, 상기 제13단계에서 음정 및 음의 강약 데이타일 경우에 음의 강약 데이타의 플랙 값을 음의 강약 코드값으로 하고 음정 데이타 최대기록 경계값 미만인지를 판별하는 제15단계와, 상기 제15단계에서 음정 데이타가 최대기록 경계값 미만일 경우에 음정 데이타를 좌로 3을 쉬프트하고, 비트(B2~B0)에 음의 강약 데이타의 코드 값을 합하여 저장하는 제16단계와, 상기 제15단계에서 최대 기록 경계값의 미만이 아닐 경우에 음의 강약 데이타의 코드에 비트(B6~B3)의 값을 모두 '1'로 하고 비트(B2~B0)에는 음의 강약의 코드값이 저장되게 한 후 다음의 1바이트에 원래의 음정의 값을 저장하는 제17단계로 이루어짐을 특징으로 하는 미디 데이타 압축방법.The method of claim 1, wherein the third process includes: a thirteenth step of reading the status byte to determine whether it is pitch and negative intensity data; and in the case of the thirteenth step, the state byte and the following is not the case. In the fourteenth step of storing the data as it is, and in the thirteenth step, in the case of the pitch and the negative strength data, the flag value of the negative strength data is set as the negative strength code value, and it is determined whether the pitch data is less than the maximum recording boundary value. Step 15 and Step 16, when the pitch data is less than the maximum recording boundary value in step 15, shifts the pitch data 3 to the left, and stores the code values of negative strength and weakness data in bits B2 to B0. When the value of the maximum recording boundary is not less than the maximum recording boundary in step 15, all the values of the bits B6 to B3 are set to '1' in the code of the negative strength and weakness data, and the negative strength and weakness are set to the bits B2 to B0. The code value is After the chapter to be MIDI data compression method of claim claim 17, made of an step of storing the value of the original pitch to the next one byte. 음정 데이타 및 음의 강약 데이타의 테이블 값을 읽고, 저장된 스테이트 바이트와, 음정 데이타의 코드 값 및 음의 강약 데이타의 코드 값을 읽는 제21과정과, 상기 제21과정에서 읽은 음정 데이타의 코드 값이 최대 기록 경계값 이내인 지를 판별하는 제22과정과, 상기 제22과정에서 음정 데이타의 코드 값이 최대 기록 경계값 이내일 경우에 음정 데이타의 테이블에서 코드 값에 해당되는 원래의 음정 데이타를 읽고 최대 기록 경계값 이상일 경우에는 후속되는 1바이트의 값을 음정 데이타로 하는 제23과정과, 상기 제23과정에서 음정 데이타를 읽었을 경우에 음의 강약 코드 값에 해당되는 데이타를 음의 강약 데이타 테이블에서 읽어 스테이터스 바이트 및 음정 데이타와 함께 출력하는 제24과정으로 제어됨을 특징으로 하는 미디 데이타의 재생방법.The twenty-first step of reading the table values of the pitch data and the negative strength data, reading the stored state byte, the code value of the pitch data, and the code value of the negative strength data, and the code value of the pitch data read in the step 21 A process of determining whether the code value of the pitch data is within the maximum recording boundary value, and reading the original pitch data corresponding to the code value from the table of the pitch data when the code value of the pitch data is within the maximum recording boundary value. If the threshold value is greater than or equal to the recording boundary value, the twenty-third step of using the subsequent 1-byte value as pitch data; and if the pitch data is read from the twenty-third step, data corresponding to the negative strength and weakness code value is read from the negative strength and weakness data table. And a twenty-fourth process of outputting the status byte and the pitch data together.
KR1019930008207A 1993-05-13 1993-05-13 Midi data compressing and resting method KR950012086B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1019930008207A KR950012086B1 (en) 1993-05-13 1993-05-13 Midi data compressing and resting method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019930008207A KR950012086B1 (en) 1993-05-13 1993-05-13 Midi data compressing and resting method

Publications (1)

Publication Number Publication Date
KR950012086B1 true KR950012086B1 (en) 1995-10-13

Family

ID=19355341

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019930008207A KR950012086B1 (en) 1993-05-13 1993-05-13 Midi data compressing and resting method

Country Status (1)

Country Link
KR (1) KR950012086B1 (en)

Similar Documents

Publication Publication Date Title
US5805545A (en) Midi standards recorded information reproducing device with repetitive reproduction capacity
JP2724896B2 (en) Method and apparatus for storing MIDI information in a subcode pack
US5247126A (en) Image reproducing apparatus, image information recording medium, and musical accompaniment playing apparatus
EP0480760A2 (en) Apparatus for reproducing musical accompaniment information
US6525256B2 (en) Method of compressing a midi file
US7169999B2 (en) Digital signal processing method and apparatus thereof, control data generation method and apparatus thereof, and program recording medium
JP3675362B2 (en) Musical sound generating device and portable terminal device
KR950012086B1 (en) Midi data compressing and resting method
KR930001363B1 (en) Cross interleave circuit
KR100530917B1 (en) Music data compression method and apparatus
JP2002169564A (en) Sound source system
CN1231916C (en) Portable (recordable) karaoke apparatus
JPH08152881A (en) Playing information compressing device
TW594670B (en) A performance information recording device, performance information-compression equipment, and a telephone terminal unit
US5060267A (en) Method to produce an animal's voice to embellish a music and a device to practice this method
JP2002108375A (en) Device and method for converting karaoke music data
JP3912304B2 (en) Compressed data structure, waveform generation device, and waveform storage device
JP3322763B2 (en) Performance information compression method
JPS61248096A (en) Electronic musical instrument
JP3219150B2 (en) Performance information compression method
CN1084514C (en) Accompaniment data generator and video-song accompaniment apparatus adopting the same
KR100483346B1 (en) System and Method for Ordering Goods Using Mobile Terminal
JP2002091436A (en) Performance information recording medium and performance information compressing device and telephone terminal equipment
JP3985817B2 (en) Musical sound generating device and portable terminal device
JP3211646B2 (en) Performance information recording method and performance information reproducing apparatus

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20070928

Year of fee payment: 13

LAPS Lapse due to unpaid annual fee