JP3285137B2 - Musical sound generating apparatus and musical sound generating method, and storage medium storing program according to the method - Google Patents

Musical sound generating apparatus and musical sound generating method, and storage medium storing program according to the method

Info

Publication number
JP3285137B2
JP3285137B2 JP22303697A JP22303697A JP3285137B2 JP 3285137 B2 JP3285137 B2 JP 3285137B2 JP 22303697 A JP22303697 A JP 22303697A JP 22303697 A JP22303697 A JP 22303697A JP 3285137 B2 JP3285137 B2 JP 3285137B2
Authority
JP
Japan
Prior art keywords
channels
parallel
processing
waveform
generating
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
Application number
JP22303697A
Other languages
Japanese (ja)
Other versions
JPH10105175A (en
Inventor
秀雄 鈴木
元一 田邑
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP22303697A priority Critical patent/JP3285137B2/en
Publication of JPH10105175A publication Critical patent/JPH10105175A/en
Application granted granted Critical
Publication of JP3285137B2 publication Critical patent/JP3285137B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Description

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

【0001】[0001]

【発明の属する技術分野】この発明は、演算処理装置上
で所定の楽音生成ソフトウェアを実行することにより楽
音を生成する楽音発生装置および楽音発生方法、並びに
該方法に係るプログラムを記憶した記憶媒体に関する。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to a musical sound generating apparatus and a musical sound generating method for generating musical sounds by executing predetermined musical sound generating software on an arithmetic processing unit, and a storage medium storing a program according to the method. .

【0002】[0002]

【従来の技術】従来より、CPUなどの汎用の演算処理
装置上で所定の楽音生成ソフトウェアを実行することに
より楽音を生成する楽音発生装置が知られている。これ
は、いわゆるソフトウェア音源あるいはソフト音源と呼
ばれる方式のものである。近年では、ソフト音源におい
ても高機能化が求められ、処理をより高速化したいとい
う要求がある。
2. Description of the Related Art Conventionally, there has been known a tone generator which generates a tone by executing predetermined tone generating software on a general-purpose arithmetic processing unit such as a CPU. This is a system called a software sound source or a software sound source. In recent years, software sound sources have also been required to have higher functions, and there is a demand for faster processing.

【0003】一方、近年では、1命令で複数の演算を並
列に実行可能な命令を備えたCPUが提案されている。
例えば、Intel社による「MMX」と呼ばれる拡張
命令セットを備えたCPUなどである。
On the other hand, in recent years, CPUs having instructions capable of executing a plurality of operations in parallel with one instruction have been proposed.
For example, a CPU having an extended instruction set called “MMX” by Intel Corporation is used.

【0004】[0004]

【発明が解決しようとする課題】従来の並列化の考え方
として、画像処理に並列処理を適用する場合は、隣り合
った画素データ(8ビット)同士をグループ化して複数
画素に対する処理を並列化していた。一方、音声処理や
楽音生成処理を並列処理で行なう場合、時間的に連続し
た複数サンプル(16ビット)をグループ化し、振幅制
御やフィルタ処理などの処理を並列化していた。
According to the conventional concept of parallel processing, when parallel processing is applied to image processing, adjacent pixel data (8 bits) are grouped together and processing for a plurality of pixels is performed in parallel. Was. On the other hand, when audio processing and musical sound generation processing are performed in parallel, a plurality of temporally continuous samples (16 bits) are grouped, and processing such as amplitude control and filter processing is parallelized.

【0005】また、上述の1命令で複数の演算を並列に
実行可能な拡張命令セットを備えたCPUを用いること
も考えられる。例えば、図5はソフト音源のエフェクト
処理のアルゴリズムを示すブロック図であり、図6
(a)は図5の回路APnの詳細図、図6(b)は図5
の回路CFnの詳細図である。図6では、2つの入力デ
ータにそれぞれ所定係数を乗算して加算する部分があ
る。例えば、図6(a)の(m4,m5,a5)および
(m6,m7,a6)や、図6(b)の(m9,m1
0,a7)の部分である。これらの部分の演算は、2つ
の入力データにそれぞれ所定係数を乗算して加算する処
理を1命令で実行する拡張命令を備えたCPUを用いれ
ば、1命令で実行することができ、高速な処理が可能で
ある。しかし、このような高速化は、基本的に1つの処
理アルゴリズム内の計算を工夫して行なうものであるこ
とには変わりがないので、完全に並列処理化できない部
分が生じ、並列化の効果を最大限に利用できなかった。
It is also conceivable to use a CPU having an extended instruction set capable of executing a plurality of operations in parallel with one instruction. For example, FIG. 5 is a block diagram showing an algorithm for effect processing of a soft sound source, and FIG.
(A) is a detailed view of the circuit APn of FIG. 5, and (b) of FIG.
3 is a detailed diagram of the circuit CFn. In FIG. 6, there is a portion where two input data are each multiplied by a predetermined coefficient and added. For example, (m4, m5, a5) and (m6, m7, a6) in FIG. 6A, or (m9, m1) in FIG.
0, a7). The operations of these parts can be executed with one instruction by using a CPU having an extended instruction for executing the processing of multiplying and adding the two input data by a predetermined coefficient, respectively, with one instruction. Is possible. However, since such speeding up is basically performed by devising the calculation within one processing algorithm, there is a part that cannot be completely parallelized, and the effect of the parallelization is reduced. Not available to the fullest.

【0006】また、楽音波形の生成処理では、アドレス
生成、エンベロープ発生、フィルタ処理などにおいて、
過去の波形サンプルを用いて現在の波形サンプルを求め
る、という処理が含まれる。これは、アドレス発生では
「1サンプリング周期前のアドレスに基づいて、現在の
アドレスを生成する処理」であり、エンベロープ発生で
は「直前のエンベロープ値に基づいて現在のエンベロー
プ値を生成する処理」で有り、フィルタ処理では「過去
の波形サンプルと、現在の入力波形サンプルの値に基づ
いてフィルタ演算を行ない、出力波形サンプルを生成出
力する処理」である。このように過去の波形サンプルを
用いて現在の波形サンプルを求めるため、時系列的に隣
り合った波形サンプルを求める処理を並列化するのは困
難であった。
In the processing for generating a musical tone waveform, address generation, envelope generation, filtering, etc.
A process of obtaining a current waveform sample using a past waveform sample is included. This is a process of generating a current address based on an address one sampling cycle earlier in address generation, and a process of generating a current envelope value based on the immediately preceding envelope value in envelope generation. The filtering process is a process of performing a filtering operation based on the values of the past waveform samples and the current input waveform samples to generate and output output waveform samples. As described above, since the current waveform sample is obtained using the past waveform sample, it is difficult to parallelize the processing for obtaining the adjacent waveform samples in time series.

【0007】この発明は、1命令で複数の演算を並列に
実行可能なCPUを用いて実現するソフト音源におい
て、より高速に波形生成演算を行なうことができるよう
にした楽音発生装置および楽音発生方法、並びに該方法
に係るプログラムを記憶した記憶媒体を提供することを
目的とする。
The present invention provides a musical tone generating apparatus and a musical tone generating method capable of performing a waveform generation operation at a higher speed in a software tone generator realized by using a CPU capable of executing a plurality of operations in parallel with one instruction. And a storage medium storing a program according to the method.

【0008】[0008]

【課題を解決するための手段】この目的を達成するた
め、請求項1に係る発明は、汎用の演算処理装置上で所
定の楽音生成ソフトウェアを実行することにより楽音波
形を生成する楽音発生装置であって、前記演算処理装置
を、1命令で複数の演算を並列に実行可能な拡張命令セ
ットを備えたものとするとともに、該拡張命令を用い
て、複数チャンネルの波形生成をnチャンネル(nは2
以上の整数)分ずつ並列的に行ない、生成された前記複
数チャンネル分の波形データを混合し、混合された波形
データに施すエフェクト処理のアルゴリズム内の並列処
理可能な部分の処理を並列的に行なうことを特徴とす
る。
In order to achieve this object, an invention according to claim 1 is a tone generator for generating a tone waveform by executing predetermined tone generation software on a general-purpose arithmetic processing unit. The arithmetic processing unit is provided with an extended instruction set capable of executing a plurality of operations in parallel with one instruction, and generates waveforms of a plurality of channels by using the extended instruction in n channels (n is 2
The above-mentioned integer) are performed in parallel, and the generated waveform data of the plurality of channels are mixed, and the processing of the part capable of parallel processing in the algorithm of the effect processing applied to the mixed waveform data is performed in parallel. It is characterized by the following.

【0009】請求項2に係る発明は、汎用の演算処理装
置上で所定の楽音生成ソフトウェアを実行することによ
り楽音波形を生成する楽音発生方法であって、前記演算
処理装置を、1命令で複数の演算を並列に実行可能な拡
張命令セットを備えたものとするとともに、該拡張命令
を用いて、複数チャンネルの波形生成をnチャンネル
(nは2以上の整数)分ずつ並列的に行ない、生成され
た前記複数チャンネル分の波形データを混合し、混合さ
れた波形データに施すエフェクト処理のアルゴリズム内
の並列処理可能な部分の処理を並列的に行なうことを特
徴とする。
According to a second aspect of the present invention, there is provided a musical tone generating method for generating a musical tone waveform by executing predetermined musical tone generating software on a general-purpose arithmetic processing unit. Is provided with an extended instruction set capable of executing the operations in parallel, and by using the extended instructions, waveform generation for a plurality of channels is performed in parallel for n channels (n is an integer of 2 or more). The mixed waveform data of the plurality of channels is mixed, and processing of a part which can be processed in parallel in an algorithm of an effect processing applied to the mixed waveform data is performed in parallel.

【0010】請求項3に係る発明は、複数チャンネル分
の楽音を発生する楽音発生方法であって、演奏情報を供
給するステップと、所定時間間隔でタイミング信号を発
生するステップと、前記タイミング信号の発生ごとに、
前記演奏情報に応じた複数チャンネル分の波形データを
生成するステップであって、該生成ステップでは、複数
チャンネル分の処理を並列にnチャンネル(nは2以上
の整数)分ずつ並列に行ない、連続する複数サンプル分
の波形データを生成して出力するものと、生成された波
形データを、サンプリング周期ごとに1サンプルずつD
/A変換器に供給し、アナログ波形に変換するステップ
とを含むことを特徴とする。
According to a third aspect of the present invention, there is provided a musical tone generating method for generating musical tones for a plurality of channels, wherein a step of supplying performance information; a step of generating a timing signal at predetermined time intervals; For each occurrence,
And generating waveform data for a plurality of channels in accordance with the performance information. In the generating step, processing for the plurality of channels is performed in parallel for n channels (n is an integer of 2 or more) in parallel. Generating and outputting the waveform data for a plurality of samples, and generating the waveform data by one sample every sampling period.
/ A converter and converting the analog waveform into an analog waveform.

【0011】請求項4に係る発明は、汎用の演算処理装
置上で所定の楽音生成ソフトウェアを実行することによ
り楽音波形を生成する楽音発生方法であって、前記演算
処理装置を、1命令で複数の演算を並列に実行可能な拡
張命令セットを備えたものとするとともに、該拡張命令
を用いて、複数チャンネルの波形生成処理のうち、第1
の処理をnチャンネル(nは2以上の整数)分ずつ並列
的に行ない、第2の処理をmチャンネル(mはn以外の
2以上の整数)分ずつ並列的に行ない、最終的に生成さ
れた前記複数チャンネル分の波形データを混合し、さら
に混合された波形データに施すエフェクト処理のアルゴ
リズム内の並列処理可能な部分の処理を並列的に行な
い、効果の付与された波形データを出力することを特徴
とする。第1の処理とは例えば波形データのアドレス生
成などであり、第2の処理とは例えば音量制御処理など
である。
According to a fourth aspect of the present invention, there is provided a musical tone generating method for generating a musical tone waveform by executing predetermined musical tone generating software on a general-purpose arithmetic processing unit. Is provided with an extended instruction set capable of executing the operations in parallel, and the first instruction of the waveform generation processing of a plurality of channels is provided by using the extended instruction.
Is performed in parallel for each of n channels (n is an integer of 2 or more), and the second process is performed in parallel for each of m channels (m is an integer of 2 or more other than n). Mixing the waveform data of the plurality of channels, further performing in parallel the processing of a part capable of parallel processing in an algorithm of an effect processing applied to the mixed waveform data, and outputting the waveform data to which the effect is given. It is characterized by. The first process is, for example, generation of an address of waveform data, and the second process is, for example, a volume control process.

【0012】請求項5に係る発明は、汎用の演算処理装
置上で所定の楽音生成ソフトウェアを実行することによ
り楽音波形を生成する楽音発生方法に係るプログラムを
記憶した記憶媒体であって、前記演算処理装置を、1命
令で複数の演算を並列に実行可能な拡張命令セットを備
えたものとするとともに、前記プログラムは、該拡張命
令を用いて、複数チャンネルの波形生成をnチャンネル
(nは2以上の整数)分ずつ並列的に行ない、生成され
た前記複数チャンネル分の波形データを混合し、混合さ
れた波形データに施すエフェクト処理のアルゴリズム内
の並列処理可能な部分の処理を並列的に行なうものであ
ることを特徴とする。
According to a fifth aspect of the present invention, there is provided a storage medium storing a program relating to a musical sound generating method for generating a musical sound waveform by executing predetermined musical sound generating software on a general-purpose arithmetic processing device. The processing device is provided with an extended instruction set that can execute a plurality of operations in parallel with one instruction, and the program uses the extended instruction to generate waveforms of a plurality of channels on n channels (where n is 2). The above-mentioned integer) are performed in parallel, and the generated waveform data of the plurality of channels are mixed, and the processing of the part capable of parallel processing in the algorithm of the effect processing applied to the mixed waveform data is performed in parallel. Characterized in that:

【0013】請求項6に係る発明は、複数チャンネル分
の楽音を発生する楽音発生方法に係るプログラムを記憶
した記憶媒体であって、該プログラムは、演奏情報を供
給するステップと、所定時間間隔でタイミング信号を発
生するステップと、前記タイミング信号の発生ごとに、
前記演奏情報に応じた複数チャンネル分の波形データを
生成するステップであって、該生成ステップでは、複数
チャンネル分の処理を並列にnチャンネル(nは2以上
の整数)分ずつ並列に行ない、連続する複数サンプル分
の波形データを生成して出力するものと、生成された波
形データを、サンプリング周期ごとに1サンプルずつD
/A変換器に供給し、アナログ波形に変換するステップ
とを含むことを特徴とする。
According to a sixth aspect of the present invention, there is provided a storage medium storing a program relating to a musical tone generating method for generating musical tones for a plurality of channels, the program comprising: a step of supplying performance information; Generating a timing signal, and for each occurrence of the timing signal,
And generating waveform data for a plurality of channels in accordance with the performance information. In the generating step, processing for the plurality of channels is performed in parallel for n channels (n is an integer of 2 or more) in parallel. Generating and outputting the waveform data for a plurality of samples, and generating the waveform data by one sample every sampling period.
/ A converter and converting the analog waveform into an analog waveform.

【0014】請求項7に係る発明は、汎用の演算処理装
置上で所定の楽音生成ソフトウェアを実行することによ
り楽音波形を生成する楽音発生方法に係るプログラムを
記憶した記憶媒体であって、前記演算処理装置を、1命
令で複数の演算を並列に実行可能な拡張命令セットを備
えたものとするとともに、前記プログラムは、該拡張命
令を用いて、複数チャンネルの波形生成処理のうち、第
1の処理をnチャンネル(nは2以上の整数)分ずつ並
列的に行ない、第2の処理をmチャンネル(mはn以外
の2以上の整数)分ずつ並列的に行ない、最終的に生成
された前記複数チャンネル分の波形データを混合し、さ
らに混合された波形データに施すエフェクト処理のアル
ゴリズム内の並列処理可能な部分の処理を並列的に行な
い、効果の付与された波形データを出力することを特徴
とする。
According to a seventh aspect of the present invention, there is provided a storage medium storing a program relating to a musical sound generating method for generating a musical sound waveform by executing predetermined musical sound generating software on a general-purpose arithmetic processing device. The processing device is provided with an extended instruction set capable of executing a plurality of operations in parallel with one instruction, and the program uses the extended instruction to execute a first one of a plurality of channels of waveform generation processing. The processing is performed in parallel for each of n channels (n is an integer of 2 or more), and the second processing is performed in parallel for each of m channels (m is an integer of 2 or more other than n). The waveform data for the plurality of channels is mixed, and the processing of the part capable of parallel processing in the algorithm of the effect processing applied to the mixed waveform data is performed in parallel to provide the effect. And outputs the waveform data.

【0015】[0015]

【発明の実施の形態】以下、図面を用いてこの発明の実
施の形態を説明する。
Embodiments of the present invention will be described below with reference to the drawings.

【0016】図1は、この発明に係る楽音発生装置およ
び楽音発生方法を適用した電子楽器のブロック構成図を
示す。この電子楽器は、中央処理装置(CPU)10
1、リードオンリメモリ(ROM)102、ランダムア
クセスメモリ(RAM)103、ドライブ装置104、
タイマ106、ネットワーク入出力(I/O)インタフ
ェース107、キーボード108、ディスプレイ10
9、ハードディスク110、サンプリングクロック(F
s)発生器111、サウンドI/O112、DMA(ダ
イレクトメモリアクセス)コントローラ114、サウン
ドシステム115、およびバスライン116を備えてい
る。
FIG. 1 is a block diagram showing an electronic musical instrument to which a musical sound generating apparatus and a musical sound generating method according to the present invention are applied. The electronic musical instrument has a central processing unit (CPU) 10
1, read only memory (ROM) 102, random access memory (RAM) 103, drive device 104,
Timer 106, network input / output (I / O) interface 107, keyboard 108, display 10
9, hard disk 110, sampling clock (F
s) A generator 111, a sound I / O 112, a direct memory access (DMA) controller 114, a sound system 115, and a bus line 116 are provided.

【0017】CPU101は、この電子楽器全体の動作
を制御する。CPU101は、1命令で複数の演算を並
列に実行可能な拡張命令セットを備えたものである。具
体的には、CPU内部の64ビット幅のレジスタで扱わ
れるデータを16ビット幅のデータ4個であるものと
し、この16ビット幅のデータ4個を同時に扱う命令、
および64ビット幅のデータを32ビット幅のデータ2
個であるものとし、この32ビット幅のデータ2個を同
時に扱う命令を備えたものである。
The CPU 101 controls the operation of the entire electronic musical instrument. The CPU 101 has an extended instruction set that can execute a plurality of operations in parallel with one instruction. Specifically, it is assumed that the data handled by the 64-bit width register inside the CPU is four 16-bit width data, and an instruction for simultaneously processing the four 16-bit width data;
And 64-bit data into 32-bit data 2
And has an instruction to handle two pieces of the 32-bit data at the same time.

【0018】ROM102は、CPU101が実行する
制御プログラム(ソフトエフェクタを含むソフト音源の
プログラムなど)や各種の定数データなどを格納する。
またROM102上には、CPU101がソフト音源の
プログラムを実行して楽音生成するときに使用する波形
データ(所定のレートでサンプリングされた波形サンプ
ルデータ)が用意されている。なお、制御プログラムや
各種定数データなど、および波形データは、ROM10
2でなく、RAM103上に用意したものを使用するこ
ともできる。この場合、制御プログラムなどのデータ
は、CD−ROMなどの外部記憶媒体105やネットワ
ークI/O107から供給され、RAM103上に展開
されたり、ハードディスク110に保存される。RAM
103には、各種のレジスタ、波形生成用バッファ、再
生バッファなどのワーク領域が設けられる。ドライブ装
置104は、FD(フロッピーディスク)やフラッシュ
カードなどの外部記憶媒体105との間で各種データを
入出力するためのものである。ハードディスク110
は、各種データの記録用に用いる記憶装置である。
The ROM 102 stores a control program (such as a program for a soft sound source including a soft effector) executed by the CPU 101 and various constant data.
Further, on the ROM 102, waveform data (waveform sample data sampled at a predetermined rate) used when the CPU 101 executes a program of a software tone generator to generate a musical tone is prepared. The control program, various constant data, and the waveform data are stored in the ROM 10
Instead of 2, the one prepared on the RAM 103 can be used. In this case, data such as a control program is supplied from an external storage medium 105 such as a CD-ROM or a network I / O 107, expanded on the RAM 103, or stored on the hard disk 110. RAM
The 103 is provided with work areas such as various registers, a waveform generation buffer, and a reproduction buffer. The drive device 104 is for inputting and outputting various data to and from an external storage medium 105 such as a floppy disk (FD) or a flash card. Hard disk 110
Is a storage device used for recording various data.

【0019】タイマ106は、CPU101に対して所
定間隔でタイマ割り込みを発生させるためのタイマクロ
ック信号を発生する。ネットワークI/Oインタフェー
ス107は、外部の公衆回線やLAN(ローカルエリア
ネットワーク)を介して各種データを授受するためのイ
ンタフェースである。キーボード108は、各種の情報
を入力するために用いるタイピングキーボードである。
ディスプレイ109は、各種の情報を表示するディスプ
レイである。ユーザは、キーボード108およびディス
プレイ109を用いてこの電子楽器に対する各種の設定
操作および指示操作を行なうことができる。
The timer 106 generates a timer clock signal for causing the CPU 101 to generate a timer interrupt at predetermined intervals. The network I / O interface 107 is an interface for exchanging various data via an external public line or a LAN (local area network). The keyboard 108 is a typing keyboard used for inputting various information.
The display 109 is a display for displaying various information. The user can perform various setting operations and instruction operations on the electronic musical instrument using the keyboard 108 and the display 109.

