KR20210050647A - 악기 디지털 인터페이스 재생 장치 및 방법 - Google Patents

악기 디지털 인터페이스 재생 장치 및 방법 Download PDF

Info

Publication number
KR20210050647A
KR20210050647A KR1020190134975A KR20190134975A KR20210050647A KR 20210050647 A KR20210050647 A KR 20210050647A KR 1020190134975 A KR1020190134975 A KR 1020190134975A KR 20190134975 A KR20190134975 A KR 20190134975A KR 20210050647 A KR20210050647 A KR 20210050647A
Authority
KR
South Korea
Prior art keywords
envelope
midi
note
sound source
playback
Prior art date
Application number
KR1020190134975A
Other languages
English (en)
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 KR1020190134975A priority Critical patent/KR20210050647A/ko
Publication of KR20210050647A publication Critical patent/KR20210050647A/ko

Links

Images

Classifications

    • 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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • 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/031File merging MIDI, i.e. merging or mixing a MIDI-like file or stream with a non-MIDI file or stream, e.g. audio or video
    • 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/541Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent

Abstract

본 발명의 사상에 따른 MIDI 재생 방법은 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하는 단계, 인벨롭이 지수적으로 감소할 때 이를 선형화 하는 단계 및 상기 선형화된 인벨롭 기울기를 반영하여 상기 노트 재생 시간에 따라 상기음원 샘플들을 출력하는 단계를 포함한다.
또한, 본 발명의 사상에 따른 MIDI 재생 장치는 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하기 위한 수단, 인벨롭을 선형화하기 위한 최적의 구간을 설정하는 선형화 구간 설정부, 노트 오프 후 음원 샘플들의 인벨롭 기울기를 연산하는 기울기 연산부, 상기 연산된 인벨롭 기울기를 반영하여 적용하는 인벨롭 적용부 및 상기 노트 재생 시간에 따라 상기음원 샘플들을 출력하는 수단을 포함한다.
본 발명의 사상에 따른 MIDI 재생 장치 및 방법은 음량 감소시에 지수적인 감소로 인한 CPU 연산량 증가에 대비하여 음질의 열하를 최소로 하는 선형화 구조를 사용함으로서 CPU 사용량을 적게 하여, 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생을 가능하게 하는 효과가 있다.

Description

악기 디지털 인터페이스 재생 장치 및 방법 {Instrument digital interface playback device and method}
본 발명은 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)의 네 단계로 나누어 진다.
또한 음원의 고유한 특성을 나타내는 정보인 알티큐레이션(Articulation Data)에는 어택, 디케이, 서스테인, 릴리즈의 네 단계에 대한 시간 정보가 들어있어서 소리를 합성하는 데 이용하게 된다. 이러한 인벨롭을 적용하여 하나의 노트를 재생하며, 상기 다수 개의 노트가 모여 하나의 곡을 완성하게 된다.
본 발명은 MIDI 파일을 소리로 합성하는 과정에서 CPU 자원의 사용량이 높으며 음질을 결정하는데 중요한 역할을 하는 인벨롭 제너레이터를 개선하여 적은 용량의 CPU 상에서 재생 가능한 고음질의 MIDI 재생 장치 및 방법을 제공하는데 그 목적이 있다.
도 1 및 도 2는 종래의 MIDI 파일의 재생시 인벨롭을 나타낸 도면이다.
도 1과 도 2를 참조하면, 인벨롭의 네 단계 어택, 디케이, 서스테인, 릴리즈 단계를 알 수 있다. 상기 도 1에서는 인벨롭이 선형으로 나와 있으나, 인벨롭의 종류와 각 단계의 특성에 따라 선형이거나 곡선(Concave)일 수 있다.
또한 음원의 고유한 특성을 나타내는 정보인 알티큘레이션 데이터(Articulation data)에는 어택, 디케이, 서스테인, 릴리즈의 네 단계에 대한 시간 정보가 들어 있어서 소리를 합성하는데 이용하게 된다.
이러한 인벨롭을 적용하여 하나의 노트를 재생하며, 여러 개의 노트가 모여 하나의 곡을 완성하게 된다.
상기 도 2의 인벨롭을 적용하여 하나의 노트를 재생할 때, 가장 이상적으로 음을 재생하고자 하면 상기 인벨롭의 파형이 시간축에 대하여 지수함수적으로 감소하여 부드러운 파형을 이루어야 한다.
상기 도 1의 경우 인벨롭의 크기를 시간축에 대하여 dB 스케일로 표시하였기 때문에 직선의 형태가 되었으나, 상기 도 2를 참조하면, 디케이 단계와, 릴리즈 단계에서 상기 노트는 지수함수의 형태로 감소함을 알 수 있다.
그러나, 이동 단말기 등 제한된 자원을 가진 재생 장치들에서 그러한 방식으로 재생하는 것은 불가능하므로, 적은량의 CPU 자원을 사용하고도 사용자가 듣기에 충분한 음질을 만들어 내는 새로운 기술의 개발이 필요하다.
도 3은 종래의 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면이다.
도 3에 나타낸 바와 같이, 종래의 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 사용량을 적게 하여, 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생을 가능하게 하는 효과가 있다
도 1 및 도 2는 종래의 MIDI 파일의 재생시 인벨롭을 나타낸 도면.
도 3은 종래의 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면.
도 4는 본 발명에 따른 MIDI 파일의 재생시 인벨롭을 나타낸 도면.
도 5는 본 발명의 바람직한 일 실시예에 따른 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면.
본 발명의 사상에 따른 MIDI 재생 방법은 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하는 단계, 인벨롭이 지수적으로 감소할 때 이를 선형화 하는 단계 및 상기 선형화된 인벨롭 기울기를 반영하여 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 단계를 포함한다.
또한, 본 발명의 사상에 따른 MIDI 재생 장치는 MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하기 위한 수단, 인벨롭을 선형화하기 위한 최적의 구간을 설정하는 선형화 구간 설정부, 노트 오프 후 음원 샘플들의 인벨롭 기울기를 연산하는 기울기 연산부, 상기 연산된 인벨롭 기울기를 반영하여 적용하는 인벨롭 적용부 및 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 수단을 포함한다.
본 발명의 사상에 따른 MIDI 재생 장치 및 방법은 음량 감소시에 지수적인 감소로 인한 CPU 연산량 증가에 대비하여 음질의 열하를 최소로 하는 선형화 구조를 사용함으로서 CPU 사용량을 적게 하여, 낮은 사양의 CPU에서도 고음질의 MIDI 음악 재생을 가능하게 하는 효과가 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세히 설명한다. 본 발명은 이하 제시되는 실시예에 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 자명한 범위 내에서 구성요소의 부가, 한정, 삭제, 추가 등에 의하여 동일 범위의 발명이 제시 될 수 있을 것이다.
도 4는 본 발명에 따른 MIDI 파일의 재생시 인벨롭을 나타낸 도면이다.
도 4를 참조하여 본 발명을 개략적으로 살펴보면, 디케이 시간(113)과 릴리즈 시간(114)은 선형의 각기 다른 기울기를 가지는 인벨롭으로 표시될 수 있다. 즉, 종래 곡선 형태의 인벨롭을 2개의 직선을 이용하여 대략적으로 표현할 수 있다.
보다 상세히, 인벨롭 제너레이터(Envelope Generator)의 디케이 시간(113)과 릴리즈 시간(114)의 크기 감소율을 살펴보면, 상기 인벨롭은 전반부의 급격히 감소하는 부분과 후반부의 완만하게 감소하는 부분으로 구성되어 있다.
따라서 도 4와 같이 선형화 구간 설정부(도 5의 123 참조)에서는 인벨롭의 파형이 급격한 기울기를 가지는 부분에서 완만한 기울기를 가지는 부분으로 전환되는 시점을 인벨롭을 선형화 할 수 있는 최적의 지점으로 설정하고, 이를 기준으로 상기 급격한 기울기를 가지는 부분과 완만한 기울기를 가지는 부분을 각각 선형화 한다.
예를 들어, 디케이 시간(113)과 릴리즈 시간(114)은 dB 스케일로 따졌을 때 0dB에서 96dB 까지 감소하는데 걸리는 시간을 나타낸다. -10dB 는 전체크기를 1로 봤을 때, 0.1에 해당한다. 또, 0dB 에서 10dB 까지 감소 하는데 걸리는 시간은 10/96 =0.104 즉, 전체 디케이 시간(113)의 약 1/10 에 해당한다. 따라서 1에서 0.1의 크기로 감소하는데 걸린 시간은 약 0.1*디케이 시간(113)이 된다. 그렇다면 나머지 0.1의 크기가 0으로 되는데 걸리는 시간은 대부분의 시간인 0.9*디케이 시간(113)이 소요된다.
기울기 연산부(도 5의 124 참조)에서는 선형화 구간 설정부(123)에서 설정한 급격한 기울기 구간과 완만한 기울기 구간별로 각각의 기울기를 계산한다.
급격한 기울기(Steep Slope) 구간을 Ts라 하고, 완만한 기울기 구간(Gentle Slope)을 Tg 라며, 각 구간에서의 음량(Volume)의 변화량을 각각 Vs, Vg 라 하면 상기 인벨롭 기울기의 수식은 다음과 같이 표현될 수 있다.
급격한 기울기 : Ys = Vs / Ts
완만한 기울기 : Yg = Vg / Tg
상기 인벨롭 적용부(125)에서는 상기 기울기 연산부(124)에서 계산된 각각의 인벨롭 기울기를 MIDI 재생장치 내에서 인벨롭을 생성할 때 구간별로 달리 적용하는 역할을 수행한다.
즉, 본 발명은 도 4에서와 같이 디케이 구간과 릴리즈 구간에서 인벨롭 기울기가 떨어지는 정도를 달리하여 급격한 기울기 구간과 완만한 기울기 구간으로 인벨롭 제너레이터를 적용하도록 고안되었다.
상기 선형화된 인벨롭은 디케이 구간과 릴리즈 구간에서 2개의 기울기 값을 적용하므로써, 선형화되기 전의 인벨롭과 흡사한 형태를 구현할 수 있다.
물론, 상기 두 구간에서 2이상의 선형 기울기를 구현하여 선형화되기 전의 인벨롭과 보다 흡사한 인벨롭을 구현할 수 있을 것이다. 이 경우 음질의 저하가 거의 없고, CPU 부하량의 절감을 이룰수는 MIDI 재생 장치를 제안할 수 있다.
도 5는 본 발명의 바람직한 일 실시예에 따른 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면이다.
도 5를 참조하면, 본 발명은 재생하고자 하는 노트의 디케이 구간과 릴리즈 구간을 선형화 하기 위한 선형화 구간 설정부(123)와 상기 구간동안 어느 정도의 비율로 음량을 감소시킬 것인가를 결정하는 기울기 연산부(124)와 앞서 계산된 값을 이용하여 실제 인벨롭 제너레이터에 적용시키는 인벨롭 적용부(125), 이렇게 크게 세부분으로 구성된다.
보다 상세히, 본 발명의 MIDI 재생 장치는 MIDI 파일에서 다수의 노트들 및 노트 재생시간을 추출하는 MIDI 파서(121)와, 상기 MIDI 파서 추출한 다수 노트의 재생시간에 따라 음원 샘플들을 출력하는 MIDI 시퀀서(122)와, 디케이 단계와 릴리즈 단계에서 인벨롭의 기울기를 선형화 하는 선형화 구간 설정부(123)와, 상기 선형화 구간 설정부(123)에서 선형화 된 인벨롭의 기울기를 연산하는 기울기 연산부(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 파일의 노트를 재생할 때 각 노트마다 가장 이상적인 음이 재생되기 위하여 디케이 구간과 릴리즈 구간에서 지수함수의 파형을 가지는 인벨롭이 유지되어야 한다.
이를 위해서는 인벨롭 제너레이터에서 상황에 따라 인벨롭의 기울기를 변화시켜 적용하여야 한다. 그렇지 않으면, 디케이 시간(113)과 릴리즈 시간(114)이 길어지고 음질의 왜곡이 발생될 수 있다.
하지만 본 발명에 따른 MIDI 재생 장치는 선형화 구간 설정부(123)를 통하여 상기 인벨롭의 값을 근사화하여 음질의 왜곡 및 CPU 자원의 사용량을 대폭 줄일 수 있다.
상기 기울기 연산부(124)에서는 상기 선형화 구간 설정부(123)를 통하여 구현되는 인벨롭의 기울기 값을 연산하게 된다.
상기 선형화 구간 설정부(123)에서는 디케이 구간과 릴리즈 구간을 구분하여 각각의 구간에서 최적의 인벨롭 기울기를 구하기 위한 기울기 변화 지점을 설정하게 된다.
보다 상세히, 상기에서와 같이 인벨롭의 기울기는 급격한 기울기(Ys = Vs / Ts)와 완만한 기울기(Yg = Vg / Tg)로 구성된다. 상기에서와 같이 연산된 인벨롭의 기울기는 인벨롭 적용부(125)를 통하여 음원 샘플에 적용된다.
상기 기울기 연산부에서 디케이 구간과 릴리즈 구간의 인벨롭 기울기를 각각 따로 연산하여 상기 인벨롭을 선형화 하게 된다.
21,121:미디 파서
22,122:미디 시퀀스
23,126:주파수 변환부
24,127:웨이브 테이블
123:선형화 구간 설정부
124:기울기 연산부
125:인벨롭 적용부

Claims (2)

  1. MIDI 파일에서 다수의 노트들 및 노트 재생 시간을 추출하는 단계 인벨롭이 지수적으로 감소할 때 이를 선형화 하는 단계 및 상기 선형화된 인벨롭 기울기를 반영하여 상기 노트 재생 시간에 따라 상기 음원 샘플들을 출력하는 단계를 포함하는 것을 특징으로 하는 MIDI 재생 방법.
  2. 제 1항에 있어서, 상기 선형화된 인벨롭 기울기는 급격한 기울기 구간과 완만한 기울기 구간으로 구성되는 것을 특징으로 하는 MIDI 재생 방법.

KR1020190134975A 2019-10-29 2019-10-29 악기 디지털 인터페이스 재생 장치 및 방법 KR20210050647A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190134975A KR20210050647A (ko) 2019-10-29 2019-10-29 악기 디지털 인터페이스 재생 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190134975A KR20210050647A (ko) 2019-10-29 2019-10-29 악기 디지털 인터페이스 재생 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20210050647A true KR20210050647A (ko) 2021-05-10

Family

ID=75917138

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190134975A KR20210050647A (ko) 2019-10-29 2019-10-29 악기 디지털 인터페이스 재생 장치 및 방법

Country Status (1)

Country Link
KR (1) KR20210050647A (ko)

Similar Documents

Publication Publication Date Title
KR0149251B1 (ko) 악기음 발생 방법 및 시스템과 악기음 발생 제어 시스템
EP1688912B1 (en) Voice synthesizer of multi sounds
US7276655B2 (en) Music synthesis system
US7427709B2 (en) Apparatus and method for processing MIDI
JP3654079B2 (ja) 波形生成方法及び装置
JP3654083B2 (ja) 波形生成方法及び装置
US7557288B2 (en) Tone synthesis apparatus and method
US20060086239A1 (en) Apparatus and method for reproducing MIDI file
JP2001100758A (ja) 波形生成方法及び装置
KR20210050647A (ko) 악기 디지털 인터페이스 재생 장치 및 방법
US20060086238A1 (en) Apparatus and method for reproducing MIDI file
KR100689495B1 (ko) Midi 재생 장치 및 방법
CN100533551C (zh) 在嵌入式器件中产生敲打声
KR100655548B1 (ko) 미디 합성 방법
KR100598208B1 (ko) Midi 재생 장치 및 방법
KR100598207B1 (ko) Midi 재생 장치 및 방법
KR100547340B1 (ko) 미디 재생 장치 그 방법
KR20050088566A (ko) 미디 재생 장치 그 방법
JPH10307581A (ja) 波形データ圧縮装置および方法
JP2019101390A (ja) Fm音源を使った、cdに替わる音楽再生方法
JP3674527B2 (ja) 波形生成方法及び装置
JP2584185C (ko)
JP2005092234A (ja) 波形生成方法及び装置
JPH11175071A (ja) 楽音波形データ作成装置、楽音波形データ作成方法及び記録媒体並びに楽音信号生成装置

Legal Events

Date Code Title Description
E601 Decision to refuse application