JP3141789B2 - Sound source system using computer software - Google Patents

Sound source system using computer software

Info

Publication number
JP3141789B2
JP3141789B2 JP08246942A JP24694296A JP3141789B2 JP 3141789 B2 JP3141789 B2 JP 3141789B2 JP 08246942 A JP08246942 A JP 08246942A JP 24694296 A JP24694296 A JP 24694296A JP 3141789 B2 JP3141789 B2 JP 3141789B2
Authority
JP
Japan
Prior art keywords
tone
tone waveform
generating
data
musical
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
JP08246942A
Other languages
Japanese (ja)
Other versions
JPH1074088A (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 JP08246942A priority Critical patent/JP3141789B2/en
Priority to SG1997003053A priority patent/SG67993A1/en
Priority to EP97114933A priority patent/EP0827132B1/en
Priority to EP00123550A priority patent/EP1087372A3/en
Priority to DE69711518T priority patent/DE69711518T2/en
Priority to US08/920,947 priority patent/US5981860A/en
Publication of JPH1074088A publication Critical patent/JPH1074088A/en
Application granted granted Critical
Publication of JP3141789B2 publication Critical patent/JP3141789B2/en
Priority to US09/976,769 priority patent/USRE41757E1/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 sound source system and a sound generator which combine musical tone waveform generating blocks described in software to generate musical tone waveform data based on musical tone waveform generation operations performed by the respective tone waveform generating blocks. The present invention relates to a waveform data generation method.

【0002】[0002]

【従来の技術】従来、たとえば波形メモリ音源方式やF
M音源方式等の各種楽音生成方式に応じて楽音を生成す
るときには、当該楽音生成方式を実現する回路を専用の
ハードウェア(たとえば音源専用LSIや固定されたマ
イクロプログラムに基づいて動作するDSP(Digital
Signal Processor)等)で構成していた。このように、
専用のハードウェアで構成した楽音生成装置やその楽音
生成方法を、以下、「ハード音源」という。
2. Description of the Related Art Conventionally, for example, a waveform memory sound source system or F
When a tone is generated in accordance with various tone generation methods such as the M tone generator method, a circuit for implementing the tone generation method is provided by a dedicated hardware (for example, a DSP (Digital) which operates based on a tone generator dedicated LSI or a fixed microprogram.
Signal Processor) etc.). in this way,
The tone generator and the tone generation method constituted by dedicated hardware are hereinafter referred to as “hard sound source”.

【0003】しかし、ハード音源では、専用のハードウ
ェアを必要とするため、製造コストをより低減させるこ
とは困難であり、また、設計後の仕様変更に柔軟に対応
することができないという問題があった。
However, a hardware tone generator requires dedicated hardware, so that it is difficult to further reduce manufacturing costs, and it is not possible to flexibly cope with a specification change after design. Was.

【0004】これに対して、近年、CPUの演算能力の
向上に伴い、汎用コンピュータや専用の楽音発生装置に
搭載されたCPUに対して、所定の楽音生成処理手順を
記述したソフトウェアプログラムを実行させることによ
り、楽音波形データを生成させるようにしたものが開発
されている。このように、ソフトウェアプログラムを中
心に構成した楽音生成装置やその楽音生成方法を、以
下、「ソフト音源」という。
[0004] On the other hand, in recent years, with the improvement of the computational power of CPUs, a general-purpose computer or a CPU mounted on a dedicated tone generator has to execute a software program describing a predetermined tone generation processing procedure. As a result, musical tone waveform data has been developed. The tone generator and the tone generation method mainly composed of software programs are hereinafter referred to as “soft sound source”.

【0005】[0005]

【発明が解決しようとする課題】上記「従来の技術」に
おいても述べたように、コンピュータシステム、コンピ
ュータ応用機器でハード音源を用いるのは、コストの増
大を招いたり、仕様変更に対する柔軟性が乏しくなるな
どの問題があった。
As described in the "prior art" described above, the use of a hard tone generator in a computer system or a computer-applied device causes an increase in cost and a lack of flexibility in changing specifications. There were problems such as becoming.

【0006】また、ソフト音源とはいっても、従来使わ
れてきた音源LSIなどの専用ハードウェアやデバイス
の機能をそのまま単純にソフトェア化しただけのソフ
ト音源では、設計後の仕様変更にハード音源より柔軟に
対応することができるものの、発音中、すなわち音源動
作中に発生する各種要請、たとえばCPUの能力やシス
テム環境からの要請およびユーザの好みや設定等の要請
に柔軟に応えることができなかった。具体的には、出力
された楽音波形の精度の変更(高精度への変更のみなら
ず低精度への変更をも含む)やその音色変化の程度の変
更(たとえば通常の音色変化より微妙な音色変化への変
更やその逆方向への音色変化へ変更)等の要請に常に応
えることできなかった。
[0006] In addition, also entered the soft sound source, the only of the software sound source was directly simply soft c E A the function of the dedicated hardware and devices, such as a sound source LSI that has been conventionally used, the specification change after design Although it can respond more flexibly than the hardware sound source, it can flexibly respond to various requests generated during sound generation, that is, during operation of the sound source, for example, requests from the capabilities of the CPU and the system environment, and requests for user preferences and settings. could not. Specifically, a change in the accuracy of the output musical tone waveform (including a change to a high accuracy as well as a change to a low accuracy) and a change in the degree of the timbre change (for example, a timbre that is more subtle than a normal timbre change) Change, or change the tone color in the opposite direction).

【0007】本発明は、上記問題に鑑みてなされたもの
で、特別な専用ハードウェアを追加せずにソフトウェア
プログラムで楽音生成を行うことによりコストを低減化
させるとともに、その用途、動作環境、目的および設定
等に応じて楽音生成の演算処理に対する演算手段の負荷
の軽重および出力楽音波形の品質の高低を変更すること
が可能なコンピュータソフトウェアを用いた音源システ
ムを提供することを目的とする。
SUMMARY OF THE INVENTION The present invention has been made in view of the above-mentioned problems, and reduces the cost by generating a musical tone by using a software program without adding special dedicated hardware. Sound source system using computer software capable of changing the load on the arithmetic means for the arithmetic processing of musical tone generation and the quality of the output musical tone waveform in accordance with the setting and the like
The purpose is to provide a system.

【0008】[0008]

【課題を解決するための手段】上記目的を達成するた
め、請求項1に記載の音源システムは、楽音波形生成演
算を行う、ソフトウェアで構成された楽音波形生成ブロ
ックを複数個組み合わせることにより、複数の発音チャ
ンネルの各チャンネル毎に異なった音色の楽音波形デー
タを生成する音源システムにおいて、前記組み合わせら
れる楽音波形生成ブロックの個数およびその組合せ態様
を前記音色毎に決定するアルゴリズムを設定するアルゴ
リズム設定手段と、曲の各演奏パート毎に音色を設定す
る音色設定手段と、該各演奏パート毎に前記組み合わせ
られる楽音波形生成ブロックの個数を設定するブロック
数設定手段と、前記音色設定手段により音色が設定され
るときに、当該演奏パートに前記ブロック数設定手段に
より楽音波形生成ブロック数が設定されている場合に
は、当該演奏パートに設定された音色を、該設定ブロッ
ク数の範囲内の楽音波形生成ブロックを備えた音色に変
更する音色変更手段と、前記複数の発音チャンネルから
楽音波形データを生成するチャンネルを選択する発音チ
ャンネル選択手段と、該選択された発音チャンネルに、
当該生成すべき楽音波形データの音色に対応して前記設
定されたアルゴリズムが示す楽音波形生成ブロックを割
り当て、該割り当てられた楽音波形生成ブロックを当該
アルゴリズムが示す組み合わせ態様で組み合わせて楽音
波形生成演算を行い、楽音波形データを生成する楽音波
形データ生成手段とを有することを特徴とする。
According to a first aspect of the present invention, there is provided a tone generator system comprising: a plurality of software-generated tone waveform generation blocks for performing a tone waveform generation operation; And an algorithm setting means for setting an algorithm for determining the number of musical tone waveform generating blocks to be combined and the combination mode for each tone color in a tone generator system that generates musical tone waveform data of different timbres for each of the sound channels. , Set the tone for each performance part of the song
Tone setting means, and the combination
Block to set the number of musical tone waveform generation blocks to be used
The tone color is set by the number setting means and the tone color setting means.
When the performance part is
When the number of musical tone waveform generation blocks is set
The tone set for the performance part
To a tone with a tone waveform generation block within the range of
Tone changing means for changing, sounding channel selecting means for selecting a channel for generating musical tone waveform data from the plurality of sounding channels, and
A tone waveform generation block indicated by the set algorithm is assigned according to the tone color of the tone waveform data to be generated, and the assigned tone waveform generation block is combined in a combination mode indicated by the algorithm to perform a tone waveform generation operation. And a musical sound waveform data generating means for generating musical sound waveform data.

【0009】好ましくは、前記発音チャンネルにおける
楽音波形生成演算中に、所定の条件に応じて、当該発音
チャンネルに割り当てられた楽音波形生成ブロックの個
数を変更するブロック数変更手段を有することを特徴と
する。
Preferably, in said sounding channel
During the tone waveform generation calculation, the sound
Number of musical tone waveform generation blocks assigned to channels
It has a block number changing means for changing the number .

【0010】また、好ましくは、前記各楽音波形生成ブ
ロック毎に、該各楽音波形生成ブロックが実行する楽音
波形生成演算の基準となるサンプリング周波数を設定す
るサンプリング周波数設定手段を有し、前記楽音波形デ
ータ生成手段は、前記各楽音波形生成ブロックによる楽
音波形生成演算を、該各楽音波形生成ブロックに設定さ
れたサンプリング周波数を基準にして行うことを特徴と
する。
[0010] Preferably, each of the tone waveform generation Bed
Tone generated by each tone waveform generation block for each lock
Set the sampling frequency that is the reference for the waveform generation calculation
Sampling frequency setting means,
The data generating means is a music data generating block for each musical tone waveform.
The waveform generation operation is set in each tone waveform generation block.
The sampling is performed with reference to the sampling frequency .

【0011】上記目的を達成するため、請求項4に記載
の音源システムは、楽音波形生成演算を行う、ソフトウ
ェアで構成された楽音波形生成ブロックを複数個組み合
わせることにより、複数の発音チャンネルの各チャンネ
ル毎に楽音波形データを生成する音源システムにおい
て、前記組み合わせられる楽音波形生成ブロックの個数
およびその組合せ態様を決定するアルゴリズムを設定す
るアルゴリズム設定手段と、前記複数の発音チャンネル
から楽音波形データを生成するチャンネルを選択する発
音チャンネル選択手段と、該選択された発音チャンネル
に、前記設定されたアルゴリズムが示す楽音波形生成ブ
ロックを割り当て、該割り当てられた楽音波形生成ブロ
ックを当該アルゴリズムが示す組み合わせ態様で組み合
わせて楽音波形生成演算を行い、楽音波形データを生成
する楽音波形データ生成手段と、前記発音チャンネルに
おける楽音波形生成演算中に、所定の条件に応じて、当
該発音チャンネルに割り当てられた楽音波形生成ブロッ
クの個数を変更するブロック数変更手段とを有すること
を特徴とする。
[0011] To achieve the above object, the present invention is described in claim 4.
Is a software that performs tone waveform generation calculation.
Combination of multiple tone waveform generation blocks
This allows you to select each channel of multiple sound channels.
In a sound source system that generates musical sound waveform data for each file
The number of musical tone waveform generating blocks to be combined
And the algorithm that determines the combination
Algorithm setting means, and the plurality of sound channels
To select a channel for generating musical sound waveform data from
Sound channel selecting means, and the selected sounding channel
The tone waveform generation block indicated by the set algorithm
Assigns a lock and assigns the assigned tone waveform generation block
In the combination mode indicated by the algorithm.
Performs tone waveform generation calculation to generate tone waveform data
Musical tone waveform data generating means,
During the musical sound waveform generation calculation in accordance with predetermined conditions.
Musical sound waveform generation block assigned to the sound channel
Block number changing means for changing the number of blocks .

【0012】また、好ましくは、前記各楽音波形生成ブ
ロック毎に、該各楽音波形生成ブロックが実行する楽音
波形生成演算の基準となるサンプリング周波数を設定す
るサンプリング周波数設定手段を有し、前記楽音波形デ
ータ生成手段は、前記各楽音波形生成ブロックによる楽
音波形生成演算を、該各楽音波形生成ブロックに設定さ
れたサンプリング周波数を基準にして行うことを特徴と
する。
Preferably, each of the musical tone waveform generating blocks is provided.
Tone generated by each tone waveform generation block for each lock
Set the sampling frequency that is the reference for the waveform generation calculation
Sampling frequency setting means,
The data generating means is a music data generating block for each musical tone waveform.
The waveform generation operation is set in each tone waveform generation block.
The sampling is performed with reference to the sampling frequency .

【0013】上記目的を達成するため、請求項6に記載
の音源システムは、楽音波形生成演算を行う、ソフトウ
ェアで構成された楽音波形生成ブロックを複数個組み合
わせることにより、複数の発音チャンネルの各チャンネ
ル毎に楽音波形データを生成する音源システムにおい
て、前記組み合わせられる楽音波形生成ブロックの個数
およびその組合せ態様を決定するアルゴリズムを設定す
るアルゴリズム設定手段と、前記各楽音波形生成ブロッ
ク毎に、該各楽音波形生成ブロックが実行する楽音波形
生成演算の基準となるサンプリング周波数を設定するサ
ンプリング周波数設定手段と、前記複数の発音チャンネ
ルから楽音波形データを生成するチャンネルを選択する
発音チャンネル選択手段と、該選択された発音チャンネ
ルに、前記設定されたアルゴリズムが示す楽音波形生成
ブロックを割り当て、該割り当てられた楽音波形生成ブ
ロックを当該アルゴリズムが示す組み合わせ態様で組み
合わせ、該各楽音波形生成ブロックに設定されたサンプ
リング周波数を基準にして楽音波形生成演算を行い、楽
音波形データを生成する楽音波形データ生成手段とを有
することを特徴とする。
[0013] In order to achieve the above object, a sixth aspect of the present invention is provided.
Is a software that performs tone waveform generation calculation.
Combination of multiple tone waveform generation blocks
This allows you to select each channel of multiple sound channels.
In a sound source system that generates musical sound waveform data for each file
The number of musical tone waveform generating blocks to be combined
And the algorithm that determines the combination
Algorithm setting means, and the tone waveform generation block.
The tone waveform generated by each tone waveform generating block
A sample frequency setting reference for generation calculation
Sampling frequency setting means, and the plurality of sounding channels.
Select a channel to generate musical waveform data from
Sounding channel selecting means, and the selected sounding channel
The sound waveform generation shown by the set algorithm
Allocate a block and assign the assigned musical tone waveform generation block.
Locks are combined in the combination indicated by the algorithm.
The sump set in each musical tone waveform generation block
Performs a tone waveform generation operation based on the ring frequency and
Music sound waveform data generating means for generating sound waveform data;
Characterized in that it.

【0014】また、好ましくは、前記アルゴリズム設定
手段は、前記アルゴリズムを音色毎に設定し、前記楽音
波形データ生成手段は、前記選択された発音チャンネル
には、当該チャンネルで生成すべき楽音波形データの音
色に対応して前記設定されたアルゴリズムが示す楽音波
形生成ブロックを割り当てることを特徴とする。
[0014] In addition, good Mashiku, the algorithm setting
Means for setting the algorithm for each timbre,
The waveform data generating means includes:
Contains the sound of the tone waveform data to be generated in the channel.
Music sound wave indicated by the set algorithm corresponding to the color
The method is characterized in that a shape generation block is allocated .

【0015】さらに、曲の各演奏パート毎に、該各パー
トにそれぞれ設定された音色に対応するアルゴリズムが
示す楽音波形生成ブロックの削減態様を設定する削減態
様設定手段を有し、前記ブロック数変更手段は、該設定
された削減態様および前記所定の条件に応じて楽音波形
生成ブロックの個数を変更することを特徴とする。
Further, for each performance part of the music,
The algorithm corresponding to the tone set for each
Reduction mode for setting the reduction mode of the musical tone waveform generation block shown
Setting means, wherein the number-of-blocks changing means includes
Tone waveform according to the reduced mode and the predetermined condition
The number of generated blocks is changed .

【0016】また、好ましくは、前記所定の条件は、当
該発音チャンネルにおいて生成された楽音波形の音量エ
ンベロープが減衰したことであり、前記ブロック数変更
手段は、該楽音波形の音量エンベロープが所定値以下に
減衰したときに、その減衰に応じて、前記アルゴリズム
設定手段により設定されたアルゴリズムが示す楽音波形
生成ブロックの個数を減少させる方向に変更することを
特徴とする。
Preferably, the predetermined condition is:
Volume of the tone waveform generated in the sound channel
The envelope was attenuated, and the number of blocks was changed.
Means for controlling the volume envelope of the musical sound waveform to be equal to or less than a predetermined value.
When the decay, according to the decay, the algorithm
Musical sound waveform indicated by the algorithm set by the setting means
It is characterized in that the number of generated blocks is changed so as to decrease .

【0017】また、前記所定の条件は、当該発音チャン
ネルにおいて生成すべき楽音波形の音量が小さく設定さ
れていることであり、前記ブロック数変更手段は、当該
楽音波形の音量が小さく設定されているときには、前記
アルゴリズム設定手段により設定されたアルゴリズムが
示す楽音波形生成ブロックの個数を減少させる方向に変
更することを特徴とする。
Further, the predetermined condition is that
The volume of the tone waveform to be generated in the
The number of blocks changing means,
When the volume of the tone waveform is set low,
The algorithm set by the algorithm setting means
In the direction to decrease the number of
Characterized in that it further.

