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

Midi 재생 장치 및 방법 Download PDF

Info

Publication number
KR100598208B1
KR100598208B1 KR1020040084921A KR20040084921A KR100598208B1 KR 100598208 B1 KR100598208 B1 KR 100598208B1 KR 1020040084921 A KR1020040084921 A KR 1020040084921A KR 20040084921 A KR20040084921 A KR 20040084921A KR 100598208 B1 KR100598208 B1 KR 100598208B1
Authority
KR
South Korea
Prior art keywords
note
envelope
slope
time
midi
Prior art date
Application number
KR1020040084921A
Other languages
English (en)
Other versions
KR20060035426A (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 KR1020040084921A priority Critical patent/KR100598208B1/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 KR20060035426A publication Critical patent/KR20060035426A/ko
Application granted granted Critical
Publication of KR100598208B1 publication Critical patent/KR100598208B1/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
    • 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 재생 방법은 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하는 단계, 노트 오프 후 음원 샘플들의 인벨롭 기울기를 연산하는 단계 및 상기 연산된 인벨롭 기울기를 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 단계가 수행되는점에 특징이 있다.
또한, 본 발명에 따른 MIDI 재생 장치는 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하기 위한 수단, 노트 오프 후 음원 샘플들의 인벨롭 기울기를 연산하는 수단 및 상기 연산된 인벨롭 기울기를 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 수단을 포함하는 점을 특징으로 한다.
상기 본 발명을 이용하면, 사람의 귀에 들리는 잡음을 최소화하면서 인벨롭의 값이 0으로 떨어지는 시간을 감소시킬 수 있다. 이로써 CPU에 과부하가 걸리는 것을 방지하고 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생을 가능하게 함과 동시에, 음질의 열화를 방지할 수 있는 장점이 있다.
MIDI, 음원, 인벨롭

Description

MIDI 재생 장치 및 방법{MIDI playback equipment and method}
도 1은 종래의 MIDI 파일의 재생시 인벨롭을 나타낸 도면
도 2는 종래의 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면
도 3은 본 발명에 따른 MIDI 파일의 재생시 인벨롭을 나타낸 도면
도 4는 본 발명의 바람직한 일 실시예에 따른 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면
<도면의 주요 부분에 대한 부호의 설명>
21,121:미디 파서 22,122:미디 시퀀스
23,126:주파수 변환부 24,127:웨이브 테이블
123:시간 제한부 124:기울기 연산부
125:인벨롭 적용부
본 발명은 MIDI(Music Instrument Digital Interface) 음악 재생기에서 인벨롭의 기울기를 조절하여 한정된 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)과, 상기 노트 재생 시간이 출력될 때마다 상기 등록된 적어도 하나 이상의 음원 샘플을 이용하여 각 노트들에 상응하는 음원샘플들로 주파수 변환하여 출력하는 주파수 변환부(24)로 구성된다.
여기서, 상기 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 파일 에서 다수의 노트들 및 노트 재생 시간을 추출하는 단계, 노트 오프 후 음원 샘플들의 인벨롭 기울기를 연산하는 단계 및 상기 연산된 인벨롭 기울기를 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 단계가 수행되는점에 특징이 있다.
또한, 상기의 목적을 달성하기 위하여 본 발명에 따른 MIDI 재생 장치는 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하기 위한 수단, 노트 오프 후 음원 샘플들의 인벨롭 기울기를 연산하는 수단 및 상기 연산된 인벨롭 기울기를 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 수단을 포함하는 점을 특징으로 한다.
상기 본 발명을 이용하면, 사람의 귀에 들리는 잡음을 최소화하면서 인벨롭의 값이 0으로 떨어지는 시간을 감소시킬 수 있다. 이로써 CPU에 과부하가 걸리는 것을 방지하고 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생을 가능하게 함과 동시에, 음질의 열화를 방지할 수 있는 장점이 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세히 설명한다. 본 발명은 이하 제시되는 실시예에 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 자명한 범위 내에서 구성요소의 부가, 한정, 삭제, 추가 등에 의하여 새로운 발명이 제시 될 수 있을 것이다.
도 3은 본 발명에 따른 MIDI 파일의 재생시 인벨롭을 나타낸 도면이다.
도 3을 참조하여 본 발명을 개략적으로 살펴보면, 인벨롭을 적용하여 하나의 노트를 재생할 때, 가장 이상적으로 음을 재생하고자 하면 노트 오프(116) 이후에 인벨롭이 감소하면서 인벨롭 값이 0 이 될 때까지 떨어져야 한다. 그러나 이동 단 말기 등의 제한된 자원을 가진 재생 장치들에서 그러한 방식으로 재생하는 것은 불가능하다. 상기와 같은 문제점을 개선하기 위한 본 발명에는 종래 MIDI 재생기의 구조에 인벨롭 분석부 및 노트 오프 인벨롭(Note-Off Envelope) 처리부가 추가된다.
도 3의 인벨롭에서 노트 오프(116) 이후 시간이 지남에 따라 인벨롭이 감소하여 점차로 소리의 크기가 작아지고 결국 0으로 가게 된다. 그런데 0으로 가기까지의 시간이 상당한 크기를 가지므로, 일정한 시간으로 제한하게 된다. 이 제한되는 시점에 소리의 크기가 0보다 크므로, 0 보다 큰 값과 0 사이의 불연속점이 발생하여, 경우에 따라 사람의 귀에 잡음이 발생하게 된다.
이러한 문제를 해결하기 위하여, 0 보다 큰 값과 0 사이의 불연속점이 발생하는 시점전의 일정한 시간동안 인벨롭의 기울기를 급하게 떨어뜨려서 불연속점이 발생하는 시점에서 0에 가까운 값에 도달하도록 한다.
이때, 기울기를 떨어뜨리는 정도를 획일적으로 모든 경우에 적용하면 음질의 왜곡이 발생하는데, 그 이유는 노트와 노트가 이어지는 상황에 따라 기울기를 떨어뜨리는 시점의 소리의 크기(Volume), 기울기를 떨어뜨리는 시점과 제한하는 시점까지의 시간의 길이(Duration)가 달라지기 때문이다.
따라서, 본 발명은 이 두 가지 요소에 따라서 인벨롭의 기울기가 떨어지는 정도를 다르게 적용하도록 고안되었다.
우선, 기울기를 떨어뜨리는 시점의 소리의 크기(Volume)가 클수록 기울기를 떨어뜨리는 정도가 커야 한다. 즉 기울기를 떨어뜨리는 시점의 소리의 크기 (Volume)와 기울기를 떨어뜨리는 정도는 비례한다.
또한 기울기를 떨어뜨리는 시점과 제한하는 시점까지의 시간의 길이(Duration)가 길어질수록 기울기를 떨어뜨리는 정도가 작아야 한다. 즉, 기울기를 떨어뜨리는 시점과 제한하는 시점까지의 시간의 길이와 기울기를 떨어뜨리는 정도는 반비례한다.
이를 수식화하면 하기와 같다. 기울기를 떨어뜨리는 시점의 소리의 크기(Volume)를 Vs라 하고, 기울기를 떨어뜨리는 시점과 제한하는 시점까지의 시간의 길이(Duration)를 Td라 하며, 기울기를 떨어뜨리는 정도를 Yd라 하면,
Yd = C * Vs / Td
로 표시되어질 수 있다. 상기에서 C는 비례상수를 의미한다.
도 3에 표현되어 있는 인벨롭 형태와 도 1에 표현되어 있는 종래의 인벨롭 형태를 비교하여 살펴보면, 본 발명은 감소된 기울기가 릴리즈 시간(Release Time)(114)의 마지막 부분에서 적용되어, 소리의 크기(Volume)이 제한된 시간 내에 0으로 떨어지도록 하여, 사람의 귀에 들릴 수 있는 잡음을 제거한다.
도 4는 본 발명의 바람직한 일 실시예에 따른 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면이다.
도 4를 참조하면, 본 발명의 MIDI 재생 장치는 MIDI 파일에서 다수의 노트들 및 노트 재생시간을 추출하는 MIDI 파서(121)와, 상기 MIDI 파서 추출한 다수 노트의 재생시간에 따라 음원 샘플들을 출력하는 MIDI 시퀀서(122)와, 노트 오프 후 인벨롭의 크기가 0으로 수렴할 때 까지의 시간을 제한하는 시간 제한부(123)와, 상기 시간 제한부(123)의 제한된 시간과 노트 오프(116) 시 상기 인벨롭의 크기에 따라 인벨롭의 기울기를 연산하는 기울기 연산부(124)와, 상기 연산된 기울기를 인벨롭에 적용하는 인벨롭 적용부(125)와, 상기 음원 샘플들을 등록하기 위한 웨이브 테이블(127)과 출력될 음악 파일의 주파수를 변환하는 주파수 변환부(126)로 구성된다.
여기서, 상기 MIDI 파일은 미리 소정의 음악에 대한 정보들이 저장 매체 등에 기록되어 있는 것으로서, 이러한 MIDI 파일에는 다수의 노트들과 노트 재생시간이 포함될 수 있다. 노트란 음을 나타내는 정보로서, 예를 들어 도, 레, 미 등과 같은 음계 정보를 나타낸다. 이러한 노트는 실제적인 음이 아니므로, 실제의 음원들로 재생되어야 한다. 통상적으로 음계는 1부터 128 범위로 이루어질 수 있다.
본 발명에서 상기 MIDI 파일은 하나의 노래의 시작과 끝으로 이루어진 하나의 악곡일 수 있다. 이러한 악곡은 수많은 음계와 각 음계의 시간 길이에 의해 구성될 수 있다. 따라서, 상기 MIDI 파일은 각 음계에 대응되는 노트들과 각 노트의 재생시간에 대한 정보들이 포함될 수 있다.
또한, 노트 재생시간은 상기 MIDI 파일에 포함된 다수의 노트들 각각의 재생시간을 의미하는 것으로서, 동일한 음의 길이 정보이다. 예를 들어, "레"라는 노트의 재생시간은 1/8초라면, "레"라는 노트에 해당하는 음원이 재생시 1/8초 동안 지속되게 된다.
상기 MIDI 파서(121)는 MIDI 파일이 입력되면, 상기 MIDI 파일을 파싱(parsing)하여 그 안에 포함되는 다수의 노트들과 노트 재생시간을 추출한다. 여기 서, 상기 노트 재생시간은 상기 다수의 노트들 각각의 재생시간을 의미한다.
이때, 상기 다수의 노트들은 MIDI 시퀀서(122)로 입력된다.
상기 MIDI 파서(121)로 입력되는 MIDI 파일에는 적게는 수십 개에서 많게는 128계의 음계에 대한 노트들이 포함될 수 있다.
따라서, 상기 MIDI 파일에 포함된 노트들을 상기 웨이브 테이블(127)에 등록된 음원 샘플들을 이용하여 재생할 수는 없다.
그렇기 때문에, 앞서 설명한 바와 같이, 상기 웨이브 테이블(127)에 등록된 소정의 음원 샘플들을 이용하여 상기 MIDI 파일에 포함된 노트들에 상응하는 음원 샘플들로 주파수 변환하여 재생하여 주고 있다.
이때, 종래에는 각 노트마다 그에 상응하는 음원 샘플들을 실시간으로 만들어주게 됨에 따라 연산량이 폭주하여 CPU에 과부하가 걸려 실질적인 실시간 재생이 이루어지기 힘들었다.
이에 따라, 본 발명에서는 음원 샘플의 노트 오프 후 인벨롭의 기울기 값을 급격히 감소시켜 CPU 사용량을 최소화하고, 이로써 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생이 가능하도록 한다.
한편, 상기 MIDI 파서(121)로부터 각 노트에 대한 재생시간을 입력받은 상기 MIDI 시퀀서(122)는 각 노트 재생시간에 따라 각 노트에 상응하는 음원 샘플들을 순차적으로 각 노트의 재생 시간만큼씩 상기 웨이브 테이블(127)로부터 독출하여 출력하고, 이에 따라 상기 MIDI 파일에 대한 재생이 수행될 수 있다.
그러나 상기 MIDI 파일의 노트를 재생할 때 각 노트마다 가장 이상적인 음이 재생되기 위하여 노트 오프(116) 이후 소정의 릴리즈 시간(release time)(114)이 유지되어야 한다.
이를 위해서는 노트 오프(116) 후 상황에 따라 인벨롭의 기울기를 변화시켜 적용하여야 한다. 그렇지 않으면, 릴리즈 시간(114)이 길어지고 음질의 왜곡이 발생될 수 있다. 이를 위하여 시간 제한부(123)에서 상기 인벨롭의 값이 노트 오프(116) 후 0이 될 때까지의 시간 Td를 제어한다.
또한, 기울기 연산부(124)에서는 상기 Td 값과 인벨롭의 노트 오프(116)시 소리의 크기 Vs 값을 사용하여 인벨롭의 기울기 값을 연산하게 된다.
보다 상세히, 상기에서와 같이 인벨롭의 기울기는 Vs 에 비례하며, Td 에 반비례하게 된다. 이렇게 연산된 인벨롭의 기울기는 인벨롭 적용부(125)를 통하여 음원 샘플에 적용된다.
본 발명을 이용하면, 사람의 귀에 들리는 잡음을 최소화하면서 인벨롭의 값이 0으로 떨어지는 시간을 감소시킬 수 있다. 이로써 CPU에 과부하가 걸리는 것을 방지하고 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생을 가능하게 함과 동시에, 음질의 열화를 방지할 수 있는 장점이 있다.

Claims (8)

  1. MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하는 단계;
    노트 오프 후 음원 샘플들의 인벨롭 기울기를 연산하는 단계; 및
    상기 연산된 인벨롭 기울기를 반영하여 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 단계를 포함하는 것을 특징으로 하는 MIDI 재생 방법.
  2. 제1항에 있어서, 상기 기울기를 연산하는 단계에서 연산되는 기울기 값은 기울기를 떨어뜨리는 시점과 제한하는 시점까지의 시간의 길이 값에 반비례하는 것을 특징으로 하는 MIDI 재생 방법.
  3. 제1항에 있어서, 상기 기울기를 연산하는 단계에서 연산되는 기울기 값은 기울기를 떨어뜨리는 시점의 소리의 크기 값에 비례하는 것을 특징으로 하는 MIDI 재생 방법.
  4. MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하기 위한 수단;
    노트 오프 후 음원 샘플들의 인벨롭 기울기를 연산하는 수단; 및
    상기 연산된 인벨롭 기울기를 반영하여 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 수단을 포함하는 것을 특징으로 하는 MIDI 재생 장치.
  5. 제 4항에 있어서,
    음원 샘플의 노트 오프 후 인벨롭의 값이 0이 될 때까지의 시간을 제한하는 시간 제한부가 더 포함되는 것을 특징으로 하는 MIDI 재생 장치.
  6. 제 4항에 있어서,
    상기 연산된 인벨롭의 기울기를 인벨롭에 적용하는 인벨롭 적용부가 더 포함되는 것을 특징으로 하는 MIDI 재생 장치.
  7. 제 4항에 있어서,
    상기 인벨롭의 기울기를 연산하는 수단은 음원 샘플의 노트 오프 후 인벨롭의 값이 0이 될 때까지의 시간에 반비례하도록 기울기를 연산하는 것을 특징으로 하는 MIDI 재생 장치.
  8. 제 4항에 있어서,
    상기 인벨롭의 기울기를 연산하는 수단은 음원 샘플의 노트 오프 시 음원 샘플의 크기 값에 비례하도록 기울기를 연산하는 것을 특징으로 하는 MIDI 재생 장치.
KR1020040084921A 2004-10-22 2004-10-22 Midi 재생 장치 및 방법 KR100598208B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020040084921A KR100598208B1 (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
KR1020040084921A KR100598208B1 (ko) 2004-10-22 2004-10-22 Midi 재생 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20060035426A KR20060035426A (ko) 2006-04-26
KR100598208B1 true KR100598208B1 (ko) 2006-07-07

Family

ID=37143991

Family Applications (1)

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

Country Status (1)

Country Link
KR (1) KR100598208B1 (ko)

Also Published As

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

Similar Documents

Publication Publication Date Title
EP0690434B1 (en) Digital manipulation of audio samples
EP1688912B1 (en) Voice synthesizer of multi sounds
US7276655B2 (en) Music synthesis system
US7427709B2 (en) Apparatus and method for processing MIDI
US20060086239A1 (en) Apparatus and method for reproducing MIDI file
US20060086238A1 (en) Apparatus and method for reproducing MIDI file
US20050188820A1 (en) Apparatus and method for processing bell sound
KR101005672B1 (ko) Midi 파일 재생의 최적화
US7442868B2 (en) Apparatus and method for processing ringtone
KR100598208B1 (ko) Midi 재생 장치 및 방법
RU2314502C2 (ru) Устройство и способ для обработки звука звонка
KR100689495B1 (ko) Midi 재생 장치 및 방법
KR100598207B1 (ko) Midi 재생 장치 및 방법
CN100533551C (zh) 在嵌入式器件中产生敲打声
KR20210050647A (ko) 악기 디지털 인터페이스 재생 장치 및 방법
KR100655548B1 (ko) 미디 합성 방법
KR100547340B1 (ko) 미디 재생 장치 그 방법
KR100636905B1 (ko) 미디 재생 장치 그 방법
JPH10307581A (ja) 波形データ圧縮装置および方法
JP2019101390A (ja) Fm音源を使った、cdに替わる音楽再生方法

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