[go: up one dir, main page]

JP2002518693A - Synthesizer system using mass storage device for real-time, low-latency access of musical instrument digital samples - Google Patents

Synthesizer system using mass storage device for real-time, low-latency access of musical instrument digital samples

Info

Publication number
JP2002518693A
JP2002518693A JP2000553943A JP2000553943A JP2002518693A JP 2002518693 A JP2002518693 A JP 2002518693A JP 2000553943 A JP2000553943 A JP 2000553943A JP 2000553943 A JP2000553943 A JP 2000553943A JP 2002518693 A JP2002518693 A JP 2002518693A
Authority
JP
Japan
Prior art keywords
digital
stream
memory
digital waveform
waveform signals
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.)
Pending
Application number
JP2000553943A
Other languages
Japanese (ja)
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 US09/095,519 external-priority patent/US6008446A/en
Application filed by コネクサント システムズ,インコーポレーテッド filed Critical コネクサント システムズ,インコーポレーテッド
Publication of JP2002518693A publication Critical patent/JP2002518693A/en
Pending legal-status Critical Current

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
    • 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

Landscapes

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

Abstract

(57)【要約】 本シンセサイザ・システムは、CPUと、ソフトウエア・ルーチンを操作するホスト・メモリとを含む。ソフトウエア・ルーチンは、各波形信号の第1の部分をホスト・メモリのサンプル・プール(40)に記憶し、音声的認識可能遅延なく、選択された音楽的な音の残りの部分をハードディスク・ドライブ(22)からストリーム・セル・アレイ(42)に提供する。シンセサイザ・システムは、オーディオ・シンセサイザ・システムにおいて低費用で高記憶容量のデバイスを利用可能にするキャッシング・システムを利用している。適切なデジタル波形信号を選択するために、MIDI制御信号がオーディオ・プロセッサに提供される。 (57) [Summary] The present synthesizer system includes a CPU and a host memory that operates software routines. The software routine stores a first portion of each waveform signal in a sample pool (40) of host memory and stores the remaining portion of the selected musical sound on a hard disk drive without any audible recognizable delay. From the drive (22) to the stream cell array (42). Synthesizer systems utilize a caching system that enables low cost and high storage capacity devices to be used in audio synthesizer systems. A MIDI control signal is provided to the audio processor to select an appropriate digital waveform signal.

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】 (発明の分野) 本発明は、一般的にデジタル・サウンド・シンセサイザ・システムに関する。
特に、本発明は、大容量記憶媒体またはデバイスを利用したサウンド・シンセサ
イザ・システムに関する。
FIELD OF THE INVENTION [0001] The present invention relates generally to digital sound synthesizer systems.
In particular, the present invention relates to a sound synthesizer system utilizing a mass storage medium or device.

【0002】 (発明の背景) デジタル・シンセサイザまたは他の電子システムは一般的に音または音楽を生
成し、電子楽器または電子音機械として利用できる。デジタル・シンセサイザは
通常、ミュージシャンまたはオペレータ・インターフェイスからの入力信号を受
け入れて、可聴周波数範囲におけるアナログ信号を表すデジタル出力信号を生成
するように構成されている。インターフェイスは、ミュージシャンの動作を表す
キーストローク信号、マウス信号、タッチパッド信号またはキーボード信号を提
供することができる。
BACKGROUND OF THE INVENTION Digital synthesizers or other electronic systems generally generate sound or music and can be used as electronic musical instruments or electronic sound machines. Digital synthesizers are typically configured to accept input signals from a musician or operator interface and produce a digital output signal representing an analog signal in the audio frequency range. The interface may provide a keystroke signal, a mouse signal, a touchpad signal, or a keyboard signal that represents the musician's operation.

【0003】 デジタル・シンセサイザからのデジタル出力信号は、アナログ信号に変換され
、ラウドスピーカ、テープレコーダ、ミキサまたは他の装置などに向けられ、音
の形で再生される。デジタル・シンセサイザは、従来の既知の楽器の音をシミュ
レートする出力信号を提供するように構成されている。代替的に、シンセサイザ
は、あらゆる従来の既知の楽器の特徴とは異なる所定の特徴を有する論理的楽器
によって発せられる音をシミュレートするように構成してもよい。
[0003] Digital output signals from digital synthesizers are converted to analog signals, directed to loudspeakers, tape recorders, mixers or other devices, and played back in the form of sound. Digital synthesizers are configured to provide an output signal that simulates the sound of a conventional known instrument. Alternatively, the synthesizer may be configured to simulate sounds emitted by a logical instrument having predetermined characteristics that are different from those of any conventionally known instruments.

【0004】 音楽および音の合成は、非常に膨大な技術的タスクである。本当の楽器は、一
般的に音に対する「音色」と呼ばれる、多数の異なった周波数の複合的混合を生
成する。たとえば、ドラム、シンバルなどによって作り出される音のようなパー
カッション音は、いずれの単純な数学的式によっても完全には説明できない非周
期的な関数である。したがって、音を表すデジタル信号の、本当の楽器の音のよ
うに豊かで複雑な音としての生成または合成は、非常に膨大なデジタル信号処理
およびサンプリングのタスクである。更に、シンセサイザは、ミュージシャンに
よるインターフェースの操作のニュアンスに反応しなければならない。たとえば
、スネアドラムは、ドラムの中央寄り、縁寄りまたは縁の上など様々な部位で演
奏されるときに、多くの異なった音の特徴を有する。また、スネアドラムの音の
特徴は、ミュージシャンの叩く力、演奏技術および方法的な音調の変化でも異な
る。
[0004] The synthesis of music and sounds is a huge technical task. Real instruments produce a complex mixture of many different frequencies, commonly referred to as the "tone" of the sound. For example, percussion sounds, such as those created by drums, cymbals, etc., are non-periodic functions that cannot be completely explained by any simple mathematical formula. Thus, generating or synthesizing a digital signal representing sound as a rich and complex sound, such as the sound of a real instrument, is a very voluminous digital signal processing and sampling task. In addition, the synthesizer must respond to the nuances of manipulating the interface by the musician. For example, snare drums have many different sound characteristics when played at various locations, such as near the center of the drum, near the edge, or on the edge. Also, the characteristics of the sound of the snare drum differ depending on the striking power of the musician, the playing technique, and the methodical tone change.

【0005】 楽器の動作を適切に捉えるには、これらの特徴およびその組み合わせのそれぞ
れに関する十分に大きなサンプル・データベース(大きなサンプリング能力によ
って促進される)が必要とされる。十分に大きな波形データベースを有すること
により、より現実的で表現豊かな合成を達成できる。波形サンプリング技術を使
用した多数のシンセサイザが、楽器の音を近似してエミュレートする音楽的な音
を生成するそれらの能力のために、音楽およびマルチメディアの分野においては
広範に使用されている。
[0005] To properly capture the behavior of a musical instrument requires a sufficiently large sample database for each of these features and their combinations, facilitated by large sampling capabilities. By having a sufficiently large waveform database, more realistic and expressive synthesis can be achieved. Numerous synthesizers using waveform sampling techniques have been widely used in the music and multimedia fields due to their ability to produce musical sounds that approximate and emulate the sounds of musical instruments.

【0006】 以前のシンセサイザ・システムは、デジタル・シンセサイザを制御するために
、ミュージカル・インスツルメント・デジタル・インターフェイス(MIDI)
を利用することが多い。MIDIインターフェイスは、制御信号またはMIDI
制御データを生成する。MIDI制御データは、特定の楽音(たとえば、ピアノ
、ホルンまたはドラムなどの特定の音楽的な音によって実現される中央ハ(Mi
ddle C))の発生などの音楽事象を表す。
[0006] Earlier synthesizer systems used a musical instrument digital interface (MIDI) to control a digital synthesizer.
Often use. The MIDI interface is a control signal or MIDI
Generate control data. The MIDI control data is stored in a specific musical tone (e.g., a central musical instrument (Mi
ddle C)).

【0007】 従来のシンセサイザ・システムは、特定の楽器で演奏される各楽音の本当の音
を表すデジタル波形信号を記憶する大規模なソリッド・ステート・メモリを利用
する。このメモリは、スタティック・ランダム・アクセス・メモリ(SRAM)
、ダイナミック・ラム(DRAM)またはリード・オンリ・メモリ(ROM)と
することができる。ミュージシャンがキーまたは他のインターフェイスを作動す
ると、作動されたキーまたは打鍵の強度に応じて、適切な波形信号が選択される
。波形信号はアナログ出力信号に変換される。デジタル波形信号は、アナログ出
力信号に変換される前に同時に演奏される他の楽音と結合することができる。
[0007] Conventional synthesizer systems utilize large solid state memories that store digital waveform signals representing the true sound of each musical tone played on a particular instrument. This memory is a static random access memory (SRAM)
, A dynamic ram (DRAM) or a read only memory (ROM). When the musician activates a key or other interface, an appropriate waveform signal is selected depending on the strength of the key or keystroke activated. The waveform signal is converted to an analog output signal. The digital waveform signal can be combined with other tones played simultaneously before being converted to an analog output signal.

【0008】 この構成においては、シンセサイザは、実際には、楽音の個々の音または楽音
のデジタル録音を再生するに過ぎない。各波形信号は、それぞれが特定の時間で
の波形の単一のサンプルを表している一連の個々のデータ・ワードとして記憶さ
れる。満足な忠実度を達成するために、かかる記憶された波形信号はいずれも、
記憶された音の中には1秒当たり数千のサンプルを含まなければならない。かか
る波形信号を記憶するのに必要なメモリは大規模であり、したがって、全ての必
要とされる波形信号を記憶するのに必要なソリッド・ステート・メモリは、非常
に大きくなる。ソリッド・ステート・メモリが必要とされるのは、その速度が基
本的にリアルタイムな再生(たとえば、聴覚認識可能遅延がないこと)を可能に
するからである。あらゆる種類のソリッド・ステート・メモリの音サンプル記憶
デバイスのユニット当たりの価格が高いために、楽器の正確な表現およびそれら
全てのニュアンスのための多量のデジタル波形信号の使用がかなり妨げられた。
現在のシンセサイザの主たる限界は、(たとえば、費用のために)楽器に関連づ
けられた広い範囲の音の完全なサンプルを記憶するのに十分なメモリがないこと
である。
[0008] In this configuration, the synthesizer actually only plays the individual sounds of the musical sounds or digital recordings of the musical sounds. Each waveform signal is stored as a series of individual data words, each representing a single sample of the waveform at a particular time. To achieve satisfactory fidelity, any of such stored waveform signals
The stored sound must contain thousands of samples per second. The memory required to store such waveform signals is large, and therefore the solid state memory required to store all the required waveform signals is very large. Solid state memory is required because its speed allows for essentially real-time playback (eg, no audible delay). The high price per unit of sound sample storage devices of all types of solid state memory has hampered the use of large amounts of digital waveform signals for accurate representation of musical instruments and all their nuances.
A major limitation of current synthesizers is that there is not enough memory to store complete samples of the wide range of sounds associated with the instrument (eg, due to cost).

【0009】 メモリの必要量を削減するために、シンセサイザ・システムは、楽器サンプル
をより効率的に記憶する技術を使用した。これらの技術は一般に、より低い品質
の音生成に帰結する。「ルーピング」の技術は、音のサンプルを再使用する。サ
ンプルのグループを複製して再使用することにより、全体的なメモリの必要量は
削減される。他の技術は、サンプルを圧縮状態でソリッド・ステート・メモリに
記憶する。しかし、これらのシステムは、解凍アルゴリズムを実施するために、
大きなCPU電力を必要とする。また、解凍アルゴリズムは損失が大きく、音声
品質が低下する。
To reduce memory requirements, synthesizer systems have used techniques to store instrument samples more efficiently. These techniques generally result in lower quality sound production. The "looping" technique reuses sound samples. By duplicating and reusing groups of samples, the overall memory requirements are reduced. Other techniques store the samples in a compressed state in solid state memory. However, these systems use a decompression algorithm to implement
Requires large CPU power. Also, the decompression algorithm is lossy and degrades voice quality.

【0010】 他の先行技術のシンセサイザ・システムは、ハードディスクまたは他の大容量
記憶デバイスを利用し、楽音生成または楽器演奏の前に、それらから楽器サンプ
ルをソリッド・ステート・メモリにロードしている。しかし、楽器用の全てのデ
ジタル波形信号を演奏前にソリッド・ステート・メモリにロードしなければなら
ないので、これらのシステムはやはり大容量のソリッド・ステート・メモリを必
要とする。
[0010] Other prior art synthesizer systems utilize a hard disk or other mass storage device to load instrument samples from them into solid state memory prior to musical tone generation or instrument play. However, these systems still require large amounts of solid state memory, since all digital waveform signals for musical instruments must be loaded into solid state memory before playing.

【0011】 シンセサイザ・システムには、デジタル波形信号を記憶するために、ROMま
たは他の種類のより安価で速度の遅いソリッド・ステート・メモリを利用したも
のもある。これらのシンセサイザは、波形信号をより低速のROMから楽音生成
用のSRAMなどの高速RAMに移動するために、データ・キャッシング技術を
採用している。それにもかかわらず、より低速のROMおよび高速RAMは、シ
ンセサイザの費用を大幅に増大させている。
Some synthesizer systems utilize ROMs or other types of cheaper and slower solid state memory to store digital waveform signals. These synthesizers employ a data caching technique in order to move the waveform signal from a lower speed ROM to a high speed RAM such as a tone generating SRAM. Nevertheless, slower ROMs and faster RAMs have greatly increased the cost of synthesizers.

【0012】 他の先行技術のシステムは、各楽器を表す1つまたは数個の波形のみを記憶す
る。これらの波形は、MIDI制御データによって示されるように、異なった音
楽的特徴と関連づけられた周波数および振幅の変化を反映するために、デジタル
信号処理技術または他の電子技術(たとえば、非直線ひずみ)によって調節され
る。たとえば、ピアノの中央ハを表すサンプル波形の周波数および振幅は、異な
ったピアノ楽音およびボリュームを合成するように調節できる。しかし、これら
の種類のシンセサイザは、音楽的に訓練された耳にとって十分に高い忠実度まで
複雑な混合または音色を生成することはできない。他の例においては、特定の楽
音の調和的内容(harmonic content)を調節するために、デジ
タル・フィルタを利用するシステムもある。しかし、これらのシステムは、大き
なCPU電力を必要とし、音声品質低下を被り得る。
[0012] Other prior art systems store only one or several waveforms representing each instrument. These waveforms may be digital signal processing techniques or other electronic techniques (e.g., non-linear distortion) to reflect frequency and amplitude changes associated with different musical features, as indicated by MIDI control data. Adjusted by. For example, the frequency and amplitude of the sample waveform representing the center c of a piano can be adjusted to synthesize different piano tones and volumes. However, these types of synthesizers cannot produce complex mixtures or timbres to a sufficiently high fidelity for musically trained ears. In another example, some systems utilize digital filters to adjust the harmonic content of a particular musical tone. However, these systems require significant CPU power and can suffer from voice quality degradation.

【0013】 したがって、大量の高価なソリッド・ステート・メモリを利用することなく、
多数の音楽サンプルを記憶できる音楽シンセサイザが必要とされている。更に、
大容量記憶デバイスを利用できるが、楽音のリアルタイムな生成を提供できる音
楽シンセサイザが必要とされている。
Thus, without using a large amount of expensive solid state memory,
There is a need for a music synthesizer that can store a large number of music samples. Furthermore,
Although mass storage devices are available, there is a need for a music synthesizer that can provide real-time generation of musical sounds.

【0014】 (発明の概要) 本発明は、出力に音を表すデジタル出力信号を提供するオーディオ・プロセッ
サに関する。オーディオ・プロセッサは、複数のデジタル波形信号を受け取る大
容量記憶デバイス入力と、デジタル制御信号を受け取る制御入力と、制御入力お
よび大容量記憶デバイス入力に接続された制御回路とを備えている。デジタル制
御信号は、複数のデジタル波形信号の少なくとも1つの選択されたデジタル波形
信号を示す。制御回路は、デジタル波形信号の第1の部分をホスト・メモリに記
憶する。制御回路は、デジタル制御信号に呼応して、選択されたデジタル波形信
号の第1の部分をホスト・メモリから出力に与え(提供し)、それに続いて、選
択されたデジタル波形信号の残りの部分を、大容量記憶デバイス入力から出力に
与える。制御回路は、選択されたデジタル波形信号の第1の部分と、選択された
デジタル波形信号の残りの部分との間の連続性を失うことなく、選択されたデジ
タル波形信号の残りの部分とを提供する。
SUMMARY OF THE INVENTION The present invention is directed to an audio processor that provides a digital output signal representing sound at an output. The audio processor has a mass storage device input for receiving a plurality of digital waveform signals, a control input for receiving a digital control signal, and a control circuit connected to the control input and the mass storage device input. The digital control signal indicates at least one selected digital waveform signal of the plurality of digital waveform signals. The control circuit stores the first portion of the digital waveform signal in a host memory. The control circuit provides (provides) a first portion of the selected digital waveform signal to the output from the host memory in response to the digital control signal, followed by a remaining portion of the selected digital waveform signal. From the mass storage device input to the output. The control circuit combines the first portion of the selected digital waveform signal with the remaining portion of the selected digital waveform signal without loss of continuity between the remaining portion of the selected digital waveform signal. provide.

【0015】 本発明は、複数のデジタル波形信号を記憶する大容量記憶デバイス手段と、デ
ジタル制御信号を受け取る制御入力手段と、デジタル波形信号のそれぞれについ
て第1の部分を記憶するホスト・メモリ手段と、出力にデジタル音信号を生成す
るプロセッサ手段とを備えたデジタル・シンセサイザ・システムにも関する。デ
ジタル波形信号のそれぞれは、複数の音のうち特定の音に対応する。デジタル制
御信号は音のうち選択された音を示す。プロセッサ手段は、選択された音に対応
するデジタル波形信号の第1の部分をホスト・メモリから出力に提供し、選択さ
れた音に対応するデジタル波形信号の第2の部分を大容量記憶デバイス手段から
出力に提供する。プロセッサ手段は、第2の部分を出力に提供するためにキャッ
シング技術を利用する。
The present invention comprises a mass storage device means for storing a plurality of digital waveform signals, a control input means for receiving a digital control signal, and a host memory means for storing a first portion for each of the digital waveform signals. , A processor means for producing a digital sound signal at the output. Each of the digital waveform signals corresponds to a specific sound among a plurality of sounds. The digital control signal indicates a selected sound among the sounds. The processor means provides a first portion of the digital waveform signal corresponding to the selected sound to an output from the host memory and a second portion of the digital waveform signal corresponding to the selected sound to the mass storage device means. From output to provide. The processor means utilizes caching techniques to provide a second portion to the output.

【0016】 本発明は更に、デジタル・シンセサイザ・システム用のメモリ・アーキテクチ
ャに関する。デジタル・シンセサイザ・システムは、大容量記憶デバイスとプロ
セッサとを備えている。大容量記憶デバイスは、複数のデジタル波形信号を記憶
する。デジタル波形信号のそれぞれは複数の音のうち特定の音に対応する。プロ
セッサはデジタル制御信号を受け取る。デジタル制御信号は複数の音のうち選択
された音を示す。オーディオ・プロセッサは、デジタル制御信号に呼応して、出
力にデジタル音信号を生成する。プロセッサは、選択された音に対応するデジタ
ル波形信号の第1の部分を提供し、それに続いて、選択された音に対応するデジ
タル波形信号の第2の部分を大容量記憶デバイスから提供する。メモリ・アーキ
テクチャは、サンプル・バッファとストリーム・バッファとを備えている。サン
プル・バッファは、デジタル波形信号のそれぞれの第1の部分を記憶する。スト
リーム・バッファは、選択された音に対応するデジタル波形信号の第2の部分を
一時的に記憶する。
The present invention further relates to a memory architecture for a digital synthesizer system. A digital synthesizer system includes a mass storage device and a processor. The mass storage device stores a plurality of digital waveform signals. Each of the digital waveform signals corresponds to a specific sound among a plurality of sounds. The processor receives the digital control signal. The digital control signal indicates a sound selected from the plurality of sounds. The audio processor generates a digital sound signal at an output in response to the digital control signal. The processor provides a first portion of the digital waveform signal corresponding to the selected sound, followed by providing a second portion of the digital waveform signal corresponding to the selected sound from the mass storage device. The memory architecture has a sample buffer and a stream buffer. The sample buffer stores a first portion of each of the digital waveform signals. The stream buffer temporarily stores a second portion of the digital waveform signal corresponding to the selected sound.

【0017】 本発明は更に、シンセサイザ・システムにおいて音をデジタル的に合成する方
法に関する。シンセサイザ・システムは、大容量記憶デバイスと、ホスト・メモ
リと、プロセッサとを備えている。大容量記憶デバイスは、複数のデジタル波形
信号を記憶する。プロセッサは、デジタル制御信号入力とデジタル出力とを有す
る。プロセッサは、ホスト・メモリと大容量記憶デバイスとに接続されている。
この方法は、デジタル波形信号のそれぞれに関する第1の部分をホスト・メモリ
内にダウンロードし、デジタル制御信号入力にデジタル波形信号のうち選択され
たデジタル波形信号を示すデジタル制御信号を受け取り、選択されたデジタル波
形信号の第1の部分をホスト・メモリからデジタル出力に与え、選択されたデジ
タル波形信号の第2の部分を大容量記憶デバイスからデジタル出力に与えること
を含む。第1の部分および第2の部分は、第1の部分と第2の部分との間に音声
的認識可能遅延がないように与えられる。
The present invention further relates to a method for digitally synthesizing sounds in a synthesizer system. The synthesizer system includes a mass storage device, a host memory, and a processor. The mass storage device stores a plurality of digital waveform signals. The processor has a digital control signal input and a digital output. The processor is connected to the host memory and the mass storage device.
The method includes downloading a first portion of each of the digital waveform signals into a host memory, receiving a digital control signal indicative of a selected one of the digital waveform signals at a digital control signal input, and selecting a selected one of the digital waveform signals. Providing a first portion of the digital waveform signal to the digital output from the host memory and providing a second portion of the selected digital waveform signal to the digital output from the mass storage device. The first part and the second part are provided such that there is no speech recognizable delay between the first part and the second part.

【0018】 本発明は更に、シンセサイザ・システムにおいてデジタル的に音を合成する方
法に関する。シンセサイザ・システムは、大容量記憶デバイスと、ホスト・メモ
リと、プロセッサとを備えている。大容量記憶デバイスは複数のデジタル波形信
号を記憶する。デジタル波形信号のそれぞれは、複数の音のうち特定の音に対応
する。デジタル波形信号のそれぞれに関する第1の部分は、ホスト・メモリに記
憶される。プロセッサは、デジタル制御信号入力とデジタル出力とを有する。プ
ロセッサは、ホスト・メモリと大容量記憶デバイスとに接続されている。この方
法は、デジタル制御信号入力で複数の音のうち選択された音を示すデジタル制御
信号を受け取り、選択された音に対応するデジタル波形信号の第1の部分をホス
ト・メモリからデジタル出力に与え、デジタル波形信号の第2の部分を大容量記
憶デバイスから選択された音に対応するデジタル出力に与えることを含む。第1
の部分と第2の部分とは、第1の部分と第2の部分との間で連続性の欠如がない
ように与えられる。
The invention further relates to a method for digitally synthesizing sounds in a synthesizer system. The synthesizer system includes a mass storage device, a host memory, and a processor. The mass storage device stores a plurality of digital waveform signals. Each of the digital waveform signals corresponds to a specific sound among a plurality of sounds. A first portion for each of the digital waveform signals is stored in host memory. The processor has a digital control signal input and a digital output. The processor is connected to the host memory and the mass storage device. The method receives a digital control signal indicative of a selected one of a plurality of sounds at a digital control signal input and provides a first portion of a digital waveform signal corresponding to the selected sound from a host memory to a digital output. , Providing a second portion of the digital waveform signal to a digital output corresponding to the selected sound from the mass storage device. First
And the second part are provided such that there is no lack of continuity between the first part and the second part.

【0019】 本発明は、音と出力とを示すデジタル出力信号を提供するオーディオ・プロセ
ッサにも関する。オーディオ・プロセッサは、複数のデジタル波形信号を受け取
る大容量記憶デバイス入力と、デジタル波形信号の第1の部分を記憶するサンプ
ル・プールと、ストリーム・バッファと、大容量記憶デバイス入力およびストリ
ーム・バッファに接続されたストリーム・エンジンと、ストリーム・バッファお
よび出力に接続されたシンセサイザとを備えている。ストリーム・エンジンは、
デジタル波形信号の第2の部分を大容量記憶デバイス入力からストリーム・バッ
ファに提供する。シンセサイザ・エンジンは、デジタル波形信号の第2の部分を
ストリーム・バッファから出力に提供する。
The present invention also relates to an audio processor for providing a digital output signal indicative of sound and output. The audio processor includes a mass storage device input for receiving the plurality of digital waveform signals, a sample pool for storing a first portion of the digital waveform signal, a stream buffer, and a mass storage device input and stream buffer. It has a stream engine connected to it and a synthesizer connected to the stream buffer and output. The stream engine is
A second portion of the digital waveform signal is provided from a mass storage device input to a stream buffer. The synthesizer engine provides a second portion of the digital waveform signal from the stream buffer to an output.

【0020】 本発明の例示的な一態様によれば、デジタル・シンセサイザはデジタル波形信
号の第1の部分をホスト・メモリに記憶し、デジタル波形信号の残りの部分を大
容量記憶デバイスからキャッシュする。デジタル音楽シンセサイザは、ハードデ
ィスク・ドライブを記憶デバイスとして利用し、コンピュータによって実行され
るソフトウエアに実装されることが好ましい。コンピュータは、中央処理装置と
、ウィンドウズ(登録商標)ベースの環境において動作するホスト・メモリとを
備えている。
According to one exemplary aspect of the invention, a digital synthesizer stores a first portion of the digital waveform signal in host memory and caches a remaining portion of the digital waveform signal from a mass storage device. . The digital music synthesizer utilizes a hard disk drive as a storage device and is preferably implemented in software executed by a computer. The computer has a central processing unit and host memory operating in a Windows-based environment.

【0021】 本発明の別の例示的態様においては、シンセサイザ・システムはソフトウエア
に構成されたオーディオ・プロセッサを利用する。オーディオ・プロセッサはソ
リッド・ステート・サンプル・プールと、ストリーム・エンジンと、シンセサイ
ザ・エンジンと、ソリッド・ステート・ストリーム・バッファとを備えている。
ストリーム・エンジンは、デジタル波形サンプルまたは信号の部分を、大容量記
憶デバイスからストリーム・バッファに提供する。シンセサイザ・エンジンは、
デジタル波形信号の部分を、サンプル・プールおよびストリーム・バッファから
デジタル出力に提供する。プロセッサは、特定のデジタル波形信号を選択するた
めに、MIDI制御信号に応答することが好ましい。
In another exemplary aspect of the invention, the synthesizer system utilizes an audio processor configured in software. The audio processor includes a solid state sample pool, a stream engine, a synthesizer engine, and a solid state stream buffer.
The stream engine provides digital waveform samples or portions of the signal from the mass storage device to the stream buffer. The synthesizer engine
A portion of the digital waveform signal is provided from a sample pool and a stream buffer to a digital output. Preferably, the processor is responsive to a MIDI control signal to select a particular digital waveform signal.

【0022】 本発明の更に別の例示的実施態様においては、デジタル・シンセサイザに関す
るメモリ・アーキテクチャは、サンプル・プールとストリーム・セルのアレイと
を備えたホスト・メモリを利用する。サンプル・プールは、ハード・ドライブに
記憶された各デジタル波形信号の第1の部分を記憶する。サンプル・プールは、
それぞれがデッキ・バッファと制御データ・バッファとを含むサンプル・セルの
アレイを備えている。ストリーム・セルのアレイの各セルは、デッキ・バッファ
・ポインタと、ストリーム・バッファと、制御データ・バッファとを含むことが
好ましい。デッキ・バッファは波形の第1の部分を記憶する。ストリーム・バッ
ファは、ハード・ドライブに記憶された波形のそれに続く部分を記憶するために
利用される。
In yet another exemplary embodiment of the invention, a memory architecture for a digital synthesizer utilizes a host memory with a sample pool and an array of stream cells. The sample pool stores a first portion of each digital waveform signal stored on the hard drive. The sample pool is
Each has an array of sample cells including a deck buffer and a control data buffer. Each cell of the array of stream cells preferably includes a deck buffer pointer, a stream buffer, and a control data buffer. The deck buffer stores a first portion of the waveform. The stream buffer is used to store subsequent portions of the waveform stored on the hard drive.

【0023】 本発明の好適な実施形態を付属の図面を参照して以下で説明する。図面中で、
同様の符号は同様の要素を示している。
Preferred embodiments of the present invention will be described below with reference to the accompanying drawings. In the drawing,
Like numerals indicate like elements.

【0024】 (本発明の好適な例示的実施形態の詳細な説明) 図1を参照すると、デジタル・シンセサイザ・システム10は、オーディオ・
プロセッサ12と、MIDIソースなどの音選択ソース18と、楽器デジタル波
形信号を記憶する大容量記憶デバイスなどの音波形ソース22と、デジタル・ア
ナログ(D/A)変換器25と、スピーカ・システム26とを含んでいる。オー
ディオ・プロセッサ12は変換器25に接続されたデジタル出力28を有する。
変換器25は、スピーカ・システム26に接続された出力を有する。
DETAILED DESCRIPTION OF THE PREFERRED EXEMPLARY EMBODIMENTS OF THE INVENTION Referring to FIG. 1, a digital synthesizer system 10 includes an audio
A processor 12, a sound selection source 18, such as a MIDI source, a sound source 22, such as a mass storage device for storing musical instrument digital waveform signals, a digital-to-analog (D / A) converter 25, and a speaker system 26. And Audio processor 12 has a digital output 28 connected to a converter 25.
The converter 25 has an output connected to a speaker system 26.

【0025】 動作においては、オーディオ・プロセッサ12は、音選択ソース18からデジ
タル制御信号をデジタル制御入力20に受け取り、デジタル波形信号ソース22
から大容量記憶デバイス入力24にデジタル・サンプルまたはデジタル波形信号
を受け取る。オーディオ・プロセッサ12は、出力28にデジタル出力信号を提
供するために、入力20でデジタル制御信号を処理し、入力24でデジタル波形
信号を処理する。デジタル出力信号が変換器25に提供され、変換器25はデジ
タル出力信号が表しているアナログ信号をスピーカ・システム26に提供する。
プロセッサ12は入力20にいくつかの制御信号を受け取ると、入力20の制御
信号によって示されたデジタル波形信号を表している、異なったデジタル出力信
号の組み合わせ、混合またはいくつかの異なったデジタル出力信号を出力28に
提供できる。スピーカ・システム26は、出力28に与えられたデジタル出力信
号を表す音または音楽を生成する。
In operation, the audio processor 12 receives a digital control signal from the sound selection source 18 at a digital control input 20 and a digital waveform signal source 22
Receives a digital sample or digital waveform signal at a mass storage device input 24 from a USB device. Audio processor 12 processes a digital control signal at input 20 and a digital waveform signal at input 24 to provide a digital output signal at output 28. The digital output signal is provided to converter 25, which provides the analog signal represented by the digital output signal to speaker system 26.
When processor 12 receives a number of control signals at input 20, it combines, mixes, or mixes several different digital output signals with different digital output signals representing the digital waveform signal indicated by the control signal at input 20. At the output 28. Speaker system 26 produces sound or music that is representative of the digital output signal provided at output 28.

【0026】 変換器25およびスピーカ・システム26は、デジタル出力28に接続された
他の装置で置き換えることができる。たとえば、ミキサ、レコーダ、ハードディ
スク・ドライブなどのデジタル記憶デバイス、または他のオーディオ装置をプロ
セッサ12の出力28に接続することができる。スピーカ・システム26は、ス
テレオ・サウンドを表すことが好ましい、デジタル出力信号によって示された音
のステレオ生成を提供する2つ以上のスピーカを備えたステレオ・システムにす
ることができる。
The converter 25 and the speaker system 26 can be replaced by other devices connected to the digital output 28. For example, a digital storage device such as a mixer, recorder, hard disk drive, or other audio device can be connected to the output 28 of the processor 12. The speaker system 26 can be a stereo system with two or more speakers that provides stereo generation of the sound indicated by the digital output signal, which preferably represents stereo sound.

【0027】 音選択ソース18は、MIDIデータまたは制御信号であることが最も好まし
い、制御信号を生成するあらゆるデバイスにすることができる。MIDI制御信
号は当該技術分野においてよく知られており、特定の音楽的な音、たとえば、ピ
アノ、ホルン、ドラムまたは他の装置によって実現される、特定の楽音、たとえ
ば中央ハの発生などの音楽事象を表す。代替的に、オーディオ・プロセッサ12
は、入力20に制御信号を提供する異なった種類の音選択ソース18と共に利用
されてもよい。
The sound selection source 18 can be any device that generates control signals, most preferably MIDI data or control signals. MIDI control signals are well known in the art and may be specific musical sounds, such as music events, such as the occurrence of a central musical tone, such as the occurrence of a particular musical tone, such as a piano, horn, drum, or other device. Represents Alternatively, the audio processor 12
May be utilized with different types of sound selection sources 18 that provide control signals at input 20.

【0028】 音選択ソース18は、デジタル制御信号を入力20に提供する、マウス・イン
ターフェイス、ピアノ・キーボード、電子ドラム・パッド、キーパッド、タッチ
パッド、ボタン・インターフェイス、またはその他のミュージシャン・インター
フェイスにすることができる。音波形ソース22は、ハードディスク・ドライブ
、光ディスク・ドライブ、テープ・ソース、フロッピ・ディスク・ドライブ、ま
たは他のメモリデバイスなどの大容量記憶デバイスであることが好ましい。音波
形ソース22は、1つまたは複数の楽器の広範囲なデジタル・サンプルを記憶す
る。たとえば、音波形ソース22は、グランド・ピアノと関連づけられた、約1
100の独立のデジタル波形信号を記憶することができる。独立の波形信号は、
ステレオの音色の6個のバリエーションで演奏されるピアノの88鍵を表す(た
とえば、88×6×2=1056)。波形信号の数は、様々なアプリケーション
および楽器向けに調節することができる。グランド・ピアノの音を再生するため
のシステム10の使用の解説は、限定目的のためではなく、単に例として解説す
るためだけである。楽音の種類、ソースの種類、楽器の種類、およびサンプルの
大きさは、本願においては例示的な方法でのみ論ずる。
The sound selection source 18 is a mouse interface, piano keyboard, electronic drum pad, keypad, touchpad, button interface, or other musician interface that provides digital control signals to the input 20. be able to. The sound source 22 is preferably a mass storage device such as a hard disk drive, optical disk drive, tape source, floppy disk drive, or other memory device. The sound source 22 stores a wide range of digital samples of one or more instruments. For example, the sound source 22 may have approximately one unit associated with a grand piano.
100 independent digital waveform signals can be stored. The independent waveform signal is
Represents 88 keys of a piano played with six variations of stereo timbre (for example, 88 × 6 × 2 = 1,056). The number of waveform signals can be adjusted for various applications and musical instruments. The description of the use of system 10 to reproduce the sound of a grand piano is not for purposes of limitation, but merely for purposes of illustration. Music types, source types, instrument types, and sample sizes are discussed herein only in exemplary ways.

【0029】 システム10は、組込みシステムとして、音楽シンセサイザとして、専用ラッ
ク載置音楽サンプラとして、または別の音生成装置として、PCプラットフォー
ムに実装することができる。システム10は、CPUと、ハード・ディスク・ド
ライブと、ホスト・メモリとを備えたコンピュータ・ベースのシステムであるこ
とが好ましい。CPUは、本願の全体を通して説明しているオーディオ・プロセ
ッサ12の動作を遂行するように、ソフトウエアによって構成されている。代替
的に、システム10は、専用デジタル信号プロセッサ・システム、汎用プロセッ
サ・システム、またはハードウエア・システムにすることができる。ホスト・メ
モリは、少なくとも32メガバイトのDRAMであることが好ましいが、他の種
類のソリッド・ステート・メモリを使用することもできる。ホスト・メモリは、
ROM、SRAM、フラッシュ・メモリまたは他のデバイスにすることができる
。CPUは486以上のプロセッサであることが好ましい。
The system 10 can be implemented on a PC platform as an embedded system, as a music synthesizer, as a dedicated rack-mounted music sampler, or as another sound generator. System 10 is preferably a computer-based system with a CPU, hard disk drive, and host memory. The CPU is configured with software to perform the operations of the audio processor 12 described throughout this application. Alternatively, system 10 can be a dedicated digital signal processor system, a general-purpose processor system, or a hardware system. The host memory is preferably at least 32 megabytes of DRAM, but other types of solid state memory could be used. Host memory is
It can be ROM, SRAM, flash memory or other device. Preferably, the CPU is a 486 or higher processor.

【0030】 システム10は、リアルタイムに、すなわち、音声的認識可能遅延なく、ソー
ス22に記憶されたデジタル波形サンプルまたは信号を出力28に提供するよう
に構成されている。ミュージシャンが音選択ソース18を操作すると、ソース1
8の操作とスピーカ・システム26からの音楽を聞くこととの間で音声認識可能
な待ち時間がない状態で、オーディオ・プロセッサ12は出力28にその操作を
表すデジタル出力信号を提供する。オーディオ・プロセッサ12は、ソース18
の操作から15ミリ秒未満で、デジタル出力信号を提供できることが好ましい。
The system 10 is configured to provide the digital waveform samples or signals stored at the source 22 to the output 28 in real time, ie, without any audible recognizable delay. When the musician operates the sound selection source 18, the source 1
With no speech recognizable latency between the operation of FIG. 8 and listening to music from the speaker system 26, the audio processor 12 provides a digital output signal at output 28 representative of the operation. Audio processor 12 includes a source 18
It is preferable that a digital output signal can be provided in less than 15 milliseconds from the above operation.

【0031】 本願において使用している音声的認識可能遅延という語は、人間の耳に聞こえ
る音楽または音の、連続性の欠如、不正な待ち時間、失速、または保留を意味す
る。音声的認識可能遅延という語は、2つの異なった文脈で使用されている。第
1の文脈は、ミュージシャンの操作と音の生成との間における、上記のような時
間のずれに関連する。第2の文脈は、デジタル波形信号の第1の部分と残りの部
分との間における信号の連続性に関する。また、第2の文脈は、デジタル波形信
号の残りの部分の部分間における信号の連続性に関する。第2の文脈は、人間の
耳で検出可能な人為的な雑音を防止するために、遅れが数マイクロ秒未満である
ことを要求している(たとえば、連続性の欠如がないように)。システム・パラ
メータとアプリケーション基準とは、音声的認識可能遅延および待ち時間の妥当
性の定義に影響することがあり得る。出力28に提供されるときに、デジタル波
形信号の部分間に遅れがないことが最も好ましい。
As used herein, the term audible recognizable delay refers to a lack of continuity, improper latency, stall, or hold of music or sounds audible to the human ear. The term phonetic recognizable delay is used in two different contexts. The first context relates to such a time lag between the operation of the musician and the production of sound. The second context relates to the continuity of the signal between the first and the rest of the digital waveform signal. The second context also concerns the continuity of the signal between the remaining parts of the digital waveform signal. The second context requires that the delay be less than a few microseconds (eg, so that there is no lack of continuity) to prevent artifacts detectable by the human ear. System parameters and application criteria can affect the definition of speech recognizable delay and latency adequacy. Most preferably, there is no delay between portions of the digital waveform signal when provided at output 28.

【0032】 オーディオ・プロセッサ12の構成のために、システム10は、より低速で費
用がかからない、大容量記憶デバイス(たとえば、ハードディスク・ドライブ)
をソース22として有利に利用することができ、それでも、十分な時間内に出力
28にデジタル出力信号を提供できる。多量のデジタル波形信号を記憶するため
のソース22の使用は、音のリアルタイムな生成のためにプロセッサ12によっ
て必要とされるソリッド・ステート・メモリ(図示せず)のサイズを大幅に削減
する(たとえば、それによってプロセッサ12の費用を削減する)。デジタル波
形信号の全てをソース22からソリッド・ステート・メモリにダウンロードする
従来のシンセサイザ・システムとは異なり、プロセッサ12は、デジタル波形信
号のほとんどがプロセッサ12のソリッド・ステート・メモリに記憶されないよ
うに、キャッシング・システムを利用する。デジタル波形信号のほとんどの部分
は、実際に必要とされるときにソリッド・ステート・メモリに記憶されるだけで
ある。
Because of the configuration of the audio processor 12, the system 10 is a slower and less expensive mass storage device (eg, a hard disk drive)
Can be advantageously used as the source 22 and still provide a digital output signal at the output 28 in sufficient time. The use of source 22 to store large amounts of digital waveform signals greatly reduces the size of solid state memory (not shown) required by processor 12 for real-time generation of sound (eg, , Thereby reducing the cost of processor 12). Unlike conventional synthesizer systems that download all of the digital waveform signals from the source 22 to solid state memory, the processor 12 operates such that most of the digital waveform signals are not stored in the processor 12 solid state memory. Use a caching system. Most of the digital waveform signal is only stored in solid state memory when actually needed.

【0033】 更に特定的には、プロセッサ12は、ソース22に記憶されたデジタル波形信
号のそれぞれの第1の部分のみを記憶するために、そのソリッド・ステート・メ
モリ(図示せず)を利用する。ミュージシャンが特定の楽器を選択すると、プロ
セッサ12は、選択された楽器について記憶された各デジタル波形信号の第1の
部分をダウンロードする。代替的に、ミュージシャンは1つの楽器またはいくつ
かの楽器の一部を選んでもよく、そうすると、プロセッサ12はミュージシャン
の選択に従って各デジタル波形の第1の部分をダウンロードすることができる。
したがって、オーディオ・プロセッサ12のソリッド・ステート・メモリに記憶
されたデジタル波形信号の第1の部分は、選択された楽器または楽器のグループ
に対して、ソース22に記憶されたデジタル波形信号に一対一の関係で対応する
ことが好ましい。
More specifically, processor 12 utilizes its solid state memory (not shown) to store only a first portion of each of the digital waveform signals stored at source 22. . When a musician selects a particular instrument, processor 12 downloads a first portion of each digital waveform signal stored for the selected instrument. Alternatively, the musician may select one instrument or a portion of several instruments, and processor 12 may download a first portion of each digital waveform according to the musician's selection.
Thus, the first portion of the digital waveform signal stored in the solid state memory of audio processor 12 is one-to-one with the digital waveform signal stored in source 22 for the selected instrument or group of instruments. It is preferable to cope with the relationship.

【0034】 第1の部分がオーディオ・プロセッサ12のソリッド・ステート・メモリに一
旦ロードされると、オーディオ・プロセッサ12は、入力20に提供されたデジ
タル制御信号に応答する。オーディオ・プロセッサ12は、入力20に提供され
たデジタル制御信号に呼応して、選択されたデジタル波形信号の第1の部分をそ
のソリッド・ステート・メモリから出力28に与える。デジタル波形信号の少な
くとも最初の0.5秒がソリッド・ステート・メモリに記憶されていることが好
ましい。選択された波形信号の残りの部分は次に、ソース22からプロセッサ1
2および出力28に提供される。残りの部分は、第1の部分が演奏されている間
に検索することができる。残りの部分は、3分までの音を表すデジタル波形信号
の部分を含むことができる。したがって、プロセッサ12は、ソリッド・ステー
ト・メモリに記憶されたデジタル波形信号の第1の部分とソース22に記憶され
た残りの部分とを提供することの間の、音声的認識可能遅延または連続性の欠如
を削減または抹消するために、キャッシング機構を利用する。
Once the first portion has been loaded into the solid state memory of audio processor 12, audio processor 12 is responsive to digital control signals provided at input 20. Audio processor 12 provides a first portion of the selected digital waveform signal at its output 28 from its solid state memory in response to a digital control signal provided at input 20. Preferably, at least the first 0.5 seconds of the digital waveform signal is stored in solid state memory. The remaining portion of the selected waveform signal is then passed from source 22 to processor 1
2 and output 28. The remaining part can be searched while the first part is playing. The remainder can include portions of the digital waveform signal representing up to three minutes of sound. Accordingly, processor 12 may provide a speech recognizable delay or continuity between providing the first portion of the digital waveform signal stored in solid state memory and the remaining portion stored in source 22. Utilize a caching mechanism to reduce or eliminate the lack of

【0035】 図2を参照すると、オーディオ・プロセッサ12は、図2および3においてハ
ードディスク・ドライブとして示されているソース22に接続された入力24を
有する。オーディオ・プロセッサ12は、サンプル・プール40と、ストリーム
・セル43のアレイ42と、命令パーサ50と、命令キュー52と、シンセサイ
ザ・エンジン66と、ダウンロード・モジュール64と、システム・スレッド・
マネージャ68と、ストリーム・エンジン80とを備えている。命令パーサ50
は、入力20と命令キュー52とに接続されている。命令キューは、シンセサイ
ザ・エンジン66の制御入力に接続されている。
Referring to FIG. 2, the audio processor 12 has an input 24 connected to a source 22, which is shown in FIGS. 2 and 3 as a hard disk drive. The audio processor 12 includes a sample pool 40, an array 42 of stream cells 43, an instruction parser 50, an instruction queue 52, a synthesizer engine 66, a download module 64, a system thread
It has a manager 68 and a stream engine 80. Instruction parser 50
Are connected to the input 20 and the instruction queue 52. The instruction queue is connected to a control input of the synthesizer engine 66.