【0018】さらに、前記所定の条件は、当該発音チャ
ンネルに発音割り当てされた楽音波形生成ブロック中、
その出力レベルが所定値より小さいブロックがあること
であり、前記ブロック数変更手段は、出力レベルが所定
値以下となった楽音波形生成ブロックが他の楽音波形生
成ブロックに影響を与えないものであるときには、当該
楽音波形生成ブロックの演算を停止することにより、当
該アルゴリズムが示す楽音波形生成ブロックの個数を減
少させる方向に変更することを特徴とする。
Further, the predetermined condition is that
During the tone waveform generation block assigned to the sound
There is a block whose output level is lower than the specified value
Wherein the block number changing means has a predetermined output level.
The tone waveform generation block whose value is less than or equal to the other tone waveform generator
If it does not affect the building block,
By stopping the operation of the tone waveform generation block,
Reduce the number of musical tone waveform generation blocks indicated by the algorithm
It is characterized in that it is changed in a direction to decrease .

【0019】[0019]

【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて詳細に説明する。
Embodiments of the present invention will be described below in detail with reference to the drawings.

【0020】図1は、本発明の実施の一形態に係る音源
システムが備えたソフトウェアのシステム構成の一例を
示す図であり、同図に示すように、本ソフトウェアシス
テムは、OSを介して、すなわちOS側で楽音波形デー
タを生成するように構成されている。なお、同図には、
OS側で生成されたデジタル楽音信号(楽音波形デー
タ)をアナログ楽音信号に変換するDAC(Digital to
Analog Converter)を含むcodecハードウェアも
図示されている。
FIG. 1 is a diagram showing an example of a system configuration of software provided in a sound source system according to an embodiment of the present invention. As shown in FIG. That is, the tone waveform data is generated on the OS side. In the figure,
DAC (Digital to Tone) that converts digital tone signals (tone waveform data) generated on the OS side into analog tone signals
Codec hardware including an Analog Converter) is also shown.

【0021】図1において、APS1は、MIDIメッ
セージ、すなわち楽音波形データを生成する基となる演
奏情報をリアルタイムかつシーケンシャルに発生するア
プリケーションソフトウェア(以下、「シーケンスソフ
ト」という)である。該シーケンスソフトAPS1は、
曲毎に予め作成されたMIDIファイル(たとえば各種
イベントデータおよびそのイベントを発生させるタイミ
ングデータ等のMIDIデータから成るファイル)を複
数個有し、その中からユーザにより1つまたは複数のM
IDIファイルが選択されると、該ファイルから順次M
IDIデータを読み出してMIDIメッセージ(イベン
トデータに対応して生成されたMIDIメッセージ)を
リアルタイムかつシーケンシャルに発生する。そして、
シーケンスソフトAPS1は、該MIDIメッセージ
を、MIDIメッセージを入力するためにOS側が備え
た第1のインターフェースIF1(MIDI APplication I
nterface; MIDI API)に出力する。
In FIG. 1, APS1 is application software (hereinafter referred to as "sequence software") for generating MIDI messages, that is, performance information on which musical tone waveform data is generated, in real time and sequentially. The sequence software APS1 is
A plurality of MIDI files (for example, a file including various event data and MIDI data such as timing data for generating the event) prepared in advance for each music are provided.
When an IDI file is selected, M
The IDI data is read, and a MIDI message (a MIDI message generated corresponding to the event data) is generated in real time and sequentially. And
The sequence software APS1 converts the MIDI message into a first interface IF1 (MIDI APplication I) provided on the OS side for inputting the MIDI message.
nterface; MIDI API).

【0022】OSには、第1のインターフェースIF1
を介して入力されたMIDIメッセージに基づいて楽音
波形データを生成するためのプログラム(ソフトウェ
ア)であるソフトウェア音源モジュールSSMがドライ
バとしてインストールされるとともに、該ソフトウェア
音源モジュールSSMにより生成された楽音波形データ
を入力するための第2のインターフェースIF2(WAVE
out APplication Interface; WAVE out API)も備わっ
ている。さらに、OSには、第2のインターフェースI
F2を介して入力された楽音波形データを外部に出力す
るための出力デバイスOUDもドライバとしてインスト
ールされており、この出力デバイスOUDは、たとえ
ば、ソフトウェア音源モジュールSSMの処理によって
生成されてハードディスク等の記憶装置にバッファ記憶
された楽音波形データをダイレクトメモリアクセス(D
MA)コントローラを介して読み出し、所定のハードウ
ェアやデバイス(たとえば前記codecハードウェ
ア)に対して出力する処理を行うソフトウェアにより構
成される。
The OS has a first interface IF1
A software sound source module SSM, which is a program (software) for generating musical tone waveform data based on a MIDI message input via the PC, is installed as a driver, and the musical tone waveform data generated by the software tone source module SSM is converted to a software tone generator. Second interface IF2 (WAVE
out APplication Interface; WAVE out API). Further, the OS has a second interface I
An output device OUD for outputting the musical tone waveform data input via F2 to the outside is also installed as a driver. The output device OUD is generated by, for example, processing of the software sound source module SSM and stored in a hard disk or the like. Direct access to the tone waveform data stored in the buffer
MA) It is configured by software that performs processing to read out via a controller and output to predetermined hardware or a device (for example, the codec hardware).

【0023】シーケンスソフトAPS1が出力したMI
DIメッセージは、第1のインターフェースIF1およ
びOSを介してソフトウェア音源モジュールSSMの入
力インターフェースに供給され、ソフトウェア音源モジ
ュールSSMでは、受け取ったMIDIメッセージに基
づく楽音波形データ生成処理(本実施の形態では、楽音
波形データはFM音源方式により生成される)が実行さ
れ、この生成された楽音波形データは、第2のインター
フェースIF2およびOSを介して出力デバイスOUD
に供給される。出力デバイスOUDでは、供給された生
成済みデジタル楽音波形データが前記codecハード
ウェアに出力されて、アナログ楽音信号に変換される。
The MI output by the sequence software APS1
The DI message is supplied to the input interface of the software tone generator module SSM via the first interface IF1 and the OS, and the software tone generator module SSM generates a musical sound waveform data based on the received MIDI message (in this embodiment, the musical tone waveform data is generated). The waveform data is generated by the FM sound source method), and the generated musical sound waveform data is output to the output device OUD via the second interface IF2 and the OS.
Supplied to In the output device OUD, the supplied generated digital musical tone waveform data is output to the codec hardware and converted into an analog musical tone signal.

【0024】このように、本実施の形態では、楽音波形
データを生成するためのソフトウェア音源モジュールS
SMとMIDIメッセージを出力するためのアプリケー
ションソフトウェアであるシーケンスソフトAPS1と
をOSレベルで簡単に組み合わせることができるように
したので、楽音波形データを生成するための専用のハー
ドウェアを追加する必要がなく、これによりコストを低
減させることができる。
As described above, in this embodiment, the software sound source module S for generating musical tone waveform data is used.
Since the SM and the sequence software APS1, which is application software for outputting a MIDI message, can be easily combined at the OS level, there is no need to add dedicated hardware for generating musical tone waveform data. Thus, the cost can be reduced.

【0025】図2は、本実施の形態の音源システムを実
現するハードウェアの概略構成を示す図である。本シス
テムは、汎用のパーソナルコンピュータにより実現さ
れ、そのメイン制御部としてはCPU3が使用され、該
CPU3の制御の下で、ソフトウェア音源プログラムに
よる楽音波形データ生成処理と該楽音波形データ生成処
理以外のその他のプログラム処理とが並行して実行され
る。
FIG. 2 is a diagram showing a schematic configuration of hardware for realizing the tone generator system of the present embodiment. This system is realized by a general-purpose personal computer, and a CPU 3 is used as a main control unit. Under the control of the CPU 3, a tone waveform data generation process by a software sound source program and other processes other than the tone waveform data generation process are performed. Is executed in parallel with the program processing.

【0026】同図において、CPU3には、外部からの
MIDIメッセージを入力したり、MIDIメッセージ
を外部に出力したりするMIDIインターフェースMI
DII/F1、タイマ割込時間や各種時間を計時するタ
イマ2、各種制御プログラムやテーブルデータ等を記憶
するROM(リードオンリメモリ)4、前記選択された
MIDIファイルや各種入力情報および演算結果等を一
時的に記憶するRAM(ランダムアクセスメモリ)5、
ポインティングデバイスであるマウス7、主として文字
情報を入力するためのキーボード8、たとえば大型LC
DやCRT等の各種情報等を表示するディスプレイ9、
CPU3が実行する各種制御プログラムを含む各種アプ
リケーションプログラムや各種データ等を記憶するハー
ドディスクをドライブするハードディスク装置10、D
MA(Direct Memory Access)コントローラ11、およ
び、通信ネットワーク101を介して、たとえばサーバ
コンピュータ102とデータの送受信を行う通信インタ
ーフェース(I/F)14が、データおよびアドレスバ
ス6を介して接続されている。
In FIG. 1, a CPU 3 has a MIDI interface MIDI for inputting an external MIDI message and outputting a MIDI message to the outside.
DII / F1, timer 2 for counting timer interrupt time and various times, ROM (read only memory) 4 for storing various control programs and table data, etc., and the selected MIDI file, various input information, calculation results, etc. RAM (random access memory) 5 for temporarily storing,
Mouse 7, which is a pointing device, keyboard 8, mainly for inputting character information, for example, large LC
A display 9 for displaying various information such as D and CRT,
A hard disk device 10 for driving a hard disk for storing various application programs including various control programs executed by the CPU 3 and various data;
An MA (Direct Memory Access) controller 11 and a communication interface (I / F) 14 for transmitting / receiving data to / from a server computer 102 via a communication network 101 are connected via a data / address bus 6. .

【0027】DMAコントローラ11は、楽音生成処理
の実行により生成され、RAM5内の出力バッファに書
き込まれた楽音データを、DAC12に内包されるデー
タバッファ(図示せず)の空き状態などに応じてダイレ
クトメモリアクセス方式で出力バッファから直接読み出
してDAC12の内包データバッファに転送する処理
(再生処理)を実行するものである。DAC12でアナ
ログ変換された楽音データは、サウンドシステム13に
送られ、該システム13により音響に変換される。
The DMA controller 11 converts the tone data generated by executing the tone generating process and written into the output buffer in the RAM 5 directly according to the empty state of a data buffer (not shown) included in the DAC 12. A process (reproduction process) of directly reading from the output buffer and transferring the data to the internal data buffer of the DAC 12 by the memory access method is executed. The tone data analog-converted by the DAC 12 is sent to the sound system 13 and converted into sound by the system 13.

【0028】ハードディスク装置10内のハードディス
クには、前記OSやユーティリティソフト等のソフトウ
ェアの他に、ソフトウェア音源を実現するためのソフト
ウェア(すなわち前記ソフトウェア音源モジュールSS
M)と、その他のアプリケーションソフト(すなわち前
記シーケンスソフトAPS1)が記憶されている。
The hard disk in the hard disk device 10 includes software for realizing a software sound source (ie, the software sound source module SS) in addition to the software such as the OS and the utility software.
M) and other application software (that is, the sequence software APS1).

【0029】前記出力デバイスOUDは、ソフトウェア
音源モジュールSSMからOSレベルの前記第2のイン
ターフェースIF2を介して供給された楽音データをD
AC12に送るモジュールに相当する。前述のように、
DMAコントローラ11がダイレクトメモリアクセス方
式で楽音データをDAC12に送るようになっているの
で、出力デバイスOUDは、CPU3の制御の下で、D
MAコントローラ11による割込み処理として実行され
る。
The output device OUD converts the tone data supplied from the software tone generator module SSM via the second interface IF2 at the OS level into D.
This corresponds to a module to be sent to AC12. As aforementioned,
Since the DMA controller 11 sends the tone data to the DAC 12 by the direct memory access method, the output device OUD is controlled by the CPU 3 under the control of the CPU 3.
This is executed as an interrupt process by the MA controller 11.

【0030】通信I/F14は、LAN(ローカルエリ
アネットワーク)やインターネット、電話回線等の通信
ネットワーク101に接続されており、該通信ネットワ
ーク101を介して、サーバコンピュータ102と接続
される。ハードディスク装置10内のハードディスクに
上記各プログラムや各種パラメータが記憶されていない
場合には、通信I/F14は、サーバコンピュータ10
2からプログラムやパラメータをダウンロードするため
に用いられる。クライアントとなるコンピュータ(本実
施の形態の音源システム)は、通信I/F14及び通信
ネットワーク101を介してサーバコンピュータ102
へとプログラムやパラメータのダウンロードを要求する
コマンドを送信する。サーバコンピュータ102は、こ
のコマンドを受け、要求されたプログラムやパラメータ
を、通信ネットワーク101を介してコンピュータへと
配信し、コンピュータが通信I/F101を介して、こ
れらプログラムやパラメータを受信してハードディスク
装置10内のハードディスクに蓄積することにより、ダ
ウンロードが完了する。
The communication I / F 14 is connected to a communication network 101 such as a LAN (local area network), the Internet, and a telephone line, and is connected to the server computer 102 via the communication network 101. If the above programs and various parameters are not stored in the hard disk in the hard disk device 10, the communication I / F 14
2 to download programs and parameters. The computer serving as the client (sound source system of the present embodiment) is connected to the server computer 102 via the communication I / F 14 and the communication network 101.
Send a command to request the download of programs and parameters. The server computer 102 receives the command, distributes the requested program or parameter to the computer via the communication network 101, and the computer receives the program or parameter via the communication I / F 101, and The download is completed by accumulating the data in the hard disk in 10.

【0031】この他、外部コンピュータ等との間で直接
データのやりとりを行うためのインターフェースを備え
てもよい。
In addition, an interface for directly exchanging data with an external computer or the like may be provided.

【0032】次に、ソフトウェア音源モジュールSSM
によるFM音源方式を用いた楽音生成処理の概要を、図
3〜6を参照して説明する。
Next, the software sound source module SSM
An outline of a musical sound generation process using the FM sound source method according to the first embodiment will be described with reference to FIGS.

【0033】シーケンスソフトAPS1が起動される
と、ソフトウェア音源モジュールSSMにMIDIメッ
セージが供給され始める。この供給は、前述したよう
に、第1のインターフェースIF1およびOSを介し
て、ソフトウェア音源モジュールSSMの入力インター
フェース(以下、「ソフト音源インターフェース」とい
う)に対してなされ、これに応じて、ソフトウェア音源
モジュールSSMは、その供給されたMIDIメッセー
ジのMIDIチャンネル(演奏パート)に割り当てられ
たボイスデータ(本実施の形態では、音色番号)に基づ
いて、楽音パラメータVOICEj(その詳細は後述す
る)を生成し、該楽音パラメータVOICEjを発音チ
ャンネル(発音割り当てされたチャンネル)に対応する
音色レジスタに格納する。
When the sequence software APS1 is started, a MIDI message starts to be supplied to the software sound source module SSM. This supply is made to the input interface of the software tone generator module SSM (hereinafter, referred to as “soft tone generator interface”) via the first interface IF1 and the OS as described above. The SSM generates a tone parameter VOICEj (the details of which will be described later) based on the voice data (tone color number in the present embodiment) assigned to the MIDI channel (performance part) of the supplied MIDI message, The musical tone parameter VOICEj is stored in a tone color register corresponding to a tone generation channel (channel to which tone generation is assigned).

【0034】図6は、発音チャンネルに対応して設けら
れた音色レジスタ群を示す図であり、発音チャンネル
が、たとえば32チャンネル確保されているときには、
この音色レジスタ群は32個の音色レジスタTONEP
ARk(k=1,…,32)により構成される。なお、
発音チャンネル数は、これに限る必要はなく、CPU3
の演算処理能力に応じて任意に設定することができる。
FIG. 6 is a diagram showing a tone color register group provided corresponding to a sounding channel. When 32 sounding channels are secured, for example,
This tone register group consists of 32 tone registers TONEP
ARk (k = 1,..., 32). In addition,
The number of sound channels need not be limited to this.
Can be set arbitrarily in accordance with the arithmetic processing capability of.

【0035】同図において、たとえば発音チャンネルが
チャンネルnである場合には、前記楽音パラメータVO
ICEjは、音色レジスタTONEPARn中、該楽音
パラメータVOICEjを格納する領域に格納される。
換言すれば、これらの音色レジスタTONEPARkに
より構成される音色レジスタ群がソフトウェア音源モジ
ュールSSMの前記ソフト音源インターフェースの一部
をなしている。
In the figure, if the tone generation channel is channel n, for example, the tone parameter VO
ICEj is stored in the tone color register TONEPARn in an area for storing the tone parameter VOICEj.
In other words, the tone color register group constituted by these tone color registers TONEPARk forms a part of the software tone generator interface of the software tone generator module SSM.

【0036】なお、後述するように、各音色レジスタT
ONEPARkには、楽音パラメータVOICEkだけ
ではなく、たとえば、ソフトウェア音源モジュールSS
Mが当該楽音パラメータVOICEkに対応するMID
Iメッセージを受信した時刻を示すデータTMも格納さ
れ、フレーム内での楽音のキーオン、キーオフあるいは
各種制御の開始、終了の時間位置を決めるための情報と
なる。
As described later, each tone color register T
ONEPARk includes not only the tone parameter VOICEk but also, for example, the software tone generator module SS
M is the MID corresponding to the musical tone parameter VOICEk
Data TM indicating the time at which the I message was received is also stored, and serves as information for determining the key-on / key-off of a musical tone in a frame or the start and end time positions of various controls.

【0037】図3に戻り、ソフトウェア音源モジュール
SSMは、CPU3の制御の下で、基本的には、所定の
時間長の区間(以下、「フレーム」という)毎に設定さ
れる起動機会に応じて起動され、その直前のフレーム内
に供給されたMIDIメッセージに基づく楽音生成処理
を、上記音色レジスタTONEPARnに格納された楽
音パラメータVOICEnに従って実行する。たとえ
ば、図3において、時刻t1からt2までのフレーム内
に供給されたMIDIメッセージに基づく楽音生成処理
は、時刻t2からt3までのフレームで実行する。
Returning to FIG. 3, under the control of the CPU 3, the software sound source module SSM basically responds to an activation opportunity set for each section of a predetermined time length (hereinafter, referred to as “frame”). The tone generation processing based on the MIDI message that is activated and supplied in the immediately preceding frame is executed in accordance with the tone parameter VOICEn stored in the tone color register TONEPARn. For example, in FIG. 3, the tone generation process based on the MIDI message supplied in the frame from time t1 to t2 is executed in the frame from time t2 to t3.

【0038】このようにして、楽音生成処理(その処理
方法については、後述する)により1フレーム分の楽音
波形データが生成されると、この楽音波形データはRA
M5の前記出力バッファに書き込まれ、該書き込まれた
データの再生が前記出力デバイスOUDに予約される。
この出力デバイスOUDに予約することが、生成した楽
音波形データをソフトウェア音源モジュールSSMから
OSレベルの前記第2のインターフェース(“WAVE out
API”)に出力することに相当する。
As described above, when the musical sound waveform data for one frame is generated by the musical sound generation processing (the processing method will be described later), the musical sound waveform data
M5 is written to the output buffer, and reproduction of the written data is reserved in the output device OUD.
Reserving this output device OUD means that the generated tone waveform data is transmitted from the software sound source module SSM to the second interface (“WAVE out”) at the OS level.
API ”).

【0039】出力デバイスOUDは、各フレーム毎に、
その直前のフレームで再生予約された出力バッファから
楽音波形データを1サンプルずつ読み出して前記DAC
12に出力する。たとえば、図3に示すように、時刻t
2からt3までのフレームで生成され、出力バッファに
書き込まれて再生予約された楽音波形データは、時刻t
3からt4までのフレームで読み出されて再生される。
The output device OUD is, for each frame,
The tone waveform data is read out one sample at a time from the output buffer reserved for reproduction in the immediately preceding frame, and read from the DAC.
12 is output. For example, as shown in FIG.
The tone waveform data generated in the frames from 2 to t3, written in the output buffer, and reserved for reproduction is stored at time t
It is read out and reproduced in the frames from 3 to t4.

【0040】次に、図4を用いて、楽音パラメータVO
ICEnに従った楽音生成処理、すなわちFM音源方式
を用いた楽音生成処理の概要を説明する。なお、この楽
音生成処理の詳細は、図14〜19を用いて後述する。
Next, referring to FIG.
An outline of a tone generation process according to ICEn, that is, a tone generation process using the FM sound source system will be described. The details of the tone generation process will be described later with reference to FIGS.

【0041】図4は、FM音源方式による楽音生成処理
の概要を説明するための図であり、同図(a)〜(c)
には、3種類の異なった楽音生成処理方法が図示されて
いる。
FIGS. 4A to 4C are diagrams for explaining the outline of the tone generation processing by the FM sound source system.
3 shows three different tone generation processing methods.

【0042】図4に示すように、FM音源方式による楽
音生成は、「キャリア」と呼ばれるオペレータと「モジ
ュレータ」と呼ばれるオペレータの2種類のオペレータ
を組み合わせることによって行われ、生成すべき楽音波
形の種類や品質等に応じて組み合わせられるオペレータ
の個数や接続順序(接続態様)が異なる。この各オペレ
ータのつなぎ方を「アルゴリズム」と呼んでいる。
As shown in FIG. 4, the tone generation by the FM tone generator system is performed by combining two types of operators, an operator called a "carrier" and an operator called a "modulator". The number of operators to be combined and the order of connection (connection mode) differ according to the quality and quality. The way of connecting these operators is called an "algorithm".

【0043】ここで、オペレータとは、音作り、すなわ
ち楽音生成処理の単位となるブロックをいい、具体的に
は、たとえば図5に示す音作りの基本となる各種波形デ
ータ(以下、「基本波形データ」という)から、後述す
るウェーブセレクトパラメータWSELに応じて選択さ
れた1つの基本波形データを、入力データ(たとえばピ
ッチデータおよび変調データ)に基づいて(入力データ
がピッチデータおよび変調データの2種類のデータであ
る場合には、たとえば該各データを加算した加算結果に
基づいて)読み出した後にその振幅を調整して出力する
処理ブロックをいう。そして、「キャリア」とは、生成
すべき楽音波形の基準となる楽音波形を生成するオペレ
ータを云い、「モジュレータ」とは、「キャリア」を変
調するためのオペレータ、すなわち「キャリア」に入力
される前記変調データを生成するオペレータを云う。
Here, the operator refers to a block which is a unit of sound creation, that is, a tone generation process. Specifically, for example, various waveform data (hereinafter, referred to as "basic waveforms") shown in FIG. Data), one basic waveform data selected according to a wave select parameter WSEL, which will be described later, is converted into two types of input data (for example, pitch data and modulation data) based on input data (eg, pitch data and modulation data). In the case of the data, it refers to a processing block that reads out (for example, based on an addition result obtained by adding the respective data), adjusts its amplitude, and outputs it. The “carrier” refers to an operator that generates a tone waveform that is a reference of the tone waveform to be generated, and the “modulator” is an operator for modulating the “carrier”, that is, input to the “carrier”. An operator who generates the modulation data.

【0044】なお、アルゴリズムは、図4に示す3種類
に限られないことは云うまでもない。
It goes without saying that the algorithm is not limited to the three types shown in FIG.

【0045】次に、前記楽音パラメータVOICEjの
データフォーマットについて説明する。
Next, the data format of the tone parameter VOICEj will be described.

【0046】図7は、この楽音パラメータVOICEj
のデータフォーマットを示す図であり、(a)は、楽音
パラメータVOICEjのデータフォーマットを示し、
(b)は、(a)の各オペレータデータOPmDATA
jのデータフォーマットを示し、(c)は、(b)の各
オペレータバッファOPBUFmのデータフォーマット
を示している。
FIG. 7 shows this musical tone parameter VOICEj.
FIG. 7A is a diagram showing a data format of a musical tone parameter VOICEj;
(B) shows each operator data OPmDATA of (a).
j shows the data format of (j), and (c) shows the data format of each operator buffer OPBUFm of (b).

【0047】(a)に示すように、楽音パラメータVO
ICEjは、キーオン/オフをそれぞれ“1”/“0”
で示すキーオンデータKEYONjと、当該MIDIメ
ッセージ(すなわち、対応するノートオンイベント)に
含まれる音高情報に応じて決定される周波数ナンバ(具
体的には、位相レートで表される)FNOjと、前記ア
ルゴリズムを指定するアルゴリズム指定データALGO
Rjと、当該MIDIチャンネルに設定された音量(た
とえば、MIDIメッセージの「コントロールチェンジ
#7イベント」により設定される)に応じて決定される
音量データVOLjと、当該MIDIメッセージ中のタ
ッチベロシティ情報に応じて決定されるタッチベロシテ
ィデータVELjと、各構成オペレータにおいて楽音生
成演算を行うために必要なデータおよびその演算結果を
格納するバッファから成るオペレータデータOPkDA
TAj(k=1,…,m)とにより構成されている。
As shown in (a), the tone parameter VO
ICEj sets key on / off to “1” / “0”, respectively.
Key-on data KEYONj, a frequency number (specifically, represented by a phase rate) FNOj determined according to pitch information included in the MIDI message (that is, a corresponding note-on event), Algorithm specification data ALGO that specifies the algorithm
Rj, volume data VOLj determined according to the volume set for the MIDI channel (for example, set by the “Control Change # 7 Event” of the MIDI message), and touch velocity information in the MIDI message. Velocity data VELj determined by the above, operator data OPkDA composed of a buffer for storing data required for performing tone generation calculation in each component operator and a result of the calculation.
TAj (k = 1,..., M).

【0048】なお、(a)の楽音パラメータVOICE
jには、前記ROM4、RAM5またはハードディスク
等に予め記憶されたデータを読み出したデータとMID
Iメッセージ中のデータに応じて決定されるデータの2
種類のデータが混在している。MIDIメッセージ中の
データに応じて決定されるデータは、上述のように、キ
ーオンデータKEYONj、周波数ナンバFNOj、音
量データVOLjおよびタッチベロシティデータVEL
jであり、ROM4等から読み出されたデータは、アル
ゴリズム指定データALGORjおよびオペレータデー
タOPkDATAjである。
The tone parameter VOICE of FIG.
j is the data obtained by reading data stored in advance in the ROM 4, RAM 5, hard disk, or the like, and MID.
2 of data determined according to the data in the I message
Types of data are mixed. As described above, the data determined according to the data in the MIDI message includes the key-on data KEYONj, the frequency number FNOj, the volume data VOLj, and the touch velocity data VEL.
j, and the data read from the ROM 4 or the like is the algorithm designation data ALGORj and the operator data OPkDATAj.

【0049】各オペレータデータOPkDATAjは、
(b)に示すように、オペレータmにおけるサンプリン
グ周波数を指定するサンプリング周波数指定データFS
AMPmと、音色に対応して設定され、実質的に各オペ
レータ間の周波数比を設定するためのパラメータ、具体
的には前記周波数ナンバFNOjを変倍する倍数を指定
するためのパラメータである周波数倍数データMULT
mと、フィードバックレベル、すなわちフィードバック
変調の変調度を示すフィードバックレベルデータFBL
mと、ROM4等に予め記憶された各種基本波形データ
(前記図5で説明した各種基本波形データ)からオペレ
ータmで使用する基本波形データを選択するためのウェ
ーブセレクトデータWSELmと、オペレータmにおい
て生成される楽音波形の出力レベル(このレベルは、前
記タッチベロシティデータVELjに応じて変化する)
を設定するトータルレベルデータTLmと、オペレータ
mにおいて生成される楽音波形のエンベロープを決定す
る各種データ(たとえば、アタックタイム、ディケイタ
イム、サスティンレベルおよびリリースタイム等の各種
データ)から成るエンベロープパラメータEGPARm
と、その他パラメータ(たとえば、ビブラートやトレモ
ロ等の速さおよび深さ、各種キースケーリング係数等)
MSCmと、オペレータmの優先度(たとえば、各オペ
レータにおける波形生成演算やその停止の優先度)を示
すオペレータ優先度データOPPRIOmと、オペレー
タmにおける楽音波形生成演算による演算結果を格納す
るバッファOPBUFmとにより構成される。
Each operator data OPkDATAj is
As shown in (b), the sampling frequency designation data FS for designating the sampling frequency in the operator m
AMPm and a parameter that is set corresponding to the tone color and is a parameter for setting a frequency ratio between operators substantially, specifically, a frequency multiple that is a parameter for specifying a multiple for changing the frequency number FNOj Data MULT
m and a feedback level, that is, feedback level data FBL indicating the degree of modulation of feedback modulation.
m, wave select data WSELm for selecting basic waveform data to be used by the operator m from various basic waveform data (the various basic waveform data described with reference to FIG. 5) stored in the ROM 4 or the like, and generated by the operator m. Output level of the musical tone waveform to be performed (this level changes according to the touch velocity data VELj)
And an envelope parameter EGPARm including various data (for example, various data such as an attack time, a decay time, a sustain level, and a release time) for determining an envelope of a musical sound waveform generated by the operator m.
And other parameters (eg, speed and depth of vibrato and tremolo, various key scaling factors, etc.)
MSCm, operator priority data OPPRIm indicating the priority of the operator m (for example, the priority of the waveform generation operation and its stop in each operator), and a buffer OPBUFm for storing the operation result of the tone waveform generation operation in the operator m. Be composed.

【0050】ここで、サンプリング周波数指定データF
SAMPmには、“0”以上の整数値fが格納され、標
準モードにおけるサンプリング周波数FSMAX(たと
えば44.1kHz)を2-f倍に変更することができ
る。たとえば、f=0のときには、標準モードのサンプ
リング周波数FSMAXでオペレータmにおける楽音波
形が生成され、f=1のときには、FSMAX/2のサ
ンプリング周波数でオペレータmにおける楽音波形が生
成される。
Here, the sampling frequency designation data F
SAMPm stores an integer value f equal to or greater than "0", and can change the sampling frequency FSMAX (for example, 44.1 kHz) in the standard mode to 2- f times. For example, when f = 0, a tone waveform at the operator m is generated at the sampling frequency FSMAX in the standard mode, and when f = 1, a tone waveform at the operator m is generated at a sampling frequency of FSMAX / 2.

【0051】また、オペレータ優先度データOPPRI
Omには、楽音パラメータVOICEjを構成する全オ
ペレータk(k=1,…,m)におけるオペレータmの
波形演算処理の優先度を示すデータ(たとえば波形演算
処理を行う順序を示す番号)が格納され、この優先度に
応じて各オペレータの演算順序が決定され、波形演算処
理がなされる。しかし、これに限らず、たとえばCPU
3の能力や負荷状態を確認できるようにし、この結果、
CPU3が音源処理をする余裕がない場合には、優先度
の低いオペレータの演算処理を省略するようにしてもよ
い。さらに、本実施の形態では、演算処理の優先度は、
音色に応じて設定するようにしたが、これに限らず、た
とえばMIDIチャンネルに応じて設定するようにして
もよい。要するに、優先度としては、何らかの基準に従
って設定したものを選択して設定し、該優先度を発音時
に使用するようにすればよい。たとえば、優先度が音色
に応じて設定されていない場合には、前記音色レジスタ
TONEPARnに展開された音色パラメータの各オペ
レータ優先度データOPPRIOmを、その優先度に応
じて決定しするようにすればよい。また、オペレータ優
先度データOPPRIOmは、オペレータmを使用する
/しないの設定として扱うことにしてもよい。
The operator priority data OPPRI
In Om, data (for example, a number indicating the order in which the waveform arithmetic processing is performed) indicating the priority of the waveform arithmetic processing of the operator m in all the operators k (k = 1,..., M) constituting the musical tone parameter VOICEj is stored. The calculation order of each operator is determined according to the priority, and the waveform calculation process is performed. However, the present invention is not limited to this.
3 so that the ability and load condition can be confirmed.
If the CPU 3 cannot afford to perform the sound source processing, the arithmetic processing of the operator with a low priority may be omitted. Further, in the present embodiment, the priority of the arithmetic processing is
Although the setting is made according to the tone color, the setting is not limited to this, and the setting may be made according to, for example, a MIDI channel. In short, the priority may be selected and set according to some criteria, and the priority may be used at the time of sound generation. For example, when the priority is not set according to the tone, the operator priority data OPPRIm of the tone parameters developed in the tone register TONEPARn may be determined according to the priority. . Further, the operator priority data OPPRIm may be handled as a setting of using / not using the operator m.

【0052】なお、本実施の形態では、サンプリング周
波数は、上記サンプリング周波数指定データFSAMP
mにより、各オペレータm毎に設定することができるよ
うに構成したが、これに限らず、「キャリア」および
「モジュレータ」という2種類の範疇毎にそれぞれ設定
するようにしてもよい。たとえば、「キャリア」は、前
記周波数FSMAXとし、「モジュレータ」は、その1
/2倍(=FSMAX/2)の周波数とした場合には、
当該音色パラメータのアルゴリズムの内容をチェック
し、組み合わせられるオペレータに対して、それぞれの
サンプリング周波数を設定すればよい。また、CPU3
の負荷状態をチェックし、その負荷状態に応じて、適宜
サンプリング周波数を増大または低下させるようにして
もよい。
In this embodiment, the sampling frequency is the sampling frequency designation data FSAMP.
m, the setting can be made for each operator m. However, the present invention is not limited to this, and it may be set for each of two categories of “carrier” and “modulator”. For example, “carrier” is the frequency FSMAX and “modulator” is 1
/ 2 times (= FSMAX / 2) frequency,
The contents of the algorithm of the tone color parameter may be checked, and the sampling frequency may be set for the operator to be combined. CPU3
May be checked, and the sampling frequency may be increased or decreased as appropriate according to the load condition.

【0053】前記バッファOPBUFmは、(c)に示
すように、オペレータmにより波形演算を行うこと、す
なわちオペレータmがオンであることを“1”で示すオ
ペレータオンパラメータOPONmと、オペレータmが
実行する波形演算処理(図14および15を用いて後述
する)の位相演算処理により算出された位相値を格納す
る位相値バッファPHBUFmと、該波形演算処理のフ
ィードバックサンプル演算処理により算出されるフィー
ドバック出力値を格納するフィードバック出力値バッフ
ァFBmと、前記変調データ(このデータは上記位相演
算処理において使用する)を格納する変調データ入力バ
ッファMODINmと、オペレータmにより生成された
楽音波形、すなわち出力値を格納するオペレータ出力値
バッファOPOUTmと、上記波形演算処理の振幅制御
用EGを算出する演算処理(以下、「AEG演算処理」
という)により算出された各EGパラメータを格納する
EG状態バッファEGSTATEmとにより構成されて
いる。
As shown in (c), the buffer OPBUFm executes a waveform operation by the operator m, that is, the operator ON parameter OPONm indicating "1" indicating that the operator m is ON, and the operator m executes the operation. A phase value buffer PHBUFm for storing a phase value calculated by a phase calculation process of a waveform calculation process (described later with reference to FIGS. 14 and 15), and a feedback output value calculated by a feedback sample calculation process of the waveform calculation process. A feedback output value buffer FBm for storing, a modulation data input buffer MODINm for storing the modulation data (this data is used in the phase calculation process), and an operator for storing a tone waveform generated by the operator m, that is, an output value Output value buffer OPOU Processing for calculating and m, the amplitude control EG of the waveform calculation process (hereinafter, "AEG processing"
EG state buffer EGSTATEm for storing each EG parameter calculated by the above-mentioned method.

【0054】図8は、各MIDIチャンネル毎、すなわ
ち各パート毎に選択設定されたボイス(音色)データ
(本実施の形態では、楽音パラメータVOICEnの音
色番号)を記憶するMIDI-CHボイステーブルを示
す図である。
FIG. 8 shows a MIDI-CH voice table for storing voice (tone color) data (tone color number of the tone parameter VOICEn in this embodiment) selected and set for each MIDI channel, that is, for each part. FIG.

【0055】同図に示すように、本実施の形態では、M
IDIチャンネルは16個のチャンネルで構成され、各
チャンネル、すなわち各パートにはそれぞれ異なった音
色を設定することができるので、本実施の形態の音源シ
ステムは、最大16種類の音色の楽音を生成することが
できる。そして、このMIDI-CHボイステーブルに
は、各チャンネル毎に選択された音色に対応する音色番
号、すなわち前記楽音パラメータVOICEnに付与さ
れた番号が格納される。
As shown in the figure, in this embodiment, M
The IDI channel is composed of 16 channels, and different timbres can be set for each channel, that is, for each part. Therefore, the tone generator system of the present embodiment generates musical tones of up to 16 types of timbres. be able to. The MIDI-CH voice table stores a tone number corresponding to a tone selected for each channel, that is, a number assigned to the tone parameter VOICEn.

【0056】なお、MIDI-CHボイステーブルは、
前記RAM5の所定領域に確保され、そのテーブルデー
タ、すなわち音色番号は、前記各MIDIファイルに対
応して予めハードディスク等に格納され、ユーザが選択
したMIDIファイルが、RAM5の所定位置に確保さ
れた演奏データ格納領域にロードされると同時に、該M
IDIファイルに対応するテーブルデータもMIDI-
CHボイステーブルにロードされる。もちろんこれに限
らず、ユーザが最初から任意に設定できるようにしても
よいし、曲に標準の音色(番号)が予め設定され、この
テーブルデータがMIDI-CHボイステーブルにロー
ドされた後に、ユーザが任意に変更することができるよ
うにしてもよい。
Note that the MIDI-CH voice table is
The table data, that is, the tone numbers are stored in a predetermined area of the RAM 5 in advance in a hard disk or the like corresponding to the MIDI files, and the MIDI file selected by the user is stored in a predetermined position in the RAM 5. At the same time as loading into the data storage area,
The table data corresponding to the IDI file is also MIDI-
Loaded to CH voice table. Of course, the present invention is not limited to this, and the user may be able to set arbitrarily from the beginning, or after a standard timbre (number) is set in advance for a song and this table data is loaded into the MIDI-CH voice table, May be arbitrarily changed.

【0057】前述のように、MIDIメッセージが1つ
ずつシーケンシャルに生成され、ソフトウェア音源モジ
ュールSSMにより、このMIDIメッセージが認識さ
れると、ソフトウェア音源モジュールSSMは、該MI
DIメッセージのMIDIチャンネルに割り当てられた
音色番号を前記MIDI-CHボイステーブルから検索
する。たとえば、該MIDIメッセージのMIDIチャ
ンネルが「2CH」のときには、MIDI-CHボイス
テーブルの2番目の位置VOICENO2に格納された
音色番号が検索される。
As described above, MIDI messages are sequentially generated one by one, and when the MIDI message is recognized by the software sound source module SSM, the software sound source module SSM
The tone number assigned to the MIDI channel of the DI message is searched from the MIDI-CH voice table. For example, when the MIDI channel of the MIDI message is “2CH”, the tone number stored in the second position VOICENO2 of the MIDI-CH voice table is searched.

【0058】音色番号jが検索されると、ソフトウェア
音源モジュールSSMは、前述したように、楽音パラメ
ータVOICEjを生成する。すなわち、基本データを
ROM4等から読み出すとともに、その他のパラメータ
を当該MIDIメッセージから決定して、前記図7に示
す楽音パラメータVOICEjを作成する。そして、ソ
フトウェア音源モジュールSSMは、このようにして作
成された楽音パラメータVOICEjを、図6に示す音
色レジスタ群中、発音割り当てされた発音チャンネルに
対応する音色レジスタ(たとえば音色レジスタTONE
PARn)に展開する。
When the timbre number j is retrieved, the software tone generator SSM generates the tone parameter VOICEj as described above. That is, the basic data is read out from the ROM 4 and the other parameters are determined from the MIDI message, and the musical tone parameters VOICEj shown in FIG. 7 are created. Then, the software tone generator module SSM stores the tone parameter VOICEj created in this way in the tone register corresponding to the tone generation channel (for example, tone register TONE) in the tone register group shown in FIG.
PARn).

【0059】以上のように構成された音源システムが実
行する制御処理を、以下、図9〜20を参照して説明す
る。
The control processing executed by the sound source system configured as described above will be described below with reference to FIGS.

【0060】図9は、本実施の形態の音源システム、特
にCPU3が実行する初期プログラム、すなわちユーザ
が音源システムの電源を投入したときやリセットスイッ
チを押下したときに実行されるプログラムの手順を示す
フローチャートである。
FIG. 9 shows the procedure of the tone generator system of the present embodiment, particularly the initial program executed by the CPU 3, that is, the program executed when the user turns on the power of the tone generator system or presses the reset switch. It is a flowchart.

【0061】同図において、まず、各種ポートのリセッ
トやRAM5およびディスプレイ9内の図示しないVR
AM(ビデオRAM)のクリア等のシステムの初期化を
行う(ステップS1)。
In the figure, first, resetting of various ports and VR5 (not shown) in the RAM 5 and the display 9 are performed.
System initialization such as clearing of an AM (video RAM) is performed (step S1).

【0062】次に、前記OSのプログラムを、たとえば
前記ハードディスク装置10のハードディスクから読み
出してRAM5の所定領域にロードし、該OSプログラ
ムを起動した(ステップS2)後に、次のメインプログ
ラムへ移行する。
Next, the program of the OS is read out from, for example, the hard disk of the hard disk device 10, loaded into a predetermined area of the RAM 5, and the OS program is started (step S2).

【0063】図10は、上記初期プログラムに続いてC
PU3が実行するメインプログラムの手順を示すフロー
チャートであり、本メインプログラムは、ソフトウェア
音源モジュールSSMのプログラムのメインルーチンで
ある。
FIG. 10 shows that after the initial program, C
It is a flowchart which shows the procedure of the main program which PU3 executes, and this main program is a main routine of the program of the software sound source module SSM.

【0064】同図において、まず、RAM5中、ソフト
ウェア音源モジュールSSMで使用される領域(図6の
音色レジスタ群を含む)のクリアや、ハードディスク装
置10のハードディスクに記憶されている各種基本波形
データ(たとえば図5の各種基本波形データ)をRAM
5の所定領域にロードする等の初期設定を行う(ステッ
プS11)。
In the figure, first, in the RAM 5, the area used by the software tone generator module SSM (including the tone register group in FIG. 6) is cleared, and various basic waveform data ( For example, various basic waveform data shown in FIG.
Initial settings such as loading into a predetermined area of No. 5 are performed (step S11).

【0065】次に、ディスプレイ9に、処理の進行に応
じた情報を表示したり、主としてマウス7により選択さ
れる各種アイコン等を表示したりする基本ディスプレイ
表示を実行する(ステップS12)。
Next, a basic display is executed on the display 9 to display information according to the progress of the process and to display various icons selected mainly by the mouse 7 (step S12).

【0066】そして、下記の各起動要因の発生をチェッ
クする(ステップS13)。
Then, the occurrence of the following activation factors is checked (step S13).

【0067】起動要因1:前記シーケンスソフトAPS
1が起動され、MIDIメッセージがソフトウェア音源
モジュールSSMに供給されたこと。
Trigger 1: The sequence software APS
1 is activated and the MIDI message is supplied to the software sound source module SSM.

【0068】起動要因2:ソフトタイマにより、波形演
算処理(ソフトウェア音源モジュールSSMによりなさ
れる)の実行を起動する内部割込信号(起動信号)が発
生したこと。
Activation factor 2: The generation of an internal interrupt signal (activation signal) for activating the execution of the waveform calculation processing (performed by the software tone generator module SSM) by the soft timer.

【0069】起動要因3:前記codecハードウェア
から、前記出力バッファに格納された楽音波形データを
codecハードウェア内の図示しないバッファに転送
する要求があったこと。
Activation factor 3: A request from the codec hardware to transfer the tone waveform data stored in the output buffer to a buffer (not shown) in the codec hardware.

【0070】起動要因4:ユーザがマウス7やキーボー
ド8等の入力操作子を操作し、その操作イベントが検出
されたこと、または他の起動要因が発生していないこ
と。
Activation factor 4: The user operates an input operator such as the mouse 7 or the keyboard 8, and the operation event is detected, or no other activation factor has occurred.

【0071】起動要因5:ユーザがメインルーチンを終
了する操作処理を行い、この操作イベントが検出された
こと。
Activation factor 5: The user has performed an operation process for terminating the main routine, and this operation event has been detected.

【0072】続くステップS14では、上記起動要因1
〜5のうちいずれかが発生したか否かを判別する。
In the following step S14, the above-mentioned activation factor 1
It is determined whether or not any one of .about.5 has occurred.

【0073】ステップS14の判別の結果、「起動要因
1」が発生したときにはステップS16に進み、図11
および12を用いて後述するMIDI処理サブルーチン
を実行し、「起動要因2」が発生したときにはステップ
S17に進み、図14および15を用いて後述する波形
演算処理サブルーチンを実行し、「起動要因3」が発生
したときにはステップS18に進み、前記出力バッファ
に格納された楽音波形データを前記codecハードウ
ェアのバッファに転送し、「起動要因4」が発生したと
きにはステップS19に進み、音色設定イベントが発生
した場合には図19を用いて後述する音色設定処理サブ
ルーチンを実行するとともに、その他イベントが発生し
た場合には当該イベントに対応するその他処理を実行
し、「起動要因5」が発生したときにはステップS21
に進み、たとえばディスプレイ9の表示を本メインプロ
グラムが起動される前の状態に戻す等の終了処理を実行
する。
As a result of the determination in step S14, when "activation factor 1" has occurred, the process proceeds to step S16, and FIG.
A MIDI processing subroutine described later is executed by using steps 12 and 12. When "activation factor 2" occurs, the process proceeds to step S17, and a waveform calculation processing subroutine described later with reference to FIGS. Proceeds to step S18, the tone waveform data stored in the output buffer is transferred to the buffer of the codec hardware, and when "activation factor 4" occurs, the process proceeds to step S19, where a tone setting event occurs. In this case, a tone color setting processing subroutine described later with reference to FIG. 19 is executed, and if another event occurs, other processing corresponding to the event is executed.
Then, end processing such as returning the display on the display 9 to the state before the main program is started is executed.

【0074】そして、上記ステップS16〜S21のい
ずれかを終了した後は、前記ステップS12に戻り前述
の処理を繰り返す。
After completing any one of the steps S16 to S21, the process returns to the step S12 to repeat the above-mentioned processing.

【0075】図11および12は、前記ステップS16
のMIDI処理サブルーチンの詳細な手順を示すフロー
チャートである。
FIGS. 11 and 12 show the operation in step S16.
5 is a flowchart showing a detailed procedure of a MIDI processing subroutine of FIG.

【0076】同図において、まず、ソフトウェア音源モ
ジュールSSMの前記ソフト音源インターフェースAP
Iを介してMIDIイベント(MIDIメッセージ)が
入力されたか否かをチェックする(ステップS31)。
In the figure, first, the software sound source interface AP of the software sound source module SSM is described.
It is checked whether or not a MIDI event (MIDI message) has been input via I (step S31).

【0077】シーケンスソフトAPS1からMIDIメ
ッセージが出力されると、該MIDIメッセージは、前
記第1のインターフェースIF1およびOSにより所定
の変換がなされた後に、ソフト音源APIを介してRA
M5の所定位置に確保されたMIDIイベントバッファ
に転送される。この転送に応じて、ソフトウェア音源モ
ジュールSSMは、「起動要因1」が発生したと判断し
て、CPU3の制御をステップS15からS16に移行
させる。ここまでの処理は、前記ステップS20のその
他処理で行われるので、ステップS31では、このMI
DIイベントバッファに格納されているイベントをチェ
ックすることにより、イベントの発生をチェックしてい
る。
When a MIDI message is output from the sequence software APS1, the MIDI message is converted by the first interface IF1 and the OS into an RA after being converted by the OS via the software tone generator API.
The data is transferred to the MIDI event buffer secured at a predetermined position of M5. In response to this transfer, the software sound source module SSM determines that “activation factor 1” has occurred, and shifts the control of the CPU 3 from step S15 to S16. The processing up to this point is performed in the other processing in step S20.
The occurrence of the event is checked by checking the event stored in the DI event buffer.

【0078】次に、ステップS32では、MIDIイベ
ントがノートオンイベントであるか否かを判別し、ノー
トオンイベントのときにはステップS33に進む一方、
ノートオンイベントでないときには図12のステップS
40に進む。
Next, in step S32, it is determined whether or not the MIDI event is a note-on event. If the MIDI event is a note-on event, the process proceeds to step S33.
If it is not a note-on event, step S in FIG.
Proceed to 40.

【0079】ステップS33では、当該ノートオンイベ
ントデータを解析し、ノートナンバ、ベロシティ値およ
びパートナンバ(すなわちMIDIチャンネルの番号)
の各データを、それぞれRAM5の所定位置に確保され
たレジスタNN,VEL,pに格納するとともに、当該
ノートオンイベントが発生した時刻を示すデータをRA
M5の所定位置に確保されたレジスタTMに格納する。
以下、レジスタNN,VEL,p,TMの内容を、それ
ぞれノートナンバNN、ベロシティVEL、パートpお
よび時刻TMという。
In step S33, the note-on event data is analyzed, and the note number, velocity value, and part number (ie, MIDI channel number) are analyzed.
Are stored in registers NN, VEL, and p secured at predetermined positions in the RAM 5, respectively, and data indicating the time at which the note-on event has occurred is stored in RA
The data is stored in the register TM secured at a predetermined position of M5.
Hereinafter, the contents of the registers NN, VEL, p, and TM are referred to as a note number NN, a velocity VEL, a part p, and a time TM, respectively.

【0080】続くステップS34では、ベロシティVE
Lが所定値VEL1以下であり、かつ(&)音量データ
VOLpが所定値VOL1以下であるか否かを判別す
る。ここで、VOLpは、RAM5の所定位置に確保さ
れた領域VOLpに格納されたパートpの音量データを
示し、この値は、前記図7で説明したように、MIDI
イベントのコントロールチェンジ#7イベントにより変
更される。この変更処理は、コントロールチェンジ#7
イベントが発生したときに、前記ステップS20のその
他処理で行われる。
In the following step S34, velocity VE
It is determined whether or not L is equal to or less than a predetermined value VEL1 and whether (&) volume data VOLp is equal to or less than a predetermined value VOL1. Here, VOLp indicates the volume data of the part p stored in the area VOLp secured at a predetermined position in the RAM 5, and this value is, as described with reference to FIG.
It is changed by the event control change # 7 event. This change processing is performed using control change # 7.
When an event occurs, it is performed in the other processing of step S20.

【0081】ステップS34で、VEL≦VEL1&V
OL≦VOL1のときには、パートpの音色に近い音色
で、オペレータ数、すなわち前記キャリアおよびモジュ
レータの総数の小さいアルゴリズムの音色に置き換え
る、すなわち前記MIDI-CHボイステーブルのパー
トpの位置VOICENOpに格納された音色番号をそ
の代替アルゴリズムを有する楽音パラメータVOICE
の音色番号に置き換える(ステップS35)一方、VE
L>VEL1またはVOL>VOL1のときには、ステ
ップS35をスキップしてステップS36に進む。
In step S34, VEL ≦ VEL1 & V
When OL ≦ VOL1, the tone color close to the tone color of the part p is replaced by the tone number of the operator, that is, the tone color of the algorithm having a small total number of the carrier and the modulator. A tone parameter VOICE having a tone number and its alternative algorithm
(Step S35), while VE
If L> VEL1 or VOL> VOL1, step S35 is skipped and the process proceeds to step S36.

【0082】なお、本実施の形態では、ステップS35
の処理を行うか否かを、ベロシティVELおよびボリュ
ームVOLの各値に応じて判別したが、これに限らず、
たとえば、CPU3の負荷状態を検出し、この検出結果
に応じて判別するようにしてもよい。
In the present embodiment, step S35
Is determined according to the values of the velocity VEL and the volume VOL, but is not limited to this.
For example, the load state of the CPU 3 may be detected, and the determination may be made according to the detection result.

【0083】ステップS36では、当該ノートオンイベ
ントに基づく発音割り当て処理を行い、該割り当てられ
た発音チャンネルのチャンネル番号を、RAM5の所定
位置に確保されたレジスタnに格納する。以下、レジス
タnに格納された内容を発音チャンネルnという。
In step S36, a tone assignment process based on the note-on event is performed, and the channel number of the assigned tone channel is stored in a register n secured at a predetermined position in the RAM 5. Hereinafter, the content stored in the register n is referred to as a sounding channel n.

【0084】続くステップS37では、前記図8のMI
DI-CHボイステーブルを検索し、パートpの位置V
OICENOpの音色データ(音色番号)を、前記ノー
トナンバNNおよびベロシティVELに応じて発音音色
パラメータ(楽音パラメータ)に変換する。たとえば、
位置VOICENOpに音色番号jが格納されている場
合には、前記図7で説明した楽音パラメータVOICE
jが生成される。そして、楽音パラメータVOICEj
の各オペレータデータOPmDATAj内のバッファO
PBUFmを初期化、すなわちクリアする。
In the following step S37, the MI of FIG.
Search the DI-CH voice table and find the position V of part p
The tone color data (tone number) of OICENOp is converted into a tone tone parameter (tone parameter) according to the note number NN and the velocity VEL. For example,
If the tone number j is stored at the position VOICENOp, the tone parameter VOICE described with reference to FIG.
j is generated. Then, the tone parameter VOICEj
Buffer O in each operator data OPmDATAj
Initialize, ie clear, PBUFm.

【0085】次に、ステップS38では、ステップS3
7で生成した楽音パラメータVOICEjを時刻TMと
ともに発音チャンネルnに対応する前記音色レジスタT
ONEPARnに転送(展開)し、かつ該音色レジスタ
TONEPARn中のキーオンデータKEYONnおよ
び各オペレータオンパラメータOPONmをそれぞれ
“1「オン」”を設定にする。
Next, in step S38, step S3
7, the tone parameter VOICEj together with the time TM and the tone color register T corresponding to the tone generation channel n.
The key-on data KEYONn and each operator-on parameter OPONm in the tone color register TONEPARn are set to “1” “ON”, respectively.

【0086】さらに、ステップS39では、ノートオン
イベントの発生時刻が遅い順序に楽音生成演算が行われ
るように、発音割り当てされた各発音チャンネル間で演
算順序を決定する。具体的には、この決定された演算順
序に従ってチャンネル番号を並べ替え、RAM5の所定
位置に確保された図13に示すCHシーケンスレジスタ
CHSEQに記憶する。その後、本MIDI処理を終了
する。
Further, in step S39, the calculation order is determined between the tone generation channels to which the tone generation is performed so that the tone generation calculation is performed in the order in which the note-on event occurrence time is later. Specifically, the channel numbers are rearranged in accordance with the determined operation order and stored in the CH sequence register CHSEQ shown in FIG. Thereafter, the present MIDI processing ends.

【0087】図12のステップS40では、MIDIイ
ベントがノートオフイベントであるか否かを判別し、ノ
ートオフイベントのときにはステップS41に進む一
方、ノートオフイベントでないときにはステップS44
に進む。
In step S40 of FIG. 12, it is determined whether or not the MIDI event is a note-off event. If the MIDI event is a note-off event, the process proceeds to step S41.
Proceed to.

【0088】ステップS41では、当該ノートオフイベ
ントデータを解析し、そのノートナンバを前記レジスタ
NNに格納するとともに、当該ノートオフイベントが発
生した時刻を示すデータを前記レジスタTMに格納す
る。
In step S41, the note-off event data is analyzed, the note number is stored in the register NN, and data indicating the time at which the note-off event occurred is stored in the register TM.

【0089】続くステップS42では、ノートナンバN
Nが発音割り当てされている発音チャンネルをサーチ
し、そのチャンネル番号を、RAM5の所定位置に確保
されたレジスタi(以下、この値を「発音チャンネル
i」という)に格納する。
In the following step S42, note number N
N is searched for a sounding channel to which sounding is assigned, and the channel number is stored in a register i (hereinafter referred to as a sounding channel i) secured at a predetermined position in the RAM 5.

【0090】そして、ステップS43では、発音チャン
ネルiに対応する音色レジスタTONEPARiにキー
オフを指定する、すなわち時刻TMに応じたタイミング
でのノートオフの予約を行った後に、本MIDI処理を
終了する。
Then, in step S43, the key-off is designated in the tone color register TONEPARi corresponding to the tone generation channel i, that is, the note-off is reserved at a timing corresponding to the time TM, and then the present MIDI processing is ended.

【0091】ステップS44では、MIDIイベントが
プログラムチェンジイベント(音色を変更するためのイ
ベント)であるか否かを判別し、プログラムチェンジイ
ベントのときには、前記MIDI-CHボイステーブル
中、当該受信したプログラムチェンジイベントが指定す
るパートp(このパートpは、前記ステップS33で格
納されたパート番号であるとは限らない)に対応する位
置VOICENOpのデータを、当該受信したプログラ
ムチェンジイベントが指定する変更値PCHNGに変更
した後に本MIDI処理を終了する一方、MIDIイベ
ントがプログラムチェンジイベントでないときには、当
該MIDIイベントに対応するその他イベント対応処理
を実行した後に本MIDI処理を終了する。
In step S44, it is determined whether or not the MIDI event is a program change event (an event for changing a tone). If the MIDI event is a program change event, the received program change is stored in the MIDI-CH voice table. The data of the position VOICENOp corresponding to the part p specified by the event (this part p is not necessarily the part number stored in step S33) is changed to the change value PCHNG specified by the received program change event. When the MIDI event is not a program change event while the MIDI event is not a program change event after the change, the MIDI process is terminated after executing other event corresponding processes corresponding to the MIDI event.

【0092】なお、本MIDI処理では、MIDI-C
Hボイステーブルに複数パートに対応する音色が指定さ
れ、当該指定されたパートのノートオンイベントが発生
したときには、当該パートの音色の楽音を生成して発音
する、いわゆるマルチ音色動作仕様を採用しているが、
これに限らず、ある特定のパートのノートオンイベント
のみを受け付け、その対応の音色の楽音を生成して発音
する、いわゆるシングル音色モードを選択できるように
してもよい。
In the present MIDI processing, MIDI-C
When a tone corresponding to a plurality of parts is designated in the H voice table and a note-on event of the designated part occurs, a tone of the tone of the part is generated and pronounced. But
The present invention is not limited to this, and it may be possible to select a so-called single tone mode in which only a note-on event of a specific part is received and a tone of the corresponding tone is generated and pronounced.

【0093】図14および15は、前記図10のステッ
プS17の波形演算処理サブルーチンの詳細な手順を示
すフローチャートである。
FIGS. 14 and 15 are flowcharts showing the detailed procedure of the waveform calculation processing subroutine of step S17 in FIG.

【0094】同図において、まず、楽音波形バッファの
初期化を行う(ステップS51)。ここで、楽音波形バ
ッファとは、前記出力バッファ領域から前記再生予約さ
れた領域(バッファ)を除いた領域中の、今回生成する
1フレーム時間分の領域(バッファ)をいう。そして、
その楽音波形バッファの初期化とは、当該領域を出力バ
ッファ上に確保し、その領域をクリアすることをいう。
In the figure, first, the tone waveform buffer is initialized (step S51). Here, the musical tone waveform buffer refers to an area (buffer) for one frame time generated this time in an area excluding the area (buffer) reserved for reproduction from the output buffer area. And
The initialization of the tone waveform buffer means that the area is secured on the output buffer and the area is cleared.

【0095】次に、CPU3の負荷状態をチェックし
(ステップS52)、波形演算処理を実行可能な最大チ
ャンネル数CHmaxを決定する(ステップS53)。
ここで、CPU3の負荷状態のチェックは、OSがCP
U3の負荷状態を常にチェックしている場合にはこの情
報を利用して行えばよいし、一方、OSがCPU3の負
荷状態をチェックしていない場合には、前記図10のメ
インプログラムを1回回る時間を計測するルーチンを設
け、その計測値に応じて算出された値を利用して行えば
よい。
Next, the load state of the CPU 3 is checked (step S52), and the maximum number of channels CHmax capable of executing the waveform calculation processing is determined (step S53).
Here, the load state of the CPU 3 is checked when the OS
If the load state of U3 is constantly checked, this information may be used. On the other hand, if the OS does not check the load state of CPU3, the main program of FIG. What is necessary is just to provide a routine for measuring the turning time, and use the value calculated according to the measured value.

【0096】なお、ステップS53の処理に代えて、た
とえば、前記図11のステップS35と同様の処理、す
なわちパートに割り当てられた音色を、構成オペレータ
数がより小さな(CPU3の能力によっては大きい場合
もある)代替音色に変更する処理を行うようにしてもよ
い。
Instead of the processing in step S53, for example, the same processing as in step S35 in FIG. 11, that is, the tone color assigned to the part is changed to a smaller number of constituent operators (a case where the number is larger depending on the capacity of the CPU 3). (A) A process for changing to an alternative tone may be performed.

【0097】次に、チャンネル番号を示す指標(インデ
ックス)iを初期化(i←1)する(ステップS5
4)。
Next, an index (index) i indicating a channel number is initialized (i ← 1) (step S5).
4).

【0098】そして、ステップS55では、前記図13
のCHシーケンスレジスタCHSEQ中、i番目の位置
SEQCHiに格納されたチャンネル番号SEQCHN
Oiを変数n(本波形演算処理サブルーチン内におい
て、この値を「チャンネルn」という)に格納し(n←
SEQCHNOi)、ステップS56では、チャンネル
nに対応する音色レジスタTONEPARnのアルゴリ
ズム指定データALGORnを参照し、チャンネルnに
ついてのFM演算処理(その詳細は図16を用いて後述
する)で使用するオペレータ(OP)数と各オペレータ
の接続態様を決定する。
Then, in step S55, FIG.
Channel number SEQCHN stored in the i-th position SEQCHi in the CH sequence register CHSEQ
Oi is stored in a variable n (this value is called “channel n” in the present waveform calculation processing subroutine) (n ←←
SEQCHNOi), In step S56, the operator (OP) used in the FM calculation processing for the channel n (the details of which will be described later with reference to FIG. 16) by referring to the algorithm specification data ALGORn of the tone register TONEPARn corresponding to the channel n. The number and the connection mode of each operator are determined.

【0099】さらに、ノートイベント等に応じて今回の
フレームでの演算量を決定する(ステップS57)。こ
こで、演算量の決定とは、具体的には、チャンネルnに
ついての波形演算処理を、前記楽音波形バッファ中、ど
こからどこまでの領域を用いて行うかを決定することを
いう。すなわち、楽音波形バッファは、前述したよう
に、今回演算する1フレーム分の領域であり、一方、各
チャンネルの楽音波形データは、1フレーム分の全領域
に亘って生成される訳ではない、すなわち各チャンネル
毎に楽音の発音タイミングや消音タイミングが異なり、
あるチャンネルの楽音は楽音波形バッファの途中で発音
開始したり、消音されたりすることがあるため、各チャ
ンネル毎に演算量を決定する意味がある。
Further, the calculation amount in the current frame is determined according to a note event or the like (step S57). Here, the determination of the calculation amount specifically refers to determining from which area in the musical tone waveform buffer the waveform arithmetic processing for the channel n is to be performed. That is, as described above, the tone waveform buffer is an area for one frame to be calculated this time, while tone waveform data for each channel is not generated over the entire area for one frame. The tone generation timing and silence timing of each channel are different for each channel,
Since the tone of a certain channel may start or be muted in the middle of the tone waveform buffer, it is meaningful to determine the calculation amount for each channel.

【0100】次いで、図15のステップS58では、図
16を用いて後述するチャンネルnについて1サンプル
の楽音波形データを生成するFM演算処理サブルーチン
を実行し、ステップS59では、チャンネルnについて
1フレーム分の楽音生成処理を完了したか否かを判別す
る。なお、ステップS59の判別は、前記ステップS5
7で決定された演算量を考慮して行われることは云うま
でもない。
Next, in step S58 of FIG. 15, an FM operation processing subroutine for generating one sample of tone waveform data for channel n, which will be described later with reference to FIG. 16, is executed. It is determined whether or not the tone generation processing has been completed. The determination in step S59 is based on step S5.
Needless to say, the calculation is performed in consideration of the calculation amount determined in step S7.

【0101】ステップS59で、チャンネルnについて
1フレーム分の楽音生成処理を完了していないときに
は、前記ステップS58に戻り、次の1サンプルの楽音
波形データを生成する。一方、ステップS59で、チャ
ンネルnについて1フレーム分の楽音生成処理を完了し
たときにはステップS60に進む。
If it is determined in step S59 that the tone generation processing for one frame has not been completed for channel n, the flow returns to step S58 to generate the next one sample of tone waveform data. On the other hand, when the tone generation processing for one frame has been completed for channel n in step S59, the process proceeds to step S60.

【0102】ステップS60では、ステップS58およ
びS59で演算され、生成された1フレーム分の楽音波
形データを前記楽音波形バッファに書き込む。このと
き、楽音波形バッファにすでに楽音波形データが格納さ
れている場合には、演算されたデータを当該データに加
算し、その加算結果を書き込む。
In step S60, the tone waveform data for one frame generated and calculated in steps S58 and S59 is written to the tone waveform buffer. At this time, if the musical tone waveform data is already stored in the musical tone waveform buffer, the calculated data is added to the data, and the result of the addition is written.

【0103】そして、指標iの値を“1”だけインクリ
メントして更新し(ステップS61)、指標iの値が前
記最大チャンネル数CHmaxより大きいか否かを判別
する(ステップS62)。
Then, the value of the index i is incremented by "1" and updated (step S61), and it is determined whether or not the value of the index i is larger than the maximum channel number CHmax (step S62).

【0104】ステップS62で、i≦CHmaxのと
き、すなわち波形生成すべきチャンネルに対する処理が
残っているときには、前記図14のステップS55に戻
って前述の処理を繰り返す一方、i>CHmaxのと
き、すなわち波形生成すべきチャンネルに対する処理が
終了したときには、今回ノートオフのあった発音チャン
ネルについての音量エンベロープの大きさを徐々に小さ
くする消音チャンネル処理を実行する(ステップS6
3)。
In step S62, when i ≦ CHmax, that is, when processing for a channel for which a waveform is to be generated remains, the flow returns to step S55 in FIG. 14 to repeat the above-described processing. On the other hand, when i> CHmax, that is, when i> CHmax, When the process for the channel for which the waveform is to be generated is completed, a mute channel process for gradually reducing the size of the volume envelope for the sound channel for which the note-off has occurred this time is executed (step S6).
3).

【0105】続くステップS64では、このようにして
生成された楽音波形データを、楽音波形バッファから切
り離して、出力デバイスであるcodecハードウェア
に渡し、再生指示(再生予約)した後に、本波形演算処
理を終了する。
In the following step S64, the tone waveform data generated in this manner is separated from the tone waveform buffer, passed to codec hardware as an output device, and a reproduction instruction (reproduction reservation) is issued. To end.

【0106】なお、チャンネルnのベロシティ値が所定
値より小さくなったときには、当該チャンネルnについ
てのFM演算を行わないようにしてもよい。これを実現
するためには、図14に示すように、前記ステップS5
5の後にステップS71を設け、チャンネルnの音色レ
ジスタTONEPARn中のタッチベロシティデータV
ELnが所定値VELn1以上か否かを判別し、VEL
n≧VELn1のときには前記ステップS56に進む一
方、VELn<VELn1のときには、ステップS72
で、前記図12のステップS43と同様にしてチャンネ
ルnのキーオフ指定をした後に前記ステップS61に進
むようにすればよい。
When the velocity value of the channel n becomes smaller than the predetermined value, the FM calculation for the channel n may not be performed. In order to realize this, as shown in FIG.
5, a step S71 is provided, and the touch velocity data V in the tone register TONEPARn of the channel n is provided.
It is determined whether or not ELn is equal to or greater than a predetermined value VELn1.
When n ≧ VELn1, the process proceeds to step S56, while when VELn <VELn1, the process proceeds to step S72.
Then, after the key-off designation of the channel n is performed in the same manner as in step S43 of FIG. 12, the process may proceed to step S61.

【0107】図16は、前記ステップS57のチャンネ
ルnのついてのFM演算処理サブルーチンの詳細な手順
を示すフローチャートである。
FIG. 16 is a flowchart showing a detailed procedure of the FM calculation subroutine for the channel n in the step S57.

【0108】同図において、まず、演算対象オペレータ
のオペレータ番号を格納するための変数m(以下、この
値を「演算対象オペレータm」という)を初期化(m←
1)する。
In the figure, first, a variable m for storing the operator number of an operator to be operated (hereinafter, this value is referred to as “operator m to be operated”) is initialized (m ←).
1) Yes.

【0109】次に、前記ステップS51と同様にして、
CPU3の負荷状態をチェックするとともに、演算対象
オペレータmのオペレータ優先度データOPPRIOm
をチェックし(ステップS82)、この両チェック結果
に応じて、当該演算対象オペレータmに対するオペレー
タ演算処理を実行するか否かを判別する(ステップS8
3)。
Next, in the same manner as in step S51,
The load state of the CPU 3 is checked, and the operator priority data OPPRIm of the operator m to be calculated is checked.
Is checked (step S82), and it is determined whether or not to execute the operator calculation process on the calculation target operator m according to the both check results (step S8).
3).

【0110】ステップS83で、演算対象オペレータm
に対するオペレータ演算処理を実行するときには、チャ
ンネルnは前フレームから継続して発音されているか否
かを判別し(ステップS84)、チャンネルnは前フレ
ームから継続して発音されているときには、音色レジス
タTONEPARnのオペレータデータOPmDATA
n内のバッファOPBUFmに格納された各データに基
づいて、前フレーム演算終了時のオペレータmの状態に
オペレータデータOPmDATAnを復帰させる(ステ
ップS85)。これは、各オペレータデータOPmDA
TAn内のバッファOPBUFmには、その直前に演算
された演算結果が保存されているため、この保存結果を
用いることにより、当該直前のオペレータデータOPm
DATAnの状態に復帰させることができるからであ
る。そして、このようにオペレータデータOPmDAT
Anを前フレームの演算終了時の状態に復帰させるの
は、今回のフレームにおけるチャンネルnの楽音波形デ
ータは、前フレームから継続するものとして生成する必
要があるからである。
In step S83, the calculation target operator m
Is performed, it is determined whether or not the channel n is continuously sounded from the previous frame (step S84). If the channel n is continuously sounded from the previous frame, the tone color register TONEPARn is determined. Operator data OPmDATA
Based on each data stored in the buffer OPBUFm in n, the operator data OPmDATAn is returned to the state of the operator m at the end of the previous frame calculation (step S85). This is because each operator data OPmDA
In the buffer OPBUFm in TAn, the operation result calculated immediately before is stored, and by using the storage result, the immediately preceding operator data OPm
This is because it is possible to return to the state of DATAn. Then, as described above, the operator data OPmDAT
An is returned to the state at the end of the calculation of the previous frame because the tone waveform data of channel n in the current frame needs to be generated as continuing from the previous frame.

【0111】一方、ステップS84で、チャンネルnは
前フレームから継続して発音されていないときには、ス
テップS85をスキップしてステップS86に進む。
On the other hand, if it is determined in step S84 that the channel n has not been sounded continuously from the previous frame, step S85 is skipped and the flow advances to step S86.

【0112】ステップS86では、図17および18を
用いて後述する演算対象オペレータmについてのオペレ
ータ演算処理サブルーチンを実行する。
In step S86, an operator calculation processing subroutine for the calculation target operator m, which will be described later with reference to FIGS. 17 and 18, is executed.

【0113】続くステップS87では、変数mの値を
“1”だけインクリメントして更新し、ステップS88
では、関連オペレータすべてについて、すなわちアルゴ
リズム指定データALGORnにより示されるオペレー
タデータOPmDATAnすべてについてオペレータ演
算を完了したか否かを判別する(ステップS88)。
In the following step S87, the value of the variable m is updated by incrementing it by "1".
Then, it is determined whether or not the operator calculation has been completed for all the related operators, that is, all the operator data OPmDATAn indicated by the algorithm designation data ALGORn (step S88).

【0114】ステップS88で、関連オペレータについ
ての演算が残っているときには前記ステップS82に戻
り、前述の処理を繰り返す一方、関連オペレータすべて
について演算を完了したときには、本チャンネルnにつ
いてのFM演算処理を終了する。
In step S88, when the calculation for the related operator remains, the flow returns to step S82 to repeat the above-described processing. On the other hand, when the calculation has been completed for all the related operators, the FM calculation processing for the current channel n ends. I do.

【0115】なお、ステップS82およびS83では、
CPU3の負荷状態をチェックして演算対象オペレータ
mに対するオペレータ演算を実行するか否かを判別する
ようにしたが、これに限らず、CPU3の負荷状態に拘
わらず、優先度の低いオペレータに対するオペレータ演
算を実行しないようにしてもよい。これにより、CPU
3の能力があまり高くない場合であっても、発音数を増
大させることができる。
Note that in steps S82 and S83,
The load state of the CPU 3 is checked to determine whether or not to execute the operator calculation for the operator m to be calculated. However, the present invention is not limited to this. May not be executed. This allows the CPU
Even if the ability of the third is not so high, the number of sounds can be increased.

【0116】図17および18は、前記ステップS86
の演算対象オペレータmについてのオペレータ演算処理
サブルーチンの詳細な手順を示すフローチャートであ
り、図19は、このオペレータ演算処理でなされるオペ
レータ演算の基本的な流れを示す図である。以下、図1
9も参照しながら、演算対象オペレータmについてのオ
ペレータ演算処理を説明する。
FIG. 17 and FIG.
FIG. 19 is a flowchart showing a detailed procedure of an operator calculation processing subroutine for the calculation target operator m. FIG. 19 is a diagram showing a basic flow of operator calculation performed in this operator calculation processing. Hereinafter, FIG.
The operator calculation process for the calculation target operator m will be described with reference to FIG.

【0117】図17において、まず、演算対象オペレー
タmのオペレータデータOPmDATAn内のオペレー
タオンパラメータOPONmがオン(“1”)であるか
否かを判別し(ステップS91)、OPONm=0のと
き、すなわち演算対象オペレータmがオペレータ演算を
行う必要のないものであるときには、直ちに本オペレー
タ演算処理を終了する一方、OPONm=1のとき、す
なわち演算対象オペレータmがオペレータ演算を行うべ
きものであるときにはステップS92に進む。
In FIG. 17, first, it is determined whether or not the operator-on parameter OPONm in the operator data OPmDATAn of the operator m to be operated is on ("1") (step S91). When OPONm = 0, that is, when OPONm = 0 If the operator m does not need to perform the operator operation, the operator operation process is immediately terminated. On the other hand, if OPONm = 1, that is, if the operator m is to perform the operator operation, step S92 is executed. Proceed to.

【0118】ステップS92では、オペレータデータO
PmDATAn内の前記サンプリング周波数指定データ
FSAMPmが“0”であるか否か、すなわち標準モー
ドのサンプリング周波数FSMAXで楽音波形を生成す
るか否かを判別し、FSAMPm=0のときには、各オ
ペレータでの演算処理は標準モードのサンプリング周波
数で楽音波形生成を行うことが基本とされているため、
オペレータデータOPmDATAn内の前記エンベロー
プパラメータEGPARmの設定値に応じてAEGm演
算を行い、その演算結果を前記EG状態バッファEGS
TATEmに格納する(ステップS93)。
In the step S92, the operator data O
It is determined whether or not the sampling frequency designation data FSAMPm in PmDATAn is "0", that is, whether or not a tone waveform is generated at the sampling frequency FSMAX in the standard mode. When FSAMPm = 0, the calculation by each operator is performed. The process is based on generating a tone waveform at the sampling frequency of the standard mode.
AEGm calculation is performed according to the set value of the envelope parameter EGPARm in the operator data OPmDATAn, and the calculation result is stored in the EG state buffer EGS.
It is stored in TATEm (step S93).

【0119】一方、ステップS92で、FSAMPm≠
0、たとえばFSAMPm=fのとき、すなわち標準モ
ードのサンプリング周波数FSMAXを2-f倍に変更
し、変更後の周波数で楽音波形生成を行うときには、エ
ンベロープパラメータEGPARm中、レートが変化す
るパラメータ(以下、「変化レート関連パラメータ」と
いう)を2f倍にしてAEG演算を行い、その演算結果
をEG状態バッファEGSTATEmに格納する。この
ように、変化レート関連パラメータのレートを2f倍に
してエンベロープ生成演算を行うようにしたのは、この
とき、サンプリング周波数はFSMAX×2-fに低減さ
れるため、これに応じて、本実施の形態では、エンベロ
ープパラメータEGPARmの変化レート関連パラメー
タのレート、すなわち時間変化を速くして当該サンプリ
ング周波数における楽音波形生成を行い、その後、生成
された波形サンプルを2f個の対応する連続バッファに
書き込むことにより、元の音高の楽音となるように調整
する方法を採っているからである。
On the other hand, in step S92, FSAMPm ≠
0, for example, when FSAMPm = f, that is, when changing the sampling frequency FSMAX of the standard mode to 2- f times and generating a musical tone waveform at the frequency after the change, a parameter (hereinafter, referred to as a rate changing) in the envelope parameter EGPARm. The AEG calculation is performed by multiplying the “change rate related parameter” by 2 f and the calculation result is stored in the EG state buffer EGSTATEm. The reason why the rate of the parameter related to the change rate is increased by 2 f to perform the envelope generation operation is that at this time, the sampling frequency is reduced to FSMAX × 2 −f. In the embodiment, the rate of the parameter related to the change rate of the envelope parameter EGPARm, that is, the tone waveform generation at the sampling frequency is performed by increasing the time change, and then the generated waveform samples are stored in 2 f corresponding continuous buffers. This is because, by writing, a method of adjusting the tone so that the tone has the original pitch is adopted.

【0120】このように、ステップS93またはS94
は、図19におけるエンベロープデータAEGmの算出
を行っている。
As described above, step S93 or S94
Calculates the envelope data AEGm in FIG.

【0121】続くステップS95では、AEGm演算に
より算出されたデータAEGmにオペレータデータOP
mDATAn内の前記トータルレベルパラメータTLm
の値を乗算し、図19に示すように、演算対象オペレー
タmの出力レベルAMPm(=AEGm×TLm)を算
出する。
In the following step S95, operator data OP is added to data AEGm calculated by AEGm calculation.
the total level parameter TLm in mDATAn
And the output level AMPm (= AEGm × TLm) of the operator m to be calculated is calculated as shown in FIG.

【0122】そして、ステップS93またはS94で算
出された振幅制御用エンベロープデータAEGmおよび
ステップS95で算出された演算対象オペレータmの出
力レベルAMPmをそれぞれチェックし(ステップS9
6)、各データ値AEGmおよびAMPmがそれぞれ、
たとえば所定時間所定レベル以下になり、演算対象オペ
レータmの出力をなしとしてよいか、すなわち演算対象
オペレータmにおける楽音波形演算を終了してよいか否
かを判別し(ステップS97)、その答えが肯定(YE
S)のときにはステップS98に進む一方、その答えが
否定(NO)のときには図18のステップS101に進
む。
Then, the amplitude control envelope data AEGm calculated in step S93 or S94 and the output level AMPm of the calculation target operator m calculated in step S95 are checked (step S9).
6), each data value AEGm and AMPm is
For example, it is determined whether or not the output is below the predetermined level for a predetermined time and the output of the calculation target operator m may be completed, that is, whether or not the tone waveform calculation in the calculation target operator m may be ended (step S97), and the answer is affirmative. (YE
In the case of S), the process proceeds to step S98, while if the answer is negative (NO), the process proceeds to step S101 in FIG.

【0123】ステップS98では、演算対象オペレータ
mは前記「キャリア」であるか否かを判別し、「キャリ
ア」のときにはステップS99に進み、演算対象オペレ
ータmおよび演算対象オペレータmのみを変調している
「モジュレータ」の各バッファOPBUFをクリアし、
波形演算を停止させた後に、本オペレータ演算処理を終
了する。このように、演算対象オペレータmが「キャリ
ア」である場合に、演算対象オペレータmのみでなく、
演算対象オペレータmのみを変調しているモジュレータ
の波形演算を停止させるようにしたのは、キャリアは、
前記図4に示すように、楽音波形データを最終的に出力
するオペレータであるため、キャリアからの出力をなし
としてよいとき、すなわちステップS97からS98を
経てS99へ移行するときには、その前段であるモジュ
レータの出力もなしとしてよいからである。ただし、当
該モジュレータが他のキャリアを変調しているときに
は、当該モジュレータの波形演算を停止させることはで
きないため、これを「のみ」で担保している。
In step S98, it is determined whether or not the calculation target operator m is the "carrier". If it is "carrier", the flow advances to step S99 to modulate only the calculation target operator m and the calculation target operator m. Clear each buffer OPBUF of "Modulator",
After stopping the waveform calculation, the operator calculation process ends. As described above, when the calculation target operator m is “carrier”, not only the calculation target operator m,
The reason for stopping the waveform calculation of the modulator modulating only the calculation target operator m is that the carrier is
As shown in FIG. 4, since the operator is the operator who finally outputs the musical tone waveform data, when the output from the carrier may be omitted, that is, when the process proceeds from step S97 to step S98 to step S99, the modulator at the preceding stage is used. Is not required. However, when the modulator is modulating another carrier, the waveform calculation of the modulator cannot be stopped, so this is secured by “only”.

【0124】一方、ステップS98で、演算対象オペレ
ータmがキャリアでないとき、すなわちモジュレータの
ときには、演算対象オペレータmのバッファOPBUF
mのみをクリアしてその波形演算を停止させた(ステッ
プS100)後に、本オペレータ演算処理を終了する。
On the other hand, if the operation target operator m is not a carrier in step S98, that is, if it is a modulator, the buffer OPBUF of the operation target operator m
After clearing only m and stopping the waveform calculation (step S100), the operator calculation process ends.

【0125】図18のステップS101では、アルゴリ
ズム指定データALGORnをチェックし、次いでステ
ップS102では、演算対象オペレータmが他のオペレ
ータから変調を受けているか否かを判別する。
In step S101 of FIG. 18, the algorithm designation data ALGORn is checked. Then, in step S102, it is determined whether or not the calculation target operator m is modulated by another operator.

【0126】ステップS102で、演算対象オペレータ
mが他のオペレータから変調を受けているときには、当
該変調を行っている各オペレータデータOPkDATA
n内の前記オペレータ出力値バッファOPOUTkに格
納されているオペレータ出力データをそれぞれ加算し、
演算対象オペレータmの前記変調データ入力バッファM
ODINmに格納する(ステップS103)一方、演算
対象オペレータmが他のオペレータから変調を受けてい
ないときには、ステップS103をスキップしてステッ
プS104に進む。
In step S102, when the operation target operator m is modulated by another operator, each operator data OPkDATA performing the modulation is operated.
n, and adds the operator output data stored in the operator output value buffer OPOUTk in n.
Modulated data input buffer M of operator m to be operated
If it is stored in ODINm (step S103), on the other hand, if the calculation target operator m has not been modulated by another operator, step S103 is skipped and the process proceeds to step S104.

【0127】ステップS104では、前記ステップS9
2と同様にして、オペレータデータOPmDATAn内
の前記サンプリング周波数指定データFSAMPmが
“0”であるか否かを判別し、FSAMPm=0のとき
にはステップS105に進む一方、FSAMPm≠0の
ときにはステップS110に進む。
At step S104, at step S9
Similarly to 2, it is determined whether or not the sampling frequency designation data FSAMPm in the operator data OPmDATAn is “0”. .

【0128】ステップS105では、位相値を更新する
位相値更新演算を行い、その演算結果を、演算対象オペ
レータmのオペレータデータOPmDATAn内の位相
値バッファPHBUFm(以下、この内容を「位相値P
HBUFm」という)に格納する。ここで、位相値更新
演算とは、図19の破線Aで囲まれた演算、すなわち次
式で示す演算をいう。
In step S105, a phase value update calculation for updating the phase value is performed, and the calculation result is stored in a phase value buffer PHBUFm (hereinafter referred to as “phase value P”) in the operator data OPmDATAn of the operator m to be calculated.
HBUFm ”). Here, the phase value update operation is an operation surrounded by a broken line A in FIG. 19, that is, an operation represented by the following equation.

【0129】MODINm+FBm+FNOn×MUL
Tm+PHBUFm ただし、MODINm,FBmは、それぞれオペレータ
データOPmDATAn内の変調データ入力バッファM
ODINmおよびフィードバック出力値バッファFBm
に格納された値を示し、FNOnは、楽音パラメータV
OICEn内の周波数ナンバFNOnを示し、MULT
mは、オペレータデータOPmDATAn内の前記周波
数倍数データMULTmを示し、PHBUFmは、オペ
レータデータOPmDATAn内の位相値バッファPH
BUFmに格納された値の前回値を示している。
MODINm + FBm + FNOn × MUL
Tm + PHBUFm where MODINm and FBm are modulation data input buffers M in operator data OPmDATAn, respectively.
ODINm and feedback output value buffer FBm
, And FNOn is a tone parameter V
Indicates the frequency number FNOn in OICEn, and indicates MULT.
m indicates the frequency multiple data MULTm in the operator data OPmDATAn, and PHBUFm indicates the phase value buffer PH in the operator data OPmDATAn.
The previous value of the value stored in BUFm is shown.

【0130】続くステップS106では、ステップS1
05で算出された位相値PHBUFmに基づいてテーブ
ルアドレスを算出し、演算対象オペレータmのウェーブ
セレクトデータWSELmに応じて選択された基本波形
(たとえば、前記図5で示した8種類の基本波形から選
択された波形)データ(以下、「基本波形テーブル」と
いう)から、この算出アドレスが示す位置のデータWA
VEm(PHBUFm)を読み出し、このデータWAV
Em(PHBUFm)に、前記ステップS95で算出し
た出力レベルAMPmを乗算して、演算対象オペレータ
mのオペレータ出力値バッファOPOUTm(=WAV
Em(PHBUFm)×AMPm)に格納する。
In the following step S106, step S1
A table address is calculated based on the phase value PHBUFm calculated in step 05, and a basic waveform selected according to the wave select data WSELm of the operator m to be calculated (for example, selected from the eight basic waveforms shown in FIG. 5). From the calculated waveform) data (hereinafter, referred to as a “basic waveform table”).
VEm (PHBUFm) is read, and the data WAV
Em (PHBUFm) is multiplied by the output level AMPm calculated in step S95, and an operator output value buffer OPOUTm (= WAV) of the operator m to be calculated is obtained.
Em (PHBUFm) × AMPm).

【0131】そして、ステップS107では、次式によ
りフィードバックサンプル演算を行い、その演算結果を
演算対象オペレータmのフィードバック出力値バッファ
FBmに格納する。
In step S107, a feedback sample calculation is performed by the following equation, and the calculation result is stored in the feedback output value buffer FBm of the calculation target operator m.

【0132】 0.5×(FBm+OPOUTm×FBLm) ただし、OPOUTmは、ステップS106で発生させ
た波形サンプルデータを示し、FBLmは、演算対象オ
ペレータmの前記フィードバックレベルデータFBLm
を示している。ここで、フィードバックサンプル演算を
行うのは、寄生発振を防止するためである(後述するス
テップS112も同様)。
0.5 × (FBm + OPOUTm × FBLm) where OPOUTm indicates the waveform sample data generated in step S106, and FBLm is the feedback level data FBLm of the operator m to be calculated.
Is shown. Here, the feedback sample calculation is performed to prevent parasitic oscillation (the same applies to step S112 described later).

【0133】さらに、ステップS108では、前記ステ
ップS98と同様にして、演算対象オペレータmが「キ
ャリア」であるか否かを判別し、「モジュレータ」のと
きには、直ちに本オペレータ演算処理を終了する一方、
「キャリア」のときには、ステップS106で発生させ
た波形サンプルデータOPOUTmに、楽音パラメータ
VOICEnの前記音量データVOLnを乗算し、その
乗算結果(=OPOUTm×VOLn)を、前記波形バ
ッファ(対応バッファ)における今回の書き込み位置を
示すポインタが指示する位置に加算するとともに、当該
ポインタの値を“1”だけ進めて更新した(ステップS
109)後に、本オペレータ演算処理を終了する。
In step S108, similarly to step S98, it is determined whether or not the operator m to be operated is a "carrier". If the operator m is a "modulator", the operator operation processing is immediately terminated.
In the case of “carrier”, the waveform sample data OPOUTm generated in step S106 is multiplied by the volume data VOLn of the musical tone parameter VOICEn, and the multiplication result (= OPOUTm × VOLn) is stored in the waveform buffer (corresponding buffer) in the current time. Is added to the position indicated by the pointer indicating the write position of the pointer, and the value of the pointer is updated by being advanced by “1” (step S
109) Thereafter, this operator calculation process ends.

【0134】ステップS110では、位相値更新演算を
行い、その演算結果を位相値バッファPHBUFmに格
納する。このステップS110の演算処理は、ステップ
S105の演算処理に対して、図19のブロックBで示
す処理を追加した点が異なるのみである。これは、FS
AMPm=f(≠0)であるため、位相値をfビットだ
けシフトアップして、すなわち位相値バッファPHBU
Fmの値を2f倍して、前記基本波形テーブルの読み出
しアドレスをサンプリング周波数FSMAX×2-f時の
アドレスに変更する必要がある、すなわち飛ばし読みす
る必要があるからである。
In step S110, a phase value update operation is performed, and the operation result is stored in the phase value buffer PHBUFm. The arithmetic processing in step S110 is different from the arithmetic processing in step S105 only in that the processing shown in block B of FIG. 19 is added. This is FS
Since AMPm = f (≠ 0), the phase value is shifted up by f bits, that is, the phase value buffer PHBU
This is because it is necessary to multiply the value of Fm by 2 f to change the read address of the basic waveform table to an address at the sampling frequency FSMAX × 2 −f , that is, it is necessary to skip reading.

【0135】次に、前記ステップS106と同様にし
て、次式により波形サンプルを発生させ、オペレータ出
力値バッファOPOUTmに格納する。
Next, in the same manner as in step S106, a waveform sample is generated by the following equation and stored in the operator output value buffer OPOUTm.

