KR100598207B1 - Midi 재생 장치 및 방법 - Google Patents

Midi 재생 장치 및 방법 Download PDF

Info

Publication number
KR100598207B1
KR100598207B1 KR1020040084922A KR20040084922A KR100598207B1 KR 100598207 B1 KR100598207 B1 KR 100598207B1 KR 1020040084922 A KR1020040084922 A KR 1020040084922A KR 20040084922 A KR20040084922 A KR 20040084922A KR 100598207 B1 KR100598207 B1 KR 100598207B1
Authority
KR
South Korea
Prior art keywords
sound source
note
point
envelope
time
Prior art date
Application number
KR1020040084922A
Other languages
English (en)
Other versions
KR20060035427A (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 KR1020040084922A priority Critical patent/KR100598207B1/ko
Priority to EP05808983A priority patent/EP1805761A4/en
Priority to JP2007537801A priority patent/JP2008518248A/ja
Priority to PCT/KR2005/003504 priority patent/WO2006043790A1/en
Priority to US11/255,760 priority patent/US20060086238A1/en
Publication of KR20060035427A publication Critical patent/KR20060035427A/ko
Application granted granted Critical
Publication of KR100598207B1 publication Critical patent/KR100598207B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Details of electrophonic musical instruments
    • G10H1/0033Recording/reproducing or transmission of music for electrophonic musical instruments
    • G10H1/0041Recording/reproducing or transmission of music for electrophonic musical instruments in coded form
    • G10H1/0058Transmission between separate instruments or between individual components of a musical system
    • G10H1/0066Transmission between separate instruments or between individual components of a musical system using a MIDI interface
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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/00Details of electrophonic musical instruments
    • G10H1/02Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
    • G10H1/04Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos by additional modulation
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2240/00Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
    • G10H2240/011Files or data streams containing coded musical information, e.g. for transmission
    • G10H2240/026File encryption of specific electrophonic music instrument file or stream formats, e.g. MIDI, note oriented formats, sound banks, wavetables
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10HELECTROPHONIC 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/025Envelope processing of music signals in, e.g. time domain, transform domain or cepstrum domain
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00007Time or data compression or expansion
    • G11B2020/00014Time or data compression or expansion the compressed signal being an audio signal
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/10527Audio or video recording; Data buffering arrangements
    • G11B2020/10537Audio or video recording
    • G11B2020/10546Audio or video recording specifically adapted for audio data

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Signal Processing (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

본 발명은 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하는 단계, 노트 오프 후 음원 샘플들의 인벨롭 값이 0에 가까운 지점을 찾아내는 단계, 상기 지점을 음원 샘플 값을 제한하는 시점으로 결정하는 단계 및 상기 결정된 제한 시점을 반영하여 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 단계를 포함하는 것을 특징으로 하는 MIDI 재생 방법에 관한 것이다.
또한, 본 발명은 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하기 위한 수단, 노트 오프 후 음원 샘플들의 인벨롭 값이 0에 가까운 지점을 찾아내는 수단, 상기 지점을 음원 샘플 값을 제한하는 시점으로 결정하는 수단 및 상기 결정된 제한 시점을 반영하여 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 수단을 포함하는 것을 특징으로 하는 MIDI 재생 장치에 관한 것이다.
상기 본 발명을 이용하면, 사람의 귀에 들리는 잡음을 최소화하면서 인벨롭의 값이 0으로 떨어지는 시간을 감소시킬 수 있다. 이로써 CPU에 과부하가 걸리는 것을 방지하고 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생을 가능하게 함과 동시에, 음질의 열화를 방지할 수 있는 장점이 있다.
MIDI, 음원, 인벨롭

Description

MIDI 재생 장치 및 방법{MIDI playback equipment and method}
도 1은 종래의 MIDI 파일의 재생시 인벨롭을 나타낸 도면.
도 2는 종래의 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면.
도 3과 도 4는 음원 샘플의 인벨롭 값이 제한되는 시점을 나타낸 도면.
도 5는 본 발명의 바람직한 일 실시예에 따른 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면.
<도면의 주요 부분에 대한 부호의 설명>
21,121: 미디 파서 22,122:미디 시퀀스
23,125:주파수 변환부 24,126:웨이브 테이블
123:제로 크로싱 탐색부 124:인벨롭 적용부
본 발명은 MIDI(Music Instrument Digital Interface) 음악 재생기에서 제로 크로싱 포인트(Zero Crossing Point)를 찾아내어 한정된 CPU 자원상에서 음질을 향상시키는 MIDI 재생 장치 및 방법에 관한 것이다.
또 다른 측면에서 본 발명은 MIDI 음악 재생에 대한 것으로서, MIDI를 구현 하는 방식 중 웨이브 테이블 신세시스(Wave Table Synthesis) 방식을 이용하여 구현 할 때 적용된다.
MIDI는 음악 악기들의 디지탈적인 접속을 통해서 악기와 악기, 악기와 컴퓨터 등 디지탈적인 신호를 처리하는 음악 기구들의 입출력에 있어서 호환성을 제공하는 하드웨어와 자료구조에 관한 표준 사양이다. 다시 말하면 악기 사이의 연주정보를 전달하는 규격이며 전자 악기들에게 악보와 같은 역할을 한다.
이러한 MIDI 형식을 이용한 MIDI 음악 재생기는 디지탈 피아노, 전자 기타 등 전자 악기들뿐만 아니라 휴대폰 벨소리를 재생하는 데 이용되는 등 다양한 분야에 이용되고 있다.
MIDI 음악을 실제 완성된 소리로 만들기 위해서는 여러 가지 방식을 사용할 수 있는데, 대표적인 것으로 FM 신세시스(Frequency Modulation Synthesis) 방식과 웨이브 테이블 신세시스 방식이 있다.
FM 신세시스 방식은 기본적인 파형들을 합성하여 소리를 만들어 내는 방식으로서, 별도의 음원을 필요하지 않으므로 메모리의 사용량이 적은 장점이 있으나, 원음에 가까운 자연스러운 소리를 내지 못하는 단점이 있다.
웨이브 테이블 신세시스 방식은 각 악기별 및 악기내 노트에 따른 음원을 미리 메모리에 저장하고, 이 음원들을 합성하여 소리를 만들어 내는 방식이다. 음원으로 인해 메모리 사용량이 증가하는 단점이 있으나, 가까운 자연스러운 소리를 낼 수 있는 장점이 있다.
이러한 여러 방식들을 사용하여 소리를 합성할 때, 소리를 실시간으로 듣기 위해서는, MIDI 파일과 음원으로부터 합성하는 과정은 실시간으로 진행되어야 한다. 그러나 일반적으로 합성하는 과정은 상당량의 CPU 자원을 사용하므로, 고사양의 데스크탑용 CPU를 사용하지 않고서는 충분한 음질을 만들어내기가 힘들다. 따라서 적은량의 CPU 자원을 사용하고도 사용자가 듣기에 충분한 음질을 만들어 내는 기술이 필요하다.
MIDI 재생기에서 이러한 CPU 자원을 주로 사용하는 부분들 중 인벨롭 제너레이터(Envelope Generator)가 있다. 인벨롭 제너레이터란 소리의 볼륨이나 피치에 대한 크기를 결정해 주는 소리 파형의 윤곽선이라고 할 수 있다. 따라서 음질에 상당한 영향을 미치는 한편, CPU 자원을 많이 사용하게 된다.
여기서 인벨롭(Envelope)은 볼륨(Volume)에 대한 인벨롭과 피치(Pitch)에 대한 인벨롭의 두 가지 종류가 있으며, 크게 어텍(Attack), 데케이(Decay), 서스테인(Sustain), 릴리즈(Release)의 네 단계로 나누어 진다.
도 1은 종래의 MIDI 파일의 재생시 인벨롭을 나타낸 도면이다.
도1을 참조하면, 인벨롭의 네 단계 어택, 데케이, 서스테인, 릴리즈를 알 수 있다. 상기 도 1에서는 인벨롭이 선형으로 나와 있으나, 인벨롭의 종류와 각 단계의 특성에 따라 선형이거나 곡선(Concave)일 수 있다.
또한 음원의 고유한 특성을 나타내는 정보인 알티큘레이션 데이터(Articulation data)에는 어택, 데케이, 서스테인, 릴리즈의 네 단계에 대한 시간 정보가 들어 있어서 소리를 합성하는데 이용하게 된다.
이러한 인벨롭을 적용하여 하나의 노트를 재생하며, 여러 개의 노트가 모여 하나의 곡을 완성하게 된다.
도 1의 인벨롭을 적용하여 하나의 노트를 재생할 때, 가장 이상적으로 음을 재생하고자 하면 노트 오프(Note Off)(16) 이후에 인벨롭이 감소하면서 인벨롭 값이 0 이 될때까지 떨어져야 한다. 그러나, 이동 단말기 등 제한된 자원을 가진 재생 장치들에서 그러한 방식으로 재생하는 것은 불가능하므로, 새로운 기술의 개발이 필요하다.
도 2는 종래의 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면이다.
도 2에 나타낸 바와 같이, 종래의 MIDI 재생 장치는 MIDI 파일로부터 다수의 노트들 및 노트 재생 시간을 추출하는 MIDI 파서(21)와, 상기 추출된 노트 재생 시간을 순차적으로 출력하는 MIDI 시퀀서(22)와, 적어도 하나 이상의 음원 샘플이 등록하기 위한 웨이브 테이블(24)과, 상기 노트 재생 시간이 출력될 때마다 상기 등록된 적어도 하나 이상의 음원 샘플을 이용하여 각 노트들에 상응하는 음원샘플들로 주파수 변환하여 출력하는 주파수 변환부(23)로 구성된다.
여기서, 상기 MIDI 파일은 미리 소정의 음악에 대한 정보들이 저장 매체 등에 기록되어 있는 것으로서, 이러한 MIDI 파일에는 다수의 노트들과 노트 재생 시간이 포함될 수 있다. 노트란 음을 나타내는 정보로서, 예를 들어 도, 레, 미 등과 같은 음계 정보를 나타낸다. 이러한 노트는 실제적인 음이 아니므로, 실제의 음원들로 재생되어야 한다.
또한, 노트 재생 시간은 상기 MIDI 파일에 포함된 다수의 노트들 각각의 재생 시간을 의미하는 것으로서, 동일한 음의 길이 정보이다. 예를 들어, "레"라는 노트의 재생 시간은 1/8초라면, "레"라는 노트에 해당하는 음원이 재생시 1/8초 동안 지속되게 된다.
상기 웨이브 테이블(24)에는 악기별 및 악기의 각 노트에 따른 음원들이 등록되어 있다. 이때, 통상 음계의 단계는 1부터 128까지로 이루어지는 되는데, 이러한 음계(즉, 노트)에 대한 음원들을 모두 상기 웨이브 테이블(24)에 등록시키는 데에는 한계가 있다. 이에 따라, 통상적으로는 대표적인 몇 개의 음계들에 대한 음원 샘플들만이 등록되어 있다.
상기 주파수 변환부(23)는 소정 노트에 대한 재생시간이 입력되면, 해당 노트에 대한 음원이 상기 웨이브 테이블(24)에 존재하는지를 파악하여 그 파악 여부에 따라 해당 노트에 대한 음원으로 주파수 변환하여 출력한다. 여기서, 상기 주파수 변환부(23)로는 오실레이터(oscillator) 등이 사용될 수 있다.
이때, 상기 해당 노트에 대한 음원이 상기 웨이브 테이블(24)에 존재하지 않는 경우, 상기 웨이브 테이블(24)에서 소정의 음원 샘플을 독출한 다음, 독출된 음원 샘플을 상기 해당 노트에 상응하는 음원 샘플로 주파수 변환하여 준다.
만일 상기 해당 노트에 대한 음원이 상기 웨이브 테이블(24)에 존재하는 경우에는 별도의 주파수 변환 없이 해당 음원 샘플을 상기 웨이브 테이블(24)에서 독출되어 출력될 수 있다.
예를 들어, 웨이브 테이블(24)에 등록된 음원 샘플이 20Khz로 샘플링 되어 있는데 반해, 원하는 음악의 노트는 40Khz로 샘플 되어 결국 40Khz로 주파수 변환되어 재생된다고 하면, 상기 주파수 변환부(23)에 의해 20Khz의 음원 샘플이 40Khz 의 음원 샘플로 주파수 변환되어 출력될 수 있다.
이와 같은 과정은 각 노트에 대한 노트 재생시간이 입력될 때마다 반복적으로 진행되게 된다.
하지만, 이와 같이 각 노트에 대한 노트 재생시간이 입력될 때마다 반복적으로 상술한 바와 같은 주파수 변환을 수행하게 되는 경우, 상당한 연산량이 요구되게 되어 해당 CPU에 과중한 부하가 걸릴 위험이 있다. 더군다나, 해당 MIDI 파일은 실시간으로 재생되어 출력되어야 하는데, 앞서 설명한바와 같이 각 노트에 대해 주파수 변환을 하게 됨으로써, 실시간으로 음악이 재생될 수 없게 될 수도 있다.
결국, 종래의 MIDI 재생 장치는 상술한 과정으로 수행됨으로써, 상당량의 CPU 자원이 사용되기 때문에 고사양의 데스크탑용 CPU를 사용하지 않고서는 충실한 음악을 재생하기가 힘들다. 따라서, 적은 량의 CPU 자원을 사용하고도 사용자가 듣기에 충분한 정도의 음질을 보장할 수 있는 기술이 절실히 요구되고 있다.
본 발명은 MIDI 파일을 소리로 합성하는 과정에서 CPU 자원의 사용량이 높으며 음질을 결정하는데 중요한 역할을 하는 인벨롭 제너레이터를 개선하여 적은 용량의 CPU 상에서 재생 가능한 고음질의 MIDI 재생 장치 및 방법을 제공하는데 그 목적이 있다.
상기의 목적을 달성하기 위한 본 발명에 따른 MIDI 재생 방법은 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하는 단계, 노트 오프 후 음원 샘플들 의 인벨롭 값이 0에 가까운 지점을 찾아내는 단계, 상기 지점을 음원 샘플 값을 제한하는 시점으로 결정하는 단계 및 상기 결정된 제한 시점을 반영하여 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 단계를 수행하는 점에 특징이 있다.
또한, 상기 목적을 달성하기 위한 본 발명에 따른 MIDI 재생 장치는 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하기 위한 수단, 노트 오프 후 음원 샘플들의 인벨롭 값이 0에 가까운 지점을 찾아내는 수단, 상기 지점을 음원 샘플 값을 제한하는 시점으로 결정하는 수단 및 상기 결정된 제한 시점을 반영하여 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 수단을 포함하는 점에 특징이 있다.
상기 본 발명을 이용하면, 사람의 귀에 들리는 잡음을 최소화하면서 인벨롭의 값이 0으로 떨어지는 시간을 감소시킬 수 있다. 이로써 CPU에 과부하가 걸리는 것을 방지하고 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생을 가능하게 함과 동시에, 음질의 열화를 방지할 수 있는 장점이 있다.
상기 도 1의 인벨롭을 적용하여 하나의 노트를 재생할 때, 가장 이상적으로 음을 재생하기 위해서는 노트 오프(Note Off)(16) 이후 인벨롭이 감소하면서 최종적으로 인벨롭의 값이 0 이 되어야 한다. 그러나 이동 단말기 등의 제한된 자원을 가진 재생 장치들에서 그러한 방식으로 재생하는 것은 불가능하므로, 새로운 기술의 개발이 요구된다. 본 발명은 종래 MIDI 재생기의 구조에 인벨롭 분석부 및 노트 오프 인벨롭(Note-Off Envelope) 처리부가 추가된 구조로 되어 있다.
도 1의 인벨롭에서 노트 오프(16) 이후 시간이 지남에 따라 인벨롭이 감소하여 점차로 소리의 크기가 작아지고 결국 0으로 가게 된다. 그런데 0으로 가기까지의 시간이 상당한 크기를 가지므로, 일정한 시간으로 제한하게 된다. 이 제한하는 시점에 소리의 크기가 0보다 크므로, 0 보다 큰 값과 0 사이의 불연속점이 발생하여, 경우에 따라 사람의 귀에 잡음이 발생하게 된다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세히 설명한다. 본 발명은 이하 제시되는 실시예에 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 자명한 범위 내에서 구성요소의 부가, 한정, 삭제, 추가 등에 의하여 새로운 발명이 제시 될 수 있을 것이다.
도 3과 도 4는 음원 샘플의 인벨롭 값이 제한되는 시점을 나타낸 도면이다.
상기 도 3을 참조하면, 음원 샘플의 마지막 값이 0보다 크며, 그 이후 바로 제한되는 시점이 되어 인벨롭(100)의 값이 0으로 떨어지게 된다. 즉, 상기와 같은 경우 0 보다 큰 값과 0 사이에 인벨롭(100)의 불연속 점이 발생하여 사람의 귀에 잡음이 발생할 수 있다. 상기의 음질 훼손은 인벨롭(100)과 마직막 음원 샘플 크기와 0의 차이(110)가 클 수록 증가한다.
상기와 같은 문제점을 해결하기 위하여 도 4에서 본 발명에 따른 바람직한 일 실시예를 제안하고 있다.
본 발명은 0보다 큰 값과 0 사이의 불연속점이 발생하는 시점 전에 샘플(sample) 값이 0에 가까운 지점을 찾아낸다. 그리고 상기 지점을 상기 인벨롭(100)이 노트 오프 이후 제한되는 시점(120)으로 이동시키게 된다. 상기 제한되는 시점 (120)과 0 사이의 소리 크기의 차이를 최소화하여 사람의 귀에 발생하게 될 잡음을 최소화 시킨다.
샘플 값이 0에 가까운 지점을 찾는 방법으로써 본 발명은 제로 크로싱 포인트(Zero Crossing Point)를 찾아서 제로 크로싱 포인트(Zero Crossing Point) 직전의 샘플 값을 제한되는 시점(120)으로써 결정하게 된다.
제로 크로싱 포인트를 찾는 방법으로써, 본 발명은 0 보다 큰 값과 0 사이의 불연속점이 발생하는 시점전에 샘플 값이 0보다 작은 경우에서 그 다음 샘플 값이 0 보다 큰 경우를 찾아서, 샘플 값이 0 보다 작은 경우의 샘플 값을 제한되는 시점(120)으로 결정하고, 그 이후는 재생하지 않고 샘플 값을 0으로 고정시킨다.
이렇게 함으로써 제한되는 시점(120) 부근의 샘플 값중 0에 가장 가까운 샘플 값에서 0으로 바뀌게 하여, 실제로 제한되는 시점(120)의 샘플 값과 0의 차이를 최소화 함으로써, 사람의 귀에 들리는 잡음을 최소화하게 된다.
도 5는 본 발명의 바람직한 일 실시예에 따른 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면이다.
도 5를 참조하면, 본 발명의 MIDI 재생 장치는 MIDI 파일에서 다수의 노트들 및 노트 재생시간을 추출하는 MIDI 파서(121)와, 상기 MIDI 파서(121)에서 추출한 다수 노트의 재생시간에 따라 음원 샘플들을 출력하는 MIDI 시퀀서(122)와, 음원 샘플의 크기가 0에 근접한 시점을 탐색하는 제로 크로싱 포인트 탐색부(123)와, 상기 제로 크로싱 포인트 탐색부(123)에서 탐색된 제로 크로싱 포인트를 인벨롭에 적용하는 인벨롭 적용부(124)와, 상기 음원 샘플들을 등록하기 위한 웨이브 테이블 (126)과 출력될 음악 파일의 주파수를 변환하는 주파수 변환부(125)로 구성된다.
여기서, 상기 MIDI 파일은 미리 소정의 음악에 대한 정보들이 저장 매체 등에 기록되어 있는 것으로서, 이러한 MIDI 파일에는 다수의 노트들과 노트 재생시간이 포함될 수 있다. 노트란 음을 나타내는 정보로서, 예를 들어 도, 레, 미 등과 같은 음계 정보를 나타낸다. 이러한 노트는 실제적인 음이 아니므로, 실제의 음원들로 재생되어야 한다. 통상적으로 음계는 1부터 128 범위로 이루어질 수 있다.
본 발명에서 상기 MIDI 파일은 하나의 노래의 시작과 끝으로 이루어진 하나의 악곡일 수 있다. 이러한 악곡은 수많은 음계와 각 음계의 시간 길이에 의해 구성될 수 있다. 따라서, 상기 MIDI 파일은 각 음계에 대응되는 노트들과 각 노트의 재생시간에 대한 정보들이 포함될 수 있다.
또한, 노트 재생시간은 상기 MIDI 파일에 포함된 다수의 노트들 각각의 재생시간을 의미하는 것으로서, 동일한 음의 길이 정보이다. 예를 들어, "레"라는 노트의 재생시간은 1/8초라면, "레"라는 노트에 해당하는 음원이 재생시 1/8초 동안 지속되게 된다.
상기 MIDI 파서(121)는 MIDI 파일이 입력되면, 상기 MIDI 파일을 파싱(parsing)하여 그 안에 포함되는 다수의 노트들과 노트 재생시간을 추출한다. 여기서, 상기 노트 재생시간은 상기 다수의 노트들 각각의 재생시간을 의미한다.
이때, 상기 다수의 노트들은 MIDI 시퀀서(122)로 입력된다.
상기 MIDI 파서(121)로 입력되는 MIDI 파일에는 적게는 수십 개에서 많게는 128계의 음계에 대한 노트들이 포함될 수 있다.
따라서, 상기 MIDI 파일에 포함된 노트들을 상기 웨이브 테이블(126)에 등록된 음원 샘플들을 이용하여 재생할 수는 없다.
그렇기 때문에, 앞서 설명한 바와 같이, 상기 웨이브 테이블(126)에 등록된 소정의 음원 샘플들을 이용하여 상기 MIDI 파일에 포함된 노트들에 상응하는 음원 샘플들로 주파수 변환하여 재생하여 주고 있다.
이때, 종래에는 각 노트마다 그에 상응하는 음원 샘플들을 실시간으로 만들어주게 됨에 따라 연산량이 폭주하여 CPU에 과부하가 걸려 실질적인 실시간 재생이 이루어지기 힘들었다.
이에 따라, 본 발명에서는 음원 샘플의 인벨롭(100)을 관찰하여 제로 크로 싱 포인트를 포착하고 상기 제로 크로싱 포인트를 제한되는 시점(120)으로 인식하여 CPU 사용량을 최소화하고, 이로써 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생이 가능하도록 한다.
한편, 상기 MIDI 파서(121)로부터 각 노트에 대한 재생시간을 입력받은 상기 MIDI 시퀀서(122)는 각 노트 재생시간에 따라 각 노트에 상응하는 음원 샘플들을 순차적으로 각 노트의 재생 시간만큼씩 상기 웨이브 테이블(126)로부터 독출하여 출력하고, 이에 따라 상기 MIDI 파일에 대한 재생이 수행될 수 있다.
그러나 상기 MIDI 파일의 노트를 재생할 때 각 노트마다 가장 이상적인 음이 재생되기 위하여 노트 오프 이후 음원 샘플의 크기가 0에 근접하도록 감소 하여야 한다.
이를 위해서는 노트 오프 후 음원 샘플의 인벨롭 값을 탐색하여 상기 인벨롭 의 값이 0에 근접하는 시점을 포착하여 이 시점을 제한되는 시점(120)으로 적용하여야 한다. 그렇지 않으면, 상기 인벨롭의 값이 0으로 급격히 감소하는 불연속 점이 발생하여 음질에 악영향을 끼칠 수 있다. 이를 위하여 제로 크로싱 탐색부(123)에서 상기 인벨롭의 제로 크로싱 포인트를 포착하게 된다.
상기 제로 크로싱 탐색부(123)를 통하여 포착된 제로 크로싱 포인트는 인벨롭 적용부(124)를 통하여 제한되는 시점(120)으로 인벨롭에 적용된다.
이로써 상기 인벨롭으로 부터 발생하는 음원의 잡음을 없애고, 적은 자원의 CPU를 사용하여 소리를 합성할 수 있다.
이상의 설명에서와 같이 본 발명을 이용하면, 사람의 귀에 들리는 잡음을 최소화하면서 인벨롭의 값이 0으로 떨어지는 시간을 감소시킬 수 있다. 이로써 CPU에 과부하가 걸리는 것을 방지하고 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생을 가능하게 함과 동시에, 음질의 열화를 방지할 수 있는 장점이 있다.

Claims (6)

  1. MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하는 단계;
    노트 오프 후 음원 샘플들의 인벨롭 값이 0에 가까운 지점을 찾아내는 단계;
    상기 지점을 음원 샘플 값을 제한하는 시점으로 결정하는 단계; 및
    상기 결정된 제한 시점을 반영하여 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 단계를 포함하는 것을 특징으로 하는 MIDI 재생 방법.
  2. 제1항에 있어서,
    노트 오프 후 상기 음원 샘플들의 인벨롭 값이 0에 가까운 지점을 찾아내는 단계에 있어서, 상기 인벨롭 값이 0에 가까운 지점으로 제로 크로싱 포인트 직전의 샘플 값을 적용하는 것을 특징으로 하는 MIDI 재생 방법.
  3. 제1항에 있어서,
    상기 음원 샘플들을 출력함에 있어 상기 음원 샘플들의 인벨롭 값이 0에 가까운 지점 이후의 음원 샘플 값을 0으로 적용하는 것을 특징으로 하는 MIDI 재생 방법.
  4. MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하기 위한 수단;
    노트 오프 후 음원 샘플들의 인벨롭 값이 0에 가까운 지점을 찾아내는 수단;
    상기 지점을 음원 샘플 값을 제한하는 시점으로 결정하는 수단; 및
    상기 결정된 제한 시점을 반영하여 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 수단을 포함하는 것을 특징으로 하는 MIDI 재생 장치.
  5. 제 4항에 있어서,
    노트 오프 후 상기 음원 샘플들의 인벨롭 값이 0에 가까운 지점을 찾아내는 수단에 있어서, 상기 인벨롭 값이 0에 가까운 지점으로 제로 크로싱 포인트 직전의 샘플 값을 적용하는 제로 크로싱 포인트 탐색부가 더 포함되는 것을 특징으로 하는 MIDI 재생 장치.
  6. 제 4항에 있어서,
    상기 음원 샘플들의 제로 크로싱 포인트 직전의 샘플 값을 인벨롭에 적용하는 인벨롭 적용부가 더 포함되는 것을 특징으로 하는 MIDI 재생 장치.
KR1020040084922A 2004-10-22 2004-10-22 Midi 재생 장치 및 방법 KR100598207B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020040084922A KR100598207B1 (ko) 2004-10-22 2004-10-22 Midi 재생 장치 및 방법
EP05808983A EP1805761A4 (en) 2004-10-22 2005-10-20 DEVICE AND METHOD FOR PLAYING A MIDI FILE
JP2007537801A JP2008518248A (ja) 2004-10-22 2005-10-20 Midiファイルを再生する装置及び方法
PCT/KR2005/003504 WO2006043790A1 (en) 2004-10-22 2005-10-20 Apparatus and method for reproducing midi file
US11/255,760 US20060086238A1 (en) 2004-10-22 2005-10-21 Apparatus and method for reproducing MIDI file

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040084922A KR100598207B1 (ko) 2004-10-22 2004-10-22 Midi 재생 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20060035427A KR20060035427A (ko) 2006-04-26
KR100598207B1 true KR100598207B1 (ko) 2006-07-07

Family

ID=37143992

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040084922A KR100598207B1 (ko) 2004-10-22 2004-10-22 Midi 재생 장치 및 방법

Country Status (1)

Country Link
KR (1) KR100598207B1 (ko)

Also Published As

Publication number Publication date
KR20060035427A (ko) 2006-04-26

Similar Documents

Publication Publication Date Title
EP1688912B1 (en) Voice synthesizer of multi sounds
US7276655B2 (en) Music synthesis system
US6525256B2 (en) Method of compressing a midi file
KR101155160B1 (ko) 오디오 플레이어에 다중-영역 악기 지원을 제공하기 위한 시스템들 및 방법들
US7427709B2 (en) Apparatus and method for processing MIDI
JP3654079B2 (ja) 波形生成方法及び装置
US20060086239A1 (en) Apparatus and method for reproducing MIDI file
US7442868B2 (en) Apparatus and method for processing ringtone
US20050188820A1 (en) Apparatus and method for processing bell sound
RU2314502C2 (ru) Устройство и способ для обработки звука звонка
US20060086238A1 (en) Apparatus and method for reproducing MIDI file
KR100598207B1 (ko) Midi 재생 장치 및 방법
KR100598208B1 (ko) Midi 재생 장치 및 방법
KR100655548B1 (ko) 미디 합성 방법
KR100689495B1 (ko) Midi 재생 장치 및 방법
KR100547340B1 (ko) 미디 재생 장치 그 방법
KR100636905B1 (ko) 미디 재생 장치 그 방법
KR20210050647A (ko) 악기 디지털 인터페이스 재생 장치 및 방법
JP3744247B2 (ja) 波形圧縮方法及び波形生成方法
JP4238807B2 (ja) 音源用波形データの決定装置
JP3788096B2 (ja) 波形圧縮方法及び波形生成方法
JPH10307581A (ja) 波形データ圧縮装置および方法
JP2005092234A (ja) 波形生成方法及び装置

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee