KR20050057040A - Sound synthesiser - Google Patents

Sound synthesiser Download PDF

Info

Publication number
KR20050057040A
KR20050057040A KR1020057003466A KR20057003466A KR20050057040A KR 20050057040 A KR20050057040 A KR 20050057040A KR 1020057003466 A KR1020057003466 A KR 1020057003466A KR 20057003466 A KR20057003466 A KR 20057003466A KR 20050057040 A KR20050057040 A KR 20050057040A
Authority
KR
South Korea
Prior art keywords
samples
active
voices
synthesizer
stored
Prior art date
Application number
KR1020057003466A
Other languages
Korean (ko)
Other versions
KR101011286B1 (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
Priority claimed from EP02256081A external-priority patent/EP1394768B1/en
Application filed by 텔레폰악티에볼라겟엘엠에릭슨(펍) filed Critical 텔레폰악티에볼라겟엘엠에릭슨(펍)
Publication of KR20050057040A publication Critical patent/KR20050057040A/en
Application granted granted Critical
Publication of KR101011286B1 publication Critical patent/KR101011286B1/en

Links

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
    • 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
    • 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
    • G10H2230/00General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
    • G10H2230/025Computing or signal processing architecture features
    • G10H2230/041Processor load management, i.e. adaptation or optimization of computational load or data throughput in computationally intensive musical processes to avoid overload artifacts, e.g. by deliberately suppressing less audible or less relevant tones or decreasing their complexity
    • 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/171Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
    • G10H2240/201Physical layer or hardware aspects of transmission to or from an electrophonic musical instrument, e.g. voltage levels, bit streams, code words or symbols over a physical link connecting network nodes or instruments
    • G10H2240/241Telephone transmission, i.e. using twisted pair telephone lines or any type of telephone network
    • G10H2240/251Mobile telephone transmission, i.e. transmitting, accessing or controlling music data wirelessly via a wireless or mobile telephone receiver, analog or digital, e.g. DECT GSM, UMTS
    • 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/621Waveform interpolation

Landscapes

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

Abstract

A sound synthesiser is provided that reduces the computational requirements of a synthesiser with a high degree of polyphony, while ensuring that audible artefacts are kept to a minimum. The synthesiser comprises a plurality of samples stored in a memory (6) ; a plurality of voices (4, 16) each comprising means for calculating an output using a plurality of samples selected from the plurality of samples stored in the memory (6); wherein a voice (4, 16) is active when calculating an output; wherein the number of samples selected by the means for calculating depends upon the number of active voices (4, 16).

Description

사운드 신시사이저{SOUND SYNTHESISER}Sound synthesizer {SOUND SYNTHESISER}

본 발명은 사운드 신시사이저에 대한 것인데, 특히 휴대용 장치에서와 같이, 계산 자원이 제한된 장치에서 사용되는 사운드 신시사이저에 대한 것이다.The present invention relates to sound synthesizers, in particular to sound synthesizers used in devices with limited computational resources, such as in portable devices.

현대의 사운드 신시사이저는 많은 보이스(voice)를 갖도록 요구된다. 신시사이저가 갖는 보이스의 수는 동시에 발생될 수 있는 사운드의 수에 따라 한정된다. Modern sound synthesizers are required to have many voices. The number of voices a synthesizer has is limited by the number of sounds that can be produced simultaneously.

전자 사운드 신시사이저가 일련의 요구된 사운드를 재생시키는 방법을 규정하는 몇몇 다른 프로토콜과 표준이 있다.There are several other protocols and standards that specify how an electronic sound synthesizer reproduces a set of required sounds.

전자 장치에서 사운드를 발생시키는 대중적인 한가지 방식은 MIDI(전자 악기 디지털 인터페이스) 프로토콜을 사용함에 의한 것이다. 디지털 오디오 파일과 달리, (콤팩트 디스크상에 발견된 것과 같은) MIDI 파일은 특정한 사운드에 대한 상세 설명을 포함하지 않는다. 대신, MIDI 파일은 장치가 정확한 사운드를 다시 만들기 위하여 수행해야 하는 이벤트의 리스트를 포함한다. 샘플된 사운드는 신시사이저에 저장되고 MIDI 파일에 포함된 명령에 따라 이용된다. 그러므로, MIDI 파일은 디지털 오디오 파일보다 훨씬 더 작아질 수 있어, 저장 메모리가 제한된 환경에 적합하게 된다. One popular way to generate sound in electronic devices is by using the MIDI (Electronic Instrument Digital Interface) protocol. Unlike digital audio files, MIDI files (such as those found on compact discs) do not contain detailed descriptions of specific sounds. Instead, the MIDI file contains a list of events that the device must perform to recreate the correct sound. The sampled sound is stored in the synthesizer and used according to the instructions contained in the MIDI file. Therefore, MIDI files can be much smaller than digital audio files, making them suitable for environments with limited storage memory.

일반 MIDI 시스템 레벨 1(the General MIDI System Level 1, GM-1)에서, 신시사이저는 적어도 24개의 보이스를 갖도록 요구된다,In the General MIDI System Level 1 (GM-1), the synthesizer is required to have at least 24 voices.

사전-녹음된 사운드로부터 사운드를 발생시키는 MIDI 신시사이저와 같은, 신시사이저들은 웨이브-테이블 기저 신시사이저(wave-table based synthesisers)로 알려져 있다. 이러한 신시사이저에서, 전자 악기의 한개 또는 몇몇의 사전-녹음된 시퀀스(sequence)가 웨이브-테이블에 저장될 것이다. 각각의 시퀀스는 사운드를 다시 만들기 위하여 연주된 연속 샘플을 포함할 것이다.Synthesizers, such as MIDI synthesizers that generate sound from pre-recorded sound, are known as wave-table based synthesizers. In such a synthesizer, one or several pre-recorded sequences of the electronic musical instrument will be stored in a wave-table. Each sequence will contain consecutive samples played to recreate the sound.

종종, 전자 악기는 매우 많은 음(note)을 발생시킬 수 있는데, 모든 가능한 음을 샘플링하고 기록하는 것은 많은 메모리를 요구하므로, 소수의 음만이 저장된다.Often, electronic musical instruments can generate very many notes, so sampling and recording all possible notes requires a lot of memory, so only a few notes are stored.

그러므로, 신시사이저가 메모리에 저장된 것과 다른 주파수를 갖는 음 또는 사운드를 만들도록 요구된다면, 상기 신시사이저는 저장된 시퀀스들 중 하나를 사용하고, 그것을 재-샘플링하고 주파수를 변경시켜 요청된 음(tone)을 얻는 '샘플 속도 변조(sample rate conversion)'로 알려진 기술을 사용한다.Therefore, if a synthesizer is required to produce a note or sound with a different frequency than that stored in memory, the synthesizer uses one of the stored sequences, re-samples it and changes the frequency to obtain the requested tone. Use a technique known as 'sample rate conversion'.

저장된 시퀀스의 주파수를 변경시키는 것은 저장된 샘플을 여러 가지 속도로 이용함으로써 달성된다. 그것은 예를 들어, 저장된 샘플들이 악보(musical note)를 300Hz의 주파수로 나타낸다면, 모든 샘플을 차례로 이용하는 것은 상기 악보를 300Hz로 재생시키는 것을 의미한다. 다음에 저장된 샘플이 읽히기 전에 각각의 저장된 샘플이 2번 출력된다면 상기 신시사이저에 의해 재생된 음은 150Hz의 주파수를 갖을 것이다. 유사하게, 600Hz의 음이 요구된다면 저장된 샘플이 한번 걸러 읽힌다.Changing the frequency of a stored sequence is accomplished by using the stored samples at various rates. That is, for example, if stored samples represent musical notes at a frequency of 300 Hz, then using all samples in sequence means reproducing the musical notes at 300 Hz. If each stored sample is output twice before the next stored sample is read, the note reproduced by the synthesizer will have a frequency of 150 Hz. Similarly, if a 600 Hz tone is required, the stored sample is read every other time.

샘플이 신시사이저에 의해 출력되는, 속도가 일정하고 하나의 샘플 주기(각각의 저장된 샘플 사이의 시간)와 같게 되는 것이 중요하다.It is important that the rate at which the sample is output by the synthesizer is constant and equal to one sample period (the time between each stored sample).

상기 예에서, 모든 샘플을 두번 이용함으로써, 아티팩트(artefact)(왜곡)가 출력 사운드에 생길 것이다. 이런 왜곡을 극복하기 위해, 신시사이저는 저장된 샘플을 기초로 추가 샘플을 산정한다. 그러므로, 상기 150Hz 예에서, 각각의 저장된 샘플을 두번 반복하는 대신에, 신시사이저는 하나의 저장된 샘플을 출력하고 주위의 저장된 샘플을 기초로 하여 다음 샘플을 계산할 것이다. In this example, by using every sample twice, artifacts (distortions) will occur in the output sound. To overcome this distortion, the synthesizer calculates additional samples based on the stored samples. Therefore, in the 150 Hz example above, instead of repeating each stored sample twice, the synthesizer will output one stored sample and calculate the next sample based on the surrounding stored samples.

이것을 실행하기 위해, 신시사이저는 인터폴레이션 기술(interpolation technique)을 요구한다.To do this, the synthesizer requires an interpolation technique.

가장 간단한 인터폴레이션 기술은 주변 샘플 두개의 가중 평균(weighted average)을 사용한다. 그러나, 이 기술은 종종 정확하지 않고 여전히 가청 왜곡(audible distortion)을 야기한다.The simplest interpolation technique uses a weighted average of two surrounding samples. However, this technique is often inaccurate and still cause audible distortion.

최적의 인터폴레이션 알고리즘은 sin(x)/x 함수를 사용하고 무한수의 계산을 요구한다. 물론, 이것은 실용적이지 못하기 때문에 하위-최적의 알고리즘이 개발되오고 있다.The optimal interpolation algorithm uses the sin (x) / x function and requires an infinite number of calculations. Of course, this is not practical, so sub-optimal algorithms have been developed.

한가지 하위-최적의 인터폴레이션 기술은 Chapter 8 of "Applications of DSP to Audio and Acoustics" by Dana C. Massie에서 기술되는데, 상기 인터폴레이션 기술에서, 몇몇 저장된 샘플이 상기 계산(인터폴레이션에서 사용된 샘플의 수는 인터폴레이션 디그리(degree)로 알려져 있다)에서 사용된다. 인터폴레이션에서 사용되는 샘플의 수가 많아질 수록, 신시사이저의 수행 능력이 더 양호해진다.One sub-optimal interpolation technique is described in Chapter 8 of "Applications of DSP to Audio and Acoustics" by Dana C. Massie. In the interpolation technique, several stored samples are calculated in the calculation (the number of samples used in interpolation is Known as the degree). The greater the number of samples used in interpolation, the better the synthesizer's performance.

신시사이저에서, 각각의 보이스는 한개 또는 몇몇 디지털 신호 처리(DSP)를 사용하여 구현되고 DSP 시스템의 계산 능력(computational power)은 신시사이저가 만들 수 있는 보이스의 수에 대해 제한하고 또한 각각의 보이스를 위해 사용되는 인터폴레이션 디그리를 제한한다.In synthesizers, each voice is implemented using one or several digital signal processing (DSP) and the computational power of the DSP system limits the number of voices that the synthesizer can make and also uses for each voice. Limit the interpolation degree that is enabled

절사된 sin(x)/x 알고리즘처럼 하위-최적의 인터폴레이션 알고리즘을 사용할 때, 계산 복잡성(computational complexity)은 인터폴레이션 디그리로 인해 선형적으로 증가한다.When using sub-optimal interpolation algorithms, such as the truncated sin (x) / x algorithm, the computational complexity increases linearly due to the interpolation degree.

많은 상업적인 신시사이저에서, 10개의 인터폴레이션 디그리가 계산 복잡성 및 사운드 품질 사이에서 양호한 절충(trade-off)을 야기하기 때문에 종종 사용된다.In many commercial synthesizers, ten interpolation degrees are often used because they cause a good trade-off between computational complexity and sound quality.

도 1은 본 발명에 따른 사운드 신시사이저를 도시한 도면1 is a diagram illustrating a sound synthesizer according to the present invention.

도 2는 본 발명에 따른 도 1의 제어기에 의해 수행되는 방법을 도시한 도면2 illustrates a method performed by the controller of FIG. 1 in accordance with the present invention.

도 3은 본 발명에 따른 액티브 보이스의 수를 기초로 인터폴레이션 디그리를 결정하는 방식을 도시한 도면3 is a diagram illustrating a method of determining an interpolation degree based on the number of active voices according to the present invention.

도 4는 본 발명에 따른 액티브 보이스의 수를 기초로 인터폴레이션 디그리를 결정하는 대안의 방식을 도시한 도면4 illustrates an alternative way of determining interpolation degree based on the number of active voices in accordance with the present invention.

도 5는 도 1에 대한 신시사이저의 보이스를 더 자세히 도시한 도면5 illustrates in more detail the voice of the synthesizer for FIG. 1;

도 6은 본 발명에 따른 음악 신시사이저를 포함한 이동 전화기를 도시한 도면6 illustrates a mobile phone including a music synthesizer in accordance with the present invention.

이동 전화기와 같은 휴대용 장치에 MIDI 사운드 신시사이저를 구현하고, 상기 장치에 다화음 벨소리와 고 품질 사운드를 만들게 할 수 있는 것이 바람직하다. It is desirable to be able to implement a MIDI sound synthesizer in a portable device such as a mobile phone, and to be able to produce polyphonic ringtones and high quality sounds in the device.

그러나, 휴대용 장치의 계산 능력에 놓인 제한(장치에서의 비용과 이용가능한 공간과 같은)은 일반 MIDI 시스템 레벨 1(GM-1)(즉, 24개의 보이스를 갖는)에 따르고 10개 정도의 인터폴레이션 디그리를 갖는, 사운드 신시사이저를 구현하는데 충분하지 않다.However, the limitations on computing power of portable devices (such as the cost and available space on the device) are in accordance with general MIDI system level 1 (GM-1) (i.e. with 24 voices) and about 10 interpolation degrees. Is not sufficient to implement a sound synthesizer.

그러므로 본 발명은 가청 아티팩트를 최소로 유지하면서, 높은 디그리의 다화음을 갖는 신시사이저의 계산 요구를 줄이는, 사운드 신시사이즈를 제공하는 것을 추구한다. Therefore, the present invention seeks to provide a sound synthesizer that reduces the computational requirements of synthesizers with high degree of polyphony while keeping the audible artifacts to a minimum.

그러므로, 본 발명의 제 1 관점에 따라서, 다수의 저장된 샘플을 포함한 메모리 및; 다수의 액티브 보이스 각각을 위해 저장된 샘플로부터 선택된 다수의 샘플을 사용하여, 다수의 액티브 보이스 각각을 위한 출력 신호를 계산하는 수단을 포함한 신시사이저가 제공되는데; 상기 계산하는 수단에 의하여, 각각의 액티브 보이스를 위해 사용된 샘플의 수는 액티브 보이스의 수에 달려있다.Therefore, according to a first aspect of the invention, there is provided a memory comprising a plurality of stored samples; A synthesizer is provided that includes means for calculating an output signal for each of the plurality of active voices, using the plurality of samples selected from the stored samples for each of the plurality of active voices; By means of the calculating means, the number of samples used for each active voice depends on the number of active voices.

각각의 보이스는 단지 단번에 하나의 출력을 산정하는 것이 바람직하다.It is desirable for each voice to calculate only one output at a time.

계산하는 수단에 의하여, 각각의 액티브 보이스를 위해 사용된 샘플의 수는 액티브 보이스의 수가 증가함에 따라 감소되는 것이 바람직하다.By means of the calculation, the number of samples used for each active voice is preferably reduced as the number of active voices increases.

계산하는 수단에 의하여, 각각의 액티브 보이스를 위해 사용된 샘플의 수는 최대 계산 복잡성이 지나치지 않도록 액티브 보이스의 수가 증가함에 따라 감소되는 것이 바람직하다.By means of the calculation, the number of samples used for each active voice is preferably reduced as the number of active voices increases so as not to exceed the maximum computational complexity.

대안으로, 계산하는 수단에 의하여, 각각의 액티브 보이스를 위해 사용된 샘플의 수는 액티브 보이스의 수가 증가함에 따라 비-선형적으로 감소된다.Alternatively, by means of the calculation, the number of samples used for each active voice decreases non-linearly as the number of active voices increases.

메모리에 저장된 다수의 샘플은 악보의 샘플을 포함하는 것이 바람직하다. The plurality of samples stored in the memory preferably include samples of sheet music.

메모리에 저장된 다수의 샘플은 여러 가지의 전자 악기에 의해 만들어진 악보의 샘플을 포함하는 것이 바람직하다.The plurality of samples stored in the memory preferably include samples of sheet music made by various electronic musical instruments.

본 발명의 제 2 관점에 따라서, 상기 기술된 것처럼 음악 신시사이저(music synthesiser)를 포함한 휴대용 장치가 제공된다.According to a second aspect of the invention, there is provided a portable device comprising a music synthesizer as described above.

상기 휴대용 장치는 이동 전화기인 것이 바람직하다.The portable device is preferably a mobile phone.

대안으로, 휴대용 장치는 무선 호출기이다.Alternatively, the portable device is a wireless pager.

본 명세서에서 "포함하는/포함하다" 이라는 용어가 현재 언급된 특징, 통합, 단계 또는 성분을 특정하기 위해 사용될 때, 이것이 다른 특징, 통합, 단계, 성분 또는 그들의 조합을 배제하는 것이 아니라는 것이 강조되어 진다.When the term "comprising / includes" is used herein to specify a feature, integration, step, or component presently mentioned, it is emphasized that this does not exclude other features, integration, steps, components or combinations thereof. Lose.

본 발명에 대한 양호한 이해와 실시될 방법을 도시하기 위해, 참조물이 첨부된 도면을 위한 예로써 만들어질 것이다.Reference is made to the examples for the accompanying drawings in order to illustrate a good understanding of the invention and how to practice it.

도 1은 본 발명에 따른 음악 신시사이저(music synthesiser)를 도시한다. 종래에서 처럼, 신시사이저는 제어기(2), 다수의 보이스(4), 웨이브-테이블 메모리(6), 필터 테이블(8), 믹서(mixer)(10) 및 디지털-아날로그 변환 모듈(12)을 포함한다.1 shows a music synthesizer in accordance with the present invention. As conventionally, the synthesizer includes a controller 2, a plurality of voices 4, a wave-table memory 6, a filter table 8, a mixer 10 and a digital-to-analog conversion module 12. do.

신시사이저는 MIDI 프로토콜을 사용하는 웨이브-테이블 기저 신시사이저로 이하에 기술되지만, 본 발명은 두개의 저장된 샘플들 사이에 있는 샘플을 계산하도록 요구되는 어떤 웨이브-테이블 기저 신시사이저에 적합하다고 평가될 것이다. The synthesizer is described below as a wave-table based synthesizer using the MIDI protocol, but the present invention will be appreciated as suitable for any wave-table based synthesizer required to calculate a sample between two stored samples.

이하에 사용된 '샘플'이라는 용어는 단일 오디오 샘플 포인트(single audio sample point)에 관련된다는 것에 주의해야 할 것이다.It should be noted that the term 'sample' as used below relates to a single audio sample point.

신시사이저에 있는 보이스(4)의 총 수 N은 시스템의 최대 다화음을 한정한다. N이 증가함으로써, 다화음이 동시에 만들어질 사운드의 수를 증가시켜 증가한다. 일반 MIDI 시스템 레벨 1(GM-1)을 따르는 MIDI 신시사이저를 위해, N의 값이 적어도 24개가 될 것이다. 간략하게, 도 1에는 단지 세개의 보이스가 도시된다.The total number N of voices 4 in the synthesizer defines the maximum polyphony of the system. By increasing N, polyphony increases by increasing the number of sounds to be made at the same time. For MIDI synthesizers that conform to General MIDI System Level 1 (GM-1), the value of N will be at least 24. Briefly, only three voices are shown in FIG. 1.

제어기(2)는 입력(14)을 통해 데이터를 수신한다. 데이터는 음악의 한 부분 또는 특정한 일련의 사운드에 대한 MIDI 정보의 스트림을 포함할 것이다. 각각의 MIDI 파일은 신시사이저가 요구된 사운드를 발생시키기 위하여 수행해야 하는 특정한 단계를 기술하는 이벤트의 리스트를 포함할 것이다.The controller 2 receives data via input 14. The data will include a stream of MIDI information for a portion of the music or for a particular series of sounds. Each MIDI file will contain a list of events describing the specific steps the synthesizer must perform to produce the required sound.

휴대용 통신 장치내에 저장된 MIDI 파일의 경우에, 파일은 예를 들어, 연결음으로써 사용될 수 있는 음악의 짧은 부분에 대한 것일 것이다. In the case of a MIDI file stored in a portable communication device, the file would be for a short piece of music that could be used, for example, as a link tone.

요구된 사운드가 합성될 수 있도록 제어기(2)는 MIDI 데이터 스트림을 처리하고 상기 데이터의 적합한 부분을 관련이 있는 보이스(4)로 전송한다. 예를 들어, 요구된 사운드는 동시에 연주되는 몇몇 다른 악기로 구성되기 때문에, 각각의 보이스(4)가 동시에 한개의 단선율 악기 또는 다화음 악기의 한 부분을 처리할 것이다. 종종, MIDI 파일은 다음 출력을 합성하는데 있어서, 사용될 특정 보이스(4)에 연관된 명령을 포함할 것이다.The controller 2 processes the MIDI data stream and sends the appropriate portion of the data to the relevant voice 4 so that the required sound can be synthesized. For example, since the required sound consists of several different instruments played at the same time, each voice 4 will simultaneously process a portion of one monophonic or polyphonic instrument. Often, the MIDI file will contain commands associated with the particular voice 4 to be used in synthesizing the next output.

MIDI 파일의 특정한 내용에 따라, 다른 수의 보이스가 재생될 음악의 특정 부분에 의존하여, 어떤 시간에 사용될 것이다.Depending on the specific content of the MIDI file, different numbers of voices will be used at some time, depending on the particular part of the music to be played.

각각의 보이스(4)는 제어기(2), 믹서(10), 웨이브-테이블 메모리(6) 및 필터 테이블(8)에 연결된다.Each voice 4 is connected to a controller 2, a mixer 10, a wave-table memory 6 and a filter table 8.

웨이브-테이블 메모리(6)는 다수의 디지털 샘플의 시퀀스를 포함한다. 각각의 시퀀스는 예를 들어, 특정한 전자 악기를 위한 악보를 나타낼 것이다. 메모리상의 제한 때문에, 악기마다 소수의 음만이 저장될 것이다.Wave-table memory 6 includes a sequence of multiple digital samples. Each sequence will, for example, represent a score for a particular electronic musical instrument. Due to memory limitations, only a few notes will be stored per instrument.

필터 테이블(8)은 다수의 필터 값을 포함한다. 바람직한 실시예에서, 상기 값은 sinc 함수(sinc 함수가 sinc(x)/x인)를 나타낸다.The filter table 8 contains a number of filter values. In a preferred embodiment, the value represents a sinc function (where the sinc function is sinc (x) / x).

도 1에 도시되지 않지만, 웨이브 테이블 메모리(6)와 필터 테이블(8) 모두는 각각의 테이블이 샘플 주기(샘플 주기는 샘플링 속도, 즉 원음(original sound)이 샘플링되는 속도의 역으로 한정된다) 마다 한번 보다 여러번 이용되게 하는 멀티플렉서를 포함한다. 그러므로, 보이스 1에서 N개 각각은 동일한 일련의 자원을 공유할 수 있다. Although not shown in FIG. 1, both the wave table memory 6 and the filter table 8 are each limited to a sample period (the sample period is limited to the inverse of the sampling rate, that is, the rate at which the original sound is sampled). It contains a multiplexer that allows it to be used more than once each time. Therefore, each of the N in voice 1 may share the same series of resources.

종래에서 처럼, 제어기(2)에서 수신된 명령과 시스템의 인터폴레이션 디그리를 기초로 보이스(4)는 요구된 출력 샘플(16)을 만든다.As in the prior art, the voice 4 produces the required output sample 16 based on the command received at the controller 2 and the interpolation degree of the system.

종종 특정한 보이스(4)에 의해 만들어질 사운드는 저장된 샘플의 시퀀스 중 하나와 주파수에 있어서 일치하지 않는다. 그러므로, 보이스(4)는 사운드를 요구된 주파수로 만들기 위해 저장된 시퀀스의 주파수를 '시프트'해야 한다.Often the sound to be produced by a particular voice 4 does not match in frequency with one of the stored sequences of samples. Therefore, the voice 4 must 'shift' the frequency of the stored sequence to make the sound the required frequency.

예를 들어, 저장된 샘플의 시퀀스가 피아노상의 중간 C 음을 나타낸다면, 이 시퀀스는 C# 음 또는 D 음을 얻기 위해, 주파수에 있어서 시프트될 수 있다.For example, if the sequence of stored samples represents an intermediate C note on the piano, the sequence can be shifted in frequency to obtain a C # note or a D note.

요구된 사운드의 주파수는 저장된 시퀀스의 주파수의 배수로 표현될 수 있다. 이 배수는 유리수 M/L로 나타내고 위상 증가량(phase increment)으로 알려져 있다.The frequency of the required sound can be expressed as a multiple of the frequency of the stored sequence. This multiple is represented by the rational number M / L and is known as the phase increment.

그러므로 요구된 주파수가 저장된 시퀀스의 주파수의 두배라면, 위상 증가량은 2와 같을 것이다. 요구된 주파수가 저장된 시퀀스의 주파수의 반이라면 위상 증가량은 1/2과 같을 것이다. C# 음이 요구되는 예에서, 위상 증가량은 유리수에 의해 접근될 수 있는 12분의 루트 2(무리수)가 될 것이다.Therefore, if the required frequency is twice the frequency of the stored sequence, the phase increase will be equal to two. If the required frequency is half the frequency of the stored sequence, the phase increment will be equal to 1/2. In an example where C # negatives are required, the phase increase will be root 2 (bunch) of 12 minutes which can be accessed by rational numbers.

종종, 저장된 샘플의 시퀀스의 주파수가 시프트될 때, 요구된 샘플은 메모리에 저장되지 않는다. 즉, 요구된 샘플은 두개의 저장된 샘플 사이에 떨어진다. Often, when the frequency of a sequence of stored samples is shifted, the required samples are not stored in memory. In other words, the required sample falls between two stored samples.

그러므로, 보이스(4)는 웨이브-테이블 메모리(6)로부터 요구된 샘플 주위의 다수의 샘플 및 필터 테이블(8)로부터 상기 다수의 샘플과 동일한 수의 필터 계수를 검색한다. 웨이브-테이블 메모리(6)로부터 검색된 각각의 샘플은 필터 테이블(8)로부터의 적합한 필터 계수와 곱해지고, 그 후 상기 산출물은 보이스의 출력(16)을 만들기 위해 결합된다. Therefore, the voice 4 retrieves the same number of filter coefficients from the filter table 8 and the number of samples around the required sample from the wave-table memory 6. Each sample retrieved from the wave-table memory 6 is multiplied by the appropriate filter coefficients from the filter table 8, and then the outputs are combined to produce the output 16 of the voice.

웨이브-테이블 메모리(6)가 요구된 샘플을 포함하게 된다면 웨이브-테이블 메모리(6)로부터 검색된 다른 샘플은 제로 필터 계수에 의해 곱해지고 저장된 샘플이 출력되기 위해, 필터 테이블(8)의 계수가 선택된다.If the wave-table memory 6 contains the required samples, the other samples retrieved from the wave-table memory 6 are multiplied by the zero filter coefficients and the coefficients of the filter table 8 are selected so that the stored samples are output. do.

필터 테이블(8)이 sinc 함수를 나타내는 값을 포함하는 바람직한 실시예에서, sinc 함수의 주기는 샘플 주기의 두배이다.In the preferred embodiment where the filter table 8 includes a value representing the sinc function, the period of the sinc function is twice the sample period.

보이스(4) 출력(16) 각각은 믹서(10)로 송신되는데 모든 액티브 보이스(4)의 출력(16)은 결합된 출력(18)으로 결합되고, DAC 모듈(12)로 넘어간다.Each of the voice 4 outputs 16 is transmitted to the mixer 10 where the outputs 16 of all active voices 4 are combined into a combined output 18 and passed to the DAC module 12.

DAC 모듈(12)은 믹서(10)의 결합된 출력(18)을 아날로그 신호(20)로 변환하는 한개 또는 다수의 디지털-아날로그 변환기를 포함한다.The DAC module 12 includes one or more digital-to-analog converters that convert the combined output 18 of the mixer 10 into an analog signal 20.

도 2는 본 발명에 따른 도 1의 제어기(2)에 의해 수행되는 방법을 도시한다.2 shows a method performed by the controller 2 of FIG. 1 according to the invention.

단계 101에서, 제어기(2)는 MIDI 데이터 스트림을 분석하고 다음 샘플 주기동안 액티브 될 보이스(4)의 수를 결정한다. 즉, 제어기(2)는 얼마나 많은 보이스(4)가 출력(16)을 믹서(10)에 공급할지를 결정한다.In step 101, the controller 2 analyzes the MIDI data stream and determines the number of voices 4 to be active during the next sample period. That is, the controller 2 determines how many voices 4 will supply the output 16 to the mixer 10.

단계 103에서, 제어기(2)는 다음 출력(16)(인터폴레이션 디그리 ID로 알려져 있는)을 계산하는데 있어서, 각각의 보이스(4)에 의해 사용될 샘플의 수를 결정하고 적당하게 보이스(4)에게 지시한다.In step 103, the controller 2 determines the number of samples to be used by each voice 4 in calculating the next output 16 (known as the interpolation degree I D ) and sends it to the voice 4 as appropriate. Instruct.

단계 105에서, 각각의 액티브 보이스(4)는 계산에서 인터폴레이션 디그리 ID와 같은 다수의 저장된 샘플을 사용하여, 제어기(2)에서 수신된 명령을 기초로 출력(16)을 계산한다. 각각의 액티브 보이스(4)는 또한 인터폴레이션 디그리 ID와 같은 필터 계수 테이블(8)로부터의 다수의 필터 계수를 사용할 것이다.In step 105, each active voice 4 uses a number of stored samples, such as interpolation degree I D in the calculation, to calculate the output 16 based on the command received at the controller 2. Each active voice 4 will also use multiple filter coefficients from the filter coefficient table 8, such as interpolation degree I D.

상기 순서는 각각의 출력 사이클 동안 반복하는데, 즉, 상기 순서는 샘플 주기 마다 한번 반복된다.The sequence repeats for each output cycle, that is, the sequence repeats once per sample period.

도 3과 4를 참조로 기술된 발명의 실시예에서, 신시사이저는 24개의 보이스(4)를 갖고 11개의 최대 인터폴레이션 디그리를 갖는다.In the embodiment of the invention described with reference to FIGS. 3 and 4, the synthesizer has 24 voices 4 and 11 maximum interpolation degrees.

도 3은 본 발명에 따른 액티브 보이스의 수를 기초로 인터폴레이션 디그리를 결정하는 방식을 도시하는 테이블이다. 특히, 상기 테이블은 어느정도 주어진 액티브 보이스의 수에 대해, 사용될 인터폴레이션 디그리를 준다.3 is a table illustrating a method of determining an interpolation degree based on the number of active voices according to the present invention. In particular, the table gives the interpolation degree to be used for a given number of active voices.

예를 들어, 단 하나의 보이스(4)가 다음 샘플 주기 동안 액티브될 것이라고 제어기(2)가 결정한다면, 제어기(2)는 보이스(4)에게 11개의 인터폴레이션 디그리를 사용하도록 지시한다.For example, if the controller 2 determines that only one voice 4 will be active during the next sample period, the controller 2 instructs the voice 4 to use eleven interpolation degrees.

액티브 보이스(4)의 수가 증가함에 따라, 출력(16)의 계산에서 사용되는 인터폴레이션 디그리는 선형적으로 감소한다.As the number of active voices 4 increases, the interpolation degree used in the calculation of the output 16 decreases linearly.

신시사이저의 모든(24개의) 보이스(4)가 액티브이면, 제어기(2)는 4개의 인터폴레이션 디그리가 사용될 것이라고 결정한다.If all (24) voices 4 of the synthesizer are active, the controller 2 determines that four interpolation degrees will be used.

대안으로, 최대 계산 복잡성이 휴대용 장치에서 사용될 신시사이저와 같은, 신시사이저를 위해 한정된다면, 인터폴레이션 디그리는 최대 계산 복잡성이 지나치지 않도록 선택될 것이다.Alternatively, if the maximum computational complexity is limited for a synthesizer, such as a synthesizer to be used in a portable device, the interpolation degree will be chosen so that the maximum computational complexity is not excessive.

도 4는 이러한 방식을 도시한 또다른 테이블이다. 다시, 액티브 보이스(4)의 수가 증가함에 따라, 인터폴레이션 디그리는 감소한다. 그러나, 상기 변화는 선형적이지 않다. 대신, 인터폴레이션 디그리는 최대 계산 복잡성이 지나치지 않도록 계산된다.4 is another table illustrating this approach. Again, as the number of active voices 4 increases, the interpolation degree decreases. However, the change is not linear. Instead, the interpolation degree is calculated so that the maximum computational complexity is not excessive.

예를 들어, 신시사이저가 24개의 보이스, 11개의 최대 인터폴레이션 디그리를 갖고 0.5MIPS/디그리/보이스(백만 명령 초/디그리/보이스)를 소비한다면, 종래 신시사이저는 132 MIPS까지 요구할 것이다. 이 계산 능력은 이동 단말기와 같은 보통의 현행 휴대용 장치에서 사용할 수 있는 것을 훨씬 넘는다.For example, if a synthesizer has 24 voices, 11 maximum interpolation degrees and consumes 0.5 MIPS / degree / voice (million instruction seconds / degree / voice), a conventional synthesizer would require up to 132 MIPS. This computing power far exceeds that available in common current portable devices such as mobile terminals.

도 4에 도시된 방식을 사용하면, 계산 능력은 50 MIPS를 넘지 않을 것이다. 이 값은 휴대용 장치를 위해 보다 적합하다.Using the scheme shown in FIG. 4, the computational power will not exceed 50 MIPS. This value is more suitable for portable devices.

사용된 실제 방식은 신시사이저에서 가능한 계산 능력과 각각의 인터폴레이션 디그리를 구현하도록 요구된 계산 능력의 양에 의해 결정될 것이다.The actual manner used will be determined by the computational power available to the synthesizer and the amount of computational power required to implement each interpolation degree.

도 5는 도 1의 보이스를 더 자세히 도시한다. 보이스(4)는 제어기(2), 웨이브-테이블 메모리(6) 및 필터 테이블(8)과 함께 도시된다. 5 illustrates the voice of FIG. 1 in more detail. The voice 4 is shown with the controller 2, the wave-table memory 6 and the filter table 8.

프로세서(22)는 제어기(2)로부터 보이스(2)에 관련이 있는 명령을 수신한다. 명령은 보이스에 관련이 있는 MIDI 정보와 다음 출력(16)을 계산하는데 있어서, 사용될 인터폴레이션 디그리에 관련된 표시를 포함할 것이다. Processor 22 receives instructions related to voice 2 from controller 2. The command will include MIDI information related to the voice and an indication related to the interpolation degree to be used in calculating the next output 16.

제어기(2)는 다음 출력을 계산하는데 있어서 사용될 실제 인터폴레이션 디그리를 각각의 보이스(4)에 표시할 것이고 또는 대안으로, 제어기(2)는 액티브 보이스의 수를 각각의 보이스(4)에 표시할 것이고, 프로세서(22)로 하여금 적합한 인터폴레이션 디그리를 결정하게 할 것이다.The controller 2 will indicate to each voice 4 the actual interpolation degree to be used in calculating the next output, or alternatively, the controller 2 will display the number of active voices to each voice 4. The processor 22 will then determine the appropriate interpolation degree.

프로세서(22)는 위상 증가량 레지스터(phase increment register)(24), 계수기(26) 및 필터 계수 선택기(28)에 연결된다,The processor 22 is connected to a phase increment register 24, a counter 26 and a filter coefficient selector 28,

필터 계수 선택기(28)는 적합한 필터 계수를 검색하기 위해 필터 테이블(8)에 연결된다.Filter coefficient selector 28 is connected to filter table 8 to retrieve suitable filter coefficients.

필터 계수 선택기(28)는 또한 계수기(26)에 연결된다.Filter coefficient selector 28 is also connected to counter 26.

본 발명에 따라, 프로세서(22)는 다음 출력(16)을 계산하기 위해 사용될 인터폴레이션 디그리를 계수기(26)와 필터 계수 선택기(28)에 알린다.In accordance with the present invention, processor 22 informs counter 26 and filter coefficient selector 28 of the interpolation degree to be used to calculate the next output 16.

프로세서(22)는 요구된 출력(16)을 만들기 위해 위상 증가량 레지스터(24)의 값을 설정한다. 위상 증가량 레지스터(24)의 값은 M/L인데, L과 N은 정수이고 제어기(2)로부터 수신된 명령을 기초로 프로세서(22)에 의해 결정된다.The processor 22 sets the value of the phase increase register 24 to produce the required output 16. The value of the phase increase amount register 24 is M / L, where L and N are integers and are determined by the processor 22 based on the instructions received from the controller 2.

위상 증가량 값은 가산기(30)로 넘어간다. 가산기(30)는 현재 위상을 기록하는 위상 레지스터(32)에 연결된다. 가산기(30)의 출력은 정수 부분과 소수 부분을 포함한다.The phase increase amount value is passed to the adder 30. The adder 30 is connected to a phase register 32 which records the current phase. The output of the adder 30 includes an integer part and a fractional part.

위상 레지스터의 출력에 있는 정수 부분과 소수 부분 모두는 가산기(30)로 피드백 된다.Both the integer part and the fractional part at the output of the phase register are fed back to the adder 30.

위상 레지스터(32)의 출력에 있는 정수 부분은 또한 계수기(26)의 출력에 덧붙여진 제 2 가산기(34)로 넘어간다. 상기 가산기(34)의 정수 출력은 웨이브-테이블 메모리(6)에 연결되고 읽혀질 샘플을 결정한다.The integer portion at the output of the phase register 32 is also passed to a second adder 34 appended to the output of the counter 26. The integer output of the adder 34 is connected to the wave-table memory 6 and determines the sample to be read.

웨이브-테이블 메모리로부터 검색된 샘플은 곱셈-어큐뮬레이트(multiply-accumulate) 회로(36)로 넘어간다.Samples retrieved from the wave-table memory are passed to a multiply-accumulate circuit 36.

가산기(30)로 공급되는 것 외에, 위상 레지스터(32) 출력의 소수 부분은 필터 계수 선택기(28)에 공급된다.In addition to the adder 30, a fractional portion of the output of the phase register 32 is supplied to the filter coefficient selector 28.

필터 계수 선택기(28)의 출력은 곱셈-어큐뮬레이트 회로(36)로 넘어가는데, 상기 곱셈-어큐뮬레이트 회로(36)에서, 상기 출력은 웨이브-테이블 메모리(6)로부터 검색된 샘플과 결합된다.The output of the filter coefficient selector 28 is passed to a multiply-accumulate circuit 36, in which the output is combined with the samples retrieved from the wave-table memory 6. .

보이스(4)의 동작이 간단하게 기술된다.The operation of the voice 4 is briefly described.

위상 레지스터(32)의 입력이 정수값이 아닐 때, 즉 소수 부분이 영이 아닐 때, 요구된 샘플은 두개의 표로 만들어진 샘플 사이에 놓인다. 그러므로 요구된 샘플은 계산되어야 한다.When the input of the phase register 32 is not an integer value, that is, when the fractional part is not zero, the required sample is placed between two tabulated samples. Therefore the required sample must be calculated.

가산기(30)는 위상 증가량 레지스터(24)에서의 위상 증가량을 현행 위상(위상 레지스터(32)에 의해 제공되는)에 더하기 위해 샘플 주기 마다 한번 동작한다. The adder 30 operates once per sample period to add the phase increase amount in the phase increase amount register 24 to the current phase (provided by the phase register 32).

위상 레지스터(32) 출력의 정수 부분은 요구된 샘플 전에 이미 저장된 샘플을 포함하는 웨이브-테이블 메모리 주소를 나타낸다. 요구된 샘플을 계산하기 위하여, ID와 같은 다수의 샘플이 웨이브-테이블 메모리(6)로부터 읽힌다.The integer portion of the phase register 32 output represents the wave-table memory address containing the sample already stored before the required sample. In order to calculate the required sample, a number of samples, such as I D , are read from the wave-table memory 6.

계수기(26)는 요구된 샘플의 주위에서 ID 샘플을 선택할 때마다 1씩 증가한다. 그러므로 ID가 8이면, 요구된 샘플 전의 4개의 샘플이 요구된 샘플 후의 네개의 샘플과 함께 읽힌다. ID가 5이면, 요구된 샘플 전의 세개의 샘플이 요구된 샘플 후의 두개의 샘플과 함께 읽힌다. 대안으로, 요구된 샘플전의 두개의 샘플이 읽히고 요구된 샘플 후의 세개의 샘플이 읽힌다. 이 샘플들은 곱셈-어큐뮬레이트 회로(36)로 넘어간다.Counter 26 increments by 1 each time an I D sample is selected around the required sample. Therefore, if I D is 8, 4 samples before the required sample are read with 4 samples after the required sample. If I D is 5, three samples before the required sample are read with two samples after the required sample. Alternatively, two samples before the required sample are read and three samples after the required sample are read. These samples are passed to the multiply-accumulate circuit 36.

계수기가 각각의 샘플 주기 때마다 자신의 초기 값에서 자신의 마지막 값까지 동작한다는 것에 주의해야 할 것이다.Note that the counter runs from its initial value to its last value for each sample period.

필터 계수 선택기(28)는 위상 레지스터 출력의 소수 부분과 인터폴레이션 디그리에 따라 필터 테이블(8)로부터 적합한 필터 계수를 얻는다. 필터 계수 선택기(28)는 필터 테이블(8)로부터 ID 계수를 얻기 위해 계수기(26)에 의해 제어된다.Filter coefficient selector 28 obtains suitable filter coefficients from filter table 8 according to the interpolation degree with the fractional portion of the phase register output. Filter coefficient selector 28 is controlled by counter 26 to obtain an I D coefficient from filter table 8.

필터 계수(44)가 필터 테이블(8)로부터 얻어지자마자, 계수기(26)로부터 수신된 입력이 곱셈-어큐뮬레이트 회로(36)로 필터 계수를 넘겨주기 위해 사용된다. 여기서, 웨이브-테이블 메모리(6)로부터 얻어진 샘플은 적합한 필터 계수(44)와 곱해지고, 상기 산출물은 보이스를 위한 출력(16)을 얻기 위해 더해진다.As soon as filter coefficients 44 are obtained from filter table 8, input received from counter 26 is used to pass filter coefficients to multiply-accumulate circuit 36. Here, the sample obtained from the wave-table memory 6 is multiplied by a suitable filter coefficient 44, and the output is added to obtain an output 16 for the voice.

위상 레지스터(32)의 소수 부분이 변경됨에 따라, 필터 테이블(8)로부터 얻어진 필터 계수가 변경될 것이다.As the fractional part of the phase register 32 changes, the filter coefficient obtained from the filter table 8 will change.

액티브 보이스(4)의 수가 변경됨에 따라, 프로세서는 요구된 인터폴레이션 디그리를 계수기(26)와 필터 계수 선택기(28)에 적합하게 지시할 것이다.As the number of active voices 4 changes, the processor will instruct the counter 26 and filter coefficient selector 28 appropriately for the required interpolation degree.

도 6은 본 발명에 따른 음악 신시사이저를 포함한 이동 전화기를 도시한다. 본 발명은 이동 전화기내에 통합되어야 하는 것처럼 기술되지만 본 발명이 개인 휴대 정보 단말기(PDA), 무선 호출기, 전자 오르거나이저(electronic organiser) 또는 고 품질 다화음 사운드를 다시 만들 수 있는 바람직한 어떤 다른 장비와 같은 어떤 휴대용 장치에서도 적절한 것으로 평가될 것이다.6 illustrates a mobile phone including a music synthesizer in accordance with the present invention. Although the invention is described as being to be incorporated into a mobile phone, the invention is such as a personal digital assistant (PDA), a pager, an electronic organizer or any other desired device that can recreate high quality polyphonic sounds. Any portable device would be considered appropriate.

종래에서 처럼, 이동 전화기(46)는 안테나, 송수신기 회로(50), CPU(52), 메모리(54) 및 스피커(56)를 포함한다.As conventionally, mobile phone 46 includes an antenna, transceiver circuitry 50, CPU 52, memory 54, and speaker 56.

이동 전화기(46)는 또한 본 발명에 따른 MIDI 신시사이저(58)를 포함한다. CPU(52)는 MIDI 신시사이저(58)에 MIDI 파일을 제공한다. MIDI 파일은 메모리(54)에 저장될 것이고 또는 안테나(48)와 송수신기 회로(50)를 거쳐 네트워크에서 다운로드될 것이다.Mobile phone 46 also includes a MIDI synthesizer 58 in accordance with the present invention. CPU 52 provides MIDI files to MIDI synthesizer 58. The MIDI file will be stored in memory 54 or downloaded from the network via antenna 48 and transceiver circuitry 50.

그러므로 가청 아티팩트가 최소화되도록 보장되면서, 높은 다화음의 디그리를 포함한 신시사이저의 계산 요구를 줄이는 사운드 신시사이저가 기술된다. Thus, a sound synthesizer is described that reduces the computational requirements of the synthesizer, including a high polyphony degree, while ensuring that audible artifacts are minimized.

Claims (16)

신시사이저에 있어서,In the synthesizer, 다수의 저장된 샘플을 포함한 메모리 및;A memory comprising a plurality of stored samples; 다수의 액티브 보이스 각각을 위해 저장된 샘플로부터 선택된 다수의 샘플을 사용하여, 상기 다수의 액티브 보이스 각각을 위한 출력 신호를 계산하는 수단을 포함하는데,Means for calculating an output signal for each of the plurality of active voices, using a plurality of samples selected from the stored samples for each of the plurality of active voices, 상기 계산하는 수단에 의하여, 각각의 액티브 보이스를 위해 사용된 샘플의 수는 액티브 보이스의 수에 달려있는 것을 특징으로 하는 신시사이저.By means of said calculating means, the number of samples used for each active voice depends on the number of active voices. 제 1 항에 있어서,The method of claim 1, 상기 계산하는 수단에 의하여, 각각의 액티브 보이스를 위해 사용된 샘플의 수는 액티브 보이스의 수가 증가함에 따라 감소되는 것을 특징으로 하는 신시사이저.By the means for calculating, the number of samples used for each active voice decreases as the number of active voices increases. 제 2 항에 있어서,The method of claim 2, 상기 계산하는 수단에 의하여, 각각의 액티브 보이스를 위해 사용되는 샘플의 수는 최대 계산 복잡성이 지나치지 않도록, 액티브 보이스의 수가 증가함에 따라 감소되는 것을 특징으로 하는 신시사이저.By the means for calculating, the number of samples used for each active voice is reduced as the number of active voices increases so that the maximum computational complexity is not excessive. 제 1 항에 있어서,The method of claim 1, 상기 계산하는 수단에 의하여, 각각의 액티브 보이스를 위해 사용되는 샘플의 수는 액티브 보이스의 수가 증가함에 따라 비-선형적으로 감소되는 것을 특징으로 하는 신시사이저.By means of said calculating means, the number of samples used for each active voice decreases non-linearly as the number of active voices increases. 제 1 항 내지 제 4 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 4, 상기 메모리에 저장된 상기 다수의 샘플은 악보의 샘플을 포함하는 것을 특징으로 하는 신시사이저.And said plurality of samples stored in said memory comprises samples of sheet music. 제 5 항에 있어서,The method of claim 5, 상기 메모리에 저장된 상기 다수의 샘플은 여러 가지 전자 악기에 의해 만들어진 악보의 샘플을 포함하는 것을 특징으로 하는 신시사이저.And said plurality of samples stored in said memory comprises samples of sheet music produced by various electronic musical instruments. 제 1 항 내지 제 6 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 6, 상기 출력 신호를 계산하는 수단은 필터 테이블을 포함하는 것을 특징으로 하는 신시사이저.Means for calculating the output signal comprises a filter table. 제 7 항에 있어서,The method of claim 7, wherein 상기 필터 테이블은 sinc 함수의 계수를 포함하는 것을 특징으로 하는 신시사이저.The filter table comprises a coefficient of the sinc function. 제 1 항 내지 제 8 항 중 어느 한 항에 있어서,The method according to any one of claims 1 to 8, 상기 신시사이저는 MIDI 음악 신시사이저인 것을 특징으로 하는 신시사이저.The synthesizer is a MIDI music synthesizer, characterized in that. 휴대용 장치에 있어서,In a portable device, 제 1 항 내지 제 9 항 중 어느 한 항에 따라 청구되는 것과 같은 신시사이저를 포함하는 것을 특징으로 하는 휴대용 장치.10. A portable device comprising a synthesizer as claimed in claim 1. 제 10 항에 있어서,The method of claim 10, 상기 휴대용 장치는 이동 전화기인 것을 특징으로 하는 휴대용 장치.And the portable device is a mobile phone. 제 10 항에 있어서,The method of claim 10, 상기 휴대용 장치는 무선 호출기인 것을 특징으로 하는 휴대용 장치.And the portable device is a pager. 메모리에 저장된 다수의 샘플을 포함한 신시사이저를 동작시키는 방법에 있어서,In a method of operating a synthesizer comprising a plurality of samples stored in a memory, 사운드를 만드는데 있어서, 액티브될 보이스의 수를 결정하는 단계;Determining a number of voices to be active in producing a sound; 액티브될 보이스의 수를 기초로, 상기 메모리에 저장된 상기 다수의 샘플로부터 선택될 샘플의 수로 한정된, 인터폴레이션 디그리를 결정하는 단계; 및Determining an interpolation degree, based on the number of voices to be activated, limited to the number of samples to be selected from the plurality of samples stored in the memory; And 상기 인터폴레이션 디그리에 의해 결정된 상기 저장된 샘플의 수를 사용하여, 각각의 액티브 보이스를 위한 출력을 계산하는 단계를 포함하는 것을 특징으로 하는 메모리에 저장된 다수의 샘플을 포함한 신시사이저를 동작시키는 방법.Calculating the output for each active voice using the number of stored samples determined by the interpolation degree. 제 13항에 있어서,The method of claim 13, 상기 인터폴레이션 디그리는 액티브 보이스의 수가 증가함에 따라 감소되는 것을 특징으로 하는 메모리에 저장된 다수의 샘플을 포함한 신시사이저를 동작시키는 방법.And said interpolation degree decreases with increasing number of active voices. 제 13 항에 있어서,The method of claim 13, 상기 인터폴레이션 디그리는 최대 계산 복잡성이 지나치지 않도록 액티브 보이스의 수가 증가함에 따라 감소되는 것을 특징으로 하는 메모리에 저장된 다수의 샘플을 포함한 신시사이저를 동작시키는 방법.And said interpolation degree decreases as the number of active voices increases so as not to exceed the maximum computational complexity. 제 13 항에 있어서,The method of claim 13, 상기 인터폴레이션 디그리는 액티브 보이스의 수가 증가함에 따라 비-선형적으로 감소되는 것을 특징으로 하는 메모리에 저장된 다수의 샘플을 포함한 신시사이저를 동작시키는 방법.And said interpolation degree is non-linearly reduced as the number of active voices increases.
KR1020057003466A 2002-09-02 2003-08-11 Sound synthesiser KR101011286B1 (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP02256081A EP1394768B1 (en) 2002-09-02 2002-09-02 Sound synthesiser
EP02256081.7 2002-09-02
US40974402P 2002-09-10 2002-09-10
US60/409,744 2002-09-10

Publications (2)

Publication Number Publication Date
KR20050057040A true KR20050057040A (en) 2005-06-16
KR101011286B1 KR101011286B1 (en) 2011-01-28

Family

ID=31979850

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020057003466A KR101011286B1 (en) 2002-09-02 2003-08-11 Sound synthesiser

Country Status (5)

Country Link
US (1) US20060005690A1 (en)
KR (1) KR101011286B1 (en)
CN (1) CN1679081A (en)
AU (1) AU2003255418A1 (en)
WO (1) WO2004021331A1 (en)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI227010B (en) * 2003-05-23 2005-01-21 Mediatek Inc Wavetable audio synthesis system
EP1571647A1 (en) * 2004-02-26 2005-09-07 Lg Electronics Inc. Apparatus and method for processing bell sound
TWI238638B (en) * 2004-04-22 2005-08-21 Benq Corp Method and device for multimedia processing
WO2006085243A2 (en) 2005-02-10 2006-08-17 Koninklijke Philips Electronics N.V. Sound synthesis
US7613287B1 (en) 2005-11-15 2009-11-03 TellMe Networks Method and apparatus for providing ringback tones
US7807914B2 (en) * 2007-03-22 2010-10-05 Qualcomm Incorporated Waveform fetch unit for processing audio files
US7921316B2 (en) * 2007-09-11 2011-04-05 International Business Machines Corporation Cluster-wide system clock in a multi-tiered full-graph interconnect architecture
CN104257821B (en) * 2014-09-19 2016-09-07 王爱实 A kind of traditional Chinese powder medicine for treating cold and damp stagnation type hyperplastic spondylitis

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2040537B (en) * 1978-12-11 1983-06-15 Microskill Ltd Digital electronic musical instrument
US5319151A (en) * 1988-12-29 1994-06-07 Casio Computer Co., Ltd. Data processing apparatus outputting waveform data in a certain interval
EP0750290B1 (en) * 1995-06-19 2002-09-25 Yamaha Corporation Method and device for forming a tone waveform by combined use of different waveform sample forming resolutions
JP3267106B2 (en) * 1995-07-05 2002-03-18 ヤマハ株式会社 Musical tone waveform generation method
US5814750A (en) * 1995-11-09 1998-09-29 Chromatic Research, Inc. Method for varying the pitch of a musical tone produced through playback of a stored waveform
JP3152156B2 (en) * 1996-09-20 2001-04-03 ヤマハ株式会社 Music sound generation system, music sound generation apparatus and music sound generation method
FR2808370A1 (en) * 2000-04-28 2001-11-02 Cit Alcatel METHOD OF COMPRESSING A MIDI FILE
DE60106680T2 (en) * 2000-05-30 2006-02-09 Yamaha Corp., Hamamatsu Waveform signal generation with synthesizing of pseudo-deep tones
US6414229B1 (en) * 2000-12-14 2002-07-02 Samgo Innovations Inc. Portable electronic ear-training apparatus and method therefor
JP2004527005A (en) * 2001-05-16 2004-09-02 テレフオンアクチーボラゲット エル エム エリクソン(パブル) Method for eliminating aliasing in a waveform table synthesizer
US20030121400A1 (en) * 2001-12-27 2003-07-03 Intel Corporation Portable hand-held music synthesizer method and apparatus

Also Published As

Publication number Publication date
KR101011286B1 (en) 2011-01-28
WO2004021331A1 (en) 2004-03-11
AU2003255418A1 (en) 2004-03-19
US20060005690A1 (en) 2006-01-12
CN1679081A (en) 2005-10-05

Similar Documents

Publication Publication Date Title
US5744739A (en) Wavetable synthesizer and operating method using a variable sampling rate approximation
JP2008112183A (en) Reduced-memory reverberation simulator in sound synthesizer
US6900381B2 (en) Method for removing aliasing in wave table based synthesizers
JPH0816169A (en) Sound formation, sound formation device and sound formation controller
JPH0546168A (en) Method of applying filter to output from digital -filter and digital-music-synthesizer in midi synthesizer
KR20010039504A (en) A period forcing filter for preprocessing sound samples for usage in a wavetable synthesizer
KR101011286B1 (en) Sound synthesiser
US5824936A (en) Apparatus and method for approximating an exponential decay in a sound synthesizer
US7230176B2 (en) Method and apparatus to modify pitch estimation function in acoustic signal musical note pitch extraction
JP4939753B2 (en) Sound synthesizer
JPH0486796A (en) Musical tone generator
US5324882A (en) Tone generating apparatus producing smoothly linked waveforms
GB2294799A (en) Sound generating apparatus having small capacity wave form memories
US7151215B2 (en) Waveform adjusting system for music file
Huovilainen Design of a scalable polyphony-MIDI synthesizer for a low cost DSP
JP2606006B2 (en) Noise sound generator
JP2534636B2 (en) Music synthesizer
JP3405170B2 (en) Music synthesizer
JP3727110B2 (en) Music synthesizer
JP2007034099A (en) Musical sound synthesizer
JP2678970B2 (en) Tone generator
JP3399340B2 (en) Music synthesis device and recording medium storing music synthesis program
JP2566697C (en)
JPH02108099A (en) Waveform interpolating device
JPH10198381A (en) Music sound creating device

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20140107

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20150107

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20160111

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170102

Year of fee payment: 7

LAPS Lapse due to unpaid annual fee