【0136】 WAVEm(2f×PHBUFm)×AMPm そして、前記ステップS107と同様にして、フィード
バックサンプル演算を実行する(ステップS112)。
WAVEm (2 f × PHBUFm) × AMPm Then, a feedback sample calculation is executed in the same manner as in step S107 (step S112).

【0137】次いで、ステップS113で、前記ステッ
プS108と同様にして、演算対象オペレータmが「キ
ャリア」であるか否かを判別し、「モジュレータ」のと
きには、直ちに本オペレータ演算処理を終了する一方、
「キャリア」のときには、前記ステップS109と同様
にして、ステップS111で発生させた波形サンプルデ
ータOPOUTmに、楽音パラメータVOICEnの前
記音量データVOLnを乗算し、その乗算結果(=OP
OUTm×VOLn)を、前記波形バッファ中、前記ポ
インタが示す位置から連続する2f個の領域(バッフ
ァ)に加算するとともに、そのポインタの値を“2f
だけ進めて更新した(ステップS109)後に、本オペ
レータ演算処理を終了する。なお、ステップS109
で、同じ値のサンプルデータを書き込む際に、必要に応
じてサンプル間の補間演算を行い、その補間値を書き込
むようにしてもよい。
Next, in step S113, similarly to step S108, it is determined whether or not the operator m to be operated is a "carrier". If the operator m is a "modulator", the operator operation processing is immediately terminated.
In the case of "carrier", the waveform sample data OPOUTm generated in step S111 is multiplied by the volume data VOLn of the musical tone parameter VOICEn in the same manner as in step S109, and the multiplication result (= OP
The OUTm × VOLn), in the waveform buffer, as well as added to 2 f-number of regions (buffer) that is continuous from the position where the pointer indicates the value of the pointer "2 f"
After the update (step S109), the operator calculation process ends. Step S109
Then, when writing sample data of the same value, an interpolation operation between samples may be performed as necessary, and the interpolated value may be written.

【0138】なお、本実施の形態では、ステップS10
6およびS111で説明したように、基本波形データと
しては基本波形テーブルに格納された値を使用するよう
にしたが、これに限らず、基本波形データを演算により
生成するようにしてもよい。もちろん、テーブルデータ
と演算との組合せにより、基本波形データを生成するよ
うにしてもよい。
In the present embodiment, step S10
As described in 6 and S111, the values stored in the basic waveform table are used as the basic waveform data. However, the present invention is not limited to this, and the basic waveform data may be generated by calculation. Of course, the basic waveform data may be generated by a combination of the table data and the calculation.

【0139】また、ステップS106およびS110
で、基本波形テーブルを読み出すときのアドレスは、そ
れぞれステップS105およびS110で算出された位
相値PHBUFmに基づいて算出されたアドレスを使用
したが、これに限らず、この位相値PHBUFmを演算
や非線形特性テーブル等で歪ませたものを使用するよう
にしてもよい。
Also, steps S106 and S110
As the address for reading out the basic waveform table, the address calculated based on the phase value PHBUFm calculated in steps S105 and S110, respectively, is used. However, the present invention is not limited to this. You may use what was distorted by the table etc.

【0140】図20は、前記図10のステップS19の
音色設定処理サブルーチンの詳細な手順を示すフローチ
ャートである。
FIG. 20 is a flowchart showing a detailed procedure of the tone color setting processing subroutine of step S19 in FIG.

【0141】同図において、まず、MIDIチャンネル
とその各チャンネルに対応する音色の設定を行う(ステ
ップS121)。前述したように、本実施の形態では、
MIDIチャンネルとその対応音色はMIDI-CHボ
イステーブルで決定され、このMIDI-CHボイステ
ーブルにロードされるテーブルデータはハードディスク
等に格納され、ユーザが選択したMIDIファイルがロ
ードされると同時に、その対応するテーブルデータがM
IDI-CHボイステーブルにロードされるので、ステ
ップS121の処理は、現在ロードされているテーブル
データの編集または新たなテーブルデータのロード(読
み込み)である。
In the figure, first, a MIDI channel and a tone color corresponding to each channel are set (step S121). As described above, in the present embodiment,
MIDI channels and their corresponding tones are determined by a MIDI-CH voice table. Table data to be loaded into the MIDI-CH voice table is stored on a hard disk or the like. Table data to be
Since the data is loaded into the IDI-CH voice table, the processing in step S121 is editing of the currently loaded table data or loading (reading) of new table data.

【0142】なお、各MIDIチャンネル毎にそれぞれ
希望のオペレータ数をユーザが設定可能とし、MIDI
-CHボイステーブル中の音色番号を変更するときに、
当該チャンネルに希望オペレータ数が設定されている場
合には、そのオペレータ数に一致するまたはそのオペレ
ータ数以内の楽音パラメータVOICEに対応する音色
番号を一覧表示し、その中からユーザが所望の音色番号
を選択して設定するようにしてもよい。このとき、CP
U3の負荷状態に応じて、当該チャンネルに設定された
希望オペレータ数を自動的に変更し、その変更後のオペ
レータ数以内の音色番号を一覧表示するようにしてもよ
い。さらに、ユーザがMIDI-CHボイステーブル中
のあるチャンネルの音色番号を変更したときに、その音
色番号に対応する楽音パラメータVOICEの構成オペ
レータ総数をチェックし、CPU3の負荷状態に応じ
て、当該チャンネルにこの音色を割り当てできない等の
警告を表示するようにしてもよい。この警告に加えて、
当該チャンネルの音色番号を、オペレータ数の小さい代
替音色の音色番号に自動的に変更するようにしてもよ
い。
Note that the user can set the desired number of operators for each MIDI channel.
-When changing the tone number in the CH voice table,
If the desired number of operators is set for the channel, a list of tone numbers corresponding to the tone parameters VOICE corresponding to or within the number of operators is displayed, and the user selects a desired tone number from the list. You may make it select and set. At this time, CP
The number of desired operators set for the channel may be automatically changed in accordance with the load state of U3, and a list of tone numbers within the changed number of operators may be displayed. Further, when the user changes the tone number of a certain channel in the MIDI-CH voice table, the total number of operators constituting the tone parameter VOICE corresponding to the tone number is checked. A warning that the tone cannot be assigned may be displayed. In addition to this warning,
The timbre number of the channel may be automatically changed to the timbre number of the substitute timbre having a small number of operators.

【0143】以上説明したように、本実施の形態では、
CPU3の能力や動作環境、目的および設定等に応じ
て、FM演算処理に用いるオペレータ数をフレキシブル
に変更するようにしたので、CPU3の負荷の軽重およ
び出力楽音波形の品質の高低を自由に変更することがで
き、これにより、音源システム全体の自由度を向上させ
ることができる。
As described above, in the present embodiment,
The number of operators used in the FM calculation processing is flexibly changed according to the capability, operating environment, purpose, setting, etc. of the CPU 3, so that the load on the CPU 3 and the quality of the output musical sound waveform can be freely changed. Therefore, the degree of freedom of the entire sound source system can be improved.

【0144】なお、本実施の形態では、楽音生成処理と
してFM音源方式を用いて説明したが、これに限らず、
たとえば、楽音波形生成ブロックを組み合わせてAM
(振幅変調)やPM(位相変調)など所定の信号処理を
行うような音源にも容易に適用できる。また、本発明に
含まれるCPUの負荷の軽減方法は波形メモリ読み出し
方式の音源、物理モデル音源をソフトウェアで実現する
際にも適用できるものである。
Although the present embodiment has been described using the FM sound source system as the musical sound generation process, the present invention is not limited to this.
For example, by combining a tone waveform generation block
The present invention can be easily applied to a sound source that performs predetermined signal processing such as (amplitude modulation) and PM (phase modulation). Further, the method of reducing the load on the CPU included in the present invention can also be applied to a case where a sound source of a waveform memory reading method and a physical model sound source are realized by software.

【0145】また、本実施の形態では、パソコンでの応
用を主な例としたが、ゲームやカラオケなどのアミュー
ズメント機器、電子楽器、一般電子機器への適用も容易
に可能である。また、パソコンのオプションとしての音
源ボードや音源ユニットに適用することも可能である。
In the present embodiment, application to a personal computer has been described as a main example, but application to amusement equipment such as games and karaoke, electronic musical instruments, and general electronic equipment is also easily possible. Also, the present invention can be applied to a sound source board or a sound source unit as an option of a personal computer.

【0146】なお、本発明によるソフトウェアは、フロ
ッピーディスクや光磁気ディスク、CD−ROMなどの
ディスクメディア、あるいはメモリカードなどで供給す
るようにもできる。また、ソフトウェアデータを記憶し
た半導体メモリチップ(典型的にはROM)をコンピュ
ータ機器に差し替え、追加するようにしてもよい。さら
には通信I/F14を通して、本発明に係る音源ソフト
ウェアを配信するようにしてもよい。
The software according to the present invention can be supplied on a disk medium such as a floppy disk, a magneto-optical disk, a CD-ROM, or a memory card. Further, a semiconductor memory chip (typically, a ROM) storing software data may be replaced with a computer device and added. Further, the sound source software according to the present invention may be distributed through the communication I / F 14.

【0147】また、本発明に係る音源ソフトウェアが、
コンピュータシステムの中で、どういう位置づけ(アプ
リケーション・ソフトとするか、あるいは、たとえばデ
バイスドライバ・ソフトにするか)で起動、動作するか
はシステム構成やOSに応じて適宜、決めればよい。
Also, the sound source software according to the present invention
In the computer system, what kind of position (application software or, for example, device driver software) to start and operate may be determined as appropriate according to the system configuration and the OS.

【0148】また、本発明に係る音源ソフトウェアまた
はその機能を、他のソフトウェア、たとえば、ゲームな
どのアミューズメントソフト、カラオケソフトや自動演
奏・伴奏ソフトなどに組み込んでもよい。さらには、コ
ンピュータOSに直接、組み込んでしまってもよい。
The sound source software according to the present invention or its functions may be incorporated into other software, for example, amusement software such as games, karaoke software, automatic performance / accompaniment software, and the like. Further, it may be directly incorporated in the computer OS.

【0149】[0149]

【発明の効果】以上説明したように、本発明に依れば、
選択された発音チャンネルに、設定されたアルゴリズム
が示す楽音波形生成ブロックが割り当てられ、該割り当
てられた楽音波形生成ブロックが当該アルゴリズムが示
す組み合わせ態様で組み合わせて楽音波形生成演算が行
われ、楽音波形データが生成されるので、発音割り当て
される前に、各発音チャンネルに対する楽音波形生成ブ
ロックの個数を任意に変更することができ、これによ
り、楽音波形データ生成手段の能力に応じて、該楽音波
形データ生成手段に対する負荷状態および生成される楽
音波形データの品質をフレキシブルに変更することが可
能となる効果を奏する。
As described above, according to the present invention,
A tone waveform generation block indicated by the set algorithm is assigned to the selected sounding channel, and the assigned tone waveform generation blocks are combined in a combination manner indicated by the algorithm to perform a tone waveform generation operation, thereby generating tone waveform data. Is generated, the number of musical tone waveform generating blocks for each tone generating channel can be arbitrarily changed before tone generation is assigned. Thereby, the tone waveform data can be changed according to the capability of the tone waveform data generating means. There is an effect that it is possible to flexibly change the load state on the generating means and the quality of generated musical sound waveform data.

【0150】また、選択された発音チャンネルに、当該
生成すべき楽音波形データの音色に対応して設定された
アルゴリズムが示す楽音波形生成ブロックが割り当てら
れ、該割り当てられた楽音波形生成ブロックが当該アル
ゴリズムが示す組み合わせ態様で組み合わせて楽音波形
生成演算が行われ、楽音波形データが生成されるので、
上記効果と同様の効果を奏することができる。
A tone waveform generation block indicated by an algorithm set corresponding to the tone color of the tone waveform data to be generated is assigned to the selected tone generation channel, and the assigned tone waveform generation block is assigned to the algorithm. Since the musical sound waveform generation operation is performed in combination in the combination mode shown by, and the musical sound waveform data is generated,
The same effect as the above effect can be obtained.

【0151】好ましくは、音色設定手段により音色が設
定されるときに、当該演奏パートにブロック数設定手段
により楽音波形生成ブロック数が設定されている場合に
は、当該演奏パートに設定された音色が、該設定ブロッ
ク数の範囲内の楽音波形生成ブロックを備えた音色に変
更されるので、上記効果をさらに高めることができる。
Preferably, when the tone color is set by the tone color setting means, and the musical tone waveform generating block number is set by the block number setting means in the performance part, the tone color set in the performance part is set. Since the tone color is changed to a tone having the tone waveform generation block within the range of the set number of blocks, the above effect can be further enhanced.

【0152】また、好ましくは、前記発音チャンネルに
おける楽音波形生成演算中に、所定の条件に応じて、当
該発音チャンネルに割り当てられた楽音波形生成ブロッ
クの個数が変更されるので、発音中に、楽音波形データ
生成手段の能力に応じて、該楽音波形データ生成手段に
対する負荷状態および生成される楽音波形データの品質
をフレキシブルに変更することができる。
Preferably, the number of musical tone waveform generation blocks assigned to the tone generation channel is changed according to a predetermined condition during the tone waveform generation calculation for the tone generation channel. According to the capability of the waveform data generating means, the load state on the musical sound waveform data generating means and the quality of the generated musical sound waveform data can be flexibly changed.

【0153】さらに、本発明によれば、パソコンなど、
音楽演奏の他にも複数任意のタスク処理(たとえばワー
プロ、ネットワーク通信など)を実行させる場合が多い
コンピュータ機器では、ソフト音源処理実行中に音源以
外のタスクにCPUパワーがかかっても、楽音の途切れ
などの障害の発生を少なくできる。これは、見方を変え
れば、音源処理を実行中にも、より多くのタスクが処理
できるということができる。
Further, according to the present invention, a personal computer
In computer equipment that often executes a plurality of arbitrary task processes (eg, word processing, network communication, etc.) in addition to music performance, even if CPU power is applied to tasks other than the sound source during the execution of the software sound source process, the sound is interrupted. And the like can be reduced. From a different point of view, it can be said that more tasks can be processed even while the sound source processing is being executed.

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

【図1】本発明の実施の一形態に係る音源システムが備
えたソフトウェアのシステム構成の一例を示す図であ
る。
FIG. 1 is a diagram illustrating an example of a system configuration of software provided in a sound source system according to an embodiment of the present invention.

【図2】本発明の実施の一形態に係る音源システムの概
略構成を示す図である。
FIG. 2 is a diagram showing a schematic configuration of a sound source system according to an embodiment of the present invention.

【図3】図1の音源システムが行う楽音生成処理の概要
を説明するための図である。
FIG. 3 is a diagram for explaining an outline of a musical sound generation process performed by the sound source system of FIG. 1;

【図4】FM音源方式による楽音生成処理の概要を説明
するための図である。
FIG. 4 is a diagram for explaining an outline of a musical sound generation process using the FM sound source system.

【図5】基本波形テーブルとして選択される元となる基
本波形データの一例を示す図である。
FIG. 5 is a diagram showing an example of basic waveform data from which a basic waveform table is selected.

【図6】割り当てられた発音チャンネルで発音すべき楽
音の音色パラメータを展開する音色レジスタ群を示す図
である。
FIG. 6 is a diagram showing a timbre register group that develops timbre parameters of musical tones to be produced by assigned tone generation channels.

【図7】楽音パラメータVOICEjのデータフォーマ
ットを示す図である。
FIG. 7 is a diagram showing a data format of a musical tone parameter VOICEj.

【図8】各MIDIチャンネル(CH)毎に選択設定さ
れた楽音パラメータVOICEnの音色番号を記憶する
MIDI-CHボイステーブルを示す図である。
FIG. 8 is a diagram showing a MIDI-CH voice table for storing tone color numbers of musical tone parameters VOICEEn selected and set for each MIDI channel (CH).

【図9】図1の音源システムのCPUが実行する初期プ
ログラムの手順を示すフローチャートである。
FIG. 9 is a flowchart showing a procedure of an initial program executed by a CPU of the sound source system of FIG. 1;

【図10】図9の初期プログラムに続いてCPUが実行
するメインプログラムの手順を示すフローチャートであ
る。
FIG. 10 is a flowchart showing a procedure of a main program executed by a CPU subsequent to the initial program of FIG. 9;

【図11】図10のMIDI処理サブルーチンの詳細な
手順を示すフローチャートである。
FIG. 11 is a flowchart showing a detailed procedure of a MIDI processing subroutine of FIG. 10;

【図12】図11のMIDI処理サブルーチンの続きを
示すフローチャートである。
FIG. 12 is a flowchart showing a continuation of the MIDI processing subroutine of FIG. 11;

【図13】CHシーケンスレジスタのフォーマットの一
例を示す図である。
FIG. 13 is a diagram illustrating an example of a format of a CH sequence register.

【図14】図10の波形演算処理サブルーチンの詳細な
手順を示すフローチャートである。
FIG. 14 is a flowchart showing a detailed procedure of a waveform calculation processing subroutine of FIG. 10;

【図15】図14の波形演算処理サブルーチンの続きを
示すフローチャートである。
FIG. 15 is a flowchart showing a continuation of the waveform calculation processing subroutine of FIG. 14;

【図16】図15のチャンネルnのついてFM演算処理
サブルーチンの詳細な手順を示すフローチャートであ
る。
16 is a flowchart illustrating a detailed procedure of an FM calculation processing subroutine for a channel n in FIG. 15;

【図17】図16の演算対象オペレータmについてのオ
ペレータ演算処理サブルーチンの詳細な手順を示すフロ
ーチャートである。
17 is a flowchart illustrating a detailed procedure of an operator calculation processing subroutine for a calculation target operator m in FIG. 16;

【図18】図17の演算対象オペレータmについてのオ
ペレータ演算処理サブルーチンの続きを示すフローチャ
ートであ
18 is a flowchart showing a continuation of the operator calculation processing subroutine for the calculation target operator m in FIG. 17;

【図19】図17および18のオペレータ演算処理でな
されるオペレータ演算の基本的な流れを示す図である。
FIG. 19 is a diagram showing a basic flow of operator calculation performed in the operator calculation processing of FIGS. 17 and 18.

