KR100655548B1 - 미디 합성 방법 - Google Patents
미디 합성 방법 Download PDFInfo
- 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
Links
- 238000001308 synthesis method Methods 0.000 title claims description 6
- 238000000034 method Methods 0.000 claims abstract description 41
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 230000002194 synthesizing effect Effects 0.000 abstract description 8
- 238000004904 shortening Methods 0.000 abstract description 4
- 230000000694 effects Effects 0.000 abstract description 3
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000003786 synthesis reaction Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000010355 oscillation Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Instruments in which the tones are synthesised from a data store, e.g. computer organs
- G10H7/02—Instruments 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/04—Instruments 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Details of electrophonic musical instruments
- G10H1/02—Means for controlling the tone frequencies, e.g. attack or decay; Means for producing special musical effects, e.g. vibratos or glissandos
- G10H1/06—Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour
- G10H1/08—Circuits for establishing the harmonic content of tones, or other arrangements for changing the tone colour by combining tones
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Aspects 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/031—Musical 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/066—Musical 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
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Data organisation or data communication aspects, specifically adapted for electrophonic musical tools or instruments
- G10H2240/121—Musical 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/155—Library update, i.e. making or modifying a musical database using musical parameters as indices
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
- G10H2250/615—Waveform editing, i.e. setting or modifying parameters for waveform synthesis.
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10H—ELECTROPHONIC 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/00—Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
- G10H2250/541—Details of musical waveform synthesis, i.e. audio waveshape processing from individual wavetable samples, independently of their origin or of the sound they represent
- G10H2250/641—Waveform 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
도 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)의 시작점이 부드럽게 이어져야 한다.
알려진 바와 같이 웨이브 테이블 기반의 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값이 상기 웨이브 폼 넘버 보다 작은 경우에는 루프를 형성할 수 있는 또다른 음원이 종래 웨이브 테이블에 남아 있는 것이므로 상기 또다른 음원을 상기 웨이브 테이블로 부터 검색하게 된다.
한편, 종래의 웨이브 테이블에 포함되어 있는 음원은 기본 주기 또는 상기 주기의 배수가 되는 구간에서 루프를 형성하게 되는데, 상기 음원의 기본 주기는
로 표현된다. 여기서 는 샘플링 레이트(sampling rate), 는 루트 키(root key) 값에 해당하는 샘플의 기본 주파수로 상기 값은 웨이브 테이블의 부가 정보를 통해 알 수 있다.
상기 기본 주기를 통하여 기본 주파수 값을 알 수 있으며, 상기 기본 주파수 ω=2π/T로 표현된다(S230).
한편, S240 단계는 상기 음원 샘플의 값 중에 최대값, 즉, 음원 샘플의 크기(Amplitude)의 최대값(Max_value)을 찾아내는 과정을 설명한다. 음원의 특성상 상기 음원의 처음 시작 부분에서 루프 구간을 찾게 되면 음원이 안정되기 전의 값이므로 불안정해 지는데, 상기 문제점은 음원 샘플의 최대값을 찾아 최대값 근처 이후를 루프의 시작점으로 선택함으로써 해결 할 수 있다. 즉, 상기 음원의 최대값 부분을 음원이 안정되기 시작하는 부분으로 파악하고 루프의 시작점 검색시 이를 고려하는 것이다.
이어서 S250 단계는 루프 구간의 시작점과 끝점을 선택하는 과정을 나타낸다. 일반적으로 상기 루프 구간의 특징이 '0'을 교차하는 부근에서 시작점과 끝점이 결정되는 점을 고려해 '0' 교차점을 상기 S230 단계에서 구한 기본 주기 및 그 배수 되는 곳에서 찾는 과정을 나타낸다.
S260 단계는 앞서 찾은 각각의 '0' 교차점들에서 각 교차점의 앞 뒤의 샘플들에 대한 편차를 구하고 편차가 작은 값부터 정렬하는 과정을 나타낸다. 상기 편차는
으로 표현되며, 여기서 , 는 각각 '0' 교차점에서 만큼 떨어져 있는 곳의 샘플 값을 의미한다. 이렇게 샘플 편차를 구해서 그 차이가 가장 작은 것을 최적의 루프 구간으로 결정하게 된다.
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를 의미하고, 로 나타낼 수 있으며, , 는 주파수를 의미한다. 즉, 주파수가 2배 차이인 1옥타브 노트 차이는 1200cents에 해당된다. 이렇게 파인 튠 작업을 통해서 실제 미디 파일의 노트를 소리로 생성할 때 제대로 나타낼 수 있다.
종래의 웨이브 테이블에 대해서 새롭게 찾은 루프 구간과 그리고, 이 새로운 루프 구간에 대한 정확한 음정 및 파인 튠에 대한 웨이브 테이블 샘플 정보를 수정한다. 또한 새로운 루프구간이 기존 웨이브 테이블의 루프 구간에 비해 앞으로 당겨짐에 따라 불필요하게 된 음원 샘플들을 없앰으로써 최종적으로 웨이브 테이블의 크기를 줄일 수 있다.
본 발명은 루프 구간을 단축하고 상기 루프 구간의 위치를 앞으로 당김으로써 종래의 웨이브 테이블 크기를 줄이고, 정확한 음정의 검색을 통해 음질의 왜곡이 없는 소리를 구현하는 효과가 있다.
Claims (8)
- 웨이브 테이블의 음원 샘플에 대하여 음원 샘플 길이와 루프 구간의 길이를 기준으로 루프 구간의 길이 축소를 위한 새로운 루프 구간(재구성할 웨이브 테이블에 사용할 루프 구간)을 검색하는 단계;상기 검색된 루프 구간의 음원 샘플에 대해서 그 기본 주파수를 찾아 해당 음정을 검색하는 단계;웨이브 테이블 샘플 정보를 상기 검색된 루프구간 및 음정으로 수정하여 웨이브 테이블을 재구성하는 단계;를 포함하는 것을 특징으로 하는 미디 합성방법.
- 제 1항에 있어서,상기 웨이브 테이블에 저장된 음원 중 루프의 길이가 샘플 길이의 절반 이하인 경우 상기 웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계가 수행되는 것을 특징으로 하는 미디 합성 방법.
- 제 1항에 있어서,웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계에 있어서, 상기 루프 구간을 음원의 기본 주기 또는 상기 주기의 배수가 되는 지점에 서 찾는 것을 특징으로 하는 미디 합성 방법.
- 제 1항에 있어서,웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계에 있어서, 상기 루프의 시작점을 음원 샘플의 최대값[Max_value: 음원 샘플 크기(Amplitude)의 최대값]에 소정 비율(음원 샘플의 최대값과 비교하여 어느 정도의 크기를 가지는 샘플 부분을 선택할 것인지를 나타내는 비율: Max_Factor)을 곱한 값 이후로 선택하는 것을 특징으로 하는 미디 합성 방법.
- 제 1항에 있어서,웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계에 있어서, 음원 샘플의 값이 '0'에 교차하는 지점을 상기 루프 구간의 시작점과 끝점으로 선택하는 것을 특징으로 하는 미디 합성 방법.
- 제 1항에 있어서,웨이브 테이블에 저장되어 있는 샘플의 새로운 루프 구간을 찾아내는 단계에 있어서, 음원의 기본 주기 및 상기 주기의 배수에 해당하는 '0' 교차점의 앞뒤간 샘플 값의 편차를 구하고, 상기 샘플 편차가 가장 작은 것을 상기 루프 구간으로 선택하는 것을 특징으로 하는 미디 합성 방법.
- 제 1항에 있어서,상기 새롭게 찾은 루프 구간에 대한 음정을 찾는 단계는 상기 새로운 루프 구간에 대해서 루프 구간을 다수회 반복하고 윈도우를 적용한 후 주파수 영역으로의 변환을 통해서 기본 주파수를 찾는 것을 특징으로 하는 미디 합성 방법.
- 제 1항에 있어서,상기 새롭게 찾은 루프 구간에 대한 음정을 찾는 단계를 통하여 얻은 기본 주파수에 해당하는 음정을 노트 값에 해당하는 음정에 맞도록 파인 튠하는 것을 특징으로 하는 미디 합성 방법.
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)
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)
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 재생 장치 및 방법 |
-
2004
- 2004-12-15 KR KR1020040106615A patent/KR100655548B1/ko not_active IP Right Cessation
-
2005
- 2005-12-15 US US11/303,142 patent/US7462773B2/en not_active Expired - Fee Related
- 2005-12-15 WO PCT/KR2005/004335 patent/WO2006065092A1/en active Application Filing
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 |