【0036】 入力24はダウンロード・モジュール64とストリーム・エンジン80とに接
続されている。ダウンロード・モジュール64はサンプル・プール40に接続さ
れている。サンプル・プール40は複数のサンプル・プール・セル41を含む。
サンプル・プール・セル41は、ミュージシャンによって選択された特定の楽器
、楽器の一部、楽器のグループのデジタル波形信号のそれぞれに対して設けられ
ている。サンプル・プール40は、様々な数のセルに構成可能である。グランド
・ピアノの例では、プール40は約1100個のセル41を有する。
Input 24 is connected to download module 64 and stream engine 80. The download module 64 is connected to the sample pool 40. The sample pool 40 includes a plurality of sample pool cells 41.
A sample pool cell 41 is provided for each digital waveform signal of a particular instrument, a portion of an instrument, or a group of instruments selected by a musician. The sample pool 40 can be configured into various numbers of cells. In the example of a grand piano, pool 40 has about 1100 cells 41.

【0037】 ストリーム・エンジン80はシステム・スレッド・マネージャ68にも接続さ
れている。システム・スレッド・マネージャ68はストリーム・エンジン80へ
のマスタとして動作する。マネージャ68は、コンピュータのオペレーティング
・システムと協働することにより、プロセッサ12を実施するのに利用されるC
PU(図示せず)の必要な動作時間をストリーム・エンジン80が確実に受け取
るようにする。マネージャ68は、CPUがウィンドウズ(登録商標)環境など
のマルチタスク環境で動作するときは、ストリーム・エンジン80を一貫して作
動したままに維持することが好ましい。
The stream engine 80 is also connected to the system thread manager 68. System thread manager 68 operates as a master to stream engine 80. The manager 68 cooperates with the computer operating system to provide the C
Ensure that the required operating time of the PU (not shown) is received by the stream engine 80. The manager 68 preferably keeps the stream engine 80 running consistently when the CPU operates in a multitasking environment, such as a Windows environment.

【0038】 マネージャ68、エンジン66、エンジン80、モジュール64、およびパー
サ50の動作は、PCプラットフォーム(図示せず)のCPUによって実施され
ることが好ましい。アレイ42、プール40およびキュー52の記憶動作は、P
Cプラットフォームのホスト・メモリによって行われる。
The operation of manager 68, engine 66, engine 80, module 64, and parser 50 is preferably performed by a CPU of a PC platform (not shown). The storage operation of the array 42, pool 40 and queue 52 is P
This is done by the C platform host memory.

【0039】 ストリーム・エンジン80はアレイ42にも接続されている。ストリーム・エ
ンジン80は、デジタル波形信号の一部をソース22からストリーム・セル・ア
レイ42に提供することができる。デジタル波形信号のその部分は、セル・アレ
イ42のセル43に記憶されている。図4を参照すると、セル43のそれぞれは
、ストリーム・バッファ47と実行時間制御データ・バッファ49とを含んでい
る。ストリーム・セル・アレイ42は、約24から256個のセルで大きさを変
更できることが好ましいが、あらゆる大きさのアレイ42が可能である。セル4
3のそれぞれは、ポリフォニの単一の音声またはストリームを表し、ここで、2
つの音声ポリフォニは同時発生の楽音(たとえば、CおよびE楽音の組み合わせ
)を表す。したがって、一対一の音声とストリームのセル43との関係が、プロ
セッサ12によって利用される。
The stream engine 80 is also connected to the array 42. Stream engine 80 may provide a portion of the digital waveform signal from source 22 to stream cell array 42. That portion of the digital waveform signal is stored in cell 43 of cell array 42. Referring to FIG. 4, each of the cells 43 includes a stream buffer 47 and an execution time control data buffer 49. The stream cell array 42 is preferably resizable in about 24 to 256 cells, but any size array 42 is possible. Cell 4
Each of 3 represents a single audio or stream of polyphony, where 2
One voice polyphony represents simultaneous musical tones (eg, a combination of C and E musical tones). Therefore, the relationship between the one-to-one audio and the cells 43 of the stream is utilized by the processor 12.

【0040】 ストリーム・エンジン80は、データまたはデジタル波形信号の部分のストリ
ーム・セル・アレイ42へのフローを管理する。エンジン80は、ソース22か
らセル43へのデータまたは信号の一部のストリームを維持する。データのスト
リームはセル43の数までにすることができ、ソース22からの仮想ストリーム
として維持することができる。
The stream engine 80 manages the flow of data or digital waveform signal portions to the stream cell array 42. Engine 80 maintains a partial stream of data or signals from source 22 to cell 43. The stream of data can be up to the number of cells 43 and can be maintained as a virtual stream from source 22.

【0041】 ストリーム・エンジン80は、プロセッサ12がリアルタイムに、またはリア
ルタイムに近い方法で音を生成できるように、デジタル波形信号の部分をソース
22からアレイ42に移動するように構成された状態マシンであることが好まし
い。ストリーム・エンジン80がデジタル波形信号の部分をアレイ42のセル4
3に提供すると、シンセサイザ・エンジン60はセル43でデジタル波形信号の
部分を消費し、選択された音を表すデジタル波形出力を出力28に提供する。
The stream engine 80 is a state machine configured to move portions of the digital waveform signal from the source 22 to the array 42 so that the processor 12 can generate sound in real time or near real time. Preferably, there is. The stream engine 80 converts a portion of the digital waveform signal to cell 4 of array 42
When provided to 3, synthesizer engine 60 consumes a portion of the digital waveform signal in cell 43 and provides a digital waveform output at output 28 representing the selected sound.

【0042】 ストリーム・エンジン80がアレイ42のセル43をデジタル波形信号の部分
で満たすと、ストリーム・エンジン80は、合成および誤り補正、ならびに損失
のない第2順位の解凍などの解凍動作を行う。このアプリケーションにおいては
、ストリーム・エンジン80は、解説目的で入力24からアレイ42へのスルー
プットとして示し説明しているが、実際にはストリーム・エンジン80はデータ
をソース22からアレイ42に移動する(たとえば、ソース22からアレイ42
への信号のより多くの送信管理動作を行う)。
When the stream engine 80 fills the cells 43 of the array 42 with a portion of the digital waveform signal, the stream engine 80 performs synthesis and error correction and decompression operations such as lossless second order decompression. In this application, stream engine 80 is shown and described as throughput from input 24 to array 42 for illustrative purposes, but in effect stream engine 80 moves data from source 22 to array 42 (e.g., , From source 22 to array 42
Perform more transmission management operations of the signal to).

【0043】 ミュージシャンによって楽器、楽器のグループまたはその一部が選択されると
、ダウンロード・モジュール64は、ソース22から、特定の楽器に関するデジ
タル波形信号のそれぞれの第1の部分を受け取る。ダウンロード・モジュール6
4は、デジタル波形信号の第1の部分をサンプル・プール40のサンプル・セル
41に記憶する。代替的に、デジタル波形信号の第1の部分は、プール40に恒
久的に記憶するか、他のソース(図示せず)から受け取ることもできる。
When an instrument, group of instruments, or portion thereof is selected by the musician, download module 64 receives from source 22 a respective first portion of the digital waveform signal for the particular instrument. Download module 6
4 stores the first portion of the digital waveform signal in the sample cell 41 of the sample pool 40. Alternatively, the first portion of the digital waveform signal may be stored permanently in pool 40 or received from another source (not shown).

【0044】 図5を参照すると、サンプル・プール40(図2)のサンプル・プール・セル
41は、デッキ・バッファ51とグローバル制御データ・バッファ53とを含む
。サンプル・セル41のデッキ・バッファ51は、デジタル波形信号のそれぞれ
の最初の0.5秒(RAMサイズ、CPU速度およびハードディスク速度などの
システム10の特徴に応じて、約64Kbtye)を記憶することが好ましい。
もちろん、ソース22およびエンジン80がアレイ42に信号を更に速く提供で
きるのであれば、より小さいサンプルを記憶することができる。
Referring to FIG. 5, sample pool cell 41 of sample pool 40 (FIG. 2) includes a deck buffer 51 and a global control data buffer 53. The deck buffer 51 of the sample cell 41 may store the first 0.5 seconds of each of the digital waveform signals (approximately 64 Kbtie, depending on system 10 characteristics such as RAM size, CPU speed and hard disk speed). preferable.
Of course, if source 22 and engine 80 can provide signals to array 42 more quickly, smaller samples can be stored.

【0045】 グローバル制御データ・バッファ53は、制御情報またはグローバル制御デー
タを含む。グローバル制御データは、特定のサンプルに関する制御データを意味
する。グローバル制御データは、ロード時間にシステム10に利用可能である。
グローバル制御データは、サンプリング・レート、サンプルの長さ、再生パラメ
ータ、および圧縮アルゴリズムの制御ワードを含む、サンプルまたはデジタル波
形信号の特徴をシステム10に提供する。制御ワードは、特定のパケットまたは
デジタル波形信号の部分を解凍するのに使用される。
The global control data buffer 53 contains control information or global control data. Global control data refers to control data for a particular sample. Global control data is available to system 10 at load time.
The global control data provides characteristics of the sample or digital waveform signal to the system 10, including control words for the sampling rate, sample length, playback parameters, and compression algorithm. The control words are used to decompress specific packets or portions of the digital waveform signal.

【0046】 メモリ・スペースは、デジタル波形信号の第1の部分をセル43に記憶するの
ではなく、プール40における対応するデッキ・バッファ51を単にアドレスす
る、セル43のバッファ49のポインタ(図示せず)を使用することにより保存
できる。同様に、メモリ・スペースは、グローバル制御データ・バッファ53を
単に指し示すポインタ(図示せず)を提供することにより保存できる。
The memory space does not store the first portion of the digital waveform signal in cell 43, but merely addresses the corresponding deck buffer 51 in pool 40 with a pointer in buffer 49 of cell 43 (shown in FIG. Can be saved by using Similarly, memory space can be saved by simply providing a pointer (not shown) pointing to global control data buffer 53.

【0047】 動作においては、入力20にMIDI制御信号などのデジタル制御信号が提供
されると、パーサ50は、全ての新たなストリーム・セル43の割り当てを管理
する。パーサ50は、ストリーム・セル43に適切なサンプル・セル41を参照
させるために、入力20で非同期デジタル制御信号に応答する。パーサ50は、
入力20で受け取るオン/オフ・メッセージに呼応して、作動しているストリー
ム・セル43の割り当ておよび割り当て解除を管理する。たとえば、ミュージシ
ャンがキーを打鍵すると、事象がパーサ50に送られて、特定のサンプル・セル
41をオンにする。パーサ50は、シンセサイザ・システム10の現在の状態と
共に、キーが打鍵された速度に基づいて、サンプル・プール40から適切なセル
41を発見する。パーサ50は、利用可能なセル43からのストリーム・セル4
3をアレイ42に割り当てる責任を負う。
In operation, when a digital control signal, such as a MIDI control signal, is provided at input 20, parser 50 manages the assignment of all new stream cells 43. Parser 50 responds to the asynchronous digital control signal at input 20 to refer stream cell 43 to the appropriate sample cell 41. The parser 50
In response to the on / off message received at input 20, it manages the allocation and deallocation of active stream cells 43. For example, when a musician strikes a key, an event is sent to parser 50 to turn on a particular sample cell 41. The parser 50 finds an appropriate cell 41 from the sample pool 40 based on the speed at which the key was pressed, along with the current state of the synthesizer system 10. Parser 50 is responsible for stream cell 4 from available cell 43.
3 is responsible for assigning 3 to array 42.

【0048】 パーサ50はまず、未使用のストリーム・セル43を探す。パーサ50は、ス
トリーム・セル43のバッファ49に記憶された実行時間制御データを使用して
、その利用可能性を判断する。全てのストリーム・セル43が割り当てられてい
る場合には、パーサ50はどのストリーム・セル43を割り込みさせるべきかを
判断するために、以下の規則を使用する。 1.適用可能であれば、パーサ50は同一の特徴を備えた音声を新たな音声と
して探す。たとえば、キーボード上の中央ハが現在演奏されていて、システム1
0が最大ポリフォニにあるときにミュージシャンがもう1つの中央ハを打鍵した
場合には、パーサ50は、古い方の中央ハに新しい方の中央ハを割り込ませる。 2.パーサ50は、バッファ49において最低の実行時間ボリューム値を備え
た音声(たとえば、セル43)を発見し、それを割り込まれた音声として選択す
る。
The parser 50 first searches for an unused stream cell 43. Parser 50 uses the runtime control data stored in buffer 49 of stream cell 43 to determine its availability. If all stream cells 43 have been assigned, parser 50 uses the following rules to determine which stream cell 43 to interrupt. 1. If applicable, parser 50 looks for a voice with the same characteristics as a new voice. For example, the middle C on the keyboard is currently playing and the system 1
If the musician taps another center C while 0 is at maximum polyphony, parser 50 will cause the old center C to be interrupted by the new center C. 2. Parser 50 finds the audio with the lowest execution time volume value in buffer 49 (eg, cell 43) and selects it as the interrupted audio.

【0049】 パーサ50は、ストリーム・セル43を割り当てるに当たって、バッファ49
に実行時間制御データを設定する。実行時間制御データは、単一のサンプル・セ
ル41を参照する。実行時間制御データはまた、ストリーム・エンジン80とシ
ンセサイザ・エンジン66の両方に、この特定のセル43の処理を始めるように
信号で知らせる。新たな音声の割り当て時に、パーサ50はストリーム・セル4
3の全ての初期化に責任を負う。
In allocating the stream cell 43, the parser 50
To set the execution time control data. The execution time control data refers to a single sample cell 41. The runtime control data also signals both the stream engine 80 and the synthesizer engine 66 to begin processing this particular cell 43. At the time of new voice allocation, parser 50 sends stream cell 4
Responsible for all initialization of 3.

【0050】 同様に、パーサ50は全ての制御信号を、命令キュー52を介してシンセサイ
ザ・エンジン66へと通過させる。これらの命令は、エンジン66が、MIDI
1.0使用などの業界で認められた基準によって定められたように再生を制御す
るように制御することができる。たとえば、音声の自然な終了は、ミュージシャ
ンが楽器のキーを解除したことを信号で知らせることができる。このオフ信号は
、シンセサイザ・エンジン66が、アコースティック楽器の音に一致した方法で
、作動している音声を自然に低下させることができる。
Similarly, parser 50 passes all control signals to synthesizer engine 66 via instruction queue 52. These instructions are sent by the engine 66
It can be controlled to control playback as defined by industry accepted standards such as 1.0 use. For example, a natural end of speech can signal that a musician has released a key on an instrument. This off signal allows the synthesizer engine 66 to naturally lower the active sound in a manner consistent with the sound of the acoustic instrument.

【0051】 パーサ50は、「新たな音声」というフラッグを立てることにより、実行時間
制御データを初期化する。フラッグは、優先スケジューリングおよび誤り補正の
ために、ストリーム・エンジン80と共に使用される。パーサ50は、新たな音
声/ストリーム・セル43に関する進行カウンタも初期化する。この進行カウン
タは、優先スケジューリングおよびストリーム・データのインテグリティのため
に、ストリーム・エンジン80およびシンセサイザ・エンジン66によって維持
される。
The parser 50 initializes the execution time control data by setting a flag “new voice”. The flags are used with the stream engine 80 for priority scheduling and error correction. Parser 50 also initializes a progress counter for the new voice / stream cell 43. This progress counter is maintained by the stream engine 80 and the synthesizer engine 66 for priority scheduling and stream data integrity.

【0052】 パーサ50は、関連づけられたサンプル・セル41のデッキ・バッファ51を
指し示すために、バッファ49の実行時間制御データを初期化する。また、パー
サ50は、ストリーム・セル43に対応するストリーム・バッファ47を設定す
る。シンセサイザ・エンジン66は次に、デッキ・バッファ51から処理を始め
る。データがデッキ・バッファ51から消費されると、ストリーム・エンジン8
0はセル43のストリーム・バッファ47を満たし始める。最終的に、シンセサ
イザ・エンジン66は、デッキ・バッファ51で利用可能な全てのデータを消費
する。エンジン66は、バッファ51の全てのデータが一旦消費されると、セル
43のストリーム・バッファ47からデータを消費し始めるために、その内部ポ
インタを動的に切り換える。エンジン66は、実行時間制御データにおいて適切
なフラッグを設定し、進行カウンタを進めることにより、ストリーム・エンジン
80に信号で知らせる。
The parser 50 initializes the execution time control data in the buffer 49 to point to the deck buffer 51 of the associated sample cell 41. Further, the parser 50 sets the stream buffer 47 corresponding to the stream cell 43. Next, the synthesizer engine 66 starts processing from the deck buffer 51. When data is consumed from the deck buffer 51, the stream engine 8
0 starts filling the stream buffer 47 of the cell 43. Eventually, the synthesizer engine 66 consumes all data available in the deck buffer 51. Once all of the data in buffer 51 has been consumed, engine 66 dynamically switches its internal pointer to begin consuming data from stream buffer 47 in cell 43. Engine 66 signals stream engine 80 by setting the appropriate flag in the run time control data and incrementing a progress counter.

【0053】 図3を参照すると、ソース22に接続された入力24を有するストリーム・エ
ンジン80が示されている。エンジン80は、システム・スレッド・マネージャ
68にも接続されている。ストリーム・エンジン80の出力は、セル43のアレ
イ42に接続されている。
Referring to FIG. 3, a stream engine 80 having an input 24 connected to the source 22 is shown. Engine 80 is also connected to system thread manager 68. The output of the stream engine 80 is connected to the array 42 of cells 43.

【0054】 ストリーム・エンジン80は、優先ストリーム・スケジューラ82と、バッフ
ァ管理セレクタ84と、ストリーム・カウント・マネージャ86と、ソース22
に接続された制御出力を有するディスク・シンクロナイザ88と、制御ワード・
パーサ90と、データ・ムーバ94と、デコンプレッサ96とを含む。データ・
ムーバ94は、命令パーサ50から命令合成回路102にも接続されている。
The stream engine 80 includes a priority stream scheduler 82, a buffer management selector 84, a stream count manager 86,
A disk synchronizer 88 having a control output connected to the control word
It includes a parser 90, a data mover 94, and a decompressor 96. data·
The mover 94 is also connected from the instruction parser 50 to the instruction synthesis circuit 102.

【0055】 ストリーム・エンジン80は、サンプル・オーディオ(たとえば、デジタル出
力信号)のリアルタイム・インテグリティを維持しながら、データをソース22
から作動しているストリーム・セル43に供給する責任を負う。エンジン80は
個々のセル43へのプロデューサとして働き、一方、シンセサイザ・エンジン6
6はコンシューマとして働く。シンセサイザ・エンジン66およびストリーム・
エンジン80は、実行時間制御データによって接続されており、このデータは、
新たな音声が割り当てられたときに、パーサ50によって初期化される。実行時
間制御データは、データのコンシューマ(たとえば、エンジン66)とプロデュ
ーサ(たとえば、エンジン80)とが常に同期したままであることを確実にする
ことにより、システム10全体の可聴インテグリティを保証する。
The stream engine 80 transmits data to the source 22 while maintaining the real-time integrity of the sampled audio (eg, digital output signal).
Is responsible for supplying the stream cell 43 operating from Engine 80 acts as a producer to individual cells 43 while synthesizer engine 6
6 works as a consumer. Synthesizer engine 66 and stream
The engine 80 is connected by execution time control data,
Initialized by parser 50 when a new voice is assigned. Runtime control data ensures audible integrity of the entire system 10 by ensuring that consumers (eg, engine 66) and producers (eg, engine 80) of the data remain constantly synchronized.

【0056】 ストリーム・エンジン80はデータをn−チャネル(たとえば、nセル43)
に供給するが、ここでnは現在のポリフォニ・レベルである。データは、ソース
22から適切なストリーム・セル43のストリーム・バッファ47にストリーム
される。複数のストリーム・セル43を処理する順序は、優先ストリーム・スケ
ジューラ82によって実行時に決定される。優先ストリーム・スケジューラ82
は、優先レベル・スケジューリング機構に基づく。セル43は、優先レベルを動
的に割り当てられる。セル43は、最初に処理された最高レベルで扱われる。優
先レベルは、データ・ストリームの現在の位置に基づいて、セル43に割り当て
られる。新たな音声が割り当てられると、データ・ストリームはソース22の開
始位置に初期化される。特定のセル43は新たなストリーム位置に割り当てられ
る。新たなストリーム位置でフラッグを立てられたストリーム・セル43は、シ
ステム10において最高の優先順位を与えられる。新たなストリーム・フラッグ
のセットを有する複数のセル43がある場合には、ラウンド・ロビン方法が実施
される。
The stream engine 80 transfers data to an n-channel (eg, n-cell 43)
Where n is the current polyphony level. Data is streamed from the source 22 to the stream buffer 47 of the appropriate stream cell 43. The order in which the plurality of stream cells 43 are processed is determined at runtime by the priority stream scheduler 82. Priority stream scheduler 82
Is based on a priority level scheduling mechanism. The cell 43 is dynamically assigned a priority level. Cell 43 is treated at the highest level processed first. Priority levels are assigned to cells 43 based on the current position of the data stream. When a new voice is assigned, the data stream is initialized to the starting position of source 22. Specific cells 43 are assigned to new stream positions. The stream cell 43 flagged at the new stream position is given the highest priority in the system 10. If there are multiple cells 43 with a new set of stream flags, a round robin method is implemented.

【0057】 新たなフラッグのセットを有していないストリーム・セル43は、バッファ4
9における実行時間制御データの構成要素である進行カウンタに基づいて優先順
位を与えられる。このカウンタは、シンセサイザ・エンジン66によって、デー
タの単一の四分区間がストリーム・バッファ47から消費されたときに、カウン
トが進む。優先レベルは、進行カウンタの値によって決定される。このカウンタ
は、新たな音声が割り当てられたときに、パーサ50によってゼロに初期化され
る。複数のセル43が同じ優先レベルを有している場合には、ラウンド・ロビン
・スケジューラが実施される。
Stream cells 43 that do not have a new set of flags are stored in buffer 4
9 is given a priority based on the progress counter which is a component of the execution time control data. This counter increments when a single quadrant of data is consumed from the stream buffer 47 by the synthesizer engine 66. The priority level is determined by the value of the progress counter. This counter is initialized to zero by parser 50 when a new voice is assigned. If multiple cells 43 have the same priority level, a round robin scheduler is implemented.

【0058】 ストリーム・エンジン80はシステム・スレッド・マネージャ68を介してシ
ステム10の制御を与えられる状態マシンである。。システム・スレッド・マネ
ージャ68は、ホスト・プロセッサ(図示せず)の残りの帯域幅の全てをストリ
ーム・エンジン80に割り当てることに責任を負う。
The stream engine 80 is a state machine that is given control of the system 10 via the system thread manager 68. . The system thread manager 68 is responsible for allocating all of the remaining bandwidth of the host processor (not shown) to the stream engine 80.

【0059】 優先ストリーム・スケジューラ82は、ストリーム・セル43がもしあれば、
どれを次に処理する必要があるかを判断する。適切なストリーム・セル43が処
理のためにタッグされていたならば、制御はバッファ管理セレクタ84に伝えら
れる。バッファ管理セレクタ84は、現在使用されているバッファ・スキームに
基づいて、ソース22からストリーム・バッファ47への転送を初期化する。様
々なハードウエア・システムに関するリアルタイムな正確性を保証するために、
システム10は2つの異なったバッファリング・スキームを実施する。バッファ
リング・スキームの選択は、CPU帯域幅、ソース22の速度(データ・アクセ
ス時間およびシーク時間を含む)を含むシステム・パラメータの関数である。シ
ステム10は、2つのバッファリング・スキーム、すなわち、単一の四分区間転
送および2四分区間転送を採用している。
The priority stream scheduler 82 determines if the stream cell 43, if any,
Determine which needs to be processed next. If the appropriate stream cell 43 has been tagged for processing, control is passed to the buffer management selector 84. The buffer management selector 84 initiates a transfer from the source 22 to the stream buffer 47 based on the currently used buffer scheme. To guarantee real-time accuracy for various hardware systems,
System 10 implements two different buffering schemes. The choice of buffering scheme is a function of system parameters, including CPU bandwidth, source 22 speed (including data access time and seek time). System 10 employs two buffering schemes, a single quadrant transfer and a two-quarter transfer.

【0060】 セル43の全てのストリーム・バッファ47は、4個の四分区間として見るこ
とができる。シンセサイザ・エンジン66は、四分区間毎にデータを消費する。
四分区間が消費される毎に、進行カウンタはカウントが上がる。ストリーム・エ
ンジン80は、現在採用しているバッファリング・スキームに応じて、一回に単
一の四分区間または2四分区間のいずれかでストリーム・バッファ47を満たす
。ストリーム・エンジン80は、ソース22の全体にわたって分割されることが
あるリアルタイム・データのnストリームを潜在的に維持するが、ここでnはシ
ステム10のポリフォニである。複数のストリームにアクセスする際に、ソース
22、セットアップ時間(たとえば、シーク時間)、およびデータ・レートの効
率的利用に対して、2つのパラメータが問題である。ストリーム・セル43を処
理する必要がある毎に、システム10はセットアップ時間の費用を生じさせる。
システム10は、ディスク・シンクロナイザ88を使用して、現在のストリーム
の正確な場所からソース22をセットアップする。2四分区間バッファリング・
スキームにおいては、ストリームの存続時間にわたって、ストリームをセットア
ップするのに要した累積時間は、単一の四分区間バッファを使用したときに要す
る時間の半分になる。
All stream buffers 47 in cell 43 can be viewed as four quadrants. The synthesizer engine 66 consumes data every quarter.
Each time a quadrant is consumed, the progress counter increments. The stream engine 80 fills the stream buffer 47 with either a single quadrant or two quadrants at a time, depending on the buffering scheme currently employed. Stream engine 80 potentially maintains n streams of real-time data, which may be split across source 22, where n is the polyphony of system 10. In accessing multiple streams, two parameters are a problem for efficient use of source 22, setup time (eg, seek time), and data rate. Each time a stream cell 43 needs to be processed, the system 10 incurs setup time costs.
The system 10 uses a disk synchronizer 88 to set up the source 22 from the exact location of the current stream. 2/4 section buffering
In the scheme, the cumulative time required to set up the stream over the lifetime of the stream is half that required when using a single quadrant buffer.

【0061】 2四分区間バッファリング・スキームを使用することに対する否定的な点は、
セル43を処理する必要がある毎に、二倍の量のデータをソース22からストリ
ーム・バッファ47に移動しなければならないことである。ストリーム・エンジ
ン80は、ストリーム・セル43を処理するときに単一スレッドの実行を維持す
るので、単一セル45がソース22の制御を長く維持しすぎれば、他のストリー
ムは枯渇する潜在性を有する。特定のストリーム・セル43に関するバッファリ
ング・スキームは、実行時間制御データ・バッファ49に記憶される。ストリー
ム・カウント・マネージャ80は、あらゆる所与のストリーム・セル43に対し
て、ストリーム・エンジン80の現在の状態を示すことを目的として、進行カウ
ンタを管理する。進行カウンタは、更にデータを求めてストリーム・エンジン8
0に信号で知らせるための方法として、シンセサイザ・エンジン66によって使
用される。同様に、進行カウンタは、データが利用可能であることを示すために
使用することができる。
The downside to using a two-quarter buffering scheme is that
Each time a cell 43 needs to be processed, twice as much data has to be moved from the source 22 to the stream buffer 47. Because stream engine 80 maintains single thread execution when processing stream cell 43, if single cell 45 maintains control of source 22 for too long, other streams have the potential to be depleted. Have. The buffering scheme for a particular stream cell 43 is stored in the runtime control data buffer 49. The stream count manager 80 manages a progress counter for any given stream cell 43 with the purpose of indicating the current state of the stream engine 80. The progress counter checks the stream engine 8 for more data.
Used by synthesizer engine 66 as a way to signal a zero. Similarly, a progress counter can be used to indicate that data is available.

【0062】 バッファ管理セレクタ84が適切なバッファリング・スキームを選択した後に
、ディスク・シンクロナイザ80は、読み取り装置をソース22の正確な場所に
移動するために、命令を発することによりソース22をセットアップする。あら
ゆるストリーム・セル43に関するソース22上の正確な場所は、実行時間制御
データ・バッファ49で維持される。実行時間制御データは、ストリーム・マネ
ージャ80を通過する毎に更新される。
After the buffer management selector 84 selects the appropriate buffering scheme, the disk synchronizer 80 sets up the source 22 by issuing instructions to move the reader to the correct location on the source 22. . The exact location on source 22 for any stream cell 43 is maintained in runtime control data buffer 49. The execution time control data is updated each time the data passes through the stream manager 80.

【0063】 システム10は圧縮データに責任を負う。あらゆる圧縮アルゴリズムを実施で
きる。しかし、楽音生成のアプリケーションについては、損失のないスキームを
実施することが好ましい。損失のないアルゴリズムは、圧縮/解凍工程のために
品質が低下しないことを保証する。音楽サンプルは、ソース22における記憶の
前に圧縮される。この実施形態は、第2順位の差分圧縮/解凍アルゴリズムを実
施する。ストリームの解凍はデコンプレッサ96によって扱われる。圧縮された
ストリームはパケット化される。各パケットは、デコンプレッサ96用の制御デ
ータとして使用される単一の制御ワードを含む。制御ワードは、最初に楽器と共
にソース22に記憶される。楽器がシステム10にロードされると、ダウンロー
ド・モジュール64は、制御ワードを、ソース22からプール40のセル41の
グローバル制御データ・バッファ53に転送する。解凍アルゴリズムは、2n
サイズであることを条件に、様々なパケットのサイズを受け入れることができる
。パケットのサイズは、サンプル抽出された楽器の圧縮率を相殺する。この実施
形態は、2キロワードのパケット・サイズを使用している。
The system 10 is responsible for the compressed data. Any compression algorithm can be implemented. However, for tone generation applications, it is preferable to implement a lossless scheme. A lossless algorithm ensures that quality is not degraded due to the compression / decompression process. The music samples are compressed before storage at source 22. This embodiment implements a second order differential compression / decompression algorithm. Decompression of the stream is handled by decompressor 96. The compressed stream is packetized. Each packet contains a single control word used as control data for decompressor 96. The control words are initially stored in source 22 with the instrument. When an instrument is loaded into system 10, download module 64 transfers control words from source 22 to global control data buffer 53 of cell 41 of pool 40. The decompression algorithm can accept various packet sizes, provided it is 2 n in size. The packet size offsets the compression ratio of the sampled instrument. This embodiment uses a packet size of 2 kilowords.

【0064】 データ・ムーバは、ソース22からサンプル抽出された楽器を、第2順位のデ
コンプレッサまたはストリーム・バッファ47のいずれかに向けることに責任を
負う。データは移動される前に、命令同期モジュール102が実行される。モジ
ュール102は、あらゆる誤り補正および、ストリーム・エンジン80とパーサ
50との間の全ての同期を扱う責任を負う。命令同期102は、ストリーム・セ
ル43の前述の割り込みを扱う。システム10が最大ポリフォニに達し、新たな
音声が開始されたために、ストリーム・セル43が早期に割り当て解除された場
合には、ストリーム・エンジン80は、先に進む前に、作動しているストリーム
・セル43のインテグリティをチェックしなければならない。この状況は、スト
リーム・エンジン80とパーサ50とが非同期に動作する結果である。
The data mover is responsible for directing the sampled instrument from the source 22 to either a second order decompressor or stream buffer 47. Before the data is moved, the instruction synchronization module 102 is executed. Module 102 is responsible for handling any error correction and any synchronization between stream engine 80 and parser 50. Instruction synchronization 102 handles the aforementioned interrupts of stream cell 43. If the stream cell 43 is deallocated early because the system 10 has reached the maximum polyphony and a new voice has been started, the stream engine 80 will return to the active stream cell before proceeding. The integrity of cell 43 must be checked. This situation is the result of the stream engine 80 and the parser 50 operating asynchronously.

【0065】 図2を参照すると、システム10は、セル41のデッキ・バッファ51および
プール40に記憶されたデジタル波形信号の第1の部分を、シンセサイザ・エン
ジン66を介してプール40から出力28へ直接的に提供するのではなく、アレ
イ42のセル43に提供するように構成することができる。この方法においては
、エンジン80またはエンジン66は、デジタル波形信号の第1の部分を、プー
ル40からアレイ42のセル43に移動する。次に、シンセサイザ・エンジン6
6は、デジタル波形信号の第1の部分をアレイ42のセル43からデジタル出力
28に移動する。
Referring to FIG. 2, system 10 transfers a first portion of the digital waveform signal stored in deck buffer 51 of cell 41 and pool 40 from pool 40 to output 28 via synthesizer engine 66. Rather than providing directly, it can be configured to provide to cells 43 of array 42. In this manner, engine 80 or engine 66 moves a first portion of the digital waveform signal from pool 40 to cell 43 of array 42. Next, synthesizer engine 6
6 moves a first portion of the digital waveform signal from cell 43 of array 42 to digital output 28.

【0066】 デッキ・バッファ45は、64Kバイトから構成されていることが望ましい。
ストリーム・バッファ47は、32キロバイト(Kb)の2〜4個の直角位相か
ら構成されていることが好ましい。制御バッファ49は200バイトから構成さ
れている。ソース22は、約7ミリ秒(ms)のシーク時間と、8〜12MB/
Sのデータ・レートを有するが、他の時間も可能である。ソース22は、1ギガ
バイト以上のハードディスク・ドライブであることが好ましい。
It is desirable that the deck buffer 45 be composed of 64 Kbytes.
The stream buffer 47 is preferably composed of 2 to 4 quadrature phases of 32 kilobytes (Kb). The control buffer 49 is composed of 200 bytes. The source 22 has a seek time of about 7 milliseconds (ms) and a
It has a data rate of S, but other times are possible. Source 22 is preferably a one gigabyte or larger hard disk drive.

【0067】 詳細な図面、特定の例および与えられた特定の構成要素値は、本発明の好適な
例示的な実施形態を説明しているが、これらは例示のみを目的としていることが
理解されるであろう。本発明の装置および方法は、開示されたとおりの詳細およ
び条件には限定されない。たとえば、システムはソフトウエア構成のコンピュー
タ・ベースのシンセサイザとして利用されているが、他のハードウエア・スキー
ムおよびソフトウエア・スキームも利用できる。また、特定のメモリ・サイズお
よび期間を論じたが、これらは例示を目的として論じたに過ぎない。更に、様々
の図面中の単一の線が、複数の導線を表すこともある。特許請求の範囲によって
定められた本発明の主旨から逸脱することなく、開示した詳細に様々な変更が加
えられる。
Although the detailed drawings, specific examples, and specific component values given describe preferred exemplary embodiments of the present invention, it is understood that they are for purposes of illustration only. Will be. The apparatus and method of the present invention are not limited to the details and conditions as disclosed. For example, the system is being used as a software-based computer-based synthesizer, but other hardware and software schemes can be used. Also, while specific memory sizes and periods have been discussed, they are discussed for illustrative purposes only. Further, a single line in various drawings may represent multiple leads. Various changes may be made to the details disclosed without departing from the spirit of the invention as defined by the appended claims.

【図面の簡単な説明】[Brief description of the drawings]

【図1】 本発明の例示的実施形態による、オーディオ・プロセッサを備えたデジタル・
サウンド・シンセサイザ・システムの例示的ブロック図でる。
FIG. 1 illustrates a digital audio device with an audio processor, according to an exemplary embodiment of the invention.
FIG. 2 is an exemplary block diagram of a sound synthesizer system.

【図2】 ストリーム・エンジンと、ストリーム・バッファ・セルのアレイと、サンプル
・プール・セルを含むサンプル・プールとを備えた、図1に示したオーディオ・
プロセッサを示す更に詳細なブロック図である。
FIG. 2 shows the audio engine shown in FIG. 1 with a stream engine, an array of stream buffer cells, and a sample pool including sample pool cells.
FIG. 3 is a more detailed block diagram illustrating a processor.

【図3】 図2に示したストリーム・エンジンの更に詳細なブロック図である。FIG. 3 is a more detailed block diagram of the stream engine shown in FIG.

【図4】 図2に示したストリーム・バッファ・セルの1つのブロック図である。FIG. 4 is a block diagram of one of the stream buffer cells shown in FIG.

【図5】 図2に示したサンプル・プール・セルの1つのブロック図である。FIG. 5 is a block diagram of one of the sample pool cells shown in FIG.

───────────────────────────────────────────────────── フロントページの続き (72)発明者 ビボ,ジョセフ・エイ アメリカ合衆国・78759・テキサス州・オ ースティン・ブルーグラス ドライブ・ 8707 Fターム(参考) 5D378 AD01 AD21 BB02 BB07 BB22 XX11 ──────────────────────────────────────────────────続 き Continued on the front page (72) Inventor Vivo, Joseph A. USA, 78759, Texas, Austin Bluegrass Drive, 8707 F-term (reference) 5D378 AD01 AD21 BB02 BB07 BB22 XX11

Claims (10)

【特許請求の範囲】[Claims] 【請求項1】 入力および出力を有し、複数のデジタル波形信号を使用する
デジタル・シンセサイザ・システムであって、 前記複数のデジタル波形信号のそれぞれの少なくとも第2の部分を記憶する大
容量記憶デバイスと、 前記複数のデジタル波形信号のそれぞれの第1の部分を記憶するメモリと、 前記メモリおよび前記大容量記憶デバイスに接続されており、前記複数のデジ
タル波形信号のうち選択された信号の前記第1の部分を前記メモリから前記出力
に提供し、次に、前記複数のデジタル波形信号のうち選択された信号の前記第2
の部分を前記大容量記憶デバイスから前記出力に提供する制御回路と を含むデジタル・シンセサイザ・システム。
1. A digital synthesizer system having an input and an output and using a plurality of digital waveform signals, the mass storage device storing at least a second portion of each of the plurality of digital waveform signals. A memory for storing a first portion of each of the plurality of digital waveform signals; a memory connected to the memory and the mass storage device, the first one of the signals selected from the plurality of digital waveform signals; Providing a portion of the one of the plurality of digital waveform signals to the output from the memory;
And a control circuit for providing the portion from the mass storage device to the output.
【請求項2】 前記複数のデジタル波形信号のうち前記選択された信号の前
記第2の部分は、前記複数のデジタル波形信号のうち前記選択された信号の前記
第1の部分が選択された後に、前記メモリに記憶される請求項1に記載のデジタ
ル・シンセサイザ・システム。
2. The method according to claim 1, wherein the second part of the selected signal among the plurality of digital waveform signals is performed after the first part of the selected signal among the plurality of digital waveform signals is selected. The digital synthesizer system according to claim 1, wherein the digital synthesizer system is stored in the memory.
【請求項3】 前記複数のデジタル波形信号のうち前記選択された信号の前
記第2の部分は、前記メモリに記憶されているときに前記メモリから検索される
請求項2に記載のデジタル・シンセサイザ・システム。
3. The digital synthesizer of claim 2, wherein said second portion of said selected one of said plurality of digital waveform signals is retrieved from said memory when stored in said memory. ·system.
【請求項4】 前記制御回路はCPUを含む請求項1に記載のデジタル・シ
ンセサイザ・システム。
4. The digital synthesizer system according to claim 1, wherein said control circuit includes a CPU.
【請求項5】 前記大容量記憶デバイスは、光ディスク・ドライブ、テープ
・ドライブ、ハードディスク・ドライブ、またはフロッピ・ディスク・ドライブ
を含む請求項1ないし4のいずれか一項に記載のデジタル・シンセサイザ・シス
テム。
5. The digital synthesizer system according to claim 1, wherein said mass storage device comprises an optical disk drive, a tape drive, a hard disk drive, or a floppy disk drive. .
【請求項6】 入力および出力を有し、複数のデジタル波形信号を使用する
デジタル・シンセサイザ・システムであって、 前記複数のデジタル波形信号のそれぞれの第1の部分と第2の部分とを記憶す
る、比較的速度の遅いアクセス・タイミングを有する第1のメモリと、 比較的速いアクセス・タイミングを有する第2のメモリと、 前記第1のメモリおよび前記第2のメモリに接続され、前記複数のデジタル波
形信号のうち選択された信号の前記第1の部分を前記出力に提供し、続いて前記
第2の部分を提供する制御回路とを含み、 前記制御回路は、前記複数のデジタル波形信号のうち前記選択された信号の前
記第1の部分を前記第2のメモリ内に選択的に移動させるデジタル・シンセサイ
ザ・システム。
6. A digital synthesizer system having an input and an output and using a plurality of digital waveform signals, storing a first portion and a second portion of each of the plurality of digital waveform signals. A first memory having a relatively slow access timing, a second memory having a relatively fast access timing, and a plurality of the plurality of memories connected to the first memory and the second memory. A control circuit for providing the first portion of a selected one of the digital waveform signals to the output and subsequently providing the second portion, the control circuit comprising: A digital synthesizer system for selectively moving the first portion of the selected signal into the second memory.
【請求項7】 前記複数のデジタル波形信号のうち前記選択された信号の前
記第1の部分は、前記制御回路が前記複数のデジタル波形信号の前記第1の部分
を前記出力に提供した後に、前記第2のメモリに記憶される請求項6に記載のデ
ジタル・シンセサイザ・システム。
7. The method of claim 1, wherein the first portion of the selected signal of the plurality of digital waveform signals comprises: after the control circuit provides the first portion of the plurality of digital waveform signals to the output. 7. The digital synthesizer system according to claim 6, wherein the digital synthesizer system is stored in the second memory.
【請求項8】 前記複数のデジタル波形信号のうち前記選択された信号の前
記第1の部分は、前記第2のメモリに記憶されているときに前記第2のメモリか
ら受け取られる請求項7に記載のデジタル・シンセサイザ・システム。
8. The method of claim 7, wherein the first portion of the selected one of the plurality of digital waveform signals is received from the second memory when stored in the second memory. The described digital synthesizer system.
【請求項9】 前記制御回路はCPUを含む請求項6に記載のデジタル・シ
ンセサイザ・システム。
9. The digital synthesizer system according to claim 6, wherein said control circuit includes a CPU.
【請求項10】 前記第1のメモリは、光ディスク・ドライブ、テープ・ド
ライブ、ハードディスク・ドライブ、またはフロッピ・ディスク・ドライブを含
む請求項6ないし9のいずれか一項に記載のデジタル・シンセサイザ・システム
10. The digital synthesizer system according to claim 6, wherein the first memory includes an optical disk drive, a tape drive, a hard disk drive, or a floppy disk drive. .
JP2000553943A 1998-06-10 1999-06-10 Synthesizer system using mass storage device for real-time, low-latency access of musical instrument digital samples Pending JP2002518693A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/095,519 1998-06-10
US09/095,519 US6008446A (en) 1997-05-27 1998-06-10 Synthesizer system utilizing mass storage devices for real time, low latency access of musical instrument digital samples
PCT/US1999/013182 WO1999065016A1 (en) 1998-06-10 1999-06-10 Synthesizer system utilizing mass storage devices for real time, low latency access of musical instrument digital samples

Publications (1)

Publication Number Publication Date
JP2002518693A true JP2002518693A (en) 2002-06-25

Family

ID=22252375

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000553943A Pending JP2002518693A (en) 1998-06-10 1999-06-10 Synthesizer system using mass storage device for real-time, low-latency access of musical instrument digital samples

Country Status (3)

Country Link
EP (1) EP1101217A1 (en)
JP (1) JP2002518693A (en)
WO (1) WO1999065016A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL1018506C2 (en) * 2001-07-10 2003-01-13 Michiel Post H O D N Post Audi Digital musical instrument.

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6029794A (en) * 1983-07-29 1985-02-15 ヤマハ株式会社 Electronic musical instrument
GB9103239D0 (en) * 1991-02-15 1991-04-03 Kemp Michael J Improvements relating to data storage techniques
US5811706A (en) * 1997-05-27 1998-09-22 Rockwell Semiconductor Systems, Inc. Synthesizer system utilizing mass storage devices for real time, low latency access of musical instrument digital samples

Also Published As

Publication number Publication date
WO1999065016A1 (en) 1999-12-16
EP1101217A1 (en) 2001-05-23

Similar Documents

Publication Publication Date Title
US5811706A (en) Synthesizer system utilizing mass storage devices for real time, low latency access of musical instrument digital samples
US5281754A (en) Melody composer and arranger
US5515474A (en) Audio I/O instruction interpretation for audio card
US5747714A (en) Digital tone synthesis modeling for complex instruments
KR0149251B1 (en) Micromanipulation of waveforms in a sampling music synthesizer
US9613635B2 (en) Automated performance technology using audio waveform data
CN110299128B (en) Electronic musical instrument, method, storage medium
US10373595B2 (en) Musical sound generation device
US20010045155A1 (en) Method of compressing a midi file
US10475425B2 (en) Musical sound generation device
EP0752697B1 (en) Tone waveform generating method and apparatus based on software
EP3518230B1 (en) Generation and transmission of musical performance data
US4805511A (en) Electronic bell-tone generating system
JP2002518693A (en) Synthesizer system using mass storage device for real-time, low-latency access of musical instrument digital samples
JPH07121181A (en) Sound information processor
JPH08160961A (en) Sound source device
US20050076770A1 (en) System and method for dynamic note assignment for musical synthesizers
JP3518716B2 (en) Music synthesizer
JP7332002B2 (en) Electronic musical instrument, method and program
CN1924990B (en) MIDI voice signal playing structure and method and multimedia device for playing same
JP7124370B2 (en) Electronic musical instrument, method and program
JP6443773B2 (en) Musical sound generating device, musical sound generating method, musical sound generating program, and electronic musical instrument
US9418641B2 (en) Swap Divisi process
HK1013161B (en) Tone waveform generating method and apparatus based on software
JPS63127293A (en) electronic musical instruments