【図20】図10の音色設定処理サブルーチンの詳細な
手順を示すフローチャートである。
FIG. 20 is a flowchart showing a detailed procedure of a tone color setting processing subroutine of FIG. 10;

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

3 CPU(アルゴリズム設定手段、発音チャンネル選
択手段、楽音波形データ生成手段、音色設定手段、ブロ
ック数設定手段、音色変更手段、ブロック数変更手段、
削減態様設定手段、サンプリング周波数設定手段) OPmDATAn オペレータデータ(楽音波形生成ブ
ロック) SSM ソフトウェア音源モジュール(楽音波形生成ブ
ロック、アルゴリズム設定手段、発音チャンネル選択手
段、楽音波形データ生成手段、音色設定手段、ブロック
数設定手段、音色変更手段、ブロック数変更手段、削減
態様設定手段、サンプリング周波数設定手段)
3 CPU (algorithm setting means, tone generation channel selection means, musical tone waveform data generation means, tone color setting means, block number setting means, tone color changing means, block number changing means,
OPmDATAn operator data (tone waveform generation block) SSM software tone generator module (tone waveform generation block, algorithm setting means, sound channel selection means, tone waveform data generation means, tone color setting means, number of blocks) Setting means, tone color changing means, block number changing means, reduction mode setting means, sampling frequency setting means)

フロントページの続き (56)参考文献 特開 平7−271378(JP,A) 特開 平7−319471(JP,A) 特開 平2−179697(JP,A) (58)調査した分野(Int.Cl.7,DB名) G10H 7/08 G10H 1/02 Continuation of the front page (56) References JP-A-7-271378 (JP, A) JP-A-7-319471 (JP, A) JP-A 2-179697 (JP, A) (58) Fields investigated (Int .Cl. 7 , DB name) G10H 7/08 G10H 1/02

Claims (11)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 楽音波形生成演算を行う、ソフトウェア
で構成された楽音波形生成ブロックを複数個組み合わせ
ることにより、複数の発音チャンネルの各チャンネル毎
に異なった音色の楽音波形データを生成する音源システ
ムにおいて、 前記組み合わせられる楽音波形生成ブロックの個数およ
びその組合せ態様を前記音色毎に決定するアルゴリズム
を設定するアルゴリズム設定手段と、曲の各演奏パート毎に音色を設定する音色設定手段と、 該各演奏パート毎に前記組み合わせられる楽音波形生成
ブロックの個数を設定するブロック数設定手段と、 前記音色設定手段により音色が設定されるときに、当該
演奏パートに前記ブロック数設定手段により楽音波形生
成ブロック数が設定されている場合には、当該演奏パー
トに設定された音色を、該設定ブロック数の範囲内の楽
音波形生成ブロックを備えた音色に変更する音色変更手
段と、 前記複数の発音チャンネルから楽音波形データを生成す
るチャンネルを選択する発音チャンネル選択手段と、 該選択された発音チャンネルに、当該生成すべき楽音波
形データの音色に対応して前記設定されたアルゴリズム
が示す楽音波形生成ブロックを割り当て、該割り当てら
れた楽音波形生成ブロックを当該アルゴリズムが示す組
み合わせ態様で組み合わせて楽音波形生成演算を行い、
楽音波形データを生成する楽音波形データ生成手段とを
有することを特徴とする音源システム。
1. A sound source system for generating musical tone waveform data having different timbres for each of a plurality of tone generation channels by combining a plurality of tone waveform generating blocks formed of software for performing a tone waveform generating operation. , and algorithms setting means for setting an algorithm which determines the number and the combination aspect of the combination is tone waveform generation block for each of the tone color, a tone color setting means for setting a tone color for each performance part of the song, respective performance parts Musical sound waveform generation combined with each other
Block number setting means for setting the number of blocks, and when a timbre is set by the timbre setting means,
A musical sound waveform is generated by the block number setting means for the performance part.
If the number of composed blocks is set, the performance
The tone set to the preset
Tone changer that changes to a tone with a sound waveform generation block
Step, sound channel selection means for selecting a channel for generating tone waveform data from the plurality of tone channels, and the selected tone channel is set in correspondence with the tone color of the tone waveform data to be generated. Allocate the musical tone waveform generation block indicated by the algorithm, perform the musical tone waveform generation operation by combining the assigned musical tone waveform generation block in a combination manner indicated by the algorithm,
A sound waveform data generating means for generating musical sound waveform data.
【請求項2】 前記発音チャンネルにおける楽音波形生
成演算中に、所定の条件に応じて、当該発音チャンネル
に割り当てられた楽音波形生成ブロックの個数を変更す
るブロック数変更手段を有することを特徴とする請求項
に記載の音源システム。
2. The method according to claim 1, further comprising a block number changing means for changing the number of musical tone waveform generating blocks assigned to the tone generating channel according to a predetermined condition during the musical tone waveform generating operation on the tone generating channel. Claim
2. The sound source system according to 1 .
【請求項3】 前記各楽音波形生成ブロック毎に、該各
楽音波形生成ブロックが実行する楽音波形生成演算の基
準となるサンプリング周波数を設定するサンプリング周
波数設定手段を有し、 前記楽音波形データ生成手段は、前記各楽音波形生成ブ
ロックによる楽音波形生成演算を、該各楽音波形生成ブ
ロックに設定されたサンプリング周波数を基準にして行
うことを特徴とする請求項1または2のいずれかに記載
の音源システム。
3. A tone waveform data generating means for each tone waveform generating block, comprising: a sampling frequency setting means for setting a sampling frequency serving as a reference for tone waveform generating calculation executed by each tone waveform generating block. 3. The sound source system according to claim 1, wherein the tone waveform generating operation of each tone waveform generating block is performed based on a sampling frequency set in each tone waveform generating block. .
【請求項4】 楽音波形生成演算を行う、ソフトウェア
で構成された楽音波形生成ブロックを複数個組み合わせ
ることにより、複数の発音チャンネルの各チャンネル毎
に楽音波形データを生成する音源システムにおいて、 前記組み合わせられる楽音波形生成ブロックの個数およ
びその組合せ態様を決定するアルゴリズムを設定するア
ルゴリズム設定手段と、 前記複数の発音チャンネルから楽音波形データを生成す
るチャンネルを選択する発音チャンネル選択手段と、 該選択された発音チャンネルに、前記設定されたアルゴ
リズムが示す楽音波形生成ブロックを割り当て、該割り
当てられた楽音波形生成ブロックを当該アルゴリズムが
示す組み合わせ態様で組み合わせて楽音波形生成演算を
行い、楽音波形データを生成する楽音波形データ生成手
段と 前記発音チャンネルにおける楽音波形生成演算中に、所
定の条件に応じて、当該発音チャンネルに割り当てられ
た楽音波形生成ブロックの個数を変更するブロック数変
更手段と を有することを特徴とする音源システム。
4. A sound source system for generating musical tone waveform data for each of a plurality of tone generation channels by combining a plurality of musical tone waveform generating blocks formed of software for performing a musical tone waveform generating operation. Algorithm setting means for setting an algorithm for determining the number of musical tone waveform generation blocks and the combination thereof; tone generation channel selection means for selecting a channel for generating tone waveform data from the plurality of tone generation channels; Musical tone waveform generating block indicated by the set algorithm, and performing the musical tone waveform generating operation by combining the assigned musical tone waveform generating blocks in a combination manner indicated by the algorithm, thereby generating musical tone waveform data. Generate And means, in tone waveform generation operation in the sound channel, where
Assigned to the sound channel according to the specified conditions.
Number of blocks to change the number of generated tone waveform generation blocks
Tone generator system, characterized in that it comprises a further means.
【請求項5】 前記各楽音波形生成ブロック毎に、該各
楽音波形生成ブロックが実行する楽音波形生成演算の基
準となるサンプリング周波数を設定するサンプリング周
波数設定手段を有し、 前記楽音波形データ生成手段は、前記各楽音波形生成ブ
ロックによる楽音波形生成演算を、該各楽音波形生成ブ
ロックに設定されたサンプリング周波数を基準にして行
うことを特徴とする請求項に記載の音源システム。
5. A tone waveform data generating means, comprising: for each tone waveform generating block, a sampling frequency setting means for setting a sampling frequency serving as a reference for tone waveform generating calculation executed by each tone waveform generating block. 5. The sound source system according to claim 4 , wherein the tone waveform generating operation of each tone waveform generating block is performed based on a sampling frequency set in each tone waveform generating block.
【請求項6】 楽音波形生成演算を行う、ソフトウェア
で構成された楽音波形生成ブロックを複数個組み合わせ
ることにより、複数の発音チャンネルの各チャンネル毎
に楽音波形データを生成する音源システムにおいて、 前記組み合わせられる楽音波形生成ブロックの個数およ
びその組合せ態様を決定するアルゴリズムを設定するア
ルゴリズム設定手段と、前記各楽音波形生成ブロック毎に、該各楽音波形生成ブ
ロックが実行する楽音波形生成演算の基準となるサンプ
リング周波数を設定するサンプリング周波数設定手段
と、 前記複数の発音チャンネルから楽音波形データを生成す
るチャンネルを選択する発音チャンネル選択手段と、 該選択された発音チャンネルに、前記設定されたアルゴ
リズムが示す楽音波形生成ブロックを割り当て、該割り
当てられた楽音波形生成ブロックを当該アルゴリズムが
示す組み合わせ態様で組み合わせ、該各楽音波形生成ブ
ロックに設定されたサンプリング周波数を基準にして楽
音波形生成演算を行い、楽音波形データを生成する楽音
波形データ生成手段とを有することを特徴とする音源シ
ステム。
6. A sound source system for generating musical tone waveform data for each of a plurality of tone generation channels by combining a plurality of musical tone waveform generating blocks configured by software for performing a musical tone waveform generating operation. Algorithm setting means for setting an algorithm for determining the number of musical tone waveform generation blocks and the combination thereof; and for each musical tone waveform generation block,
Samp that is the basis for the tone waveform generation operation performed by Lock
Sampling frequency setting means for setting the ring frequency
When a sound channel selection means for selecting a channel for generating musical tone waveform data from said plurality of tone generation channels, the sound channel is the selected, assigned tone waveform generation block indicated by the algorithm set, assigned the The tone waveform generation blocks are combined in the combination mode indicated by the algorithm, and each tone waveform generation block is combined .
A tone waveform data generating means for generating tone waveform data by performing tone waveform generation calculation on the basis of the sampling frequency set to the lock .
【請求項7】 前記アルゴリズム設定手段は、前記アル7. The algorithm setting means, wherein:
ゴリズムを音色毎に設定し、Set the algorithm for each tone, 前記楽音波形データ生成手段は、前記選択された発音チThe musical sound waveform data generating means is configured to select the selected one of the sound generation channels.
ャンネルには、当該チャンネルで生成すべき楽音波形デThe channel contains the sound waveform data to be generated in the channel.
ータの音色に対応して前記設定されたアルゴリズムが示The algorithm set above is indicated according to the data tone.
す楽音波形生成ブロックを割り当てることを特徴とするCharacteristic sound waveform generation block is assigned
請求項4乃至6のいずれかに記載の音源システム。The sound source system according to claim 4.
【請求項8】 曲の各演奏パート毎に、該各パートにそ
れぞれ設定された音色に対応するアルゴリズムが示す楽
音波形生成ブロックの削減態様を設定する削減態様設定
手段を有し、 前記ブロック数変更手段は、該設定された削減態様およ
び前記所定の条件に応じて楽音波形生成ブロックの個数
を変更することを特徴とする請求項記載の音源システ
ム。
8. A method for reducing the number of musical tone waveform generating blocks indicated by an algorithm corresponding to a tone color set for each part for each performance part of a song, wherein the number of blocks is changed. 3. The sound source system according to claim 2 , wherein the means changes the number of musical tone waveform generation blocks according to the set reduction mode and the predetermined condition.
【請求項9】 前記所定の条件は、当該発音チャンネル
において生成された楽音波形の音量エンベロープが減衰
したことであり、 前記ブロック数変更手段は、該楽音波形の音量エンベロ
ープが所定値以下に減衰したときに、その減衰に応じ
て、前記アルゴリズム設定手段により設定されたアルゴ
リズムが示す楽音波形生成ブロックの個数を減少させる
方向に変更することを特徴とする請求項2または4のい
ずれかに記載の音源システム。
9. The predetermined condition is that a volume envelope of a musical tone waveform generated in the sound channel is attenuated, and the block number changing unit attenuates the volume envelope of the musical tone waveform to a predetermined value or less. Occasionally, depending on the attenuation, claim 2 or 4 Neu and changes in the direction of decreasing the number of tone waveform generation block indicated algorithm set by the algorithm setting means
Sound source system of Zurekani described.
【請求項10】 前記所定の条件は、当該発音チャンネ
ルにおいて生成すべき楽音波形の音量が小さく設定され
ていることであり、 前記ブロック数変更手段は、当該楽音波形の音量が小さ
く設定されているときには、前記アルゴリズム設定手段
により設定されたアルゴリズムが示す楽音波形生成ブロ
ックの個数を減少させる方向に変更することを特徴とす
る請求項2または4のいずれかに記載の音源システム。
10. The predetermined condition is that the volume of a musical sound waveform to be generated in the sound channel is set to be low, and the block number changing means sets the volume of the musical sound waveform to be low. 5. The sound source system according to claim 2 , wherein the number of musical tone waveform generation blocks indicated by the algorithm set by the algorithm setting means is changed in a direction of decreasing the number.
【請求項11】 前記所定の条件は、当該発音チャンネ
ルに発音割り当てされた楽音波形生成ブロック中、その
出力レベルが所定値より小さいブロックがあることであ
り、 前記ブロック数変更手段は、出力レベルが所定値以下と
なった楽音波形生成ブロックが他の楽音波形生成ブロッ
クに影響を与えないものであるときには、当該楽音波形
生成ブロックの演算を停止することにより、当該アルゴ
リズムが示す楽音波形生成ブロックの個数を減少させる
方向に変更することを特徴とする請求項2または4のい
ずれかに記載の音源システム。
11. The predetermined condition is that, among the tone waveform generation blocks assigned to the sound channel, there is a block whose output level is smaller than a predetermined value. When the tone waveform generation block that has become equal to or less than the predetermined value does not affect other tone waveform generation blocks, the operation of the tone waveform generation block is stopped, and the number of tone waveform generation blocks indicated by the algorithm is reduced. 5. The method according to claim 2, wherein the value is changed in a direction of decreasing the value.
Sound source system of Zurekani described.
JP08246942A 1996-08-30 1996-08-30 Sound source system using computer software Expired - Fee Related JP3141789B2 (en)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP08246942A JP3141789B2 (en) 1996-08-30 1996-08-30 Sound source system using computer software
SG1997003053A SG67993A1 (en) 1996-08-30 1997-08-26 Sound source system based on computer software and method of generating acoustic waveform data
EP00123550A EP1087372A3 (en) 1996-08-30 1997-08-28 Sound source system based on computer software and method of generating acoustic data
DE69711518T DE69711518T2 (en) 1996-08-30 1997-08-28 Software-based sound source system and method for generating acoustic waveform data
EP97114933A EP0827132B1 (en) 1996-08-30 1997-08-28 Sound source system based on computer software and method of generating acoustic waveform data
US08/920,947 US5981860A (en) 1996-08-30 1997-08-29 Sound source system based on computer software and method of generating acoustic waveform data
US09/976,769 USRE41757E1 (en) 1996-08-30 2001-10-12 Sound source system based on computer software and method of generating acoustic waveform data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP08246942A JP3141789B2 (en) 1996-08-30 1996-08-30 Sound source system using computer software

Publications (2)

Publication Number Publication Date
JPH1074088A JPH1074088A (en) 1998-03-17
JP3141789B2 true JP3141789B2 (en) 2001-03-05

Family

ID=17156042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08246942A Expired - Fee Related JP3141789B2 (en) 1996-08-30 1996-08-30 Sound source system using computer software

Country Status (1)

Country Link
JP (1) JP3141789B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3322209B2 (en) * 1998-03-31 2002-09-09 ヤマハ株式会社 Sound source system and storage medium using computer software
JP4645597B2 (en) * 2007-01-09 2011-03-09 ヤマハ株式会社 Musical sound synthesis method, recording medium, and musical sound synthesizer
JP5557628B2 (en) * 2010-07-05 2014-07-23 本田技研工業株式会社 Control device

Also Published As

Publication number Publication date
JPH1074088A (en) 1998-03-17

Similar Documents

Publication Publication Date Title
USRE41757E1 (en) Sound source system based on computer software and method of generating acoustic waveform data
JP3235409B2 (en) Music system, sound source and tone synthesis method
JP3293434B2 (en) Tone generation method
EP0600639B1 (en) System and method for dynamically configuring synthesizers
JP2924745B2 (en) Musical sound generating apparatus and method
JP3372124B2 (en) Electronic musical instrument
JP3141789B2 (en) Sound source system using computer software
JP3223756B2 (en) Music systems and electronic musical instruments
JP2001005459A (en) Method and device for synthesizing musical sound
JP3296518B2 (en) Electronic musical instrument
US7728217B2 (en) Sound generator for producing a sound from a new note
JP2858120B2 (en) Electronic musical instrument
JPH06259064A (en) Electronic musical instrument
JP3003559B2 (en) Music generation method
JP3521871B2 (en) Tone generator and storage medium
JP3223827B2 (en) Sound source waveform data generation method and apparatus
JP2715795B2 (en) Musical sound synthesizer having pronunciation assigning means
JP3324409B2 (en) Music processing method and apparatus
JP2570819B2 (en) Electronic musical instrument
JPH10124050A (en) Electronic musical instrument
JP2858314B2 (en) Tone characteristic control device
JP3533967B2 (en) Tone signal generating device, computer readable recording medium on which a tone signal generating program is recorded
JP3705203B2 (en) Music generation method
JP2819999B2 (en) Effect giving device
JP2000089759A (en) Sound generation method

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: 20081222

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081222

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20091222

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20101222

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20101222

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20111222

Year of fee payment: 11

LAPS Cancellation because of no payment of annual fees