KR100655548B1 - 미디 합성 방법 - Google Patents

미디 합성 방법 Download PDF

Info

Publication number
KR100655548B1
KR100655548B1 KR1020040106615A KR20040106615A KR100655548B1 KR 100655548 B1 KR100655548 B1 KR 100655548B1 KR 1020040106615 A KR1020040106615 A KR 1020040106615A KR 20040106615 A KR20040106615 A KR 20040106615A KR 100655548 B1 KR100655548 B1 KR 100655548B1
Authority
KR
South Korea
Prior art keywords
loop section
wave table
sample
sound source
finding
Prior art date
Application number
KR1020040106615A
Other languages
English (en)
Other versions
KR20060067721A (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 KR1020040106615A priority Critical patent/KR100655548B1/ko
Priority to US11/303,142 priority patent/US7462773B2/en
Priority to PCT/KR2005/004335 priority patent/WO2006065092A1/en
Publication of KR20060067721A publication Critical patent/KR20060067721A/ko
Application granted granted Critical
Publication of KR100655548B1 publication Critical patent/KR100655548B1/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
    • G10H7/00Instruments in which the tones are synthesised from a data store, e.g. computer organs
    • G10H7/02Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories
    • G10H7/04Instruments in which the tones are synthesised from a data store, e.g. computer organs in which amplitudes at successive sample points of a tone waveform are stored in one or more memories in which amplitudes are read at varying rates, e.g. according to pitch
    • 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/06Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour
    • G10H1/08Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour by combining tones
    • 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
    • G10H2210/00Aspects or methods of musical processing having intrinsic musical character, i.e. involving musical theory or musical parameters or relying on musical knowledge, as applied in electrophonic musical tools or instruments
    • G10H2210/031Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal
    • G10H2210/066Musical analysis, i.e. isolation, extraction or identification of musical elements or musical parameters from a raw acoustic signal or from an encoded audio signal for pitch analysis as part of wider processing for musical purposes, e.g. transcription, musical performance evaluation; Pitch recognition, e.g. in polyphonic sounds; Estimation or use of missing fundamental
    • 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/121Musical libraries, i.e. musical databases indexed by musical parameters, wavetables, indexing schemes using musical parameters, musical rule bases or knowledge bases, e.g. for automatic composing methods
    • G10H2240/155Library update, i.e. making or modifying a musical database using musical parameters as indices
    • 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
    • G10H2250/615Waveform editing, i.e. setting or modifying parameters for waveform synthesis.
    • 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
    • G10H2250/641Waveform sampler, i.e. music samplers; Sampled music loop processing, wherein a loop is a sample of a performance that has been edited to repeat seamlessly without clicks or artifacts

Abstract

본 발명의 사상에 따른 미디 합성 방법은 웨이브 테이블의 저장 공간을 줄이기 위하여 웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계, 상기 새롭게 찾은 루프 구간에 대한 음정을 정확하게 찾는 단계 및 상기 새로운 루프 구간과 상기 루프 구간의 정확한 음정을 통하여 웨이브 테이블을 재구성하는 단계가 수행된다.
본 발명은 루프 구간을 단축하고 상기 루프 구간의 위치를 앞으로 당김으로써 종래의 웨이브 테이블 크기를 줄이고, 정확한 음정의 검색을 통해 음질의 왜곡이 없는 소리를 구현하는 효과가 있다.
미디

Description

미디 합성 방법{Midi synthesis method}
도 1은 본 발명의 사상에 따른 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면.
도 2는 본 발명의 사상에 따라, 종래의 음원에서 새로운 루프 구간을 검색하고, 검색된 루프 구간에 대한 음정을 정확하게 찾아내는 과정을 표현한 플로우 차트.
도 3은 본 발명의 사상에 따른 새로운 루프 구간을 검색하는 과정을 표현한 플로우 차트.
도 4는 본 발명의 사상에 따른 새로운 루프 구간에 대한 정확한 음정을 찾아내는 과정을 표현한 플로우 차트.
<도면의 주요 부분에 대한 부호의 설명>
21:미디 파서 22:미디 시퀀서
23:주파수 변환부 24:웨이브 테이블
본 발명은 웨이브 테이블 기반의 미디 합성에 사용되는 음원 샘플의 크기를 줄이기 위해서 새로운 샘플의 루프 구간을 검색하는 방법에 관한 것으로써, 저장공간이 부족한 환경에서 미디 합성 시에 사용되는 음원의 루프 구간을 재설정하여 전체 웨이브 테이블의 크기를 줄이는 미디 합성 방법에 관한 것이다.
미디(MIDI:Musical Instrument Digital Interface)는 음악을 합성해 낼 때 사용하는, 음악적인 정보를 묘사하는 표준이다. 미디에는 소리 내려고 하는 악기의 종류, 음 높이, 음 길이 등과 같은 기본적인 음악적 정보 이외에도 그 악기의 소리가 어떻게 표현되어야 하는지에 대한 정보가 함께 포함되어 있다. 이렇게 미디로 표현되어 있는 음악적인 정보를 바탕으로 실제로 소리를 합성해 내는 방법에는 크게 FM 방식과 웨이브 테이블 방식이 있다. FM 방식은 특정 악기가 나타내어야 하는 소리에 대한 주파수 정보를 악기마다 추출하여 소리를 합성할 때에 그 주파수에 대한 신호를 생성해 내는 방식이다. 웨이브 테이블 방식은 악기별로 실제로 연주된 음의 샘플을 미리 얻어내어 저장하고, 미디 파일에 기술된 음악적 정보에 따라 저장된 악기 샘플을 처리하여 소리를 합성하는 방식이다.
웨이브 테이블 방식으로 미디를 합성할 때에는 전술한 것과 같이 악기별로 실제로 연주된 음의 샘플을 이용하게 되는데, 이 샘플을 이용하여 미디 파일에 기술되어 있는 음악적 정보인 음 높이, 음 길이, 음 표현 등의 정보를 기반으로 음 높이를 변조하고, 음 길이를 변경하며, 음의 표현을 적용하여 소리를 생성한다. 또한 웨이브 테이블에 악기 소리의 샘플을 획득하여 저장할 때에 부가적으로 샘플 소리 크기의 시간적인 변화, 주파수의 미세 변화 등의 발음 정보(articulation data), 루프 구간의 존재와 루프 구간의 시작점과 상기 루프 구간의 길이에 대한 정보를 저장하는데, 소리의 합성 시에 이와 같은 정보도 함께 반영하여 소리를 생성한다.
알려진 바와 같이 웨이브 테이블 기반의 MIDI 합성에서는 엔벨로프(Envelope) 파형의 형태로 음원 샘플이 재생되는데, MIDI 파일의 재생시 엔벨로프(Envelope) 파형(시간_Time 대 크기_Amplitude의 관계)을 살펴보면 노트 온(Note On) 이후에 딜레이(Delay) 부분이 지속되고, 이후 어택(Attack) 부분과 루프(Loop) 부분으로 구성되며, 루프(Loop)는 디케이(Decay)와 서스테인(Sustain)으로 구성된다. 음원의 고유한 특성을 나타내는 정보인 발음 정보(Articulation data)에는 어택(Attack) 부분과, 루프(Loop) 부분에 대한 시간 정보가 포함되어 있어서 소리를 합성하는데 이용하게 된다. 이러한 엔벨로프(Envelope)를 적용하여 하나의 노트(Note)를 재생하며, 여러 개의 노트(Note)가 모여서 하나의 곡을 완성하게 된다. 하나의 노트(Note)를 반복적으로 재생할 때, 가장 이상적으로 음을 재생하고자 하면 노트 오프(Note Off) 이후에 엔벨로프(Envelope)가 감소하면서 엔벨로프(Envelope) 값이 끝점에 도달하고 상기 끝점에서 엔벨로프(Envelope)의 시작점이 부드럽게 이어져야 한다.
웨이브 테이블 기반의 미디 합성에 사용하는 웨이브 테이블은 여러 합성 장치간의 호환성을 유지하기 위해 특정한 방식을 가지게 되는데, 널리 알려진 방식은 DownLoadable Sound (DLS) 방식이다. DLS 방식의 웨이브 테이블 저장 포맷은 악기의 샘플 정보와 발음 정보(articulation data)를 어떠한 형태로 저장할 지 규정한다. 예를 들어, 악기의 샘플은 오디오 데이터 저장 포맷인 WAVE 포맷으로 저장하도록 규정하고 있다.
웨이브 테이블 방식으로 미디를 합성하는 과정은 전술한 바와 같이 악기별로 실제로 연주된 음의 샘플과 이에 대한 미디 파일이나 웨이브 테이블의 부가정보를 통해서 그 소리를 재생하게 된다. 여기서 실제 연주된 음인 샘플을 모두 저장하게 되면 웨이브 테이블의 크기는 엄청나게 커질 것이다. 그러나 웨이브 테이블에서는 연주된 음이 어느 정도 시간 이후에 안정되어 반복적인 형태를 보이는 특징을 이용해 음원 저장 시 반복되는 구간까지의 신호에 대해서만 저장하게 되는데, 반복되는 부분을 루프 구간이라고 하며, 부가적으로 그 시작 위치와 길이도 저장하게 된다. 실제 미디 파일 연주 시에는 이 루프 구간을 반복적으로 재생하게 된다. 악기의 특징에 따라 루프를 적용한 경우도 있고 원 샷 (one-shot)으로 끝나는 경우도 존재한다. 이렇게 루프 구간을 적용해 웨이브 테이블의 크기를 줄이게 된다.
웨이브 테이블 방식으로 미디를 합성하는 과정은 전술한 바와 같이 악기별로 실제로 연주된 음의 샘플과 미디 파일이나 웨이브 테이블의 부가정보를 통해서 소 리를 생성한다. 미디 파일의 각 음에 대응하는 음을 웨이브 테이블에서 모두 가지고 있다면 좋겠지만, 현실적으로 그 크기가 커지기 때문에 일반적으로 각 악기별로 몇 개의 영역으로 나누어 그 영역에 해당하는 음을 미디 파일의 노트에 맞게 오실레이션 시켜서 사용하게 된다.
그러나, 상기 루프 구간을 사용하더라도 상기 웨이브 테이블의 저장 공간은 부족하다. 따라서 상기 루프 구간의 재설정을 통하여 저장 공간을 줄일 필요성이 존재한다.
본 발명은 루프 구간을 단축하고 상기 루프 구간의 위치를 앞으로 당김으로써 종래의 웨이브 테이블 크기를 줄이고, 정확한 음정의 검색을 통해 음질의 왜곡이 없는 소리를 구현하는데 그 목적이 있다.
본 발명의 사상에 따른 미디 합성 방법은 웨이브 테이블의 저장 공간을 줄이기 위하여 웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계, 상기 새롭게 찾은 루프 구간에 대한 음정을 정확하게 찾는 단계 및 상기 새로운 루프 구간과 상기 루프 구간의 정확한 음정을 통하여 웨이브 테이블을 재구성하는 단계가 수행된다.
본 발명은 루프 구간을 단축하고 상기 루프 구간의 위치를 앞으로 당김으로써 종래의 웨이브 테이블 크기를 줄이고, 정확한 음정의 검색을 통해 음질의 왜곡이 없는 소리를 구현하는 효과가 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 실시 예를 상세히 설명한다. 본 발명은 이하 제시되는 실시예에 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진자에게 자명한 범위 내에서 구성요소의 부가, 한정, 삭제, 추가 등에 의하여 동일 범위의 발명이 제시 될 수 있을 것이다.
도 1은 본 발명의 사상에 따른 MIDI 재생 장치의 구성을 개략적으로 나타낸 도면이다.
상기 도 1에 도시된 바와 같이, 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의 음원 샘플로 주파수 변환되어 출력될 수 있다.
이와 같은 과정은 각 노트에 대한 노트 재생시간이 입력될 때마다 반복적으로 진행되게 된다.
도 2는 본 발명의 사상에 따라, 종래의 음원에서 새로운 루프 구간을 검색하고, 검색된 루프 구간에 대한 음정을 정확하게 찾아내는 과정을 표현한 플로우 차트이다.
상기 도 2를 참조하면, 종래의 웨이브 테이블로 부터 새로운 루프 구간을 검색하고(S100), 상기 새로운 루프 구간에 대한 정확한 음정을 찾아내는 단계가 수행된다(S110). 상기에서 검색된 새로운 루프 구간과 상기 구간에 적합한 음정을 기초로 하여 종래 웨이브 테이블을 변경한다(S120). 최종적으로 새로운 루프 구간 및 음정을 가지는 웨이브 테이블이 완성된다(S130).
상기의 과정을 통하여 웨이브 테이블 방식의 미디 합성에서 큰 저장 공간을 필요로 하는 웨이브 테이블의 저장 공간을 줄일 수 있다.
보다 상세히, 웨이브 테이블에서 악기 샘플에 포함되어 있는 루프 구간을 종래의 위치보다 앞당김으로써 저장 공간의 사용량을 줄이고, 정확한 음정을 찾아내 종래의 웨이브 테이블과 비교하여 음질의 왜곡을 줄일 수 있다.
도 3은 본 발명의 사상에 따른 새로운 루프 구간을 검색하는 과정을 표현한 플로우 차트이다.
상기 도 3은 상기 도 2의 S100 단계를 보다 상세히 설명한 도면이다. 상기 도 3을 참조하면, 종래의 웨이브 테이블을 검색하여(S200), 각각의 웨이브 폼(wave form)에 대하여 인덱스를 부여한다. 상기 인덱스를 k라고 명명하기로 하며 이하 기 술한다.
한편, 종래 웨이브 테이블에 포함되어 있는 음원 중에서 상기 음원 길이의 반보다 큰 루프 구간을 갖는 음원은 대부분 특이한 웨이브 형태를 나타내기 때문에 새로운 루프 구간을 찾을 경우 음질의 왜곡이 심하게 나타난다. 때문에 상기 음원의 길이와 루프의 길이를 비교하여 새로운 루프 구간을 찾을 것인지 결정하게 된다(S210).
한편, 웨이브 테이블의 샘플길이가 종래 루프 길이의 두배보다 작은 경우에는 S220 단계로 진행된다.
상기 S220 단계에서는 상기 인덱스 k를 웨이브 폼 넘버의 크기와 비교하여 새로운 루프를 찾는 과정을 반복 할 것인지 결정하게 된다. 상기 웨이브 폼 넘버는 종래 웨이브 테이블에 저장되어 있는 음원들 중 루프를 가지고 있는 음원의 갯수를 의미하며, 상기 웨이브 폼 넘버를 초과하는 음원은 루프를 형성할 수 없기 때문에 새로운 루프를 찾을 필요성이 없다. 즉, 상기 인덱스 k값이 웨이브 폼 넘버보다 큰 경우에는 상기 새로운 루프 검색 과정은 종료된다.
반면, 상기 인덱스 k값이 상기 웨이브 폼 넘버 보다 작은 경우에는 루프를 형성할 수 있는 또다른 음원이 종래 웨이브 테이블에 남아 있는 것이므로 상기 또다른 음원을 상기 웨이브 테이블로 부터 검색하게 된다.
한편, 종래의 웨이브 테이블에 포함되어 있는 음원은 기본 주기 또는 상기 주기의 배수가 되는 구간에서 루프를 형성하게 되는데, 상기 음원의 기본 주기는
Figure 112004059231435-pat00001
로 표현된다. 여기서
Figure 112004059231435-pat00002
는 샘플링 레이트(sampling rate),
Figure 112004059231435-pat00003
는 루트 키(root key) 값에 해당하는 샘플의 기본 주파수로 상기 값은 웨이브 테이블의 부가 정보를 통해 알 수 있다.
상기 기본 주기를 통하여 기본 주파수 값을 알 수 있으며, 상기 기본 주파수 ω=2π/T로 표현된다(S230).
한편, S240 단계는 상기 음원 샘플의 값 중에 최대값, 즉, 음원 샘플의 크기(Amplitude)의 최대값(Max_value)을 찾아내는 과정을 설명한다. 음원의 특성상 상기 음원의 처음 시작 부분에서 루프 구간을 찾게 되면 음원이 안정되기 전의 값이므로 불안정해 지는데, 상기 문제점은 음원 샘플의 최대값을 찾아 최대값 근처 이후를 루프의 시작점으로 선택함으로써 해결 할 수 있다. 즉, 상기 음원의 최대값 부분을 음원이 안정되기 시작하는 부분으로 파악하고 루프의 시작점 검색시 이를 고려하는 것이다.
이어서 S250 단계는 루프 구간의 시작점과 끝점을 선택하는 과정을 나타낸다. 일반적으로 상기 루프 구간의 특징이 '0'을 교차하는 부근에서 시작점과 끝점이 결정되는 점을 고려해 '0' 교차점을 상기 S230 단계에서 구한 기본 주기 및 그 배수 되는 곳에서 찾는 과정을 나타낸다.
S260 단계는 앞서 찾은 각각의 '0' 교차점들에서 각 교차점의 앞 뒤의 샘플들에 대한 편차를 구하고 편차가 작은 값부터 정렬하는 과정을 나타낸다. 상기 편차는
Figure 112004059231435-pat00004
으로 표현되며, 여기서
Figure 112004059231435-pat00005
,
Figure 112004059231435-pat00006
는 각각 '0' 교차점에서
Figure 112004059231435-pat00007
만큼 떨어져 있는 곳의 샘플 값을 의미한다. 이렇게 샘플 편차를 구해서 그 차이가 가장 작은 것을 최적의 루프 구간으로 결정하게 된다.
S270은 상기에서 구한 기본 주기와 최대값을 사용하여 최적의 루프 구간을 검색하는 조건을 나타낸다. 상기 S270 단계에서 요구하는 조건은 다음 2가지 이다.
first_index((Max_value)*Max_Factor)
loop_start_index <(sam_len*EndFactor)
상기 Max_value는 웨이브 테이블 각 샘플의 최대값을 의미하고, Max_Factor는 최대값과 비교하여 어느 정도의 크기를 가지는 샘플 부분을 선택할 것이지를 나타내는 비율을 뜻한다. 또한, first_index(X)는 웨이브 테이블 샘플의 인덱스 중에서 X가 최초로 나타나는 곳의 인덱스를 의미한다. 즉 첫번째 조건은 Max_value 와 Max_Factor를 곱하고 상기 값 이상을 가지는 샘플 부분을 상기 루프의 시작점으로 선택하는 것을 의미한다.
한편, 두번째 조건에서 loop_start_index는 찾고자 하는 루프의 시작 위치를 의미하며, sam_len는 웨이브 테이블 각 샘플의 길이를 뜻한다. 또한, EndFactor는 웨이브 테이블에 저장된 각 음원 샘플 길이의 어느 정도 비율을 루프의 적정 한계 로 선택할 것인지를 나타낸다. 즉 상기 두번째 조건은 음원 샘플의 길이 중 사용자가 설정한 소정 비율 내에서 루프의 시작점을 선택하고자 하는 것이다.
상기 두조건을 동시에 만족하지 못하는 경우에는 S280 단계의 조건 2를 만족하는지 판단하게 된다. 상기 조건 2는 다음과 같이 표현된다.
first_index((Max_value)*Max_Factor)
즉, 상기 S270 단계의 두번째 조건을 제외한 첫번째 조건만을 통하여 새로운 루프의 시작점을 검색하게 된다. 상기 S270 단계와 S280 단계의 조건을 모두 만족하지 않는 경우에는 종래의 루프 구간을 그대로 사용하게 된다. 상기 새로운 루프를 얻은 후에는 종래 웨이브 테이블에 저장된 다른 음원을 검색하게 된다.
도 4는 본 발명의 사상에 따른 새로운 루프 구간에 대한 정확한 음정을 찾아내는 과정을 표현한 플로우 차트이다.
상기 도 4는 상기 도 2의 S110 단계를 보다 상세히 설명한 도면이다. 종래의 웨이브 테이블에서 새로운 루프 구간을 찾게 되면 루프 구간의 위치가 이동하게 됨으로 기존의 음원과 비교해 조금씩 음정의 차이가 발생 할 수 있다. 따라서 새로운 루프 구간의 샘플에 대해서 더 정확한 기본 주파수를 얻기 위해서는 샘플의 다수회 확장과 윈도우를 적용하여 FFT를 하여야 한다.
상기 도 4를 참조하면, 종래 웨이브 테이블로 부터 상기 도 3의 과정을 통해 찾은 새로운 루프 구간을 검색한다(S300). 상기 새로운 루프 구간을 가진 음원의 정확한 주파수 특성을 알기 위해서 상기 루프 구간을 여러번 반복한다(S310). 상기 S310 단계를 통하여 원 음원에 비하여 많은 샘플을 얻을 수 있다. 상기의 보다 많 은 샘플을 통하여 보다 정밀한 해상도를 얻을 수 있다.
보다 상세히, 주파수 영역으로 신호를 변환했을 때 인접한 주파수 성분간의 구분을 위해서 0.01Hz 이상까지 고려하게 되는데, 음원의 기본 주파수로 인하여 루프 구간의 길이가 적게는 5~6개 정도에 불과한 경우 너무 적은 샘플의 수로 인해 FFT를 하더라도 제대로 기본 주파수를 결정하기 어렵기 때문에 상기 샘플의 확장이 필요하다.
다음으로 보다 정확한 주파수를 찾기 위하여 윈도우를 적용한다(S320). 음원의 루프 구간을 확장한 후 상기 음원을 단순히 FFT하게 되면 샘플의 불연속으로 인해서 주파수 특성을 제대로 나타낼 수 없기 때문에 윈도우를 적용하는 것이다.
상기 윈도우를 적용한 후 FFT를 통하여 시간 영역의 신호를 주파수 영역으로 변환하고(S330), 이어서 기본 주파수를 검색한다(S340). 그리고, 최종적으로 정확한 음정을 찾는다(S350). 이렇게 각각의 음원에 대해서 찾은 새로운 루프 구간과 정확한 음정을 이용해 웨이브 테이블의 정보를 변경하여 새로운 웨이브 테이블을 얻을 수 있다.
그러나, 새로운 루프 구간에 대한 정확한 음정 검색 작업을 통해 루프 구간의 음정에 대한 값을 가지고 있다고 이 값을 바로 적용할 수는 없다. 왜냐하면, 웨이브 테이블 방식의 미디 합성에서는 미디 파일의 음에 대한 정보를 가지고 웨이브 테이블의 음원을 이용해 연주를 하게 되는데, 여기서 미디 파일의 해당 음을 웨이브 테이블 음원의 루트 키 및 파인 튠 값을 비교해 그 차이 만큼을 오실레이션을 통해 연주 하게 되기 때문이다.
예를 들어, 웨이브 테이블 음원의 실제 음정이 C5+10이라면 웨이브 테이블 음원 정보의 루트 키 값으로 C5, 파인 튠 값으로 -10을 설정하게 되면, 미디 파일에서 C5노트를 연주 할 때 웨이브 테이블에 저장된 C5+10음을 '10'만큼의 차이를 두고 오실레이션을 하게되므로 정확한 C5를 나타낼 수 있게 된다. 여기서 +10, -10값의 단위는 cent를 의미하고,
Figure 112004059231435-pat00008
로 나타낼 수 있으며,
Figure 112004059231435-pat00009
,
Figure 112004059231435-pat00010
는 주파수를 의미한다. 즉, 주파수가 2배 차이인 1옥타브 노트 차이는 1200cents에 해당된다. 이렇게 파인 튠 작업을 통해서 실제 미디 파일의 노트를 소리로 생성할 때 제대로 나타낼 수 있다.
종래의 웨이브 테이블에 대해서 새롭게 찾은 루프 구간과 그리고, 이 새로운 루프 구간에 대한 정확한 음정 및 파인 튠에 대한 웨이브 테이블 샘플 정보를 수정한다. 또한 새로운 루프구간이 기존 웨이브 테이블의 루프 구간에 비해 앞으로 당겨짐에 따라 불필요하게 된 음원 샘플들을 없앰으로써 최종적으로 웨이브 테이블의 크기를 줄일 수 있다.
본 발명은 루프 구간을 단축하고 상기 루프 구간의 위치를 앞으로 당김으로써 종래의 웨이브 테이블 크기를 줄이고, 정확한 음정의 검색을 통해 음질의 왜곡이 없는 소리를 구현하는 효과가 있다.

Claims (8)

  1. 웨이브 테이블의 음원 샘플에 대하여 음원 샘플 길이와 루프 구간의 길이를 기준으로 루프 구간의 길이 축소를 위한 새로운 루프 구간(재구성할 웨이브 테이블에 사용할 루프 구간)을 검색하는 단계;
    상기 검색된 루프 구간의 음원 샘플에 대해서 그 기본 주파수를 찾아 해당 음정을 검색하는 단계;
    웨이브 테이블 샘플 정보를 상기 검색된 루프구간 및 음정으로 수정하여 웨이브 테이블을 재구성하는 단계;
    를 포함하는 것을 특징으로 하는 미디 합성방법.
  2. 제 1항에 있어서,
    상기 웨이브 테이블에 저장된 음원 중 루프의 길이가 샘플 길이의 절반 이하인 경우 상기 웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계가 수행되는 것을 특징으로 하는 미디 합성 방법.
  3. 제 1항에 있어서,
    웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계에 있어서, 상기 루프 구간을 음원의 기본 주기 또는 상기 주기의 배수가 되는 지점에 서 찾는 것을 특징으로 하는 미디 합성 방법.
  4. 제 1항에 있어서,
    웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계에 있어서, 상기 루프의 시작점을 음원 샘플의 최대값[Max_value: 음원 샘플 크기(Amplitude)의 최대값]에 소정 비율(음원 샘플의 최대값과 비교하여 어느 정도의 크기를 가지는 샘플 부분을 선택할 것인지를 나타내는 비율: Max_Factor)을 곱한 값 이후로 선택하는 것을 특징으로 하는 미디 합성 방법.
  5. 제 1항에 있어서,
    웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계에 있어서, 음원 샘플의 값이 '0'에 교차하는 지점을 상기 루프 구간의 시작점과 끝점으로 선택하는 것을 특징으로 하는 미디 합성 방법.
  6. 제 1항에 있어서,
    웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계에 있어서, 음원의 기본 주기 및 상기 주기의 배수에 해당하는 '0' 교차점의 앞뒤간 샘플 값의 편차를 구하고, 상기 샘플 편차가 가장 작은 것을 상기 루프 구간으로 선택하는 것을 특징으로 하는 미디 합성 방법.
  7. 제 1항에 있어서,
    상기 새롭게 찾은 루프 구간에 대한 음정을 찾는 단계는 상기 새로운 루프 구간에 대해서 루프 구간을 다수회 반복하고 윈도우를 적용한 후 주파수 영역으로의 변환을 통해서 기본 주파수를 찾는 것을 특징으로 하는 미디 합성 방법.
  8. 제 1항에 있어서,
    상기 새롭게 찾은 루프 구간에 대한 음정을 찾는 단계를 통하여 얻은 기본 주파수에 해당하는 음정을 노트 값에 해당하는 음정에 맞도록 파인 튠하는 것을 특징으로 하는 미디 합성 방법.
KR1020040106615A 2004-12-15 2004-12-15 미디 합성 방법 KR100655548B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020040106615A KR100655548B1 (ko) 2004-12-15 2004-12-15 미디 합성 방법
US11/303,142 US7462773B2 (en) 2004-12-15 2005-12-15 Method of synthesizing sound
PCT/KR2005/004335 WO2006065092A1 (en) 2004-12-15 2005-12-15 Method of synthesizing midi

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040106615A KR100655548B1 (ko) 2004-12-15 2004-12-15 미디 합성 방법

Publications (2)

Publication Number Publication Date
KR20060067721A KR20060067721A (ko) 2006-06-20
KR100655548B1 true KR100655548B1 (ko) 2006-12-08

Family

ID=36582298

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040106615A KR100655548B1 (ko) 2004-12-15 2004-12-15 미디 합성 방법

Country Status (3)

Country Link
US (1) US7462773B2 (ko)
KR (1) KR100655548B1 (ko)
WO (1) WO2006065092A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7663046B2 (en) * 2007-03-22 2010-02-16 Qualcomm Incorporated Pipeline techniques for processing musical instrument digital interface (MIDI) files
US8697978B2 (en) * 2008-01-24 2014-04-15 Qualcomm Incorporated Systems and methods for providing multi-region instrument support in an audio player
US8030568B2 (en) * 2008-01-24 2011-10-04 Qualcomm Incorporated Systems and methods for improving the similarity of the output volume between audio players
US8759657B2 (en) * 2008-01-24 2014-06-24 Qualcomm Incorporated Systems and methods for providing variable root note support in an audio player
US20090260505A1 (en) * 2008-04-16 2009-10-22 Samsung Electronics Co., Ltd. Method for the efficient implemtionation of a wavetable oscillator

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5315057A (en) * 1991-11-25 1994-05-24 Lucasarts Entertainment Company Method and apparatus for dynamically composing music and sound effects using a computer entertainment system
US5668338A (en) * 1994-11-02 1997-09-16 Advanced Micro Devices, Inc. Wavetable audio synthesizer with low frequency oscillators for tremolo and vibrato effects
US5659466A (en) * 1994-11-02 1997-08-19 Advanced Micro Devices, Inc. Monolithic PC audio circuit with enhanced digital wavetable audio synthesizer
US6246774B1 (en) * 1994-11-02 2001-06-12 Advanced Micro Devices, Inc. Wavetable audio synthesizer with multiple volume components and two modes of stereo positioning
US5808220A (en) * 1997-01-16 1998-09-15 Winbond Electronics Corp. Method for establishing a structured timbre data base with a sound wave table
US6138224A (en) * 1997-04-04 2000-10-24 International Business Machines Corporation Method for paging software wavetable synthesis samples
US6100461A (en) * 1998-06-10 2000-08-08 Advanced Micro Devices, Inc. Wavetable cache using simplified looping
EP1028409B1 (en) 1999-01-29 2005-03-16 Yamaha Corporation Apparatus for and method of inputting music-performance control data
JP2001100760A (ja) 1999-09-27 2001-04-13 Yamaha Corp 波形生成方法及び装置
JP2004527005A (ja) * 2001-05-16 2004-09-02 テレフオンアクチーボラゲット エル エム エリクソン(パブル) 波形テーブル型シンセサイザにおいてエリアシングを除去するための方法
US20050114136A1 (en) * 2003-11-26 2005-05-26 Hamalainen Matti S. Manipulating wavetable data for wavetable based sound synthesis
KR100598209B1 (ko) * 2004-10-27 2006-07-07 엘지전자 주식회사 Midi 재생 장치 및 방법

Also Published As

Publication number Publication date
US20060123979A1 (en) 2006-06-15
WO2006065092A1 (en) 2006-06-22
KR20060067721A (ko) 2006-06-20
US7462773B2 (en) 2008-12-09

Similar Documents

Publication Publication Date Title
US6687674B2 (en) Waveform forming device and method
EP1039442A2 (en) Method and apparatus for compressing and generating waveform
JP2007011217A (ja) 楽音合成装置及びプログラム
US7427709B2 (en) Apparatus and method for processing MIDI
JP3654079B2 (ja) 波形生成方法及び装置
JP3654083B2 (ja) 波形生成方法及び装置
JPS6091395A (ja) 電子楽器
KR100655548B1 (ko) 미디 합성 방법
JP3654082B2 (ja) 波形生成方法及び装置
WO2006046817A1 (en) Apparatus and method for reproducing midi file
EP1805761A1 (en) Apparatus and method for reproducing midi file
JP3744247B2 (ja) 波形圧縮方法及び波形生成方法
JP3788096B2 (ja) 波形圧縮方法及び波形生成方法
JP4152502B2 (ja) 音響信号の符号化装置および符号データの編集装置
US7795526B2 (en) Apparatus and method for reproducing MIDI file
JP6047863B2 (ja) 音響信号の符号化方法および装置
JP2000276194A (ja) 波形圧縮方法及び波形生成方法
KR100598207B1 (ko) Midi 재생 장치 및 방법
KR100636905B1 (ko) 미디 재생 장치 그 방법
KR20210050647A (ko) 악기 디지털 인터페이스 재생 장치 및 방법
JP3404756B2 (ja) 楽音合成装置
KR100697527B1 (ko) 웨이브 테이블 구성 장치 및 웨이브 테이블 음원 샘플의새로운 루프 구간을 검색하는 방법
KR100547340B1 (ko) 미디 재생 장치 그 방법
JP3933161B2 (ja) 波形生成方法及び装置
KR100598208B1 (ko) Midi 재생 장치 및 방법

Legal Events

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