【0020】Fs発生器111は、サウンドI/O11
2に与える周波数Fsのサンプリングクロックを発生す
る。サウンドI/O112は、コーデック(CODE
C)と呼ばれるLSIからなる。サウンドI/O112
は、アナログディジタル(A/D)変換機能およびディ
ジタルアナログ(D/A)変換機能を備えており、A/
D入力端子には外部入力113からのアナログ楽音信号
が入力し、D/A出力端子にはサウンドシステム115
が接続される。サウンドI/O112は、内部に2つの
FIFO(First In First Out)方式のスタック領域を
備えている。一つはA/D入力端子経由で入力されたデ
ィジタル波形データを保持する入力FIFOであり、も
う一つはD/A出力端子経由で出力するディジタル波形
データを保持する出力FIFOである。
The Fs generator 111 has a sound I / O 11
2 to generate a sampling clock having a frequency Fs. The sound I / O 112 is a codec (CODE
C). Sound I / O112
Has an analog / digital (A / D) conversion function and a digital / analog (D / A) conversion function.
An analog tone signal from an external input 113 is input to a D input terminal, and a sound system 115 is input to a D / A output terminal.
Is connected. The sound I / O 112 has two FIFO (First In First Out) stack areas inside. One is an input FIFO for holding digital waveform data input via an A / D input terminal, and the other is an output FIFO for holding digital waveform data output via a D / A output terminal.

【0021】外部入力113からサウンドI/O112
のA/D入力端子に入力したアナログ楽音信号は、周波
数Fsのサンプリングクロックに応じてA/D変換さ
れ、(必要に応じてADPCM方式などで圧縮してもよ
い)入力FIFOへ書き込まれる。入力FIFOに波形
データが入っていると、サウンドI/O112は、DM
Aコントローラ114に対してその入力波形データを処
理する要求を出す。DMAコントローラ114は、その
処理要求に応じて、入力FIFOのデータをRAM10
3上の所定の領域(あらかじめ確保されている録音バッ
ファ領域)に転送する。このDMAコントローラ114
によるデータの転送は、DMAコントローラ114がサ
ンプリングクロックFsごとにCPU101に割り込み
(ハードウェア割り込み)をかけバスライン116を確
保して行なう。CPU101は、DMAコントローラ1
14によるバスライン116の確保を意識することはな
い。
A sound I / O 112 from an external input 113
The analog tone signal input to the A / D input terminal is A / D-converted according to a sampling clock having a frequency Fs, and is written to an input FIFO (which may be compressed by an ADPCM method or the like as necessary). If the input FIFO contains waveform data, the sound I / O 112
A request for processing the input waveform data is issued to the A controller 114. The DMA controller 114 stores the data of the input FIFO in the RAM 10 in response to the processing request.
3 to a predetermined area (recording buffer area secured in advance). This DMA controller 114
Is performed by the DMA controller 114 securing the bus line 116 by interrupting the CPU 101 (hardware interrupt) every sampling clock Fs. The CPU 101 is a DMA controller 1
It is not conscious of securing the bus line 116 by 14.

【0022】一方、サウンドI/O112内の出力FI
FOに波形データが存在する場合、その出力FIFO内
の波形データは、サンプリングクロックFsごとにD/
A変換され、D/A出力端子経由でサウンドシステム1
15に送出され放音される。出力FIFOの波形データ
が出力されると、出力FIFOに空きができるので、サ
ウンドI/O112は、DMAコントローラ114に波
形データ取得の要求を出す。CPU101は、あらかじ
め出力したい波形データを生成してRAM103上の再
生バッファ(後述するPB0,PB1)に置いておき、
DMAコントローラ114にはその波形の再生要求を出
しておく。DMAコントローラ114は、サンプリング
クロックFsごとにCPU101に割り込みをかけてバ
スライン116を確保し、RAM103上の再生バッフ
ァの波形データをサウンドI/O112の出力FIFO
に転送する。このDMAコントローラ114による波形
データの転送は、CPU101が意識することはない。
出力FIFOに書き込まれた波形データは、上述したよ
うにサンプリングクロックFsごとにサウンドシステム
115へと送られて放音される。
On the other hand, the output FI in the sound I / O 112
When waveform data exists in the FO, the waveform data in the output FIFO is D / D for each sampling clock Fs.
A-converted, sound system 1 via D / A output terminal
15 and the sound is emitted. When the waveform data of the output FIFO is output, the output FIFO has an empty space, so that the sound I / O 112 issues a request to the DMA controller 114 to acquire the waveform data. The CPU 101 generates waveform data to be output in advance and stores it in a reproduction buffer (PB0, PB1 described later) on the RAM 103.
A request for reproducing the waveform is issued to the DMA controller 114. The DMA controller 114 secures the bus line 116 by interrupting the CPU 101 for each sampling clock Fs, and transfers the waveform data of the reproduction buffer on the RAM 103 to the output FIFO of the sound I / O 112.
Transfer to The transfer of waveform data by the DMA controller 114 is transparent to the CPU 101.
The waveform data written to the output FIFO is sent to the sound system 115 for each sampling clock Fs and emitted as described above.

【0023】ソフト音源はCPU101がROM102
の楽音生成ソフトウェアを実行することにより実現され
るが、該ソフト音源を利用する側から見ると、楽音生成
ソフトウェアをドライバとして登録しておき、該ドライ
バを起動した後、所定のソフト音源に係るAPI(Appl
ication Program Interface)に各種演奏入力を表わす
MIDI(Musical Instruments digital Interface)
イベントメッセージを出力して楽音生成に関する各種の
処理をソフト音源に行なせる、という手順になる。CP
U101は汎用の演算処理装置であり、該APIに対し
て演奏入力を与える処理、すなわちMIDIイベントを
該APIに出力する処理など、ソフト音源とは別の処理
も行なっている。CPU101が該APIに対して演奏
入力を与える処理とは、例えば、不図示の演奏操作子
(鍵盤など)の操作に応じてリアルタイムで発生する演
奏入力を該APIに出力したり、ネットワークI/O1
07を介してリアルタイムで入力したMIDIイベント
に応じた演奏入力を該APIに出力したり、RAM10
3上にMIDIイベントのシーケンスを用意しておき
(外部記憶媒体105やハードディスク110上にある
データを用いてもよいし、ネットワークI/O107を
介して入力したデータを用いてもよい)これを順次演奏
入力として該APIに出力したり、といった処理であ
る。
As for the software sound source, the CPU 101
However, when viewed from the side of using the software sound source, the tone generation software is registered as a driver, and after starting the driver, an API related to a predetermined software sound source is executed. (Appl
MIDI (Musical Instruments digital Interface) representing various performance inputs
The procedure is such that an event message is output and various processings relating to musical sound generation can be performed on the software sound source. CP
U101 is a general-purpose arithmetic processing unit, and also performs processing other than the software sound source, such as processing for giving a performance input to the API, that is, processing for outputting a MIDI event to the API. The process in which the CPU 101 provides a performance input to the API includes, for example, outputting a performance input generated in real time in response to an operation of a performance operator (keyboard or the like) (not shown) to the API, a network I / O1.
07, a performance input corresponding to a MIDI event input in real time is output to the API.
3, a sequence of MIDI events is prepared (the data on the external storage medium 105 or the hard disk 110 may be used, or the data input via the network I / O 107 may be used). It is a process of outputting to the API as a performance input.

【0024】図2を参照して、ソフト音源の楽音生成原
理を説明する。図2において、S1〜S4の各区間は、
所定のサンプル数(2×128サンプル)分の再生を行
なう単位となる時間フレームを示す。「演奏入力」のラ
イン上に記載してある下向き矢印は、その時刻で演奏入
力があったことを示す。演奏入力とは、上述のソフト音
源に係るAPIに、ノートオン、ノートオフ、アフタタ
ッチ、プログラムチェンジなどの各種のMIDIイベン
トが入力されることである。図2の例では、フレームS
1で3つ、S2で2つ、S3で1つの演奏入力がそれぞ
れあったということである。ソフト音源は、複数チャン
ネル分の複数楽音を同時生成可能であり、RAM103
上に用意される複数チャンネル分のソフト音源レジスタ
で各楽音を制御するようになっている。ソフト音源は、
演奏入力としてノートオンイベントを入力したときは、
ソフト音源レジスタに関して発音割り当てを行ない、割
り当てたチャンネルに対応するソフト音源レジスタに該
チャンネルの発音を制御する各種のデータとノートオン
を書き込む。演奏入力としてノートオフイベントを入力
したときは、該当するチャンネルに対応するソフト音源
レジスタにノートオフを書き込む。ノートオンやノート
オフ以外の演奏入力(例えばアフタタッチの変更など)
についても同様に、該当するチャンネルに対応するソフ
ト音源レジスタに演奏入力に応じたデータを書き込む。
ある時間フレームでソフト音源レジスタに書込まれたデ
ータは、データの種類にかかわりなく、必ず次の時間フ
レームから波形生成演算に使用される。
Referring to FIG. 2, the principle of generating a musical tone of a soft sound source will be described. In FIG. 2, each section of S1 to S4 is
A time frame as a unit for performing reproduction of a predetermined number of samples (2 × 128 samples) is shown. A downward arrow written on the line of “performance input” indicates that a performance input was made at that time. The performance input means that various MIDI events such as note-on, note-off, after-touch, and program change are input to the API relating to the above-described software sound source. In the example of FIG.
This means that there were three performance inputs at 1, two at S2, and one at S3. The software sound source can simultaneously generate a plurality of musical tones for a plurality of channels.
Each tone is controlled by a plurality of channels of software tone registers prepared above. The soft sound source is
When a note-on event is input as a performance input,
The tone generation is assigned to the software tone generator register, and various data for controlling the tone generation of the channel and note-on are written in the software tone generator register corresponding to the assigned channel. When a note-off event is input as a performance input, note-off is written to the software tone generator register corresponding to the corresponding channel. Performance input other than note-on and note-off (for example, changing aftertouch)
Similarly, data corresponding to the performance input is written to the software tone generator register corresponding to the corresponding channel.
The data written to the software tone generator register in a certain time frame is always used for the waveform generation calculation from the next time frame regardless of the type of data.

【0025】図2の「CPUによる波形生成」の矩形2
01〜204は、CPU101により効果付与も含めた
波形生成演算を実行する区間を示す。この波形生成演算
では、ソフト音源レジスタに設定された複数チャンネル
分のデータに基づいて複数チャンネル分の楽音波形生成
を行なう。演奏入力に応じてソフト音源レジスタが書き
換えられ、一方、演奏入力のない期間は、ソフト音源レ
ジスタは過去に書込まれたデータを保持している。した
がって、各波形生成の区間201〜204では、直前あ
るいはさらに前のフレームで検出した演奏入力に応じた
波形生成演算を実行することになる。フレームが切り替
わるタイミングでフレーム割り込みが発生するので、各
フレームでの波形生成演算(後述の図7(a))はこの
フレーム割り込みを契機として実行される。
Rectangle 2 of "Waveform generation by CPU" in FIG.
Numerals 01 to 204 denote sections in which the CPU 101 executes a waveform generation calculation including an effect. In this waveform generation calculation, a tone waveform for a plurality of channels is generated based on data for a plurality of channels set in a software tone generator register. The soft tone generator register is rewritten according to the performance input, while the soft tone register holds data written in the past during the period when there is no performance input. Therefore, in the sections 201 to 204 of each waveform generation, a waveform generation calculation corresponding to the performance input detected in the immediately preceding or further previous frame is executed. Since a frame interrupt occurs at the timing of switching frames, the waveform generation operation (FIG. 7A described later) in each frame is executed with the frame interrupt as a trigger.

【0026】例えば、フレームS1で検出された3つの
演奏入力に対しては、次のフレームS2の先頭のフレー
ム割り込みを契機として区間202で波形生成演算を行
なう。CPU101は、この波形生成演算により、RA
M103上の波形生成用バッファに波形データ(複数チ
ャンネル分を累算したものであって、かつ効果も付与し
たもの)を生成する。生成した波形データはRAM10
3上の再生バッファ領域に書き込む。この再生バッファ
領域としては、連続したアドレスに用意された同じ大き
さの2つのバッファ領域PB0とPB1(2つをまとめ
てダブルバッファと呼ぶ)を用いる。再生バッファ領域
への書き込みは、後述する図8(a)のステップ807
で行なう。また、フレームごとにバッファPB0とPB
1とを交互に用いるようにする。例えば、フレームS1
の区間201で生成した波形データはRAM103上の
再生バッファ領域PB0に書き込み、フレームS2の区
間202で生成した波形データは再生バッファ領域PB
1に書き込み、フレームS3の区間203で生成した波
形データは再生バッファ領域PB0に書き込み、フレー
ムS4の区間204で生成した波形データは再生バッフ
ァ領域PB1に書き込み、…というように、交互にPB
0とPB1に波形データを書き込む。
For example, with respect to three performance inputs detected in the frame S1, a waveform generation operation is performed in the section 202 triggered by an interruption of the first frame of the next frame S2. The CPU 101 calculates RA
Waveform data (data obtained by accumulating a plurality of channels and adding effects) is generated in a waveform generation buffer on M103. The generated waveform data is stored in the RAM 10
3 in the reproduction buffer area. As this reproduction buffer area, two buffer areas PB0 and PB1 of the same size prepared at successive addresses (two are collectively called a double buffer) are used. Writing to the reproduction buffer area is performed in step 807 of FIG.
Perform in. The buffers PB0 and PB
And 1 are alternately used. For example, the frame S1
Is written in the reproduction buffer area PB0 on the RAM 103, and the waveform data generated in the section 202 of the frame S2 is written in the reproduction buffer area PB0.
1, the waveform data generated in the section 203 of the frame S3 is written in the reproduction buffer area PB0, the waveform data generated in the section 204 of the frame S4 is written in the reproduction buffer area PB1, and so on.
Write waveform data to 0 and PB1.

【0027】再生バッファPB0およびPB1に書き込
んだ波形データの読み出し再生は、図2の「読み出し再
生」に示すように、フレーム割り込みを契機として、波
形生成したフレームの次のフレームの区間で行なう。す
なわち、フレームS1で生成しPB0に書き込んだ波形
データは次のフレームS2で、フレームS2で生成しP
B1に書き込んだ波形データは次のフレームS3で、フ
レームS3で生成しPB0に書き込んだ波形データは次
のフレームS4で、…というように、PB0とPB1の
波形データを交互に読み出し再生していく。読み出し再
生は、DMAコントローラ114が、サンプリングクロ
ックFsごとにCPU101に割り込みをかけて、RA
M103上の再生バッファ(PB0またはPB1の指定
された方)の波形データをサウンドI/O112の出力
FIFOに転送することにより行なう。フレーム割り込
みは、再生バッファPB0およびPB1をループ読み出
しする際のリターン発生時(すなわちPB1の再生終了
時)と、ループ読み出しの中間点通過時(すなわちPB
0の再生終了時)に発生する。フレーム割り込みは、サ
ウンドI/O112が発生するハードウェア割り込みで
あり、1フレーム再生完了の時点を示す。すなわち、サ
ウンドI/O112は、転送サンプル数(DMAC11
4によりPB0,PB1からサウンドI/Oの出力FI
FOに転送したサンプル数)をカウントし、再生バッフ
ァのサイズ(PB0,PB1を合せたサイズ)の半分の
数のサンプルの転送ごとにフレーム割り込みを発生す
る。
The reading and reproducing of the waveform data written in the reproducing buffers PB0 and PB1 is performed in the section of the frame next to the frame in which the waveform is generated, triggered by the frame interruption, as shown in "Reading and reproducing" of FIG. That is, the waveform data generated in frame S1 and written in PB0 is the next frame S2, and the waveform data generated in frame S2 is PB0.
The waveform data written in B1 is the next frame S3, the waveform data generated in frame S3 and written in PB0 is the next frame S4, and so on. The waveform data of PB0 and PB1 are alternately read and reproduced. . In the read reproduction, the DMA controller 114 interrupts the CPU 101 for each sampling clock Fs,
This is performed by transferring the waveform data of the reproduction buffer (PB0 or PB1 designated) on M103 to the output FIFO of the sound I / O 112. The frame interruption occurs when a return occurs when reading the playback buffers PB0 and PB1 in a loop (that is, when the playback of PB1 is completed) and when the intermediate point of the loop reading passes (that is, when PB1 is read).
0 at the end of playback). The frame interrupt is a hardware interrupt generated by the sound I / O 112, and indicates a point in time when the reproduction of one frame is completed. That is, the sound I / O 112 determines the number of transfer samples (DMAC 11
4, the output FI of the sound I / O from PB0 and PB1
The number of samples transferred to the FO is counted, and a frame interrupt is generated every time half of the number of samples of the reproduction buffer (the size of PB0 and PB1 combined) is transferred.

【0028】ソフト音源は、複数チャンネル分の複数楽
音を同時生成可能である。特にこの実施の形態では、ソ
フト音源を実現するCPU101は1命令で複数のデー
タに対する同じ処理を行なう機能を備えたものであるの
で、波形生成すべき複数チャンネルの処理をこの機能を
用いて並列に実行することにより、処理の高速化を図っ
ている。具体的には、1チャンネル分の波形生成処理
は、アドレス生成処理、波形サンプル読み出し処理、補
間処理、フィルタ処理、および音量制御&累算処理など
から構成されるが、これらの処理を複数チャンネルに関
して同時に行なうようにしている。
The software tone generator can simultaneously generate a plurality of musical tones for a plurality of channels. In particular, in this embodiment, since the CPU 101 for realizing the soft sound source has a function of performing the same processing for a plurality of data with one instruction, the processing of a plurality of channels for which a waveform is to be generated is performed in parallel using this function. The execution speeds up the processing. More specifically, the waveform generation processing for one channel includes an address generation processing, a waveform sample reading processing, an interpolation processing, a filter processing, a volume control & accumulation processing, and the like. I try to do it at the same time.

【0029】図3は、4チャンネル分のデータのパック
化の様子を示す図である。上記CPU101の拡張命令
セットによれば、16ビット×4個のデータを集めて
(パックして)64ビットレジスタにセットし、他の6
4ビットレジスタの16ビット×4個のデータと、乗
算、加算、減算などの演算を同時に行なうことができ
る。図3は、乗算の例である。このようにして、複数チ
ャンネルの処理を4チャンネルごとに分けて、それら4
チャンネル分の処理を同時に行なう。同時に実行する4
チャンネルは、n=1,2,3,…として、{4×(n
−1)+1}から{4×n}の4チャンネルである。
FIG. 3 is a diagram showing how data for four channels is packed. According to the extended instruction set of the CPU 101, 16 bits × 4 data are collected (packed) and set in a 64-bit register.
Operations such as multiplication, addition, and subtraction can be performed simultaneously with 16 bits × 4 data of a 4-bit register. FIG. 3 is an example of multiplication. In this way, the processing of a plurality of channels is divided into four
The processing for the channels is performed simultaneously. Run simultaneously 4
Channels are defined as {4 × (n
-1) +1} to {4 × n} channels.

【0030】図4は、各発音チャンネルの音色フィルタ
処理のアルゴリズム例を示す。この音色フィルタ処理
は、図4から分かるように、ほぼ加算と乗算から構成さ
れている。したがって、16ビット×4個のデータを並
列に処理する上記拡張命令を用いれば4チャンネル分の
音色フィルタ処理が並列に同時に実行できる。遅延回路
d1,d2は、16ビット×4個の64ビットデータを
所定のアドレスに書き込んでおき、後で読み出すように
すればよい。
FIG. 4 shows an example of an algorithm of the tone color filter processing of each tone generation channel. As can be seen from FIG. 4, the timbre filter processing is substantially composed of addition and multiplication. Therefore, if the above-mentioned extended instruction for processing 16 bits × 4 data in parallel is used, tone color filter processing for 4 channels can be executed simultaneously in parallel. The delay circuits d1 and d2 may write 16-bit × 4 64-bit data at a predetermined address and read the data later.

【0031】図5および図6は、エフェクト処理のアル
ゴリズム例を示す。エフェクト処理は、チャンネルごと
に行なうのではなく、各チャンネルで波形生成してチャ
ンネル累算した結果を入力して(図5では、XL,X
R,XXの3系統を入力)処理するものであるから、1
つの処理アルゴリズムとして図5および図6の処理が実
行される。したがって、このようなエフェクト処理で
は、従来例で説明したのと同様に当該処理アルゴリズム
内の計算中で並列処理可能な部分を並列化することによ
り高速化を図っている。例えば、図6(a)の(m4,
m5,a5)および(m6,m7,a6)や、図6
(b)の(m9,m10,a7)の部分を、1命令で行
なうということである。
FIGS. 5 and 6 show an example of an algorithm for effect processing. The effect processing is not performed for each channel, but the result of waveform generation and channel accumulation for each channel is input (in FIG. 5, XL, X
R, XX, three systems).
5 and 6 are executed as one processing algorithm. Therefore, in such an effect processing, as described in the conventional example, the speed is increased by parallelizing a part that can be processed in parallel in the calculation in the processing algorithm. For example, (m4,
m5, a5) and (m6, m7, a6) and FIG.
That is, (m9, m10, a7) in (b) is performed by one instruction.

【0032】なお、図5および図6のアルゴリズムの代
わりに、ステレオの左右の出力に同じ処理を施すような
エフェクト処理を使う場合は、32ビット×2個のデー
タを同時処理する拡張命令を用いてステレオの左右の出
力のエフェクト処理を同時に行なうようにできる。
In the case where an effect processing for performing the same processing on the left and right stereo outputs is used instead of the algorithms shown in FIGS. 5 and 6, an extended instruction for simultaneously processing 32 bits × 2 data is used. The effect processing of the left and right outputs of the stereo can be performed simultaneously.

【0033】次に、図7(a)(b)および図8(a)
(b)のフローチャートを参照して、上述の電子楽器の
CPU101の処理手順を説明する。
Next, FIGS. 7A and 7B and FIG.
The processing procedure of the CPU 101 of the electronic musical instrument will be described with reference to the flowchart of FIG.

【0034】図7(a)は、CPU101の制御プログ
ラムのうちソフト音源に係るメインルーチンの処理手順
を示す。このメインルーチンは、ソフト音源のドライバ
としてOS(Operating System)に登録されているもの
である。ソフト音源を使用した楽音生成を行なう際に
は、まずこのドライバ、すなわち図7(a)の処理を起
動し、ソフト音源に係るAPIを有効にしておく。図7
(a)において、ステップ701で各種の初期設定を行
なう。この初期設定で、再生バッファPB0,PB1を
0クリアするとともに、サウンドI/O112とDMA
C114に指示して図1および図2で説明した再生バッ
ファPB0とPB1とを交互に読み出し再生する処理を
開始しておく。次にステップ702で何らかの起動要因
があるか否かチェックし、ステップ703で起動要因が
あればステップ704に進む。起動要因がなければ再び
702に戻る。ステップ702〜704の起動要因の受
け付けが、ソフト音源に係るAPIに対する指示受け付
けに相当する。
FIG. 7A shows a processing procedure of a main routine related to the software sound source in the control program of the CPU 101. This main routine is registered in the OS (Operating System) as a driver of the software sound source. When generating a tone using a software sound source, the driver, that is, the process of FIG. 7A is first activated, and the API related to the software sound source is enabled. FIG.
In (a), various initial settings are made in step 701. In this initial setting, the reproduction buffers PB0 and PB1 are cleared to 0, and the sound I / O 112 and DMA are cleared.
Instruct C114 to start the processing of alternately reading and reproducing the reproduction buffers PB0 and PB1 described with reference to FIGS. Next, at step 702, it is checked whether there is any activation factor, and if there is an activation factor at step 703, the process proceeds to step 704. If there is no activation factor, the process returns to 702 again. The reception of the activation factor in steps 702 to 704 corresponds to the reception of an instruction to the API related to the software sound source.

【0035】ステップ704では発生している起動要因
の種類を判別しそれぞれの処理に分岐する。起動要因が
MIDIイベントの入力であったときは、ステップ70
5のMIDI処理を行ない、その後再びステップ702
に戻る。このMIDIイベントの入力とステップ705
のMIDI処理が、図2の演奏入力の受け付けに相当す
る。ステップ704で起動要因がフレーム割り込み(1
フレーム再生完了)であるときは、ステップ706の波
形生成処理を行ない、その後再びステップ702に戻
る。フレーム割り込みは、サウンドI/O112が1フ
レーム再生完了するごとに発生するハードウェア割り込
みである。ステップ706の波形生成処理が、図2の2
01〜204に示した波形生成演算を行なう処理であ
る。この波形生成処理では、一度に、1フレーム分の波
形データ(再生バッファPB0,PB1を合せた大きさ
の半分に相当する数の波形サンプル)を生成し、再生バ
ッファPB0またはPB1に交互に書き込む。ステップ
704で起動要因がその他の要求であるときは、ステッ
プ707で当該起動要因に応じた処理を行ない、その後
再びステップ702に戻る。特に、サウンドI/O11
2による外部入力113のサンプリングの指示、ソフト
エフェクタのアルゴリズムの設定変更の指示、波形生成
からエフェクト処理に出力される3系列の各系列の信号
送出レベルを規定する重み付け係数の設定指示などの要
求がなされたときには、ステップ707のその他処理で
対応する処理を行なう。ステップ704で起動要因がソ
フト音源の終了要求であったときは、ステップ708で
終了処理を行なった後、処理を終了する。
In step 704, the type of the activation factor that has occurred is determined, and the process branches to each process. If the activation factor is the input of a MIDI event, step 70
5 is performed, and then step 702 is performed again.
Return to This MIDI event input and step 705
MIDI processing corresponds to the reception of the performance input of FIG. In step 704, the activation factor is the frame interrupt (1
If (frame reproduction is completed), the waveform generation processing of step 706 is performed, and thereafter, the flow returns to step 702 again. The frame interrupt is a hardware interrupt generated every time the sound I / O 112 completes one frame reproduction. The waveform generation processing of step 706 is performed by
This is a process for performing the waveform generation calculations shown in FIGS. In this waveform generation processing, one frame of waveform data (a number of waveform samples corresponding to a half of the combined size of the reproduction buffers PB0 and PB1) is generated at a time, and is alternately written to the reproduction buffer PB0 or PB1. If the activation factor is another request in step 704, a process corresponding to the activation factor is performed in step 707, and the process returns to step 702 again. In particular, sound I / O11
2, instructions for sampling the external input 113, instructions for changing the setting of the algorithm of the soft effector, and instructions for setting weighting coefficients for defining the signal transmission levels of the three series output from the waveform generation to the effect processing. If so, corresponding processing is performed in the other processing of step 707. If the activation factor is a request for terminating the software sound source in step 704, termination processing is performed in step 708, and the processing is terminated.

【0036】図7(b)は、図7(a)のステップ70
5のMIDI処理のうちノートオンイベントを入力した
ときに実行されるノートオンイベント処理の手順を示
す。まずステップ711で、入力したノートオンイベン
トのMIDIチャンネル、ノートナンバ、およびベロシ
ティを、それぞれレジスタMC,NN,VEに設定す
る。次に、ステップ712で、発音チャンネルの割り当
てを行なう。ステップ713で、割り当てた発音チャン
ネルのソフト音源レジスタに、発音に必要な情報(ノー
トナンバNNやベロシティVEなど)を設定する。さら
にステップ714で、割り当てた発音チャンネルのソフ
ト音源レジスタにノートオンを書き込んで発音開始指示
を出し、処理を終了する。
FIG. 7B is a flowchart showing step 70 in FIG.
5 shows a procedure of a note-on event process executed when a note-on event is input among the MIDI processes of No. 5; First, in step 711, the MIDI channel, note number, and velocity of the input note-on event are set in registers MC, NN, and VE, respectively. Next, at step 712, sound channels are assigned. In step 713, information (note number NN, velocity VE, etc.) necessary for sound generation is set in the software sound source register of the allocated sound channel. Further, in step 714, note-on is written into the software tone generator register of the assigned tone generation channel to issue a tone generation start instruction, and the process ends.

【0037】図示しないが、ノートオフや他の演奏入力
などのMIDIイベント処理も同様である。すなわち、
ノートオフなら該当する発音チャンネルに対応するソフ
ト音源レジスタにノートオフを設定し、他の演奏入力な
ら該当する発音チャンネルに対応するソフト音源レジス
タに当該演奏入力に対応するデータを書き込む。
Although not shown, the same applies to MIDI event processing such as note-off and other performance inputs. That is,
If the note is off, note-off is set in the software tone generator register corresponding to the corresponding tone generation channel, and if another performance input is made, the data corresponding to the performance input is written in the soft tone generator register corresponding to the corresponding tone generation channel.

【0038】図8(a)は、図7(a)のステップ70
6の波形生成処理の手順を示す。まずステップ801で
演算準備を行なう。これは、ソフト音源レジスタを参照
して波形生成演算を行なうべきチャンネルを認識する処
理、今回の波形生成演算で生成した1フレーム分の波形
は再生バッファPB0とPB1のどちらに設定すべきか
を認識する処理、波形生成用バッファの全領域の0クリ
アなどの演算準備である。次に、ステップ802でワー
クレジスタnに「1」をセットして、ステップ803に
進む。
FIG. 8A is a flowchart showing step 70 in FIG.
6 shows the procedure of the waveform generation processing of No. 6. First, in step 801, calculation preparation is performed. This is a process of referring to the software tone generator register to recognize the channel on which the waveform generation calculation is to be performed, and recognizes which of the reproduction buffer PB0 and PB1 should be set for the waveform of one frame generated by the current waveform generation calculation. Preparation for processing, such as clearing all areas of the waveform generation buffer to zero. Next, "1" is set in the work register n in step 802, and the flow advances to step 803.

【0039】ステップ803では、{4×(n−1)+
1}から{4×n}の4チャンネルに関して1フレーム
分の波形サンプルを生成する。この処理については、図
8(b)で詳述する。ステップ804では、演算すべき
残りチャンネルがあるか否か判別する。あれば、ステッ
プ805でワークレジスタnの値をインクリメントし
て、ステップ803に戻る。これを繰り返して演算すべ
き全チャンネルの波形生成を行なう。なお、波形生成を
4チャンネル分ずつまとめて行なうので、発音を行なっ
ていないチャンネルの演算が行なわれる場合もあるが、
そのチャンネルでは音量がゼロになるよう制御されてお
り、出力される楽音に影響を与えない。ステップ804
で演算すべき全チャンネルの波形生成が終了したら、ス
テップ806に進む。ステップ806では、図5および
図6に示したようなエフェクト処理を行なう。
In step 803, {4 × (n-1) +
Waveform samples for one frame are generated for four channels {1} to {4 × n}. This processing will be described in detail with reference to FIG. In step 804, it is determined whether there is a remaining channel to be calculated. If there is, in step 805, the value of the work register n is incremented, and the process returns to step 803. This is repeated to generate waveforms for all channels to be calculated. Since waveform generation is performed for four channels at a time, calculation may be performed for channels that are not sounding.
The volume of the channel is controlled to be zero, so that the output musical tone is not affected. Step 804
When the waveform generation for all the channels to be calculated is completed, the process proceeds to step 806. In step 806, effect processing as shown in FIGS. 5 and 6 is performed.

【0040】エフェクト処理の後、ステップ807で、
生成した1フレーム分の波形を再生予約する。これは、
生成した波形サンプルを再生バッファPB0またはPB
1の一方(現在、再生に用いられていない方)にコピー
する処理である。既に、ステップ701で再生バッファ
PB0とPB1とを交互に読み出し再生する処理が開始
しているので、再生に用いられていない方に生成した波
形をコピーするだけで次のフレームで当該波形の発音が
実行される。
After the effect processing, in step 807,
The reproduction of the generated waveform for one frame is reserved. this is,
Transfer the generated waveform sample to the playback buffer PB0 or PB
1 is a process of copying to one of the two (the one not currently used for reproduction). Since the process of alternately reading and reproducing the reproduction buffers PB0 and PB1 has already been started in step 701, the sound of the waveform is reproduced in the next frame simply by copying the generated waveform to the one not used for reproduction. Be executed.

【0041】図8(b)は、図8(a)のステップ80
3の4チャンネル分の1フレーム波形発生処理の手順を
示す。ステップ811で当該4チャンネルのうちの始め
の2チャンネル分のアドレス生成処理を行ない、ステッ
プ812で残りの2チャンネル分のアドレス生成処理を
行なう。ここで生成するアドレスは上述の波形データ
(この例ではROM102上に用意されている)の読み
出しアドレスである。生成するアドレスは16ビット幅
では足りないので、2チャンネルずつに分けてアドレス
生成している。2チャンネルずつの並列処理であるか
ら、CPU101は32ビット×2個のデータを並列処
理する拡張命令を用いている。
FIG. 8B is a diagram showing a step 80 in FIG.
3 shows the procedure of one-frame waveform generation processing for four channels of No. 3. In step 811, the address generation processing for the first two channels of the four channels is performed, and in step 812, the address generation processing for the remaining two channels is performed. The address generated here is a read address of the above-described waveform data (prepared on the ROM 102 in this example). Since the address to be generated is not sufficient with a 16-bit width, the address is generated for each of two channels. Since the parallel processing is performed for each two channels, the CPU 101 uses an extended instruction for performing parallel processing of 32 bits × 2 data.

【0042】次に、ステップ813で、波形サンプルの
読み出しを行なう。後の補間処理では、各チャンネル
で、2サンプルを用いた直線補間を行なうので、波形サ
ンプルの読み出しは、各チャンネル2サンプルずつ、4
チャンネル分を読み出す。ステップ814では、当該4
チャンネルに関して補間処理(2サンプルを用いた直線
補間)を並列に行なう。ステップ815では、当該4チ
ャンネルに関してフィルタ処理(図4)を並列に行な
う。ステップ816では、当該4チャンネルに関して音
量制御して累算する処理を並列に行なう。これは各チャ
ンネルの波形に所定のレベル制御用係数を乗算して累算
することにより3系列の出力(図5のXL,XR,X
X)を求める処理である。累算処理があるので、ステッ
プ816の処理は並列に実行できない部分もある。ステ
ップ814〜816では4チャンネルに関して並列に処
理するため、CPU101は、16ビット×4個のデー
タを並列処理する拡張命令を用いている。
Next, in step 813, waveform samples are read. In the subsequent interpolation processing, linear interpolation using two samples is performed for each channel.
Read out the channels. In step 814, the 4
Interpolation processing (linear interpolation using two samples) is performed on channels in parallel. In step 815, filter processing (FIG. 4) is performed on the four channels in parallel. In step 816, the processes of controlling the volume and accumulating the four channels are performed in parallel. This is accomplished by multiplying the waveform of each channel by a predetermined level control coefficient and accumulating the result to produce three series of outputs (XL, XR, X in FIG. 5).
X). Since there is an accumulation process, there are some portions where the process of step 816 cannot be executed in parallel. In steps 814 to 816, the CPU 101 uses an extended instruction for parallel processing of 16 bits × 4 data in order to perform parallel processing on four channels.

【0043】次に、ステップ817で、1フレーム分の
波形サンプル(ここではXL,XR,XXを1組と数え
て128組のサンプル)の生成が完了したか否か判別す
る。完了していなければ、ステップ811に戻って次の
波形サンプルの生成を行なう。1フレーム分完了した
ら、処理を終了する。
Next, in step 817, it is determined whether or not the generation of waveform samples for one frame (here, 128 sets of XL, XR, and XX are counted as one set) is completed. If not, the process returns to step 811 to generate the next waveform sample. When one frame has been completed, the process ends.

【0044】次に、図8(c)のフローチャートを参照
して、再生時のDMAコントローラ114の処理を説明
する。再生時は、サウンドI/O112からサンプリン
グ周期ごとにサンプル要求割り込み(ハードウェア割り
込み)が発行される。これに応じて、DMAコントロー
ラ114は、図8(c)の処理を行なう。まずステップ
821で、再生バッファPB0,PB1の1サンプルを
サウンドI/O112の出力FIFOに送る。出力FI
FOに書き込まれた波形データは、図1で説明したよう
にサンプリング周期ごとにD/A変換されてサウンドシ
ステム115へと送られ放音される。なお、ステップ8
21で「DMAB」とあるのは再生バッファPB0,P
B1のことである。再生バッファPB0,PB1は、D
MAのバッファと見ることもできるのでDMABと記載
した。次に、ステップ822でポインタpをインクリメ
ントして処理を終了する。pは再生バッファPB0,P
B1から1サンプルを読み出すときのポインタである。
以上のようにして、ポインタpを進めながら、サンプリ
ング周期ごとに再生バッファPB0,PB1から1サン
プルをサウンドI/O112に渡す。
Next, the processing of the DMA controller 114 during reproduction will be described with reference to the flowchart of FIG. During reproduction, a sample request interrupt (hardware interrupt) is issued from the sound I / O 112 every sampling period. In response, the DMA controller 114 performs the processing in FIG. First, at step 821, one sample of the reproduction buffers PB0 and PB1 is sent to the output FIFO of the sound I / O 112. Output FI
The waveform data written in the FO is D / A-converted at each sampling period, sent to the sound system 115 and emitted as described with reference to FIG. Step 8
The "DMAB" at 21 means that the reproduction buffers PB0 and PB0
It is B1. The reproduction buffers PB0 and PB1 are D
Since it can be regarded as a buffer of MA, it is described as DMAB. Next, in step 822, the pointer p is incremented, and the process ends. p is the reproduction buffer PB0, P
This is a pointer for reading one sample from B1.
As described above, one sample is transferred from the reproduction buffers PB0 and PB1 to the sound I / O 112 at each sampling period while the pointer p is advanced.

【0045】なお、ポインタpは1ずつインクリメント
していくことによりPB0の先頭のサンプルからPB1
の最後のサンプルまでを順次読み出すためのポインタで
あるが、PB1の最後のサンプルを読出した後はPB0
の先頭のサンプルを指すようにポインタ値を更新する必
要がある。この処理は、DMAコントローラ114が自
動的に行なうように設定されている。
The pointer p is incremented by 1 so that PB1 is shifted from the first sample of PB0 to PB1.
Is a pointer for sequentially reading up to the last sample of PB0, but after reading the last sample of PB1, PB0
The pointer value needs to be updated to point to the first sample of the. This process is set to be performed automatically by the DMA controller 114.

【0046】上述の発明の実施の形態によれば、サンプ
リング周期より長い所定時間(フレーム)周期で波形生
成を行ない、該所定時間分の波形サンプルをまとめて生
成するようになっているので、サンプリング周期で波形
生成を行なうのに比べてオーバヘッドが少なく、処理時
間を短縮できる。また、CPUが複数ウェイのキャッシ
ュメモリを備えていれば、ROM103上の波形データ
や生成中の1フレーム分の波形を連続的に、並列処理す
る複数チャンネル分キャッシングできるので非常に効率
的な生成演算ができる。
According to the above-described embodiment of the present invention, the waveform is generated at a predetermined time (frame) cycle longer than the sampling cycle, and the waveform samples for the predetermined time are collectively generated. The overhead is smaller and the processing time can be reduced as compared with the case where the waveform is generated periodically. If the CPU has a cache memory of a plurality of ways, the waveform data on the ROM 103 and the waveform of one frame being generated can be cached continuously and in parallel for a plurality of channels. Can be.

【0047】さらに、波形生成処理において、アドレス
の生成は処理ビットを長くして少ないチャンネル数で並
列処理を行ない、補間、振幅制御などは処理ビットを短
くして多いチャンネル数で並列処理を行なうようにして
いる。すなわち、扱うデータに応じてチャンネルの並列
数を変えているので、演算の効率が良く、処理時間が短
縮化される。
Further, in the waveform generation processing, the address generation is performed in parallel with a small number of channels by increasing the processing bits, and the interpolation and amplitude control are performed in parallel with the large number of channels by shortening the processing bits. I have to. That is, since the number of parallel channels is changed according to the data to be handled, the efficiency of the operation is high and the processing time is shortened.

【0048】なお、上記図8(a)のステップ804で
は、発音中で未計算のチャンネルがある場合でも、生成
期間内に生成演算が終わりそうもないときは、ステップ
803に戻ることなくステップ806に進むようにして
もよい。
In step 804 of FIG. 8A, even if there is an uncalculated channel during sound generation, if the generation operation is not likely to end within the generation period, the process returns to step 803 without returning to step 803. You may make it go to.

【0049】また、上記の発明の実施の形態では、64
ビットを16ビット×4個のデータあるいは32ビット
×2個のデータとして並列処理しているが、これに限ら
ず、任意のデータ幅で任意の並列個数で並列処理するこ
ともできる。
In the above embodiment of the present invention, 64
Although the bits are processed in parallel as 16 bits × 4 data or 32 bits × 2 data, the present invention is not limited to this, and the parallel processing can be performed with an arbitrary data width and an arbitrary parallel number.

【0050】さらに、1フレームの時間長は、上記発明
の実施の形態では楽音波形128サンプルに対応する長
さであったが、これより長くても短くてもよい。例え
ば、64サンプル分の長さとしたり1024サンプル分
の長さとしてもよい。
Furthermore, the time length of one frame corresponds to 128 musical tone waveforms in the embodiment of the present invention, but may be longer or shorter. For example, the length may be 64 samples or 1024 samples.

【0051】また、上記発明の実施の形態にビブラート
やトレモロなどの効果を制御するLFOやピッチエンベ
ロープの処理を追加する場合、生成する効果制御波形の
ビット数を8ビットとすれば、その生成処理部分につい
ては8チャンネル分を並列処理することができる。
Further, when processing of an LFO or a pitch envelope for controlling effects such as vibrato and tremolo is added to the embodiment of the present invention, if the number of bits of the effect control waveform to be generated is set to 8 bits, the generation processing is performed. As for the portion, eight channels can be processed in parallel.

【0052】なお、本発明は、実施態様として下記の構
成を取ってもよい。複数チャンネル分の楽音を発生する
楽音発生方法を記憶した記憶媒体であって、該楽音発生
方法は、演奏情報を供給するステップ;所定時間間隔で
タイミング信号を発生するステップ;タイミング信号の
発生ごとに、前記演奏情報に応じた複数チャンネル分の
波形データを生成するステップであり、該生成ステップ
では、複数チャンネル分の処理を並列にnチャンネル
(nは2以上の整数)分ずつ並列に行ない、連続する複
数サンプル分の波形データを生成して出力する;生成さ
れた波形データを、サンプリング周期ごとに1サンプル
ずつD/A変換器に供給し、アナログ波形に変換するス
テップ;を含む。
The present invention may have the following configuration as an embodiment. A storage medium storing a musical tone generating method for generating musical tones for a plurality of channels, the musical tone generating method comprising: supplying performance information; generating a timing signal at predetermined time intervals; And generating waveform data for a plurality of channels in accordance with the performance information. In the generating step, processing for the plurality of channels is performed in parallel for n channels (n is an integer of 2 or more) in parallel. Generating and outputting waveform data for a plurality of samples to be performed; supplying the generated waveform data to a D / A converter one sample at a time in each sampling period, and converting the generated waveform data into an analog waveform.

【0053】なお、上述した楽音生成方法を実現するた
めの各種関係情報や動作プログラムなどをハードディス
クなどの記憶装置に格納し、CPUがこれらをRAMに
読み出してから使用するように構成し、さらにCD−R
OM(コンパクトディスク−リード・オンリ・メモリ)
やフロッピーディスク、光磁気ディスクなどの可搬型の
記憶媒体に記憶されたデータをハードディスクなどの記
憶装置に転送できるように構成すれば、関係情報や動作
プログラムなどの追加(インストールなど)や更新(バ
ージョンアップなど)の際に便利である。もちろん、可
搬型の記憶媒体から直接RAMへデータを転送するよう
にしてもよい。
It should be noted that various related information and operation programs for realizing the above-described musical tone generation method are stored in a storage device such as a hard disk, and the CPU reads them out to a RAM and uses them. -R
OM (Compact Disc-Read Only Memory)
If data stored on a portable storage medium such as a hard disk, a floppy disk, or a magneto-optical disk can be transferred to a storage device such as a hard disk, related information and operation programs can be added (installed, etc.) or updated (version This is useful when uploading. Of course, the data may be directly transferred from the portable storage medium to the RAM.

【0054】さらに、可搬型の記憶媒体経由ではなく、
通信インターフェース(ネットワークI/O)経由で、
ハードディスクなどの記憶装置上の関係情報や動作プロ
グラムなどを通信ネットワーク側からダウンロードする
ようにしてもよい。上記通信インターフェースは、LA
N(ローカルエリアネットワーク)やインターネット、
電話回線などの通信ネットワークに接続されており、当
該通信ネットワークを介してサーバコンピュータと接続
される。クライアントとなる本装置は、自装置が有する
記憶装置(ハードディスクなど)に関係情報や動作プロ
グラムなどが記憶されていない場合、上記通信インター
フェースおよび通信ネットワークを介してサーバコンピ
ュータへ、関係情報や動作プログラムなどを要求するコ
マンドを送信する。このコマンドを受け取ると、サーバ
コンピュータは、要求された関係情報や動作プログラム
などを、通信ネットワークを介して本装置へと配信す
る。そして、配信された関係情報や動作プログラムなど
を本装置が通信インターフェースを介して受信し、記憶
装置に蓄積することにより、ダウンロードが完了する。
Further, instead of via a portable storage medium,
Via the communication interface (network I / O)
Related information on a storage device such as a hard disk or an operation program may be downloaded from the communication network side. The communication interface is LA
N (local area network), the Internet,
It is connected to a communication network such as a telephone line, and is connected to a server computer via the communication network. If the storage device (such as a hard disk) of the present device serving as a client does not store related information or an operation program, the device transmits the related information or the operation program to the server computer via the communication interface and the communication network. Send a command requesting Upon receiving this command, the server computer distributes the requested relationship information, operation program, and the like to the apparatus via the communication network. Then, the apparatus receives the distributed related information, the operation program, and the like via the communication interface and stores the information in the storage device, thereby completing the download.

【0055】また、本装置を、関係情報や動作プログラ
ムなどをインストールした市販のパーソナルコンピュー
タなどによって実現しても良い。もちろん、この場合に
も、関係情報や動作プログラムなどのデータの配布方法
としては、ROMなどの不揮発性メモリにあらかじめ格
納しておく方法、可搬型の記憶媒体に格納して配布する
方法、および通信インターフェース経由で配布する方法
などが適用可能である。
Further, the present apparatus may be realized by a commercially available personal computer in which related information, an operation program, and the like are installed. Of course, also in this case, as a method of distributing data such as related information and an operation program, a method of storing the information in advance in a nonvolatile memory such as a ROM, a method of storing and distributing the data in a portable storage medium, and a method of communicating A method of distributing via an interface is applicable.

【0056】[0056]

【発明の効果】以上説明したように、この発明によれ
ば、1命令で複数の演算を並列に実行可能な拡張命令セ
ットを備えた演算処理装置を用いたソフト音源におい
て、同じアルゴリズム部分を複数チャンネル分まとめて
並列に処理するようにしているので、より高速に波形生
成演算を行なうことができる。また、各チャンネルの処
理アルゴリズム中で工夫して並列化処理する拡張命令を
用いる場合に比べ、複数のチャンネルで並列化するの
で、1チャンネル分のアルゴリズムから容易に複数チャ
ンネル分を並列化したプログラムを作ることができ、処
理速度も大幅に向上する。さらにこの発明によれば、上
述した楽音発生方法に係るプログラムが記憶媒体の形式
で提供される。
As described above, according to the present invention, in a soft sound source using an arithmetic processing unit having an extended instruction set capable of executing a plurality of operations in parallel with one instruction, a plurality of the same algorithm parts are provided. Since the channels are collectively processed in parallel, the waveform generation operation can be performed at a higher speed. In addition, compared to the case of using an extended instruction that devises parallel processing by devising in the processing algorithm of each channel, parallelization is performed on multiple channels, so a program that easily parallelizes multiple channels from an algorithm for one channel can be created. Can be made, and the processing speed is greatly improved. Further, according to the present invention, a program according to the above-described musical tone generating method is provided in the form of a storage medium.

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

【図1】この発明に係る楽音発生装置および楽音発生方
法を適用した電子楽器のブロック構成図
FIG. 1 is a block diagram of an electronic musical instrument to which a musical sound generating apparatus and a musical sound generating method according to the present invention are applied.

【図2】ソフト音源の楽音生成原理を説明するための図FIG. 2 is a diagram for explaining the principle of generating musical tones of a soft sound source;

【図3】4チャンネル分のデータのパック化の様子を示
す図
FIG. 3 is a diagram showing how data for four channels is packed.

【図4】各発音チャンネルの音色フィルタ処理のアルゴ
リズム例を示す図
FIG. 4 is a diagram illustrating an example of an algorithm of a tone color filter process of each sounding channel;

【図5】エフェクト処理のアルゴリズム例を示す図FIG. 5 is a diagram showing an example of an algorithm for effect processing;

【図6】図5のAPnおよびCFnの詳細図FIG. 6 is a detailed view of APn and CFn in FIG. 5;

【図7】メインルーチンおよびノートオンイベントルー
チンのフローチャート図
FIG. 7 is a flowchart of a main routine and a note-on event routine.

【図8】波形生成処理ルーチン、4チャンネル分1フレ
ーム波形発生処理ルーチン、およびDMAC処理ルーチ
ンのフローチャート図
FIG. 8 is a flowchart of a waveform generation processing routine, a one-channel waveform generation processing routine for four channels, and a DMAC processing routine;

【符号の説明】[Explanation of symbols]

101…中央処理装置(CPU)、102…リードオン
リメモリ(ROM)、103…ランダムアクセスメモリ
(RAM)、104…ドライブ装置、106…タイマ、
107…ネットワーク入出力(I/O)インタフェー
ス、108…キーボード、109…ディスプレイ、11
0…ハードディスク、111…サンプリングクロック
(Fs)発生器、112…サウンドI/O、114…D
MA(ダイレクトメモリアクセス)コントローラ、11
5…サウンドシステム、116…バスライン。
101 central processing unit (CPU), 102 read-only memory (ROM), 103 random access memory (RAM), 104 drive device, 106 timer
107: network input / output (I / O) interface, 108: keyboard, 109: display, 11
0: Hard disk, 111: Sampling clock (Fs) generator, 112: Sound I / O, 114: D
MA (Direct Memory Access) Controller, 11
5 ... Sound system, 116 ... Bus line.

───────────────────────────────────────────────────── フロントページの続き (58)調査した分野(Int.Cl.7,DB名) G10H 7/02 G10H 1/02 ──────────────────────────────────────────────────続 き Continued on the front page (58) Field surveyed (Int.Cl. 7 , DB name) G10H 7/02 G10H 1/02

Claims (7)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】汎用の演算処理装置上で所定の楽音生成ソ
フトウェアを実行することにより楽音波形を生成する楽
音発生装置であって、 前記演算処理装置を、1命令で複数の演算を並列に実行
可能な拡張命令セットを備えたものとするとともに、 該拡張命令を用いて、複数チャンネルの波形生成をnチ
ャンネル(nは2以上の整数)分ずつ並列的に行ない、
生成された前記複数チャンネル分の波形データを混合
し、混合された波形データに施すエフェクト処理のアル
ゴリズム内の並列処理可能な部分の処理を並列的に行な
うことを特徴とする楽音発生装置。
1. A musical sound generator for generating a musical tone waveform by executing predetermined musical sound generation software on a general-purpose arithmetic processing device, wherein the arithmetic processing device executes a plurality of operations in parallel with one instruction. A set of possible extended instructions, and using the extended instructions, perform waveform generation of a plurality of channels in parallel for n channels (n is an integer of 2 or more),
A musical sound generating apparatus comprising: mixing the generated waveform data for a plurality of channels; and performing, in parallel, processing of a part that can be processed in parallel in an algorithm of an effect processing performed on the mixed waveform data.
【請求項2】汎用の演算処理装置上で所定の楽音生成ソ
フトウェアを実行することにより楽音波形を生成する楽
音発生方法であって、 前記演算処理装置を、1命令で複数の演算を並列に実行
可能な拡張命令セットを備えたものとするとともに、 該拡張命令を用いて、複数チャンネルの波形生成をnチ
ャンネル(nは2以上の整数)分ずつ並列的に行ない、
生成された前記複数チャンネル分の波形データを混合
し、混合された波形データに施すエフェクト処理のアル
ゴリズム内の並列処理可能な部分の処理を並列的に行な
うことを特徴とする楽音発生方法。
2. A musical tone generating method for generating a musical tone waveform by executing predetermined musical tone generating software on a general-purpose arithmetic processing unit, wherein the arithmetic processing unit executes a plurality of operations in parallel with one instruction. A set of possible extended instructions, and using the extended instructions, perform waveform generation of a plurality of channels in parallel for n channels (n is an integer of 2 or more),
A musical sound generating method comprising: mixing the generated waveform data for a plurality of channels; and performing, in parallel, processing of a part that can be processed in parallel in an algorithm of an effect processing applied to the mixed waveform data.
【請求項3】複数チャンネル分の楽音を発生する楽音発
生方法であって、 演奏情報を供給するステップと、 所定時間間隔でタイミング信号を発生するステップと、 前記タイミング信号の発生ごとに、前記演奏情報に応じ
た複数チャンネル分の波形データを生成するステップで
あって、該生成ステップでは、複数チャンネル分の処理
を並列にnチャンネル(nは2以上の整数)分ずつ並列
に行ない、連続する複数サンプル分の波形データを生成
して出力するものと、 生成された波形データを、サンプリング周期ごとに1サ
ンプルずつD/A変換器に供給し、アナログ波形に変換
するステップとを含むことを特徴とする楽音発生方法。
3. A musical tone generating method for generating musical tones for a plurality of channels, comprising: providing performance information; generating a timing signal at predetermined time intervals; And generating waveform data for a plurality of channels in accordance with the information. In the generating step, processing for the plurality of channels is performed in parallel for n channels (n is an integer of 2 or more) in parallel, and Generating and outputting sampled waveform data; and supplying the generated waveform data to a D / A converter one sample at a time for each sampling period to convert the sampled waveform data into an analog waveform. Musical sound generation method.
【請求項4】汎用の演算処理装置上で所定の楽音生成ソ
フトウェアを実行することにより楽音波形を生成する楽
音発生方法であって、 前記演算処理装置を、1命令で複数の演算を並列に実行
可能な拡張命令セットを備えたものとするとともに、 該拡張命令を用いて、複数チャンネルの波形生成処理の
うち、第1の処理をnチャンネル(nは2以上の整数)
分ずつ並列的に行ない、第2の処理をmチャンネル(m
はn以外の2以上の整数)分ずつ並列的に行ない、最終
的に生成された前記複数チャンネル分の波形データを混
合し、さらに混合された波形データに施すエフェクト処
理のアルゴリズム内の並列処理可能な部分の処理を並列
的に行ない、効果の付与された波形データを出力するこ
とを特徴とする楽音発生方法。
4. A musical sound generating method for generating a musical tone waveform by executing predetermined musical sound generation software on a general-purpose arithmetic processing device, wherein the arithmetic processing device executes a plurality of operations in parallel with one instruction. A possible extended instruction set is provided. The extended instruction is used to perform the first processing of the multi-channel waveform generation processing on n channels (n is an integer of 2 or more).
The second processing is performed in parallel for each minute, and the second processing is performed for m channels (m
Is performed in parallel by 2 or more integers other than n), and the finally generated waveform data of the plurality of channels are mixed, and the parallel processing in the effect processing algorithm applied to the mixed waveform data is possible. A tone generating method for performing processing of various parts in parallel and outputting waveform data with an effect.
【請求項5】汎用の演算処理装置上で所定の楽音生成ソ
フトウェアを実行することにより楽音波形を生成する楽
音発生方法に係るプログラムを記憶した記憶媒体であっ
て、 前記演算処理装置を、1命令で複数の演算を並列に実行
可能な拡張命令セットを備えたものとするとともに、 前記プログラムは、該拡張命令を用いて、複数チャンネ
ルの波形生成をnチャンネル(nは2以上の整数)分ず
つ並列的に行ない、生成された前記複数チャンネル分の
波形データを混合し、混合された波形データに施すエフ
ェクト処理のアルゴリズム内の並列処理可能な部分の処
理を並列的に行なうものであることを特徴とする記憶媒
体。
5. A storage medium storing a program relating to a musical sound generation method for generating a musical sound waveform by executing predetermined musical sound generation software on a general-purpose arithmetic processing device, wherein the arithmetic processing device is provided with one instruction. And an extended instruction set capable of executing a plurality of operations in parallel. The program uses the extended instruction to generate waveforms of a plurality of channels by n channels (n is an integer of 2 or more). The waveform data for the plurality of channels generated are mixed in parallel, and processing of a part capable of parallel processing in an algorithm of an effect processing applied to the mixed waveform data is performed in parallel. Storage medium.
【請求項6】複数チャンネル分の楽音を発生する楽音発
生方法に係るプログラムを記憶した記憶媒体であって、 該プログラムは、 演奏情報を供給するステップと、 所定時間間隔でタイミング信号を発生するステップと、 前記タイミング信号の発生ごとに、前記演奏情報に応じ
た複数チャンネル分の波形データを生成するステップで
あって、該生成ステップでは、複数チャンネル分の処理
を並列にnチャンネル(nは2以上の整数)分ずつ並列
に行ない、連続する複数サンプル分の波形データを生成
して出力するものと、 生成された波形データを、サンプリング周期ごとに1サ
ンプルずつD/A変換器に供給し、アナログ波形に変換
するステップとを含むことを特徴とする記憶媒体。
6. A storage medium storing a program relating to a musical sound generating method for generating musical sounds for a plurality of channels, the program comprising: a step of supplying performance information; and a step of generating a timing signal at predetermined time intervals. Generating waveform data for a plurality of channels corresponding to the performance information each time the timing signal is generated. In the generating step, processing for the plurality of channels is performed in parallel on n channels (where n is 2 or more). The waveform data of a plurality of continuous samples are generated and output. The generated waveform data is supplied to the D / A converter one sample at a time for each sampling period. Converting to a waveform.
【請求項7】汎用の演算処理装置上で所定の楽音生成ソ
フトウェアを実行することにより楽音波形を生成する楽
音発生方法に係るプログラムを記憶した記憶媒体であっ
て、 前記演算処理装置を、1命令で複数の演算を並列に実行
可能な拡張命令セットを備えたものとするとともに、 前記プログラムは、該拡張命令を用いて、複数チャンネ
ルの波形生成処理のうち、第1の処理をnチャンネル
(nは2以上の整数)分ずつ並列的に行ない、第2の処
理をmチャンネル(mはn以外の2以上の整数)分ずつ
並列的に行ない、最終的に生成された前記複数チャンネ
ル分の波形データを混合し、さらに混合された波形デー
タに施すエフェクト処理のアルゴリズム内の並列処理可
能な部分の処理を並列的に行ない、効果の付与された波
形データを出力することを特徴とする記憶媒体。
7. A storage medium storing a program relating to a musical sound generation method for generating a musical sound waveform by executing predetermined musical sound generation software on a general-purpose arithmetic processing device, wherein the arithmetic processing device is provided with one instruction. And an extended instruction set capable of executing a plurality of operations in parallel with the program. The program uses the extended instruction to execute the first processing among n channels (n Is performed in parallel by 2 or more integers), the second processing is performed in parallel by m channels (m is an integer of 2 or more other than n), and finally generated waveforms for the plurality of channels are generated. The data is mixed, and the parallel processing of the effect processing algorithm applied to the mixed waveform data is performed in parallel, and the effected waveform data is output. Storage medium characterized Rukoto.
JP22303697A 1996-08-05 1997-08-05 Musical sound generating apparatus and musical sound generating method, and storage medium storing program according to the method Expired - Fee Related JP3285137B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP22303697A JP3285137B2 (en) 1996-08-05 1997-08-05 Musical sound generating apparatus and musical sound generating method, and storage medium storing program according to the method

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-221780 1996-08-05
JP22178096 1996-08-05
JP22303697A JP3285137B2 (en) 1996-08-05 1997-08-05 Musical sound generating apparatus and musical sound generating method, and storage medium storing program according to the method

Publications (2)

Publication Number Publication Date
JPH10105175A JPH10105175A (en) 1998-04-24
JP3285137B2 true JP3285137B2 (en) 2002-05-27

Family

ID=26524500

Family Applications (1)

Application Number Title Priority Date Filing Date
JP22303697A Expired - Fee Related JP3285137B2 (en) 1996-08-05 1997-08-05 Musical sound generating apparatus and musical sound generating method, and storage medium storing program according to the method

Country Status (1)

Country Link
JP (1) JP3285137B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060155543A1 (en) * 2005-01-13 2006-07-13 Korg, Inc. Dynamic voice allocation in a vector processor based audio processor
US7663052B2 (en) * 2007-03-22 2010-02-16 Qualcomm Incorporated Musical instrument digital interface hardware instruction set

Also Published As

Publication number Publication date
JPH10105175A (en) 1998-04-24

Similar Documents

Publication Publication Date Title
US5319151A (en) Data processing apparatus outputting waveform data in a certain interval
US5691493A (en) Multi-channel tone generation apparatus with multiple CPU's executing programs in parallel
US5955691A (en) Software sound source
JP3293434B2 (en) Tone generation method
US6326537B1 (en) Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency
WO2008118674A1 (en) Musical instrument digital interface hardware instructions
JP3285137B2 (en) Musical sound generating apparatus and musical sound generating method, and storage medium storing program according to the method
JP4036233B2 (en) Musical sound generating device, musical sound generating method, and storage medium storing a program related to the method
JPH1020860A (en) Musical tone generator
JPH07121181A (en) Sound information processor
JPH08160961A (en) Sound source device
JP3852634B2 (en) Musical sound generating device, musical sound generating method, and storage medium storing a program related to the method
JP2576613B2 (en) Processing equipment
JP3006095B2 (en) Musical sound wave generator
JP3275678B2 (en) Musical sound generating method and apparatus
JP2576617B2 (en) Processing equipment
JP3832383B2 (en) Musical sound generating apparatus and program
JP3991475B2 (en) Audio data processing apparatus and computer system
JPH10124060A (en) Method and device for musical sound generation and recording medium where program for sound generation is recorded
JP3610759B2 (en) Digital signal processor
JP3148803B2 (en) Sound source device
JP3832382B2 (en) Musical sound generating apparatus and program
JP3463547B2 (en) Performance data changing device, performance data changing method, and medium recording program
JP2004246145A (en) Musical sound generating device and program for processing musical sound generation
JP2000206972A (en) Performance controller for waveform data

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090308

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090308

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100308

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110308

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110308

Year of fee payment: 9

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120308

Year of fee payment: 10

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130308

Year of fee payment: 11

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140308

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees