KR100636905B1 - 미디 재생 장치 그 방법 - Google Patents

미디 재생 장치 그 방법 Download PDF

Info

Publication number
KR100636905B1
KR100636905B1 KR1020040013937A KR20040013937A KR100636905B1 KR 100636905 B1 KR100636905 B1 KR 100636905B1 KR 1020040013937 A KR1020040013937 A KR 1020040013937A KR 20040013937 A KR20040013937 A KR 20040013937A KR 100636905 B1 KR100636905 B1 KR 100636905B1
Authority
KR
South Korea
Prior art keywords
notes
loop data
note
midi
sound source
Prior art date
Application number
KR1020040013937A
Other languages
English (en)
Other versions
KR20050088566A (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 KR1020040013937A priority Critical patent/KR100636905B1/ko
Priority to EP05003789A priority patent/EP1571647A1/en
Priority to US11/066,073 priority patent/US20050188820A1/en
Priority to BR0500711-9A priority patent/BRPI0500711A/pt
Priority to CN200510051120.5A priority patent/CN1661669A/zh
Publication of KR20050088566A publication Critical patent/KR20050088566A/ko
Application granted granted Critical
Publication of KR100636905B1 publication Critical patent/KR100636905B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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
    • G10H2250/00Aspects of algorithms or signal processing methods without intrinsic musical character, yet specifically adapted for or used in electrophonic musical processing
    • G10H2250/005Algorithms for electrophonic musical instruments or musical processing, e.g. for automatic composition or resource allocation

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Acoustics & Sound (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Electrophonic Musical Instruments (AREA)

Abstract

적은량의 CPU 자원을 사용하고도 충실한 음질을 생산할 수 있는 미디 재생 장치 및 그 방법이 개시된다.
본 발명의 미디 재생 방법은, 미디 파일에서 다수의 노트들 및 상기 다수의 노트들에 대한 노트 재생시간을 추출하는 단계; 미리 등록된 다수의 음원 샘플들의 다수의 제1 루프 데이터들을 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 루프 데이터들을 생성하는 단계; 및 상기 다수의 제2 루프 데이터들을 별도의 주파수 변환 없이 상기 다수의 노트들에 대한 노트 재생 시간에 따라 재생하는 단계를 포함한다.
미디, 음원, 웨이브 테이블, 주파수 변환부, 루프 데이터

Description

미디 재생 장치 그 방법{MIDI playback equipment and method thereof}
도 1은 종래의 미디 재생 장치의 구성을 개략적으로 나타낸 도면.
도 2는 본 발명의 바람직한 일 실시예에 따른 미디 재생 장치의 구성을 개략적으로 나타낸 도면.
<도면의 주요 부분에 대한 부호의 명칭>
11 : 미디 파서 12 : 루프 데이터 생성부
13 : 웨이브 테이블 14 : 미디 시퀀서
15 : 주파수 변환부
본 발명은 미디 재생 장치에 관한 것으로, 특히 적은량의 CPU 자원을 사용하고도 충실한 음질을 생산할 수 있는 미디 재생 장치 및 그 방법에 관한 것이다.
미디(MIDI : Music Instrument Digital Interface)) 형식은 컴퓨터를 이용하여 음악을 연주하기 위한 파일 형식이다. 전자악기마다 음을 생성하고 저장하는 방 식이 다르기 때문에 악기끼리의 호환성이 보장되지 않으므로 모든 악기들간에 공통으로 주고받을 수 있는 새로운 프로토콜이다. 1981년에 처음 국제 규격으로 표준화되었으며 현재 사용하고 있는 미디 신호 규약은 1986년도에 제정된 것으로 미디는 본래 컴퓨터를 위해 제정된 것은 아니었으나, 컴퓨터 멀티미디어의 출현으로 인해 이러한 미디 표준이 컴퓨터 음악에도 그대로 도입되었다. 즉, 미디란 음악 악기의 사운드 데이터를 녹음하고 교환하는 데 있어 표준화된 형식으로, 미디 파일은 실제의 음악 악보뿐만 아니라, 음의 강도 및 빠르기, 음악적 특성과 관련된 명령어, 악기의 종류 같은 정보까지를 갖고 있다. 하지만 웨이브 파일과는 달리 미디 파일은 파형 정보를 저장하지 않기 때문에 파일 크기가 상대적으로 작으며, 악기의 추가 및 삭제 등 편집이 용이하다.
미디 파일을 실제 완성된 소리로 만들기 위해서는 여러 가지 방식들이 사용될 수 있는데, 대표적인 것으로 주파수변조(FM: Frequency Modulation) 방식과 웨이브테이블(wave table) 방식이 있다.
초기에는 악기 음을 내기 위해 주파수 변조 방식을 이용하여 인공적인 소리를 내도록 하였다. 즉, 주파수 변조 방식은 악기 음을 주파수 변조를 이용하여 구현하게 되는데, 이때 별도의 음원을 사용하지 않으므로 메모리 사용량이 적다는 장점이 있다. 하지만, 이러한 방식은 원음에 가까운 자연스러운 소리를 내지 못하는 단점이 있었다.
최근 들어, 메모리 가격이 저렴해 지면서 악기별 및 악기의 각 노트에 따른 음원을 별도로 제작하여 메모리에 저장한 후 악기 고유의 파형을 유지하면서 주파 수와 진폭을 바꾸어 소리를 내는 방법이 고안되었으며 이를 웨이브 테이블(wave table) 방식이라 한다. 이에 따라, 웨이브테이블 방식은 원음에 가장 근접한 자연스러운 소리를 낼 수 있는 장점이 있어 현재 주로 이용되고 있다.
이러한 웨이브 테이블 방식을 이용하여 음악을 재생할 때, 음악을 실시간으로 듣기 위해서는 미디 파일의 각 노트들에 따라 웨이블 테이블에 미리 등록된 적절한 음원들을 주파수 변환하여 출력하게 된다.
도 1은 종래의 미디 재생 장치의 구성을 개략적으로 나타낸 도면이다.
도 1에 나타낸 바와 같이, 종래의 미디 재생 장치는 미디 파일로부터 다수의 노트들 및 노트 재생 시간을 추출하는 미디 파서(110)와, 상기 추출된 노트 재생 시간을 순차적으로 출력하는 미디 시퀀서(120)와, 적어도 하나 이상의 음원 샘플이 등록하기 위한 웨이브 테이블(130)과, 상기 노트 재생 시간이 출력될 때마다 상기 등록된 적어도 하나 이상의 음원 샘플을 이용하여 각 노트들에 상응하는 음원샘플들로 주파수 변환하여 출력하는 주파수 변환부(140)로 구성된다.
여기서, 상기 미디 파일은 미리 소정의 음악에 대한 정보들이 저장 매체 등에 기록되어 있는 것으로서, 이러한 미디 파일에는 다수의 노트들과 노트 재생 시간이 포함될 수 있다. 노트란 음을 나타내는 정보로서, 예를 들어 도, 레, 미 등과 같은 음계 정보를 나타낸다. 이러한 노트는 실제적인 음이 아니므로, 실제의 음원들로 재생되어야 한다.
또한, 노트 재생 시간은 상기 미디 파일에 포함된 다수의 노트들 각각의 재생 시간을 의미하는 것으로서, 동일한 음의 길이 정보이다. 예를 들어, "레"라는 노트의 재생 시간은 1/8초라면, "레"라는 노트에 해당하는 음원이 재생시 1/8초 동안 지속되게 된다.
상기 웨이브 테이블(130)에는 악기별 및 악기의 각 노트에 따른 음원들이 등록되어 있다. 이때, 통상 음계의 단계는 1부터 128까지로 이루어지는 되는데, 이러한 음계(즉, 노트)에 대한 음원들을 모두 상기 웨이브 테이블(130)에 등록시키는 데에는 한계가 있다. 이에 따라, 통상적으로는 대표적인 몇 개의 음계들에 대한 음원 샘플들만이 등록되어 있다.
상기 주파수 변환부(140)는 소정 노트에 대한 재생시간이 입력되면, 해당 노트에 대한 음원이 상기 웨이브 테이블(130)에 존재하는지를 파악하여 그 파악 여부에 따라 해당 노트에 대한 음원으로 주파수 변환하여 출력한다. 여기서, 상기 주파수 변환부(140)로는 오실레이터(oscillator) 등이 사용될 수 있다.
이때, 상기 해당 노트에 대한 음원이 상기 웨이브 테이블(130)에 존재하지 않는 경우, 상기 웨이브 테이블(130)에서 소정의 음원 샘플을 독출한 다음, 독출된 음원 샘플을 상기 해당 노트에 상응하는 음원 샘플로 주파수 변환하여 준다.
만일 상기 해당 노트에 대한 음원이 상기 웨이브 테이블(130)에 존재하는 경우에는 별도의 주파수 변환 없이 해당 음원 샘플을 상기 웨이브 테이블(130)에서 독출되어 출력될 수 있다.
예를 들어, 웨이브 테이블(130)에 등록된 음원 샘플이 20Khz로 샘플링 되어 있는데 반해, 원하는 음악의 노트는 40Khz로 샘플 되어 결국 40Khz로 주파수 변환되어 재생된다고 하면, 상기 주파수 변환부(140)에 의해 20Khz의 음원 샘플이 40Khz의 음원 샘플로 주파수 변환되어 출력될 수 있다.
이와 같은 과정은 각 노트에 대한 노트 재생시간이 입력될 때마다 반복적으로 진행되게 된다.
하지만, 이와 같이 각 노트에 대한 노트 재생시간이 입력될 때마다 반복적으로 상술한 바와 같은 주파수 변환을 수행하게 되는 경우, 상당한 연산 량이 요구되게 되어 해당 CPU에 과중한 부하가 걸릴 위험이 있다. 더군다나, 해당 미디 파일은 실시간으로 재생되어 출력되어야 하는데, 앞서 설명한바와 같이 각 노트에 대해 주파수 변환을 하게 됨으로써, 실시간으로 음악이 재생될 수 없게 될 수도 있다.
결국, 종래의 미디 재생 장치는 상술한 과정으로 수행됨으로써, 상당량의 CPU 자원이 사용되기 때문에 고사양의 데스크탑용 CPU를 사용하지 않고서는 충실한 음악을 재생하기가 힘들다. 따라서, 적은량의 CPU 자원을 사용하고도 사용자가 듣기에 충분한 정도의 음질을 보장할 수 있는 기술이 절실히 요구되고 있다.
따라서, 본 발명은 상기와 같은 문제점을 해결하기 위해 안출한 것으로서, 적은량의 CPU 자원을 사용하고도 충실한 음질을 생산할 수 있는 미디 재생 장치 및 그 방법을 제공함에 그 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 바람직한 일 실시예에 따르면, 미디 재생 방법은, 미디 파일에서 다수의 노트들 및 상기 다수의 노트들에 대한 노트 재생시간을 추출하는 단계; 미리 등록된 다수의 음원 샘플들의 다수의 제1 루프 데이터들을 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 루프 데이터들을 생성하는 단계; 및 상기 다수의 제2 루프 데이터들을 별도의 주파수 변환 없이 상기 다수의 노트들에 대한 노트 재생시간에 따라 재생하는 단계를 포함한다.
상기 미디 재생 방법에 따르면, 상기 다수의 제2 루프 데이터들을 생성하는 단계는, 상기 다수의 음원 샘플들에 포함된 다수의 제1 루프 데이터들을 추출하는 단계; 상기 추출된 다수의 제1 루프 데이터들을 주파수로 변환하여 상기 다수의 제2 루프 데이터들을 생성하는 단계; 및 상기 생성된 다수의 제2 루프 데이터들을 등록하는 단계를 포함할 수 있다.
상기 미디 재생 방법에 따르면, 상기 재생 단계는, 상기 다수의 음원 샘플들에 포함된 다수의 제1 어택 및 디케이 데이터들을 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 어택 및 디케이 데이터들을 생성하여 재생하는 단계; 및 상기 다수의 제2 루프 데이터들을 상기 다수의 노트들에 대한 노트 재생 시간의 길이에 따라 반복적으로 재생하는 단계를 포함할 수 있다.
본 발명의 바람직한 다른 실시예에 따르면, 미디 파일에서 다수의 노트들 및 상기 다수의 노트들에 대한 노트 재생시간을 추출하기 위한 수단; 미리 등록된 다수의 음원 샘플들의 다수의 제1 루프 데이터들을 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 루프 데이터들을 생성하기 위한 수단; 및 상기 다수의 제2 루프 데이터들을 별도의 주파수 변환 없이 상기 다수의 노트들에 대한 노트 재 생시간에 따라 재생하기 위한 수단을 포함한다.
상기 미디 재생 장치에 다르면, 상기 다수의 노트들에 대한 노트 재생시간 순차적으로 출력하기 위한 수단; 및 상기 음원 샘플들 및 상기 제2 다수의 루프 데이터들을 등록하기 위한 수단을 더 포함할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 설명한다.
도 2는 본 발명의 바람직한 일 실시예에 따른 미디 재생 장치의 구성을 개략적으로 나타낸 도면이다.
도 2를 참조하면, 본 발명의 미디 재생 장치는 미디 파일에서 다수의 노트들 및 상기 다수의 노트들에 대한 노트 재생시간을 추출하는 미디 파서(11)와, 음원 샘플들로부터 추출된 다수의 제1 루프 데이터들을 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 루프 데이터들을 생성하는 루프 데이터 생성부(12)와, 상기 다수의 노트들의 각 노트 재생시간을 출력하는 미디 시퀀서(14)와, 상기 다수의 노트들에 대한 노트 재생시간에 따라 웨이브 테이블(13)에 등록되어 있는 제2 루프 데이터들을 재생하는 주파수 변환부(15)와, 상기 음원 샘플들 및 상기 제2 다수의 루프 데이터들을 등록하기 위한 웨이브 테이블(13)로 구성된다.
여기서, 상기 미디 파일은 미리 소정의 음악에 대한 정보들이 저장 매체 등에 기록되어 있는 것으로서, 이러한 미디 파일에는 다수의 노트들과 노트 재생시간이 포함될 수 있다. 노트란 음을 나타내는 정보로서, 예를 들어 도, 레, 미 등과 같은 음계 정보를 나타낸다. 이러한 노트는 실제적인 음이 아니므로, 실제의 음원들로 재생되어야 한다. 통상적으로 음계는 1부터 128 범위로 이루어질 수 있다.
본 발명에서 상기 미디 파일은 하나의 노래의 시작과 끝으로 이루어진 하나의 악곡일 수 있다. 이러한 악곡은 수많은 음계와 각 음계의 시간 길이에 의해 구성될 수 있다. 따라서, 상기 미디 파일은 각 음계에 대응되는 노트들과 각 노트의 재생시간에 대한 정보들이 포함될 수 있다.
또한, 노트 재생시간은 상기 미디 파일에 포함된 다수의 노트들 각각의 재생시간을 의미하는 것으로서, 동일한 음의 길이 정보이다. 예를 들어, "레"라는 노트의 재생시간은 1/8초라면, "레"라는 노트에 해당하는 음원이 재생시 1/8초 동안 지속되게 된다.
상기 웨이브 테이블(13)에 등록되어 있는 소정의 음원 샘플들 각각은 어택(attack) 및 디케이(decay) 데이터와 루프(loop) 데이터로 이루어질 수 있다. 여기서, 상기 어택 및 디케이 데이터는 처음 발생되는 음을 나타내는 것으로서, 구체적으로 어택 데이터는 처음 발생된 음이 최대치까지 증가되는 부분에 대한 데이터이고, 디케이 데이터는 최대치로부터 루프 데이터까지 감소되는 부분에 대한 데이터이다. 또한, 상기 루프 데이터는 음원 샘플에서 어택 및 디케이 데이터 구간을 제외한 나머지 구간의 데이터로서, 음이 일정하게 유지되는 부분이다. 이러한 루프 데이터는 매우 짧은 구간 데이터로서, 노트 재생시간에 따라 여러 번 반복하여 사용될 수 있다.
예를 들어, 루프 데이터 구간이 0.5초인데 반해 노트 재생시간이 3초인 경우, 노트 재생시간 동안 루프 데이터는 적게는 한번 그리고 많게는 5번 정도 반복적으로 사용될 수 있다.
하지만, 종래에는 긴 시간을 갖는 노트 재생시간인 경우, 음원 샘플의 루프 데이터는 여러 번 반복될 때마다 주파수 변환부(15)에서 매번 해당 노트에 상응하는 주파수로 변환되어 출력되게 된다.
이에 따라, 긴 시간을 갖는 노트 재생시간이 많은 미디 파일이 재생되는 경우, 주파수 변환부(15)에서 지속적으로 루프 데이터를 반복 재생해야 함에 따라 연산 처리량이 증가하게 되어 결국 CPU에 커다란 부하가 걸리게 되어 시스템 성능을 저하시켰다.
본 발명에서는 이러한 점을 감안하여 미디 파일을 재생하기 전에 미리 각 노트에 따른 음원 샘플의 루프 데이터를 각 노트에 상응하는 주파수로 미리 변환시켜 재생시 이와 같이 변환된 루프 데이터를 별도의 주파수 변환 없이 그대로 출력하여 재생함으로써, CPU의 부하를 저하시킬 수 있다.
본 발명의 미디 재생 장치를 구체적으로 살펴보면, 상기 미디 파서(11)는 미디 파일이 입력되면, 상기 미디 파일을 파싱(parsing)하여 그 안에 포함되는 다수의 노트들과 상기 다수의 노트들에 대한 노트 재생시간을 추출한다. 여기서, 상기 노트 재생시간은 상기 다수의 노트들 각각의 재생시간을 의미한다.
이때, 상기 다수의 노트들은 상기 루프 데이터 생성부(12)로 입력되고, 상기 노트 재생시간은 미디 시퀀서(14)로 입력된다.
상기 루프 데이터 생성부(12)는 상기 다수의 노트들을 입력받음과 동시에 상기 웨이브 테이블(13)로부터 소정의 음원 샘플들을 입력받는다. 이때, 상기 웨이브 테이블(13)에는 소정의 음원 샘플들이 미리 등록되어 있을 수 있다. 또한, 상기 음 원 샘플들은 최대한 원음(original sound)에 가까운 음원에 대한 음계를 나타낸다.
통상적으로, 상기 웨이브 테이블(13)에 등록되어 있는 음원 샘플들은 모든 음계를 표현할 만큼 구비되지 않게 됨으로써, 이러한 음원 샘플들을 주파수 변환 등을 통해 모든 음계를 표현해주고 있다.
따라서, 상기 음원 샘플들은 상기 다수의 노트들보다 적어도 적을 수 있다. 즉, 통상적으로 128개의 음계를 모두 음원 샘플들로 만들어 상기 웨이브 테이블(13)에 등록시키는 데에는 한계가 있다. 따라서, 일반적으로 상기 웨이브 테이블(13)에는 128개의 음계에 대한 음원 샘플들 중에서 대표적인 몇 개 정도의 음원 샘플들만 등록되게 된다.
이에 반해, 상기 미디 파서(11)로 입력되는 미디 파일에는 적게는 수십 개에서 많게는 128계의 전 음계에 대한 노트들이 포함될 수 있다.
따라서, 상기 미디 파일에 포함된 노트들을 상기 웨이브 테이블(13)에 등록된 음원 샘플들로부터 곧바로 재생할 수는 없다. 그러므로, 앞서 설명한 바와 같이, 상기 웨이브 테이블(13)에 등록된 소정의 음원 샘플들을 이용하여 상기 미디 파일에 포함된 노트들에 상응하는 음원 샘플들로 주파수 변환하여 재생하여 주고 있다.
이때, 종래에는 각 노트마다 그에 상응하는 음원 샘플들을 실시간으로 만들어주게 되고, 특히 반복적으로 재생되는 루프 데이터를 반복될 때마다 주파수 변환을 하여 줌으로써, 연산량이 폭주하여 CPU에 과부하가 걸려 실질적인 실시간 재생이 이루어지기 힘들었다.
상기 루프 데이터 생성부(12)는 상기 미디 파서(11)로부터 상기 다수의 노트들을 입력받는 동시에 상기 웨이브 테이블(13)로부터 소정의 음원 샘플들을 입력받고, 상기 음원 샘플들로부터 다수의 루프 데이터들(이하, 제1 루프 데이터들이라 한다)을 추출한다. 그리고, 이와 같이 추출된 다수의 제1 루프 데이터들은 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 루프 데이터들이 생성되게 된다. 아울러, 이와 같이 변환된 제2 루프 데이터들은 상기 웨이브 테이블(13)의 별도 영역에 등록되게 된다.
여기서, 상기 음원 샘플들 중에서 제1 루프 데이터만을 주파수 변환시키는 것은 이러한 제1 루프 데이터들이 나중에 반복적으로 재생될 때, 반복될 때마다 매번 제2 루프 데이터로 주파수 변환시켜야 하는 번거로움을 사전에 방지하고, 나아가 CPU의 과부하를 해소할 수 있기 때문이다. 물론, 상기 음원 샘플들에는 상기 제1 루프 데이터들 외에 제1 어택 및 디케이 데이터들이 존재하지만, 이러한 제1 어택 및 디케이 데이터는 하나의 노트 재생 시간동안 한번만 재생하면 되기 때문에 CPU의 과부하에 영향을 크게 미치지 않기 때문에 상기 루프 데이터 생성부(12)에서 별도로 주파수 변환시켜 주지 않아도 된다. 물론, 필요에 따라 상기 루프 데이터 생성부(12)에서 상기 제1 어택 및 디케이 데이터도 미리 주파수 변환되도록 할 수도 있다.
상기 루프 데이터 생성부(12)에서 변환된 제2 루프 데이터들은 상기 웨이브 테이블(13)의 별도 영역에 등록되고, 이때 등록되는 방식은 상기 미디 파일의 각 노트별로 이에 상응하는 제2 루프 데이터들이 등록되는 것이 바람직하다.
예를 들어, 노트가 100 음계인 경우, 이러한 음계에 대한 음원 샘플이 상기 웨이브 테이블(13)의 소정의 음원 샘플들 중에 존재하지 않는 경우, 상기 음원 샘플들 중 하나의 음원 샘플(예컨대, 70 음계에 대한 음원 샘플)로부터 루프 데이터가 추출되고, 추출된 루프 데이터가 100 음계의 노트에 부여된 주파수로 변환될 수 있다. 따라서, 이와 같이 주파수 변환된 루프 데이터는 상기 100 음계에 대한 노트 재생시간에 따라 100 음계로 재생될 수 있다. 물론, 루프 데이터 재생 전에 어택 및 디케이 데이터의 재생이 선행되어야 하고, 이러한 부분은 나중에 상기 주파수 변환부(15)에 대한 설명에서 자세히 기술하기로 한다.
한편, 상기 미디 시퀀서(14)는 상기 미디 파서(11)로부터 다수의 노트들에 대한 노트 재생 시간들을 입력받고, 소정 시간이 지난 후(즉, 루프 데이터에 대한 주파수 변환이 상기 루프 데이터 생성부(12)에서 이루어져 상기 웨이브 테이블(13)에 등록된 후) 다수의 노트들에 대한 노트 재생시간들을 순차적으로 주파수 변환부(15)로 출력한다.
상기 주파수 변환부(15)는 상기 미디 시퀀서(14)로부터 순차적으로 입력되는 다수의 노트들에 대한 노트 재생시간에 따라 웨이브 테이블(13)에 등록되어 있는 제2 루프 데이터들을 재생한다.
즉, 상기 주파수 변환부(15)는 먼저 다수의 노트들에 대한 노트 재생시간을 순차적으로 입력받고, 입력된 다수의 노트들에 대한 노트 재생시간에 따라 상기 웨이브 테이블(13)에 등록된 다수의 제1 어택 및 디케이 데이터들을 독출하여 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 어택 및 디케이 데이터들을 생성하여 재생하고, 상기 웨이브 테이블(13)에 등록된 다수의 제2 루프 데이터들을 독출하여 상기 다수의 노트들에 대한 노트 재생시간의 길이에 따라 반복적으로 재생한다.
여기서, 상기 노트 재생시간의 길이가 제2 루프 데이터 구간의 5배라고 가정하면, 해당 제2 루프 데이터는 5번 반복하여 재생될 수 있다. 이때, 상기 제2 루프 데이터는 이미 상기 루프 데이터 생성부(12)로부터 주파수 변환되어 상기 웨이브 테이블(13)에 등록된 것이므로, 상기 주파수 변환부(15)에서 별도로 주파수 변환하지 않아도 된다. 따라서, 종래에 주파수 변환부에서 루프 데이터가 반복될 때마다 반복적으로 주파수 변환하게 됨에 따라 발생되는 CPU의 과부하를 해소할 수 있으므로, 시스템 성능이나 효율이 좋아질 수 있다.
따라서, 상기 미디 시퀀서(14)로부터 출력되는 다수의 노트들에 대한 노트 재생시간 동안 상기 미디 파일에 대한 재생이 완전하게 수행될 수 있다.
이상에서 살펴본 바와 같이, 본 발명에 의하면, 반복적으로 재생될 수 있는 음원 샘플의 루프 데이터를 해당 노트에 부여된 주파수로 미리 변환한 다음, 재생시 별도의 주파수 변환 없이 미리 변환된 루프 데이터를 그대로 출력함으로써, 종래에 루프 데이터가 반복될 때마다 일일이 실시간 주파수 변환하여 출력함에 따라 발생되는 연산량의 폭주에 기인한 CPU의 과부하를 억제하여 보다 효율적인 신뢰도 높은 미디 재생을 구현할 수 있다.

Claims (14)

  1. 어택(attack), 디케이(decay), 루프(loop) 구간을 포함하여 이루어지는 웨이브 테이블 기반의 MIDI 합성 시, 저장된 음원 샘플을 읽어내서 노트 재생시간에 따라 주파수 변환을 수행하여 재생하는 방법에 있어서,
    미디 파일에서 다수의 노트들 및 상기 다수의 노트들에 대한 노트 재생시간을 추출하는 단계;
    미리 등록된 다수의 음원 샘플들의 다수의 제1 루프 데이터들을 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 루프 데이터들을 생성하는 단계; 및
    상기 다수의 제2 루프 데이터들을 별도의 주파수 변환 없이 상기 다수의 노트들에 대한 노트 재생 시간에 따라 재생하는 단계
    를 포함하는 미디 재생 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 음원 샘플들 각각은 어택 및 디케이 데이터와 노트 재생 시간의 길이에 따라 적어도 한번 이상 반복하여 재생되는 루프 데이터로 이루어지는 것을 특징으로 하는 미디 재생 방법.
  5. 제1항에 있어서, 상기 다수의 제2 루프 데이터들을 생성하는 단계는,
    상기 다수의 음원 샘플들에 포함된 다수의 제1 루프 데이터들을 추출하는 단계;
    상기 추출된 다수의 제1 루프 데이터들을 주파수로 변환하여 상기 다수의 제2 루프 데이터들을 생성하는 단계; 및
    상기 생성된 다수의 제2 루프 데이터들을 등록하는 단계
    를 포함하는 미디 재생 방법.
  6. 제5항에 있어서, 상기 다수의 제2 루프 데이터들은 각 노트별로 대응되게 등록되는 것을 특징으로 하는 미디 재생 방법.
  7. 삭제
  8. 제1항에 있어서, 상기 재생 단계는,
    상기 다수의 음원 샘플들에 포함된 다수의 제1 어택 및 디케이 데이터들을 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 어택 및 디케이 데이터들을 생성하여 재생하는 단계; 및
    상기 다수의 제2 루프 데이터들을 상기 다수의 노트들에 대한 노트 재생 시간의 길이에 따라 반복적으로 재생하는 단계
    를 포함하는 미디 재생 방법.
  9. 어택(attack), 디케이(decay), 루프(loop) 구간을 포함하여 이루어지는 웨이브 테이블 기반의 MIDI 합성 시, 저장된 음원 샘플을 읽어내서 노트 재생시간에 따라 주파수 변환을 수행하여 재생하는 장치에 있어서,
    미디 파일에서 다수의 노트들 및 상기 다수의 노트들에 대한 노트 재생시간을 추출하기 위한 수단;
    미리 등록된 다수의 음원 샘플들의 다수의 제1 루프 데이터들을 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 루프 데이터들을 생성하기 위한 수단; 및
    상기 다수의 제2 루프 데이터들을 별도의 주파수 변환 없이 상기 다수의 노트들에 대한 노트 재생 시간에 따라 재생하기 위한 수단
    을 포함하는 미디 재생 장치.
  10. 삭제
  11. 제9항에 있어서, 상기 음원 샘플들 및 상기 제2 다수의 루프 데이터들을 등록하기 위한 수단
    을 더 포함하는 미디 재생 장치.
  12. 제11항에 있어서, 상기 등록 수단은 웨이브 테이블로 이루어지는 것을 특징으로 하는 미디 재생 장치.
  13. 제9항에 있어서, 상기 등록 수단은 상기 다수의 제2 루프 데이터들을 각 노트별로 대응되게 등록시키는 것을 특징으로 하는 미디 재생 장치.
  14. 제9항에 있어서, 상기 재생 수단은 상기 음원 샘플들에 포함된 제1 어택 및 디케이 데이터들을 상기 다수의 노트들에 부여된 주파수로 변환하여 다수의 제2 어택 및 디케이 데이터들을 생성하여 재생하는 한편, 상기 다수의 제2 루프 데이터들을 상기 다수의 노트들에 대한 노트 재생 시간의 길이에 따라 반복적으로 재생하는 것을 특징으로 하는 미디 재생 장치.
KR1020040013937A 2004-02-26 2004-03-02 미디 재생 장치 그 방법 KR100636905B1 (ko)

Priority Applications (5)

Application Number Priority Date Filing Date Title
KR1020040013937A KR100636905B1 (ko) 2004-03-02 2004-03-02 미디 재생 장치 그 방법
EP05003789A EP1571647A1 (en) 2004-02-26 2005-02-22 Apparatus and method for processing bell sound
US11/066,073 US20050188820A1 (en) 2004-02-26 2005-02-24 Apparatus and method for processing bell sound
BR0500711-9A BRPI0500711A (pt) 2004-02-26 2005-02-28 Aparato e método para processar som de campainha
CN200510051120.5A CN1661669A (zh) 2004-02-26 2005-02-28 处理铃声的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040013937A KR100636905B1 (ko) 2004-03-02 2004-03-02 미디 재생 장치 그 방법

Publications (2)

Publication Number Publication Date
KR20050088566A KR20050088566A (ko) 2005-09-07
KR100636905B1 true KR100636905B1 (ko) 2006-10-19

Family

ID=37271208

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040013937A KR100636905B1 (ko) 2004-02-26 2004-03-02 미디 재생 장치 그 방법

Country Status (1)

Country Link
KR (1) KR100636905B1 (ko)

Also Published As

Publication number Publication date
KR20050088566A (ko) 2005-09-07

Similar Documents

Publication Publication Date Title
US7276655B2 (en) Music synthesis system
JP2584185B2 (ja) オーディオ信号の発生方法及び装置
US7427709B2 (en) Apparatus and method for processing MIDI
US20090205481A1 (en) Systems and methods for providing multi-region instrument support in an audio player
US20060086239A1 (en) Apparatus and method for reproducing MIDI file
KR100636905B1 (ko) 미디 재생 장치 그 방법
US20050188820A1 (en) Apparatus and method for processing bell sound
US20060086238A1 (en) Apparatus and method for reproducing MIDI file
RU2314502C2 (ru) Устройство и способ для обработки звука звонка
KR100547340B1 (ko) 미디 재생 장치 그 방법
KR100655548B1 (ko) 미디 합성 방법
US8759657B2 (en) Systems and methods for providing variable root note support in an audio player
KR100598207B1 (ko) Midi 재생 장치 및 방법
KR100689495B1 (ko) Midi 재생 장치 및 방법
KR100598208B1 (ko) Midi 재생 장치 및 방법
KR20210050647A (ko) 악기 디지털 인터페이스 재생 장치 및 방법
JP4152502B2 (ja) 音響信号の符号化装置および符号データの編集装置
JP3744247B2 (ja) 波形圧縮方法及び波形生成方法
JP3211646B2 (ja) 演奏情報記録方法及びその演奏情報の再生装置
KR20000017872A (ko) 음악화일의 가사변환장치 및 방법
KR101365592B1 (ko) Mgi음악 파일 생성 시스템 및 방법
JP3659121B2 (ja) 楽音信号の分析・合成方法、楽音信号合成方法、楽音信号合成装置および記録媒体
JPH10307581A (ja) 波形データ圧縮装置および方法
KR20060106048A (ko) 웨이브테이블 방식의 이동통신단말기 벨소리 재생장치 및웨이브테이블의 음원 크기를 줄이는 방법

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