JP4939753B2 - Sound synthesizer - Google Patents
Sound synthesizer Download PDFInfo
- Publication number
- JP4939753B2 JP4939753B2 JP2004532083A JP2004532083A JP4939753B2 JP 4939753 B2 JP4939753 B2 JP 4939753B2 JP 2004532083 A JP2004532083 A JP 2004532083A JP 2004532083 A JP2004532083 A JP 2004532083A JP 4939753 B2 JP4939753 B2 JP 4939753B2
- Authority
- JP
- Japan
- Prior art keywords
- synthesizer
- active
- voices
- stored
- sample points
- Prior art date
- Legal status (The legal status 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 status listed.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 claims description 17
- 230000007423 decrease Effects 0.000 claims description 11
- 230000006870 function Effects 0.000 claims description 5
- 238000004364 calculation method Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000009825 accumulation Methods 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
-
- 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
-
- 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
- G10H2230/00—General physical, ergonomic or hardware implementation of electrophonic musical tools or instruments, e.g. shape or architecture
- G10H2230/025—Computing or signal processing architecture features
- G10H2230/041—Processor 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
-
- 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/171—Transmission of musical instrument data, control or status information; Transmission, remote access or control of music data for electrophonic musical instruments
- G10H2240/201—Physical 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/241—Telephone transmission, i.e. using twisted pair telephone lines or any type of telephone network
- G10H2240/251—Mobile telephone transmission, i.e. transmitting, accessing or controlling music data wirelessly via a wireless or mobile telephone receiver, analogue or digital, e.g. DECT, GSM, UMTS
-
- 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/621—Waveform interpolation
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- Electrophonic Musical Instruments (AREA)
- Reverberation, Karaoke And Other Acoustics (AREA)
- Stereophonic System (AREA)
- Medicines Containing Plant Substances (AREA)
- Preparation Of Compounds By Using Micro-Organisms (AREA)
Abstract
Description
本発明はサウンド・シンセサイザに関し、特に、携帯機器などのような計算資源が限定された装置に使用するサウンド・シンセサイザに関する。 The present invention relates to a sound synthesizer, and more particularly to a sound synthesizer for use in a device with limited computational resources such as a portable device.
現代のサウンド・シンセサイザは、多数のボイス(voice)を有する必要がある。あるシンセサイザが有するボイス(voice)の数は、同時に発生できる音(sound)の数として定義される。 Modern sound synthesizers need to have a large number of voices. The number of voices that a synthesizer has is defined as the number of sounds that can be generated simultaneously.
必要な一組の音をどのように電子サウンド・シンセサイザが再生するかを定義する、いくつかの異なったプロトコルと規格が存在する。 There are several different protocols and standards that define how an electronic sound synthesizer plays the required set of sounds.
電子装置内で音を発生させる一つの一般的な方法は、MIDI(ミディ)(楽器用ディジタル・インタフェース)プロトコルを使用することである。ディジタル・オーディオ・ファイルと異なって、(コンパクト・ディスク上に見出されるように)MIDIファイルは、特定の音の項目を含んでいない。代わりに、正しい音を再現するためにある装置が実行しなければならないイベントのリストを含んでいる。サンプルされた音がシンセサイザに記憶されていて、MIDIファイル内に含まれる命令によりアクセスされる。従って、MIDIファイルはディジタル・オーディオ・ファイルよりも遥かに小さくて、記憶域メモリが限定されている環境に適している。 One common method of generating sound within an electronic device is to use a MIDI (digital interface for musical instruments) protocol. Unlike digital audio files, MIDI files (as found on compact discs) do not contain specific sound items. Instead, it contains a list of events that a device must perform in order to reproduce the correct sound. Sampled sounds are stored in the synthesizer and accessed by instructions contained within the MIDI file. Therefore, MIDI files are much smaller than digital audio files and are suitable for environments where storage memory is limited.
ジェネラル・ミディ・システム・レベル1(GM−1)において、一つのシンセサイザは少なくとも24のボイス(voice)を有する必要がある。 In General Midi System Level 1 (GM-1), one synthesizer needs to have at least 24 voices.
MIDIシンセサイザのようにあらかじめ録音された音から音を発生させるシンセサイザは、ウェーブ・テーブル(wave−table)に基づくシンセサイザとして知られている。そうしたシンセサイザにおいては、ある楽器の一つまたはそれ以上のあらかじめ録音されたシーケンスが、ウェーブ・テーブル内に記憶されている。各シーケンスは、その音を再現するために演奏される一連のサンプルを含んでいる。 A synthesizer that generates sound from pre-recorded sounds such as a MIDI synthesizer is known as a synthesizer based on a wave table. In such a synthesizer, one or more pre-recorded sequences of a musical instrument are stored in a wave table. Each sequence contains a series of samples that are played to reproduce the sound.
楽器によっては、多数のノート(note)を発生でき、全てのあり得るノートをサンプルして録音するには大量のメモリが必要なので、少数のノートだけが記憶される。 Depending on the instrument, a large number of notes can be generated, and since a large amount of memory is required to sample and record all possible notes, only a small number of notes are stored.
従って、メモリ内に記憶された周波数とは異なる周波数を有するノートまたは音を生成することをシンセサイザが要求された場合、このシンセサイザは記憶されたシーケンスの一つおよび「サンプル・レート変換」と呼ばれる技法を使用してそれを、再サンプルして周波数を変更し、要求されたトーン(tone)を得る。 Thus, if a synthesizer is required to generate a note or sound that has a different frequency than the frequency stored in memory, the synthesizer uses one of the stored sequences and a technique called “sample rate conversion”. And resample it to change the frequency to get the requested tone.
記憶されたシーケンスの周波数の変更は、記憶されたサンプルを異なった速度でアクセスすることにより達成される。すなわち、たとえば、記憶されたサンプルが、300Hzの周波数でミュージカル・ノート(musical note)を表現するならば、順次、全てのサンプルにアクセスすることによって、300Hzでこのミュージカル・ノートを再生することができる。次の記憶されたサンプルが読み出される前に、記憶された各サンプルが2度出力されれば、シンセサイザにより再生されるこのミュージカル・ノートは、150Hzの周波数を有する。同様に、600Hzのミュージカル・ノートが必要ならば一つおきの記憶されたサンプルが読み出される。 Changing the frequency of the stored sequence is accomplished by accessing the stored samples at different rates. That is, for example, if a stored sample represents a musical note at a frequency of 300 Hz, the musical note can be reproduced at 300 Hz by sequentially accessing all samples. . If each stored sample is output twice before the next stored sample is read, this musical note played by the synthesizer will have a frequency of 150 Hz. Similarly, every other stored sample is read if a 600 Hz musical note is required.
シンセサイザによりサンプルが出力される速度は一定であって、一つのサンプル周期(sample period)(記憶された各サンプルの間の時間)に等しいことが重要である。 It is important that the rate at which samples are output by the synthesizer is constant and equal to one sample period (the time between each stored sample).
上の例において、全てのサンプルを2度アクセスすることにより、アーティファクト(artefact)(ひずみ(distortion))が出力音に導入される。このひずみを克服するために、シンセサイザは記憶されたサンプルに基づいて、追加のサンプルを計算する。したがって上記の150Hzの例において、記憶された各サンプルを2度繰り返す代わりに、シンセサイザは記憶された一つのサンプルを出力して、記憶された周囲のサンプルに基づいて次のサンプルを計算する。 In the example above, artifacts (distortion) are introduced into the output sound by accessing all samples twice. To overcome this distortion, the synthesizer calculates additional samples based on the stored samples. Thus, in the 150 Hz example above, instead of repeating each stored sample twice, the synthesizer outputs one stored sample and calculates the next sample based on the stored surrounding samples.
これを実行するためにシンセサイザは補間技法を必要とする。 To do this, the synthesizer requires an interpolation technique.
最も簡単な補間技法は、二つの周囲サンプルの重み付き平均を使用する。しかしながら、この技法はしばしば不正確であって、依然として、音声のひずみ(audible distortion)をもたらす。 The simplest interpolation technique uses a weighted average of two surrounding samples. However, this technique is often inaccurate and still results in audible distortion.
最適補間アルゴリズムは、sin(x)/x関数を使用し、無限の計算回数を必要とする。もちろんこれは非実際的であって、したがって準最適アルゴリズムが開発された。 The optimal interpolation algorithm uses a sin (x) / x function and requires an infinite number of calculations. Of course this is impractical and therefore a suboptimal algorithm has been developed.
一つの準最適補間技法は、Dana C.Massieによる「オーディオおよびアコースティックスへのDSPの応用(Applications of DSP to Audio and Acoustics)」の第8章に述べられており、ここでは、いくつかの記憶されたサンプルが計算中に使用されている(補間に使用されるサンプルの数は、補間次数(interpolation degree)として知られる)。補間に使用されるサンプルの数が多ければ多いほど、このシンセサイザの性能が良くなる。
One suboptimal interpolation technique is Dana C. et al. As described in
シンセサイザにおいては、各ボイスは一つまたはいくつかのディジタル信号プロセッサ(DSP)を使用して実施され、このDSPシステムの計算能力はシンセサイザが生成できるボイスの数に制限を課し、また各ボイスについて使用される補間次数を制限する。 In a synthesizer, each voice is implemented using one or several digital signal processors (DSPs), and the computing power of this DSP system places a limit on the number of voices that a synthesizer can generate, and for each voice Limit the interpolation order used.
トランケートされたsin(x)/xアルゴリズムのような準最適補間アルゴリズムを使用するとき、計算の複雑さは補間次数と共に線形的に増大する。 When using a sub-optimal interpolation algorithm, such as the truncated sin (x) / x algorithm, the computational complexity increases linearly with the interpolation order.
多くの商用シンセサイザにおいて補間次数10がしばしば使用されるが、その理由は、これが計算の複雑性と音質の間の良好なトレード・オフをもたらすからである。
携帯電話(mobile phone)などの携帯機器内にMIDIサウンド・シンセサイザを実装できて、これらの装置がポリフォニーの呼出音と一層高い音質を生成できるようにすることが望ましい。 It is desirable to be able to implement a MIDI sound synthesizer in a portable device such as a mobile phone so that these devices can generate polyphony ringing and higher sound quality.
しかしながら、携帯機器における計算能力に置かれる制限(コストおよび装置内で利用できる空間など)は、ジェネラル・ミディ・システム・レベル1(GM−1)に準拠(すなわち、24ボイスを有し)した10前後の補間次数を有するサウンド・シンセサイザの実装を可能にするのに充分ではない。 However, limitations placed on computing power in portable devices (such as cost and space available in the device) are compliant with General Midi System Level 1 (GM-1) (ie have 24 voices) 10 It is not enough to allow implementation of a sound synthesizer with front and rear interpolation orders.
したがって、本発明は、高次のポリフォニーを有するシンセサイザの計算要件を減少させると共に、不自然な可聴音(audible artefact)を最少に抑えるサウンド・シンセサイザを提供することを目的とする。 Accordingly, it is an object of the present invention to provide a sound synthesizer that reduces the computational requirements of a synthesizer with higher order polyphony and minimizes audible artefacts.
したがって、本発明の一つの態様によれば、複数の記憶されたサンプルを含むメモリと、複数のアクティブ・ボイスの各々について出力信号を計算する手段であって、上記アクティブ・ボイスの各々について上記記憶されたサンプルから選択された複数のサンプルを使用する上記計算する手段とを含み、上記計算する手段により各アクティブ・ボイスについて使用される上記サンプルの数は、上記アクティブ・ボイスの数に依存するシンセサイザが提供される。 Thus, according to one aspect of the present invention, a memory including a plurality of stored samples and means for calculating an output signal for each of a plurality of active voices, wherein the storage for each of the active voices Using the plurality of samples selected from the selected samples, and the number of samples used for each active voice by the means for calculating depends on the number of active voices Is provided.
好ましくは、各ボイスは一度に一つの出力を計算できる。 Preferably, each voice can calculate one output at a time.
好ましくは、上記計算する手段により各アクティブ・ボイスについて使用される上記サンプルの数は、上記アクティブ・ボイスの数が増加するにつれて減少する。 Preferably, the number of samples used for each active voice by the calculating means decreases as the number of active voices increases.
好ましくは、上記計算する手段により各アクティブ・ボイスについて使用される上記サンプルの数は、上記アクティブ・ボイスが増加するにつれて減少し、これにより、計算の複雑性最大が限度を超えないようにする。 Preferably, the number of samples used for each active voice by the means for calculating decreases as the active voice increases so that the maximum computational complexity does not exceed the limit.
別の態様として、上記計算する手段により各アクティブ・ボイスについて使用される上記サンプルの数は、上記アクティブ・ボイスの数が増加するにつれて、非線形的に減少する。 Alternatively, the number of samples used for each active voice by the calculating means decreases non-linearly as the number of active voices increases.
好ましくは、メモリに記憶された上記複数のサンプルはミュージカル・ノートのサンプルを含む。 Preferably, the plurality of samples stored in the memory include musical note samples.
好ましくは、メモリに記憶された上記複数のサンプルは、種々の楽器により生成されたミュージカル・ノートのサンプルを含む。 Preferably, the plurality of samples stored in the memory include musical note samples generated by various musical instruments.
本発明の第2の面によれば、上記のようなミュージック・シンセサイザを含む携帯機器が提供される。 According to the second aspect of the present invention, there is provided a portable device including the music synthesizer as described above.
好ましくは、上記携帯機器が携帯電話(mobile phone)である。 Preferably, the mobile device is a mobile phone.
別の態様として、上記携帯機器がポケットベル(pager)である。 In another aspect, the portable device is a pager.
注意すべきは、「含む/含み」という用語は、本明細書で使用される場合は、述べられた機能、整数、ステップまたは構成要素の存在を規定すると解釈すべきであるが、一つまたはそれ以上の他の機能、整数、ステップ、構成要素またはそれらのグループの存在または追加を除外しないことである。 It should be noted that the term “include / include”, as used herein, should be interpreted as defining the presence of the stated function, integer, step or component, but one or It does not exclude the presence or addition of any other functions, integers, steps, components or groups thereof.
本発明をより理解して実施するために、添付の図面を参照しながら説明する。
図1は、本発明によるミュージック・シンセサイザを示す。従来と同様に、このシンセサイザは、コントローラ2、複数のボイス4、ウェーブ・テーブル・メモリ6、フィルタ・テーブル8、ミキサー10およびアナログ・ディジタル変換モジュール12を含む。
For a better understanding and implementation of the present invention, reference is made to the accompanying drawings.
FIG. 1 shows a music synthesizer according to the invention. As is conventional, the synthesizer includes a
以下本明細書では、このシンセサイザをMIDIプロトコルを使用するウェーブ・テーブルに基づくシンセサイザとして説明するが、二つの記憶されたサンプルの間にある一つのサンプルを計算する必要がある全てのウェーブ・テーブルに基づくシンセサイザへ、本発明が適用できることを理解すべきである。 In the following, this synthesizer will be described as a synthesizer based on a wave table using the MIDI protocol, but for all wave tables that need to calculate one sample between two stored samples. It should be understood that the present invention can be applied to a synthesizer based thereon.
注意すべきは、本発明で使用する「サンプル」という用語は、単一のオーディオ・サンプル・ポイントのことを言うことである。 Note that the term “sample” as used in the present invention refers to a single audio sample point.
このシンセサイザ内のボイス4の総数Nは、このシステムの最大ポリフォニーを定義する。Nが増加するにつれてポリフォニーが増加して、より多くの数の音を同時に生成できるようになる。ジェネラル・ミディ・システム・レベル1(GM−1)に対応する一つのMIDIシンセサイザについて、Nの値は少なくとも24である。理解しやすくするため、3つのボイスだけを使用した例を図1に示す。
The total number N of
コントローラ2は入力14を通じてデータを受信する。このデータは、一つの音楽または音の特定のセットに関するMIDI情報のストリームを含む。各MIDIファイルは、要求された音を発生させるためにシンセサイザが実行しなければならない特定ステップを記述しているイベントのリストを含む。
携帯通信機器内にMIDIファイルが記憶されている場合は、ファイルは、たとえば呼出音に使用できる短い音楽に関係してもよい。 If a MIDI file is stored in the portable communication device, the file may relate to short music that can be used for ringing, for example.
コントローラ2は、MIDIデータ・ストリームを処理して、このデータの適当な部分を関係するボイス4へ向けて、これにより要求された音を合成できるようにする。たとえば、要求された音は同時に演奏中のいくつかの異なった楽器を含んでもよく、したがって各ボイス4は同時に一つのモノフォニー楽器またはポリフォニー楽器の一部分を処理する。しばしば、MIDIファイルは次の出力を合成するのに使用される特定のボイス4に関する命令を含む。
The
MIDIファイルの特定の内容に応じて異なった数のボイスが同時に使用されることがあるが、これは、再生される音楽の特定の部分によって異なる。 Depending on the specific content of the MIDI file, different numbers of voices may be used simultaneously, depending on the specific part of the music being played.
各ボイス4はコントローラ2、ミキサ10、ウェーブ・テーブル・メモリ6およびフィルタ・テーブル8へ接続されている。
Each
ウェーブ・テーブル・メモリ6は、ディジタル・サンプルのいくつかのシーケンスを含む。各シーケンスは、たとえば特定楽器のミュージカル・ノートを表現する。メモリの制限により、楽器ごとに少数のノートを記憶してもよい。
The
フィルタ・テーブル8は、一つのフィルタについていくつかの値を含む。好ましい実施例において、この値はシンク関数(sinc function)を表す(ここで、シンク関数は、(sin(x))/xである)。 The filter table 8 contains several values for one filter. In the preferred embodiment, this value represents a sinc function (where the sinc function is (sin (x)) / x).
図1には図示しないが、ウェーブ・テーブル・メモリ6とフィルタ・テーブル8との両方は一つのマルチプレクサを有し、これは各テーブルをサンプル周期ごとに一回以上アクセスさせる(サンプル周期は、サンプル・レートの逆数として、すなわち元の音がサンプルされた速度として定義される)。したがって、ボイス1ないしボイスnの各々は、同一セットの資源を共有できる。
Although not shown in FIG. 1, both the
従来と同様にボイス4は、コントローラ2から受信する命令およびシステムの補間次数に基づいて要求された出力サンプル16を生成する。
As before, the
特定のボイス4により生成される音が、記憶されたサンプルのシーケンスの一つの周波数と対応しないことがよくある。したがって、要求された周波数における音を生成するためには、ボイス4が記憶されたシーケンスを周波数的にシフトしなければならない。
Often, the sound produced by a
たとえば記憶されたサンプルのシーケンスがピアノ上のミドルCノートを表現する場合は、このシーケンスを周波数的にシフトしてC#ノートまたはDノートを得ることができる。 For example, if the sequence of stored samples represents a middle C note on a piano, this sequence can be shifted in frequency to obtain a C # note or a D note.
要求された音の周波数は、記憶されたシーケンスの周波数の倍数として表現できる。この倍数は有理数M/Lと書かれ、位相インクリメントとして知られる。 The requested sound frequency can be expressed as a multiple of the frequency of the stored sequence. This multiple is written as rational number M / L and is known as phase increment.
したがって、要求された周波数が記憶された周波数の2倍であれば、位相インクリメントは2に等しい。要求された周波数が記憶されたシーケンスの周波数の半分であれば、位相インクリメントは位1/2に等しい。C#ノートが要求される例では、位相インクリメントは2の12乗根(無理数)であり、これは有理数により近似できる。
Thus, if the requested frequency is twice the stored frequency, the phase increment is equal to 2. If the requested frequency is half the frequency of the stored sequence, the phase increment is equal to the
記憶されたサンプルのシーケンスを周波数的にシフトされたときに、要求されたサンプルがメモリ内に記憶されていない場合がよくある。つまり、要求されたサンプルが二つの記憶されたサンプルの間にある。 Often, the requested sample is not stored in memory when the stored sequence of samples is shifted in frequency. That is, the requested sample is between two stored samples.
したがって、ボイス4はウェーブ・テーブル・メモリ6から要求されたサンプルの周辺のいくつかのサンプル、およびフィルタ・テーブル8から同数のフィルタ係数を検索する。その次に、ウェーブ・テーブル・メモリ6から検索された各サンプルは、フィルタ・テーブル8からの適当なフィルタ係数により乗算されて、その積が組み合わされて、ボイス16の出力を生成する。
Therefore,
フィルタ・テーブル8の係数が選択されて、これによりウェーブ・テーブル・メモリ6が要求されたサンプルを含む場合は、ウェーブ・テーブル・メモリ6から検索された他のサンプルがゼロ・フィルタ係数により乗算されて、記憶されたサンプルが出力される。
If the coefficients of the filter table 8 are selected so that the
シンク関数を表現する値をフィルタ・テーブル8が含む実施例において、シンク関数の周期はサンプル周期の2倍である。 In an embodiment in which the filter table 8 includes a value representing a sinc function, the period of the sinc function is twice the sample period.
ボイス4の各出力16はミキサー10へ送られ、ここで全てのアクティブ・ボイス4の出力16が組み合わされて一つの組み合わせ出力18になり、そして、DACモジュール12へ渡される。
Each
DACモジュール12は一つまたはそれ以上のディジタル・アナログ・コンバータを含み、これは、ミキサー10の組み合わせ出力18を変換して一つのアナログ信号20にする。
The
図2は、本発明による、図1のコントローラ2により実行される方法を示す。
FIG. 2 illustrates a method performed by the
ステップ101において、コントローラ2はMIDIデータ・ストリームを分析して、次のサンプル周期中にアクティブになるようにボイス4の数を決定する。つまり、コントローラ2は、ミキサー10への出力16に対していくつの異なったボイス4が寄与しているかを決定する。
In
ステップ103において、コントローラ2は、次の出力16(補間次数IDと称する)を計算するのに、各ボイス4により使用されるサンプルの数を決定して、ボイス4に適切に命令する。
In
ステップ105において、各アクティブ・ボイス4は、補間次数IDに等しい計算において、いくつかの記憶されたサンプルを使用して、コントローラ2から受信した命令に基づいて、出力16を計算する。各アクティブ・ボイス4は、また、補間次数IDに等しいフィルタ係数テーブル8から、いくつかのフィルタ係数を使用する。
In
処理は、各出力サイクルごとに繰り返す、すなわち、処理は各サンプル周期に一回ずつ繰り返される。 The process is repeated for each output cycle, i.e., the process is repeated once for each 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
図3は、本発明によりアクティブ・ボイスの数に基づいて補間次数を決定する方式を示す表である。特に、いずれか所与の数のアクティブ・ボイスについて、この表は使用される補間次数を与える。 FIG. 3 is a table showing a method for determining an interpolation order based on the number of active voices according to the present invention. In particular, for any given number of active voices, this table gives the interpolation order used.
たとえば、次のサンプル周期中に一つのボイス4だけがアクティブになるとコントローラ2が決定した場合、このコントローラ2がボイス4へ命令して11次の補間次数を使用させる。
For example, if the
アクティブ・ボイス4の数が増加するにつれて、出力16の計算に使用される補間次数が線形的な様式で減少する。
As the number of
シンセサイザの24個のボイス4が全てアクティブである場合には、コントローラ2は、4次の補間次数を使用することを決定する。
If all 24
別の実施例として、携帯機器に使用されるシンセサイザのような、シンセサイザについて最大の計算の複雑性が定義される場合は、計算の複雑性の最大が限度を超えないように補間次数が選択されてもよい。 As another example, if the maximum computational complexity is defined for a synthesizer, such as a synthesizer used in a mobile device, the interpolation order is selected so that the maximum computational complexity does not exceed the limit. May be.
図4は、そうした方式を示すもう一つの表である。ここでも、アクティブ・ボイス4の数が増加するにつれて、補間次数が減少する。しかしながら、この変化は線形的ではない。代わりに、計算の複雑性の最大が限度を超えないように、補間次数が計算される。
FIG. 4 is another table showing such a scheme. Again, as the number of
たとえば、シンセサイザが24個のボイス、11次の最大補間次数を有し、0.5MIPS/次数/ボイス(1秒/次数/ボイスごとに100万個の命令)を処理する場合は、通常のシンセサイザは、132MIPSまでを必要とする。この計算能力は移動端末などの典型的な現在の携帯機器で利用可能な能力を遥かに超えている。 For example, if a synthesizer has 24 voices, an 11th order maximum interpolation order, and processes 0.5 MIPS / order / voice (1 second / order / million instructions per voice), a normal synthesizer Requires up to 132 MIPS. This computational capability far exceeds that available with typical current portable devices such as mobile terminals.
図4に示す方式を使用すれば、計算能力は50MIPSを超えない。この値は、携帯機器にとって一層適切である。 If the scheme shown in FIG. 4 is used, the computing power does not exceed 50 MIPS. This value is more appropriate for portable devices.
使用される実際の方式は、シンセサイザに利用可能な計算能力および補間の各次数を実施するのに必要な計算能力の量によって決定される。 The actual scheme used will be determined by the amount of computing power available to the synthesizer and the amount of computing power required to perform each degree of interpolation.
図5は、図1の一つのボイスを一層詳細に示す。ボイス4は、コントローラ2、ウェーブ・テーブル・メモリ6およびフィルタ・テーブル8により示されている。
FIG. 5 shows one voice of FIG. 1 in more detail. The
プロセッサ22は、コントローラ2からボイス4に関係する命令を受信する。これらの命令は、ボイス4に関係するMIDI情報および次の出力16を計算するのに使用される補間次数に関する指示を含む。
The
コントローラ2は、各ボイス4に対して、次の出力を計算するのに使用される実際の補間次数を指示し、またはその代わりにコントローラ2は、アクティブ・ボイスの数を各ボイス4へ指示して、プロセッサ22に適切な補間次数を決定させる。
プロセッサ22は、位相インクリメント・レジスタ24、カウンタ26およびフィルタ係数セレクタ28へ接続されている。
The
フィルタ係数セレクタ28は、適切なフィルタ係数を検索するためにフィルタ・テーブル8へ接続されている。
A
フィルタ係数セレクタ28はまた、カウンタ26へ接続されている。
The
本発明によればプロセッサ22は、カウンタ26およびフィルタ係数セレクタ28に対して、次の出力16を計算するのに使用される補間次数について指示する。
In accordance with the present invention,
プロセッサ22は、必要な出力を生成するために位相インクリメント・レジスタ24の値をセットする。位相インクリメント・レジスタ24の値はM/Lであって、ここでLおよびMは整数であって、コントローラ2から受信した命令に基づいてプロセッサ22により決定される。
The
位相インクリメント値は加算器30へ渡される。加算器30は、現在の位相を記録する位相レジスタ32に接続されている。加算器30の出力は、整数部と小数部を含む。
The phase increment value is passed to adder 30. The
位相レジスタの整数部と小数部の両方は、加算器30へフィードバックされる。
Both the integer part and the fractional part of the phase register are fed back to the
位相レジスタの出力の整数部はまた第2加算器34へ渡され、そこでカウンタ26の出力と加算される。加算器34の整数出力は、ウェーブ・テーブル・メモリ6へ接続されて、読み出されるサンプルを決定する。
The integer part of the output of the phase register is also passed to the
ウェーブ・テーブル・メモリから検索されるサンプルは、積和演算回路36へ渡される。
Samples retrieved from the wave table memory are passed to the product-
加算器30へ送られることに加えて、位相レジスタ32の出力の小数部は、フィルタ係数セレクタ28へ送られる。
In addition to being sent to the
フィルタ係数セレクター28の出力は乗算蓄積回路36へ渡され、そこでウェーブ・テーブル・メモリ6から検索されたサンプルと組み合わされる。
The output of the
ボイス4の動作を簡単に説明する。
The operation of
位相レジスタ32の入力が非整数値である、つまり小数部が0でない場合は、必要なサンプルは表に示された二つのサンプルの間にある。したがって、必要なサンプルを計算しなければならない。
If the input of the
加算器30はサンプル周期ごとに一回動作して、位相インクリメント・レジスタ24から(位相レジスタ32により供給される)現在の位相へ位相インクリメントを加算する。
位相レジスタ32の出力の整数部は、必要なサンプルの直前に記憶されたサンプルを含むウェーブ・テーブル・メモリ・アドレスを指示する。必要なサンプルを計算するために、IDに等しいいくつかのサンプルがウェーブ・テーブル・メモリ6から読み出される。
The integer part of the output of the
カウンタ26は、必要なサンプルのあたりからIDサンプルを選択する度に一つずつインクリメントする。したがってIDが8である時、必要なサンプルの後の4つのサンプルと共に、必要なサンプルの前の4つのサンプルが読み出される。IDが5である場合は、必要なサンプルの後の二つのサンプルと共に、必要なサンプルの前に3つのサンプルが読み出される。別の実施例として、必要なサンプルの前に二つのサンプルが読み出され、また、必要なサンプルの後に3つのサンプルが読み出される。これらのサンプルは、積和演算回路36へ渡される。
The
注意すべきは、カウンタはその初期値からその最終値へサンプル周期ごとに一回動作することである。 Note that the counter runs once every sample period from its initial value to its final value.
フィルタ係数セレクタ28は、位相レジスタ出力の小数部および補間次数により、フィルタ・テーブル8から適切なフィルタ係数を得る。フィルタ係数セレクタ28はカウンタ26により制御されて、フィルタ・テーブル8からID係数を得る。
The
フィルタ・ケーブル8からフィルタ係数44が得られると、カウンタ26から受信される入力が使用されて、フィルタ係数を積和演算回路36へ渡す。ここで、ウェーブ・テーブル・メモリ6から得られたサンプルが適切なフィルタ係数44で乗算されて、その積が加算されて、ボイス16の出力が得られる。
When the filter coefficient 44 is obtained from the
位相レジスタ32の小数部が変化すると、フィルタ・テーブル8から得られたフィルタ係数が変化する。 When the decimal part of the phase register 32 changes, the filter coefficient obtained from the filter table 8 changes.
アクティブ・ボイス4の数が変化すると、プロセッサはカウンタ26およびフィルタ係数セレクタ28へ、必要な補間次数について適当であると知らせる。
As the number of
図6は、本発明によるミュージック・シンセサイザを有する携帯電話を示す。携帯電話に組み込まれたものとして本発明を説明するが、パーソナル・ディジタル・アシスタント(PDA)、ポケットベル、電子手帳などあらゆる携帯機器、または高品質ポリフォニック・サウンドを再生できることが望ましいあらゆる他の装置に、本発明が適用可能であることを理解すべきである。 FIG. 6 shows a mobile phone having a music synthesizer according to the invention. Although the present invention is described as being incorporated into a mobile phone, it may be applied to any portable device such as a personal digital assistant (PDA), pager, electronic organizer, or any other device where it is desirable to be able to play high quality polyphonic sound. It should be understood that the present invention is applicable.
従来通りに携帯電話46は、アンテナ48、トランシーバ回路50、CPU52、メモリ54およびスピーカー56を含む。
As is conventional, the
移動電話46はまた、本発明によるMIDIシンセサイザ58を含む。CPU52は、MIDIシンセサイザ58にMIDIファイルを供給する。MIDIファイルはメモリ54内に記憶されるか、またはアンテナ48およびトランシーバ回路50を介して、ネットワークからダウンロードされる。
The
以上のように高次元のポリフォニーを有するシンセサイザの計算要件を減少すると共に、不自然な可聴音(audible artefact)を最少に保つサウンド・シンセサイザを説明した。 Thus, a sound synthesizer has been described that reduces the computational requirements of a synthesizer with a high dimensional polyphony and keeps the audible artifacts to a minimum.
Claims (12)
複数のアクティブ・ボイスの各々について、前記記憶されたサンプル・ポイントから選択された複数の単一・オーディオ・サンプル・ポイントを使用して、前記複数のアクティブ・ボイスの各々について出力サンプルを計算する手段と、
を含み、
前記計算する手段によって前記アクティブ・ボイスのそれぞれについて使用されるサンプルポイントの数は、参照用テーブルを用いて、アクティブ・ボイスの数から導かれ、
前記参照用テーブルは、前記計算する手段によって各アクティブ・ボイスで使用される前記サンプル・ポイントの数は、前記アクティブ・ボイスの数が増加すると減少し、前記計算する手段によって前記アクティブ・ボイスのそれぞれについて使用されるサンプル・ポイントの数は、前記アクティブ・ボイスの数が増加すると減少して、最大計算量を超えないようになされているシンセサイザ。A memory containing a plurality of stored single audio sample points;
Means for calculating an output sample for each of the plurality of active voices using a plurality of single audio sample points selected from the stored sample points for each of the plurality of active voices; When,
Including
The number of sample points used for each of the active voices by the means for calculating is derived from the number of active voices using a lookup table ;
In the lookup table, the number of the sample points used in each active voice by the calculating means decreases as the number of the active voices increases, and each of the active voices is calculated by the calculating means. The number of sample points used for the synthesizer is such that it decreases as the number of active voices increases and does not exceed the maximum computational complexity .
一つの音を生成するのにアクティブとなるボイスの数を決定するステップと、
参照用テーブルから補間次数を決定するステップであって、前記補間次数はアクティブとなるボイスの数に基づいて選択され、前記補間次数は、前記メモリ内に記憶された前記複数のサンプルから選択されるサンプルの数として定義される前記補間次数を決定するステップと、
前記補間次数によって決定された前記記憶されたサンプルの数を使用して、各アクティブ・ボイスについて出力サンプルを計算するステップと、
を含み、
前記アクティブ・ボイスの数が増加すると、前記補間次数が減少し、
前記アクティブ・ボイスの数が増加すると、前記補間関数が減少することにより、最大計算量を超えないようになされる方法。 A method of operating a synthesizer having a plurality of single audio sample points stored in a memory comprising:
Determining the number of voices that are active to produce a single sound;
Determining an interpolation order from a look-up table, wherein the interpolation order is selected based on the number of active voices, and the interpolation order is selected from the plurality of samples stored in the memory Determining the interpolation order defined as the number of samples;
Calculating an output sample for each active voice using the number of stored samples determined by the interpolation order;
Only including,
As the number of active voices increases, the interpolation order decreases,
As the number of active voices increases, the interpolation function decreases so that the maximum computational complexity is not exceeded.
Applications Claiming Priority (5)
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 | ||
PCT/EP2003/008902 WO2004021331A1 (en) | 2002-09-02 | 2003-08-11 | Sound synthesiser |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2005537506A JP2005537506A (en) | 2005-12-08 |
JP4939753B2 true JP4939753B2 (en) | 2012-05-30 |
Family
ID=31197967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004532083A Expired - Fee Related JP4939753B2 (en) | 2002-09-02 | 2003-08-11 | Sound synthesizer |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP1394768B1 (en) |
JP (1) | JP4939753B2 (en) |
AT (1) | ATE394771T1 (en) |
DE (1) | DE60226435D1 (en) |
ES (1) | ES2305182T3 (en) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7613287B1 (en) | 2005-11-15 | 2009-11-03 | TellMe Networks | Method and apparatus for providing ringback tones |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2040537B (en) * | 1978-12-11 | 1983-06-15 | Microskill Ltd | Digital electronic musical instrument |
JP3435702B2 (en) * | 1992-05-19 | 2003-08-11 | 松下電器産業株式会社 | Music generator |
JP3000894B2 (en) * | 1995-06-19 | 2000-01-17 | ヤマハ株式会社 | Musical tone generation method |
US5831193A (en) * | 1995-06-19 | 1998-11-03 | 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 |
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 |
-
2002
- 2002-09-02 DE DE60226435T patent/DE60226435D1/en not_active Expired - Lifetime
- 2002-09-02 AT AT02256081T patent/ATE394771T1/en not_active IP Right Cessation
- 2002-09-02 ES ES02256081T patent/ES2305182T3/en not_active Expired - Lifetime
- 2002-09-02 EP EP02256081A patent/EP1394768B1/en not_active Expired - Lifetime
-
2003
- 2003-08-11 JP JP2004532083A patent/JP4939753B2/en not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
ES2305182T3 (en) | 2008-11-01 |
JP2005537506A (en) | 2005-12-08 |
DE60226435D1 (en) | 2008-06-19 |
EP1394768A1 (en) | 2004-03-03 |
EP1394768B1 (en) | 2008-05-07 |
ATE394771T1 (en) | 2008-05-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060177797A1 (en) | Crossfade sample playback engine with digital signal processing for vehicle engine sound simulator | |
JP2008112183A (en) | Reduced-memory reverberation simulator in sound synthesizer | |
US20030033338A1 (en) | Method for removing aliasing in wave table based synthesisers | |
EP0454047B1 (en) | Tone waveform generation apparatus | |
KR101011286B1 (en) | Sound synthesiser | |
JP4939753B2 (en) | Sound synthesizer | |
JP3266974B2 (en) | Digital acoustic waveform creating apparatus, digital acoustic waveform creating method, digital acoustic waveform uniforming method in musical tone waveform generating device, and musical tone waveform generating device | |
US7151215B2 (en) | Waveform adjusting system for music file | |
GB2294799A (en) | Sound generating apparatus having small capacity wave form memories | |
JP3341777B2 (en) | Effect giving device | |
JP3777923B2 (en) | Music signal synthesizer | |
JP2534636B2 (en) | Music synthesizer | |
JPH0131638B2 (en) | ||
JP2007034099A (en) | Musical sound synthesizer | |
JP3405170B2 (en) | Music synthesizer | |
US6806413B1 (en) | Oscillator providing waveform having dynamically continuously variable waveshape | |
JP2678970B2 (en) | Tone generator | |
JP3399340B2 (en) | Music synthesis device and recording medium storing music synthesis program | |
JPH02108099A (en) | Waveform interpolating device | |
JP3419005B2 (en) | Original tone signal generator used for synthesis of tone signals | |
JP2002006853A (en) | Resonance device | |
JPH10198381A (en) | Music sound creating device | |
JPH10133659A (en) | Digital signal processor | |
JPH0695677A (en) | Musical sound synthesizing device | |
JP2566697C (en) |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060810 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090915 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20091215 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20091222 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100114 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100209 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20100510 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20100517 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20100629 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20101029 |
|
A911 | Transfer to examiner for re-examination before appeal (zenchi) |
Free format text: JAPANESE INTERMEDIATE CODE: A911 Effective date: 20110104 |
|
A912 | Re-examination (zenchi) completed and case transferred to appeal board |
Free format text: JAPANESE INTERMEDIATE CODE: A912 Effective date: 20110401 |
|
A601 | Written request for extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A601 Effective date: 20110808 |
|
A602 | Written permission of extension of time |
Free format text: JAPANESE INTERMEDIATE CODE: A602 Effective date: 20110811 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120227 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150302 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313113 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |