JPH1074088A - コンピュータソフトウェアを用いた音源システムおよび音響波形データ生成方法 - Google Patents

コンピュータソフトウェアを用いた音源システムおよび音響波形データ生成方法

Info

Publication number
JPH1074088A
JPH1074088A JP8246942A JP24694296A JPH1074088A JP H1074088 A JPH1074088 A JP H1074088A JP 8246942 A JP8246942 A JP 8246942A JP 24694296 A JP24694296 A JP 24694296A JP H1074088 A JPH1074088 A JP H1074088A
Authority
JP
Japan
Prior art keywords
tone
waveform
generating
data
tone waveform
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.)
Granted
Application number
JP8246942A
Other languages
English (en)
Other versions
JP3141789B2 (ja
Inventor
Yoshimasa Isozaki
善政 磯崎
Hideo Suzuki
秀雄 鈴木
Masahiro Shimizu
正宏 清水
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/ja
Priority to SG1997003053A priority patent/SG67993A1/en
Priority to EP00123550A priority patent/EP1087372A3/en
Priority to DE69711518T priority patent/DE69711518T2/de
Priority to EP97114933A priority patent/EP0827132B1/en
Priority to US08/920,947 priority patent/US5981860A/en
Publication of JPH1074088A publication Critical patent/JPH1074088A/ja
Application granted granted Critical
Publication of JP3141789B2 publication Critical patent/JP3141789B2/ja
Priority to US09/976,769 priority patent/USRE41757E1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 (修正有) 【課題】 ソフトウェアで実現する楽音波形生成ブロッ
クを組み合わせる音源システムにおいて、ブロックの組
み合わせを動的に変化させて演算の負荷の軽重と出力楽
音波形の品質の高低を変化させ、CPUの能力に柔軟に
対応する。 【解決手段】 演算対象オペレータmのサンプリング周
波数制定データFSAMPmの値に応じて振幅制御用E
Gを算出するAEGm演算がなされ(S93またはS9
4)、演算対象オペレータmに対する出力レベルAMP
mの演算がなされた(S95)後、その演算結果AEG
m,AMPmがチェックされ、そのチェック結果によ
り、演算対象オペレータmからの出力が必要か否かが判
別される(S97)。不必要であるときは、演算対象オ
ペレータmが「キャリア」であればには、mおよびmの
みを変調しているモジュレータの演算が停止され(S9
9)。キャリアでなくモジュレータであるならばmの演
算が停止される(S100)。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、ソフトウェアで記
述された楽音波形生成ブロックを組み合わせ、該各楽音
波形生成ブロックによりそれぞれなされる楽音波形生成
演算に基づいて楽音波形データを生成する音源システム
および音響波形データ生成方法に関する。
【0002】
【従来の技術】従来、たとえば波形メモリ音源方式やF
M音源方式等の各種楽音生成方式に応じて楽音を生成す
るときには、当該楽音生成方式を実現する回路を専用の
ハードウェア(たとえば音源専用LSIや固定されたマ
イクロプログラムに基づいて動作するDSP(Digital
Signal Processor)等)で構成していた。このように、
専用のハードウェアで構成した楽音生成装置やその楽音
生成方法を、以下、「ハード音源」という。
【0003】しかし、ハード音源では、専用のハードウ
ェアを必要とするため、製造コストをより低減させるこ
とは困難であり、また、設計後の仕様変更に柔軟に対応
することができないという問題があった。
【0004】これに対して、近年、CPUの演算能力の
向上に伴い、汎用コンピュータや専用の楽音発生装置に
搭載されたCPUに対して、所定の楽音生成処理手順を
記述したソフトウェアプログラムを実行させることによ
り、楽音波形データを生成させるようにしたものが開発
されている。このように、ソフトウェアプログラムを中
心に構成した楽音生成装置やその楽音生成方法を、以
下、「ソフト音源」という。
【0005】
【発明が解決しようとする課題】上記「従来の技術」に
おいても述べたように、コンピュータシステム、コンピ
ュータ応用機器でハード音源を用いるのは、コストの増
大を招いたり、仕様変更に対する柔軟性が乏しくなるな
どの問題があった。
【0006】また、ソフト音源とはいっても、従来使わ
れてきた音源LSIなどの専用ハードウェアやデバイス
の機能をそのまま単純にソフトフェア化しただけのソフ
ト音源では、設計後の仕様変更にハード音源より柔軟に
対応することができるものの、発音中、すなわち音源動
作中に発生する各種要請、たとえばCPUの能力やシス
テム環境からの要請およびユーザの好みや設定等の要請
に柔軟に応えることができなかった。具体的には、出力
された楽音波形の精度の変更(高精度への変更のみなら
ず低精度への変更をも含む)やその音色変化の程度の変
更(たとえば通常の音色変化より微妙な音色変化への変
更やその逆方向への音色変化へ変更)等の要請に常に応
えることできなかった。
【0007】本発明は、上記問題に鑑みてなされたもの
で、特別な専用ハードウェアを追加せずにソフトウェア
プログラムで楽音生成を行うことによりコストを低減化
させるとともに、その用途、動作環境、目的および設定
等に応じて楽音生成の演算処理に対する演算手段の負荷
の軽重および出力楽音波形の品質の高低を変更すること
が可能なコンピュータソフトウェアを用いた音源システ
ムおよび音響波形データ生成方法を提供することを目的
とする。
【0008】
【課題を解決するための手段】上記目的を達成するた
め、本発明の音源システムは、楽音波形生成演算を行
う、ソフトウェアで構成された楽音波形生成ブロックを
複数個組み合わせることにより、複数の発音チャンネル
の各チャンネル毎に楽音波形データを生成する音源シス
テムにおいて、前記組み合わせられる楽音波形生成ブロ
ックの個数およびその組合せ態様を決定するアルゴリズ
ムを設定するアルゴリズム設定手段と、前記複数の発音
チャンネルから楽音波形データを生成するチャンネルを
選択する発音チャンネル選択手段と、該選択された発音
チャンネルに、前記設定されたアルゴリズムが示す楽音
波形生成ブロックを割り当て、該割り当てられた楽音波
形生成ブロックを当該アルゴリズムが示す組み合わせ態
様で組み合わせて楽音波形生成演算を行い、楽音波形デ
ータを生成する楽音波形データ生成手段とを有すること
を特徴とする。
【0009】また、楽音波形生成演算を行う、ソフトウ
ェアで構成された楽音波形生成ブロックを複数個組み合
わせることにより、複数の発音チャンネルの各チャンネ
ル毎に異なった音色の楽音波形データを生成する音源シ
ステムにおいて、前記組み合わせられる楽音波形生成ブ
ロックの個数およびその組合せ態様を前記音色毎に決定
するアルゴリズムを設定するアルゴリズム設定手段と、
前記複数の発音チャンネルから楽音波形データを生成す
るチャンネルを選択する発音チャンネル選択手段と、該
選択された発音チャンネルに、当該生成すべき楽音波形
データの音色に対応して前記設定されたアルゴリズムが
示す楽音波形生成ブロックを割り当て、該割り当てられ
た楽音波形生成ブロックを当該アルゴリズムが示す組み
合わせ態様で組み合わせて楽音波形生成演算を行い、楽
音波形データを生成する楽音波形データ生成手段とを有
することを特徴とする。
【0010】好ましくは、曲の各演奏パート毎に音色を
設定する音色設定手段と、該各演奏パート毎に前記組み
合わせられる楽音波形生成ブロックの個数を設定するブ
ロック数設定手段と、前記音色設定手段により音色が設
定されるときに、当該演奏パートに前記ブロック数設定
手段により楽音波形生成ブロック数が設定されている場
合には、当該演奏パートに設定された音色を、該設定ブ
ロック数の範囲内の楽音波形生成ブロックを備えた音色
に変更する音色変更手段とを有することを特徴とする。
【0011】また、好ましくは、前記発音チャンネルに
おける楽音波形生成演算中に、所定の条件に応じて、当
該発音チャンネルに割り当てられた楽音波形生成ブロッ
クの個数を変更するブロック数変更手段を有することを
特徴とする。
【0012】また、好ましくは、曲の各演奏パート毎
に、該各パートにそれぞれ設定された音色に対応するア
ルゴリズムが示す楽音波形生成ブロックの削減態様を設
定する削減態様設定手段を有し、前記ブロック数変更手
段は、該設定された削減態様および前記所定の条件に応
じて楽音波形生成ブロックの個数を変更することを特徴
とする。
【0013】さらに、好ましくは、前記所定の条件は、
当該発音チャンネルにおいて生成された楽音波形の音量
エンベロープが減衰したことであり、前記ブロック数変
更手段は、該楽音波形の音量エンベロープが所定値以下
に減衰したときに、その減衰に応じて、前記アルゴリズ
ム設定手段により設定されたアルゴリズムが示す楽音波
形生成ブロックの個数を減少させる方向に変更すること
を特徴とする。
【0014】また、さらに好ましくは、前記所定の条件
は、当該発音チャンネルにおいて生成すべき楽音波形の
音量が小さく設定されていることであり、前記ブロック
数変更手段は、当該楽音波形の音量が小さく設定されて
いるときには、前記アルゴリズム設定手段により設定さ
れたアルゴリズムが示す楽音波形生成ブロックの個数を
減少させる方向に変更することを特徴とする。
【0015】さらに、前記所定の条件は、当該発音チャ
ンネルに発音割り当てされた楽音波形生成ブロック中、
その出力レベルが所定値より小さいブロックがあること
であり、前記ブロック数変更手段は、出力レベルが所定
値以下となった楽音波形生成ブロックが他の楽音波形生
成ブロックに影響を与えないものであるときには、当該
楽音波形生成ブロックの演算を停止することにより、当
該アルゴリズムが示す楽音波形生成ブロックの個数を減
少させる方向に変更することを特徴とする。
【0016】また、好ましくは、前記各楽音波形生成ブ
ロック毎に、該各楽音波形生成ブロックが実行する楽音
波形生成演算の基準となるサンプリング周波数を設定す
るサンプリング周波数設定手段を有し、前記楽音波形デ
ータ生成手段は、前記各楽音波形生成ブロックによる楽
音波形生成演算を、該各楽音波形生成ブロックに設定さ
れたサンプリング周波数を基準にして行うことを特徴と
する。
【0017】また、本発明の音響波形データ生成方法
は、所定の波形演算アルゴリズムを実行することによ
り、音響波形データを生成する音響波形データ生成方法
において、前記波形演算アルゴリズムを実行する演算部
に関する所定の条件に応じて、前記音響波形データの生
成に関するサンプリング周波数が変更されるようにした
ことを特徴とする。
【0018】さらに、複数ステップから成る所定の波形
演算アルゴリズムを実行しその各ステップにおける演算
結果に基づいて、音響波形データを生成する音響波形デ
ータ生成方法において、実行される前記波形演算アルゴ
リズム内での演算結果に応じてサンプリング周波数が変
更されるようにしたことを特徴とする。
【0019】
【発明の実施の形態】以下、本発明の実施の形態を図面
に基づいて詳細に説明する。
【0020】図1は、本発明の実施の一形態に係る音源
システムが備えたソフトウェアのシステム構成の一例を
示す図であり、同図に示すように、本ソフトウェアシス
テムは、OSを介して、すなわちOS側で楽音波形デー
タを生成するように構成されている。なお、同図には、
OS側で生成されたデジタル楽音信号(楽音波形デー
タ)をアナログ楽音信号に変換するDAC(Digital to
Analog Converter)を含むcodecハードウェアも
図示されている。
【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)に出力する。
【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ハードウェ
ア)に対して出力する処理を行うソフトウェアにより構
成される。
【0023】シーケンスソフトAPS1が出力したMI
DIメッセージは、第1のインターフェースIF1およ
びOSを介してソフトウェア音源モジュールSSMの入
力インターフェースに供給され、ソフトウェア音源モジ
ュールSSMでは、受け取ったMIDIメッセージに基
づく楽音波形データ生成処理(本実施の形態では、楽音
波形データはFM音源方式により生成される)が実行さ
れ、この生成された楽音波形データは、第2のインター
フェースIF2およびOSを介して出力デバイスOUD
に供給される。出力デバイスOUDでは、供給された生
成済みデジタル楽音波形データが前記codecハード
ウェアに出力されて、アナログ楽音信号に変換される。
【0024】このように、本実施の形態では、楽音波形
データを生成するためのソフトウェア音源モジュールS
SMとMIDIメッセージを出力するためのアプリケー
ションソフトウェアであるシーケンスソフトAPS1と
をOSレベルで簡単に組み合わせることができるように
したので、楽音波形データを生成するための専用のハー
ドウェアを追加する必要がなく、これによりコストを低
減させることができる。
【0025】図2は、本実施の形態の音源システムを実
現するハードウェアの概略構成を示す図である。本シス
テムは、汎用のパーソナルコンピュータにより実現さ
れ、そのメイン制御部としてはCPU3が使用され、該
CPU3の制御の下で、ソフトウェア音源プログラムに
よる楽音波形データ生成処理と該楽音波形データ生成処
理以外のその他のプログラム処理とが並行して実行され
る。
【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を介して接続されている。
【0027】DMAコントローラ11は、楽音生成処理
の実行により生成され、RAM5内の出力バッファに書
き込まれた楽音データを、DAC12に内包されるデー
タバッファ(図示せず)の空き状態などに応じてダイレ
クトメモリアクセス方式で出力バッファから直接読み出
してDAC12の内包データバッファに転送する処理
(再生処理)を実行するものである。DAC12でアナ
ログ変換された楽音データは、サウンドシステム13に
送られ、該システム13により音響に変換される。
【0028】ハードディスク装置10内のハードディス
クには、前記OSやユーティリティソフト等のソフトウ
ェアの他に、ソフトウェア音源を実現するためのソフト
ウェア(すなわち前記ソフトウェア音源モジュールSS
M)と、その他のアプリケーションソフト(すなわち前
記シーケンスソフトAPS1)が記憶されている。
【0029】前記出力デバイスOUDは、ソフトウェア
音源モジュールSSMからOSレベルの前記第2のイン
ターフェースIF2を介して供給された楽音データをD
AC12に送るモジュールに相当する。前述のように、
DMAコントローラ11がダイレクトメモリアクセス方
式で楽音データをDAC12に送るようになっているの
で、出力デバイスOUDは、CPU3の制御の下で、D
MAコントローラ11による割込み処理として実行され
る。
【0030】通信I/F14は、LAN(ローカルエリ
アネットワーク)やインターネット、電話回線等の通信
ネットワーク101に接続されており、該通信ネットワ
ーク101を介して、サーバコンピュータ102と接続
される。ハードディスク装置10内のハードディスクに
上記各プログラムや各種パラメータが記憶されていない
場合には、通信I/F14は、サーバコンピュータ10
2からプログラムやパラメータをダウンロードするため
に用いられる。クライアントとなるコンピュータ(本実
施の形態の音源システム)は、通信I/F14及び通信
ネットワーク101を介してサーバコンピュータ102
へとプログラムやパラメータのダウンロードを要求する
コマンドを送信する。サーバコンピュータ102は、こ
のコマンドを受け、要求されたプログラムやパラメータ
を、通信ネットワーク101を介してコンピュータへと
配信し、コンピュータが通信I/F101を介して、こ
れらプログラムやパラメータを受信してハードディスク
装置10内のハードディスクに蓄積することにより、ダ
ウンロードが完了する。
【0031】この他、外部コンピュータ等との間で直接
データのやりとりを行うためのインターフェースを備え
てもよい。
【0032】次に、ソフトウェア音源モジュールSSM
によるFM音源方式を用いた楽音生成処理の概要を、図
3〜6を参照して説明する。
【0033】シーケンスソフトAPS1が起動される
と、ソフトウェア音源モジュールSSMにMIDIメッ
セージが供給され始める。この供給は、前述したよう
に、第1のインターフェースIF1およびOSを介し
て、ソフトウェア音源モジュールSSMの入力インター
フェース(以下、「ソフト音源インターフェース」とい
う)に対してなされ、これに応じて、ソフトウェア音源
モジュールSSMは、その供給されたMIDIメッセー
ジのMIDIチャンネル(演奏パート)に割り当てられ
たボイスデータ(本実施の形態では、音色番号)に基づ
いて、楽音パラメータVOICEj(その詳細は後述す
る)を生成し、該楽音パラメータVOICEjを発音チ
ャンネル(発音割り当てされたチャンネル)に対応する
音色レジスタに格納する。
【0034】図6は、発音チャンネルに対応して設けら
れた音色レジスタ群を示す図であり、発音チャンネル
が、たとえば32チャンネル確保されているときには、
この音色レジスタ群は32個の音色レジスタTONEP
ARk(k=1,…,32)により構成される。なお、
発音チャンネル数は、これに限る必要はなく、CPU3
の演算処理能力に応じて任意に設定することができる。
【0035】同図において、たとえば発音チャンネルが
チャンネルnである場合には、前記楽音パラメータVO
ICEjは、音色レジスタTONEPARn中、該楽音
パラメータVOICEjを格納する領域に格納される。
換言すれば、これらの音色レジスタTONEPARkに
より構成される音色レジスタ群がソフトウェア音源モジ
ュールSSMの前記ソフト音源インターフェースの一部
をなしている。
【0036】なお、後述するように、各音色レジスタT
ONEPARkには、楽音パラメータVOICEkだけ
ではなく、たとえば、ソフトウェア音源モジュールSS
Mが当該楽音パラメータVOICEkに対応するMID
Iメッセージを受信した時刻を示すデータTMも格納さ
れ、フレーム内での楽音のキーオン、キーオフあるいは
各種制御の開始、終了の時間位置を決めるための情報と
なる。
【0037】図3に戻り、ソフトウェア音源モジュール
SSMは、CPU3の制御の下で、基本的には、所定の
時間長の区間(以下、「フレーム」という)毎に設定さ
れる起動機会に応じて起動され、その直前のフレーム内
に供給されたMIDIメッセージに基づく楽音生成処理
を、上記音色レジスタTONEPARnに格納された楽
音パラメータVOICEnに従って実行する。たとえ
ば、図3において、時刻t1からt2までのフレーム内
に供給されたMIDIメッセージに基づく楽音生成処理
は、時刻t2からt3までのフレームで実行する。
【0038】このようにして、楽音生成処理(その処理
方法については、後述する)により1フレーム分の楽音
波形データが生成されると、この楽音波形データはRA
M5の前記出力バッファに書き込まれ、該書き込まれた
データの再生が前記出力デバイスOUDに予約される。
この出力デバイスOUDに予約することが、生成した楽
音波形データをソフトウェア音源モジュールSSMから
OSレベルの前記第2のインターフェース(“WAVE out
API”)に出力することに相当する。
【0039】出力デバイスOUDは、各フレーム毎に、
その直前のフレームで再生予約された出力バッファから
楽音波形データを1サンプルずつ読み出して前記DAC
12に出力する。たとえば、図3に示すように、時刻t
2からt3までのフレームで生成され、出力バッファに
書き込まれて再生予約された楽音波形データは、時刻t
3からt4までのフレームで読み出されて再生される。
【0040】次に、図4を用いて、楽音パラメータVO
ICEnに従った楽音生成処理、すなわちFM音源方式
を用いた楽音生成処理の概要を説明する。なお、この楽
音生成処理の詳細は、図14〜19を用いて後述する。
【0041】図4は、FM音源方式による楽音生成処理
の概要を説明するための図であり、同図(a)〜(c)
には、3種類の異なった楽音生成処理方法が図示されて
いる。
【0042】図4に示すように、FM音源方式による楽
音生成は、「キャリア」と呼ばれるオペレータと「モジ
ュレータ」と呼ばれるオペレータの2種類のオペレータ
を組み合わせることによって行われ、生成すべき楽音波
形の種類や品質等に応じて組み合わせられるオペレータ
の個数や接続順序(接続態様)が異なる。この各オペレ
ータのつなぎ方を「アルゴリズム」と呼んでいる。
【0043】ここで、オペレータとは、音作り、すなわ
ち楽音生成処理の単位となるブロックをいい、具体的に
は、たとえば図5に示す音作りの基本となる各種波形デ
ータ(以下、「基本波形データ」という)から、後述す
るウェーブセレクトパラメータWSELに応じて選択さ
れた1つの基本波形データを、入力データ(たとえばピ
ッチデータおよび変調データ)に基づいて(入力データ
がピッチデータおよび変調データの2種類のデータであ
る場合には、たとえば該各データを加算した加算結果に
基づいて)読み出した後にその振幅を調整して出力する
処理ブロックをいう。そして、「キャリア」とは、生成
すべき楽音波形の基準となる楽音波形を生成するオペレ
ータを云い、「モジュレータ」とは、「キャリア」を変
調するためのオペレータ、すなわち「キャリア」に入力
される前記変調データを生成するオペレータを云う。
【0044】なお、アルゴリズムは、図4に示す3種類
に限られないことは云うまでもない。
【0045】次に、前記楽音パラメータVOICEjの
データフォーマットについて説明する。
【0046】図7は、この楽音パラメータVOICEj
のデータフォーマットを示す図であり、(a)は、楽音
パラメータVOICEjのデータフォーマットを示し、
(b)は、(a)の各オペレータデータOPmDATA
jのデータフォーマットを示し、(c)は、(b)の各
オペレータバッファOPBUFmのデータフォーマット
を示している。
【0047】(a)に示すように、楽音パラメータVO
ICEjは、キーオン/オフをそれぞれ“1”/“0”
で示すキーオンデータKEYONjと、当該MIDIメ
ッセージ(すなわち、対応するノートオンイベント)に
含まれる音高情報に応じて決定される周波数ナンバ(具
体的には、位相レートで表される)FNOjと、前記ア
ルゴリズムを指定するアルゴリズム指定データALGO
Rjと、当該MIDIチャンネルに設定された音量(た
とえば、MIDIメッセージの「コントロールチェンジ
#7イベント」により設定される)に応じて決定される
音量データVOLjと、当該MIDIメッセージ中のタ
ッチベロシティ情報に応じて決定されるタッチベロシテ
ィデータVELjと、各構成オペレータにおいて楽音生
成演算を行うために必要なデータおよびその演算結果を
格納するバッファから成るオペレータデータOPkDA
TAj(k=1,…,m)とにより構成されている。
【0048】なお、(a)の楽音パラメータVOICE
jには、前記ROM4、RAM5またはハードディスク
等に予め記憶されたデータを読み出したデータとMID
Iメッセージ中のデータに応じて決定されるデータの2
種類のデータが混在している。MIDIメッセージ中の
データに応じて決定されるデータは、上述のように、キ
ーオンデータKEYONj、周波数ナンバFNOj、音
量データVOLjおよびタッチベロシティデータVEL
jであり、ROM4等から読み出されたデータは、アル
ゴリズム指定データALGORjおよびオペレータデー
タ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とにより構成される。
【0050】ここで、サンプリング周波数指定データF
SAMPmには、“0”以上の整数値fが格納され、標
準モードにおけるサンプリング周波数FSMAX(たと
えば44.1kHz)を2-f倍に変更することができ
る。たとえば、f=0のときには、標準モードのサンプ
リング周波数FSMAXでオペレータmにおける楽音波
形が生成され、f=1のときには、FSMAX/2のサ
ンプリング周波数でオペレータmにおける楽音波形が生
成される。
【0051】また、オペレータ優先度データOPPRI
Omには、楽音パラメータVOICEjを構成する全オ
ペレータk(k=1,…,m)におけるオペレータmの
波形演算処理の優先度を示すデータ(たとえば波形演算
処理を行う順序を示す番号)が格納され、この優先度に
応じて各オペレータの演算順序が決定され、波形演算処
理がなされる。しかし、これに限らず、たとえばCPU
3の能力や負荷状態を確認できるようにし、この結果、
CPU3が音源処理をする余裕がない場合には、優先度
の低いオペレータの演算処理を省略するようにしてもよ
い。さらに、本実施の形態では、演算処理の優先度は、
音色に応じて設定するようにしたが、これに限らず、た
とえばMIDIチャンネルに応じて設定するようにして
もよい。要するに、優先度としては、何らかの基準に従
って設定したものを選択して設定し、該優先度を発音時
に使用するようにすればよい。たとえば、優先度が音色
に応じて設定されていない場合には、前記音色レジスタ
TONEPARnに展開された音色パラメータの各オペ
レータ優先度データOPPRIOmを、その優先度に応
じて決定しするようにすればよい。また、オペレータ優
先度データOPPRIOmは、オペレータmを使用する
/しないの設定として扱うことにしてもよい。
【0052】なお、本実施の形態では、サンプリング周
波数は、上記サンプリング周波数指定データFSAMP
mにより、各オペレータm毎に設定することができるよ
うに構成したが、これに限らず、「キャリア」および
「モジュレータ」という2種類の範疇毎にそれぞれ設定
するようにしてもよい。たとえば、「キャリア」は、前
記周波数FSMAXとし、「モジュレータ」は、その1
/2倍(=FSMAX/2)の周波数とした場合には、
当該音色パラメータのアルゴリズムの内容をチェック
し、組み合わせられるオペレータに対して、それぞれの
サンプリング周波数を設定すればよい。また、CPU3
の負荷状態をチェックし、その負荷状態に応じて、適宜
サンプリング周波数を増大または低下させるようにして
もよい。
【0053】前記バッファOPBUFmは、(c)に示
すように、オペレータmにより波形演算を行うこと、す
なわちオペレータmがオンであることを“1”で示すオ
ペレータオンパラメータOPONmと、オペレータmが
実行する波形演算処理(図14および15を用いて後述
する)の位相演算処理により算出された位相値を格納す
る位相値バッファPHBUFmと、該波形演算処理のフ
ィードバックサンプル演算処理により算出されるフィー
ドバック出力値を格納するフィードバック出力値バッフ
ァFBmと、前記変調データ(このデータは上記位相演
算処理において使用する)を格納する変調データ入力バ
ッファMODINmと、オペレータmにより生成された
楽音波形、すなわち出力値を格納するオペレータ出力値
バッファOPOUTmと、上記波形演算処理の振幅制御
用EGを算出する演算処理(以下、「AEG演算処理」
という)により算出された各EGパラメータを格納する
EG状態バッファEGSTATEmとにより構成されて
いる。
【0054】図8は、各MIDIチャンネル毎、すなわ
ち各パート毎に選択設定されたボイス(音色)データ
(本実施の形態では、楽音パラメータVOICEnの音
色番号)を記憶するMIDI-CHボイステーブルを示
す図である。
【0055】同図に示すように、本実施の形態では、M
IDIチャンネルは16個のチャンネルで構成され、各
チャンネル、すなわち各パートにはそれぞれ異なった音
色を設定することができるので、本実施の形態の音源シ
ステムは、最大16種類の音色の楽音を生成することが
できる。そして、このMIDI-CHボイステーブルに
は、各チャンネル毎に選択された音色に対応する音色番
号、すなわち前記楽音パラメータVOICEnに付与さ
れた番号が格納される。
【0056】なお、MIDI-CHボイステーブルは、
前記RAM5の所定領域に確保され、そのテーブルデー
タ、すなわち音色番号は、前記各MIDIファイルに対
応して予めハードディスク等に格納され、ユーザが選択
したMIDIファイルが、RAM5の所定位置に確保さ
れた演奏データ格納領域にロードされると同時に、該M
IDIファイルに対応するテーブルデータもMIDI-
CHボイステーブルにロードされる。もちろんこれに限
らず、ユーザが最初から任意に設定できるようにしても
よいし、曲に標準の音色(番号)が予め設定され、この
テーブルデータがMIDI-CHボイステーブルにロー
ドされた後に、ユーザが任意に変更することができるよ
うにしてもよい。
【0057】前述のように、MIDIメッセージが1つ
ずつシーケンシャルに生成され、ソフトウェア音源モジ
ュールSSMにより、このMIDIメッセージが認識さ
れると、ソフトウェア音源モジュールSSMは、該MI
DIメッセージのMIDIチャンネルに割り当てられた
音色番号を前記MIDI-CHボイステーブルから検索
する。たとえば、該MIDIメッセージのMIDIチャ
ンネルが「2CH」のときには、MIDI-CHボイス
テーブルの2番目の位置VOICENO2に格納された
音色番号が検索される。
【0058】音色番号jが検索されると、ソフトウェア
音源モジュールSSMは、前述したように、楽音パラメ
ータVOICEjを生成する。すなわち、基本データを
ROM4等から読み出すとともに、その他のパラメータ
を当該MIDIメッセージから決定して、前記図7に示
す楽音パラメータVOICEjを作成する。そして、ソ
フトウェア音源モジュールSSMは、このようにして作
成された楽音パラメータVOICEjを、図6に示す音
色レジスタ群中、発音割り当てされた発音チャンネルに
対応する音色レジスタ(たとえば音色レジスタTONE
PARn)に展開する。
【0059】以上のように構成された音源システムが実
行する制御処理を、以下、図9〜20を参照して説明す
る。
【0060】図9は、本実施の形態の音源システム、特
にCPU3が実行する初期プログラム、すなわちユーザ
が音源システムの電源を投入したときやリセットスイッ
チを押下したときに実行されるプログラムの手順を示す
フローチャートである。
【0061】同図において、まず、各種ポートのリセッ
トやRAM5およびディスプレイ9内の図示しないVR
AM(ビデオRAM)のクリア等のシステムの初期化を
行う(ステップS1)。
【0062】次に、前記OSのプログラムを、たとえば
前記ハードディスク装置10のハードディスクから読み
出してRAM5の所定領域にロードし、該OSプログラ
ムを起動した(ステップS2)後に、次のメインプログ
ラムへ移行する。
【0063】図10は、上記初期プログラムに続いてC
PU3が実行するメインプログラムの手順を示すフロー
チャートであり、本メインプログラムは、ソフトウェア
音源モジュールSSMのプログラムのメインルーチンで
ある。
【0064】同図において、まず、RAM5中、ソフト
ウェア音源モジュールSSMで使用される領域(図6の
音色レジスタ群を含む)のクリアや、ハードディスク装
置10のハードディスクに記憶されている各種基本波形
データ(たとえば図5の各種基本波形データ)をRAM
5の所定領域にロードする等の初期設定を行う(ステッ
プS11)。
【0065】次に、ディスプレイ9に、処理の進行に応
じた情報を表示したり、主としてマウス7により選択さ
れる各種アイコン等を表示したりする基本ディスプレイ
表示を実行する(ステップS12)。
【0066】そして、下記の各起動要因の発生をチェッ
クする(ステップS13)。
【0067】起動要因1:前記シーケンスソフトAPS
1が起動され、MIDIメッセージがソフトウェア音源
モジュールSSMに供給されたこと。
【0068】起動要因2:ソフトタイマにより、波形演
算処理(ソフトウェア音源モジュールSSMによりなさ
れる)の実行を起動する内部割込信号(起動信号)が発
生したこと。
【0069】起動要因3:前記codecハードウェア
から、前記出力バッファに格納された楽音波形データを
codecハードウェア内の図示しないバッファに転送
する要求があったこと。
【0070】起動要因4:ユーザがマウス7やキーボー
ド8等の入力操作子を操作し、その操作イベントが検出
されたこと、または他の起動要因が発生していないこ
と。
【0071】起動要因5:ユーザがメインルーチンを終
了する操作処理を行い、この操作イベントが検出された
こと。
【0072】続くステップS14では、上記起動要因1
〜5のうちいずれかが発生したか否かを判別する。
【0073】ステップS14の判別の結果、「起動要因
1」が発生したときにはステップS16に進み、図11
および12を用いて後述するMIDI処理サブルーチン
を実行し、「起動要因2」が発生したときにはステップ
S17に進み、図14および15を用いて後述する波形
演算処理サブルーチンを実行し、「起動要因3」が発生
したときにはステップS18に進み、前記出力バッファ
に格納された楽音波形データを前記codecハードウ
ェアのバッファに転送し、「起動要因4」が発生したと
きにはステップS19に進み、音色設定イベントが発生
した場合には図19を用いて後述する音色設定処理サブ
ルーチンを実行するとともに、その他イベントが発生し
た場合には当該イベントに対応するその他処理を実行
し、「起動要因5」が発生したときにはステップS21
に進み、たとえばディスプレイ9の表示を本メインプロ
グラムが起動される前の状態に戻す等の終了処理を実行
する。
【0074】そして、上記ステップS16〜S21のい
ずれかを終了した後は、前記ステップS12に戻り前述
の処理を繰り返す。
【0075】図11および12は、前記ステップS16
のMIDI処理サブルーチンの詳細な手順を示すフロー
チャートである。
【0076】同図において、まず、ソフトウェア音源モ
ジュールSSMの前記ソフト音源インターフェースAP
Iを介してMIDIイベント(MIDIメッセージ)が
入力されたか否かをチェックする(ステップS31)。
【0077】シーケンスソフトAPS1からMIDIメ
ッセージが出力されると、該MIDIメッセージは、前
記第1のインターフェースIF1およびOSにより所定
の変換がなされた後に、ソフト音源APIを介してRA
M5の所定位置に確保されたMIDIイベントバッファ
に転送される。この転送に応じて、ソフトウェア音源モ
ジュールSSMは、「起動要因1」が発生したと判断し
て、CPU3の制御をステップS15からS16に移行
させる。ここまでの処理は、前記ステップS20のその
他処理で行われるので、ステップS31では、このMI
DIイベントバッファに格納されているイベントをチェ
ックすることにより、イベントの発生をチェックしてい
る。
【0078】次に、ステップS32では、MIDIイベ
ントがノートオンイベントであるか否かを判別し、ノー
トオンイベントのときにはステップS33に進む一方、
ノートオンイベントでないときには図12のステップS
40に進む。
【0079】ステップS33では、当該ノートオンイベ
ントデータを解析し、ノートナンバ、ベロシティ値およ
びパートナンバ(すなわちMIDIチャンネルの番号)
の各データを、それぞれRAM5の所定位置に確保され
たレジスタNN,VEL,pに格納するとともに、当該
ノートオンイベントが発生した時刻を示すデータをRA
M5の所定位置に確保されたレジスタTMに格納する。
以下、レジスタNN,VEL,p,TMの内容を、それ
ぞれノートナンバNN、ベロシティVEL、パートpお
よび時刻TMという。
【0080】続くステップS34では、ベロシティVE
Lが所定値VEL1以下であり、かつ(&)音量データ
VOLpが所定値VOL1以下であるか否かを判別す
る。ここで、VOLpは、RAM5の所定位置に確保さ
れた領域VOLpに格納されたパートpの音量データを
示し、この値は、前記図7で説明したように、MIDI
イベントのコントロールチェンジ#7イベントにより変
更される。この変更処理は、コントロールチェンジ#7
イベントが発生したときに、前記ステップS20のその
他処理で行われる。
【0081】ステップS34で、VEL≦VEL1&V
OL≦VOL1のときには、パートpの音色に近い音色
で、オペレータ数、すなわち前記キャリアおよびモジュ
レータの総数の小さいアルゴリズムの音色に置き換え
る、すなわち前記MIDI-CHボイステーブルのパー
トpの位置VOICENOpに格納された音色番号をそ
の代替アルゴリズムを有する楽音パラメータVOICE
の音色番号に置き換える(ステップS35)一方、VE
L>VEL1またはVOL>VOL1のときには、ステ
ップS35をスキップしてステップS36に進む。
【0082】なお、本実施の形態では、ステップS35
の処理を行うか否かを、ベロシティVELおよびボリュ
ームVOLの各値に応じて判別したが、これに限らず、
たとえば、CPU3の負荷状態を検出し、この検出結果
に応じて判別するようにしてもよい。
【0083】ステップS36では、当該ノートオンイベ
ントに基づく発音割り当て処理を行い、該割り当てられ
た発音チャンネルのチャンネル番号を、RAM5の所定
位置に確保されたレジスタnに格納する。以下、レジス
タnに格納された内容を発音チャンネルnという。
【0084】続くステップS37では、前記図8のMI
DI-CHボイステーブルを検索し、パートpの位置V
OICENOpの音色データ(音色番号)を、前記ノー
トナンバNNおよびベロシティVELに応じて発音音色
パラメータ(楽音パラメータ)に変換する。たとえば、
位置VOICENOpに音色番号jが格納されている場
合には、前記図7で説明した楽音パラメータVOICE
jが生成される。そして、楽音パラメータVOICEj
の各オペレータデータOPmDATAj内のバッファO
PBUFmを初期化、すなわちクリアする。
【0085】次に、ステップS38では、ステップS3
7で生成した楽音パラメータVOICEjを時刻TMと
ともに発音チャンネルnに対応する前記音色レジスタT
ONEPARnに転送(展開)し、かつ該音色レジスタ
TONEPARn中のキーオンデータKEYONnおよ
び各オペレータオンパラメータOPONmをそれぞれ
“1「オン」”を設定にする。
【0086】さらに、ステップS39では、ノートオン
イベントの発生時刻が遅い順序に楽音生成演算が行われ
るように、発音割り当てされた各発音チャンネル間で演
算順序を決定する。具体的には、この決定された演算順
序に従ってチャンネル番号を並べ替え、RAM5の所定
位置に確保された図13に示すCHシーケンスレジスタ
CHSEQに記憶する。その後、本MIDI処理を終了
する。
【0087】図12のステップS40では、MIDIイ
ベントがノートオフイベントであるか否かを判別し、ノ
ートオフイベントのときにはステップS41に進む一
方、ノートオフイベントでないときにはステップS44
に進む。
【0088】ステップS41では、当該ノートオフイベ
ントデータを解析し、そのノートナンバを前記レジスタ
NNに格納するとともに、当該ノートオフイベントが発
生した時刻を示すデータを前記レジスタTMに格納す
る。
【0089】続くステップS42では、ノートナンバN
Nが発音割り当てされている発音チャンネルをサーチ
し、そのチャンネル番号を、RAM5の所定位置に確保
されたレジスタi(以下、この値を「発音チャンネル
i」という)に格納する。
【0090】そして、ステップS43では、発音チャン
ネルiに対応する音色レジスタTONEPARiにキー
オフを指定する、すなわち時刻TMに応じたタイミング
でのノートオフの予約を行った後に、本MIDI処理を
終了する。
【0091】ステップS44では、MIDIイベントが
プログラムチェンジイベント(音色を変更するためのイ
ベント)であるか否かを判別し、プログラムチェンジイ
ベントのときには、前記MIDI-CHボイステーブル
中、当該受信したプログラムチェンジイベントが指定す
るパートp(このパートpは、前記ステップS33で格
納されたパート番号であるとは限らない)に対応する位
置VOICENOpのデータを、当該受信したプログラ
ムチェンジイベントが指定する変更値PCHNGに変更
した後に本MIDI処理を終了する一方、MIDIイベ
ントがプログラムチェンジイベントでないときには、当
該MIDIイベントに対応するその他イベント対応処理
を実行した後に本MIDI処理を終了する。
【0092】なお、本MIDI処理では、MIDI-C
Hボイステーブルに複数パートに対応する音色が指定さ
れ、当該指定されたパートのノートオンイベントが発生
したときには、当該パートの音色の楽音を生成して発音
する、いわゆるマルチ音色動作仕様を採用しているが、
これに限らず、ある特定のパートのノートオンイベント
のみを受け付け、その対応の音色の楽音を生成して発音
する、いわゆるシングル音色モードを選択できるように
してもよい。
【0093】図14および15は、前記図10のステッ
プS17の波形演算処理サブルーチンの詳細な手順を示
すフローチャートである。
【0094】同図において、まず、楽音波形バッファの
初期化を行う(ステップS51)。ここで、楽音波形バ
ッファとは、前記出力バッファ領域から前記再生予約さ
れた領域(バッファ)を除いた領域中の、今回生成する
1フレーム時間分の領域(バッファ)をいう。そして、
その楽音波形バッファの初期化とは、当該領域を出力バ
ッファ上に確保し、その領域をクリアすることをいう。
【0095】次に、CPU3の負荷状態をチェックし
(ステップS52)、波形演算処理を実行可能な最大チ
ャンネル数CHmaxを決定する(ステップS53)。
ここで、CPU3の負荷状態のチェックは、OSがCP
U3の負荷状態を常にチェックしている場合にはこの情
報を利用して行えばよいし、一方、OSがCPU3の負
荷状態をチェックしていない場合には、前記図10のメ
インプログラムを1回回る時間を計測するルーチンを設
け、その計測値に応じて算出された値を利用して行えば
よい。
【0096】なお、ステップS53の処理に代えて、た
とえば、前記図11のステップS35と同様の処理、す
なわちパートに割り当てられた音色を、構成オペレータ
数がより小さな(CPU3の能力によっては大きい場合
もある)代替音色に変更する処理を行うようにしてもよ
い。
【0097】次に、チャンネル番号を示す指標(インデ
ックス)iを初期化(i←1)する(ステップS5
4)。
【0098】そして、ステップS55では、前記図13
のCHシーケンスレジスタCHSEQ中、i番目の位置
SEQCHiに格納されたチャンネル番号SEQCHN
Oiを変数n(本波形演算処理サブルーチン内におい
て、この値を「チャンネルn」という)に格納し(n←
SEQCHNOi)、ステップS56では、チャンネル
nに対応する音色レジスタTONEPARnのアルゴリ
ズム指定データALGORnを参照し、チャンネルnに
ついてのFM演算処理(その詳細は図16を用いて後述
する)で使用するオペレータ(OP)数と各オペレータ
の接続態様を決定する。
【0099】さらに、ノートイベント等に応じて今回の
フレームでの演算量を決定する(ステップS57)。こ
こで、演算量の決定とは、具体的には、チャンネルnに
ついての波形演算処理を、前記楽音波形バッファ中、ど
こからどこまでの領域を用いて行うかを決定することを
いう。すなわち、楽音波形バッファは、前述したよう
に、今回演算する1フレーム分の領域であり、一方、各
チャンネルの楽音波形データは、1フレーム分の全領域
に亘って生成される訳ではない、すなわち各チャンネル
毎に楽音の発音タイミングや消音タイミングが異なり、
あるチャンネルの楽音は楽音波形バッファの途中で発音
開始したり、消音されたりすることがあるため、各チャ
ンネル毎に演算量を決定する意味がある。
【0100】次いで、図15のステップS58では、図
16を用いて後述するチャンネルnについて1サンプル
の楽音波形データを生成するFM演算処理サブルーチン
を実行し、ステップS59では、チャンネルnについて
1フレーム分の楽音生成処理を完了したか否かを判別す
る。なお、ステップS59の判別は、前記ステップS5
7で決定された演算量を考慮して行われることは云うま
でもない。
【0101】ステップS59で、チャンネルnについて
1フレーム分の楽音生成処理を完了していないときに
は、前記ステップS58に戻り、次の1サンプルの楽音
波形データを生成する。一方、ステップS59で、チャ
ンネルnについて1フレーム分の楽音生成処理を完了し
たときにはステップS60に進む。
【0102】ステップS60では、ステップS58およ
びS59で演算され、生成された1フレーム分の楽音波
形データを前記楽音波形バッファに書き込む。このと
き、楽音波形バッファにすでに楽音波形データが格納さ
れている場合には、演算されたデータを当該データに加
算し、その加算結果を書き込む。
【0103】そして、指標iの値を“1”だけインクリ
メントして更新し(ステップS61)、指標iの値が前
記最大チャンネル数CHmaxより大きいか否かを判別
する(ステップS62)。
【0104】ステップS62で、i≦CHmaxのと
き、すなわち波形生成すべきチャンネルに対する処理が
残っているときには、前記図14のステップS55に戻
って前述の処理を繰り返す一方、i>CHmaxのと
き、すなわち波形生成すべきチャンネルに対する処理が
終了したときには、今回ノートオフのあった発音チャン
ネルについての音量エンベロープの大きさを徐々に小さ
くする消音チャンネル処理を実行する(ステップS6
3)。
【0105】続くステップS64では、このようにして
生成された楽音波形データを、楽音波形バッファから切
り離して、出力デバイスであるcodecハードウェア
に渡し、再生指示(再生予約)した後に、本波形演算処
理を終了する。
【0106】なお、チャンネルnのベロシティ値が所定
値より小さくなったときには、当該チャンネルnについ
てのFM演算を行わないようにしてもよい。これを実現
するためには、図14に示すように、前記ステップS5
5の後にステップS71を設け、チャンネルnの音色レ
ジスタTONEPARn中のタッチベロシティデータV
ELnが所定値VELn1以上か否かを判別し、VEL
n≧VELn1のときには前記ステップS56に進む一
方、VELn<VELn1のときには、ステップS72
で、前記図12のステップS43と同様にしてチャンネ
ルnのキーオフ指定をした後に前記ステップS61に進
むようにすればよい。
【0107】図16は、前記ステップS57のチャンネ
ルnのついてのFM演算処理サブルーチンの詳細な手順
を示すフローチャートである。
【0108】同図において、まず、演算対象オペレータ
のオペレータ番号を格納するための変数m(以下、この
値を「演算対象オペレータm」という)を初期化(m←
1)する。
【0109】次に、前記ステップS51と同様にして、
CPU3の負荷状態をチェックするとともに、演算対象
オペレータmのオペレータ優先度データOPPRIOm
をチェックし(ステップS82)、この両チェック結果
に応じて、当該演算対象オペレータmに対するオペレー
タ演算処理を実行するか否かを判別する(ステップS8
3)。
【0110】ステップS83で、演算対象オペレータm
に対するオペレータ演算処理を実行するときには、チャ
ンネルnは前フレームから継続して発音されているか否
かを判別し(ステップS84)、チャンネルnは前フレ
ームから継続して発音されているときには、音色レジス
タTONEPARnのオペレータデータOPmDATA
n内のバッファOPBUFmに格納された各データに基
づいて、前フレーム演算終了時のオペレータmの状態に
オペレータデータOPmDATAnを復帰させる(ステ
ップS85)。これは、各オペレータデータOPmDA
TAn内のバッファOPBUFmには、その直前に演算
された演算結果が保存されているため、この保存結果を
用いることにより、当該直前のオペレータデータOPm
DATAnの状態に復帰させることができるからであ
る。そして、このようにオペレータデータOPmDAT
Anを前フレームの演算終了時の状態に復帰させるの
は、今回のフレームにおけるチャンネルnの楽音波形デ
ータは、前フレームから継続するものとして生成する必
要があるからである。
【0111】一方、ステップS84で、チャンネルnは
前フレームから継続して発音されていないときには、ス
テップS85をスキップしてステップS86に進む。
【0112】ステップS86では、図17および18を
用いて後述する演算対象オペレータmについてのオペレ
ータ演算処理サブルーチンを実行する。
【0113】続くステップS87では、変数mの値を
“1”だけインクリメントして更新し、ステップS88
では、関連オペレータすべてについて、すなわちアルゴ
リズム指定データALGORnにより示されるオペレー
タデータOPmDATAnすべてについてオペレータ演
算を完了したか否かを判別する(ステップS88)。
【0114】ステップS88で、関連オペレータについ
ての演算が残っているときには前記ステップS82に戻
り、前述の処理を繰り返す一方、関連オペレータすべて
について演算を完了したときには、本チャンネルnにつ
いてのFM演算処理を終了する。
【0115】なお、ステップS82およびS83では、
CPU3の負荷状態をチェックして演算対象オペレータ
mに対するオペレータ演算を実行するか否かを判別する
ようにしたが、これに限らず、CPU3の負荷状態に拘
わらず、優先度の低いオペレータに対するオペレータ演
算を実行しないようにしてもよい。これにより、CPU
3の能力があまり高くない場合であっても、発音数を増
大させることができる。
【0116】図17および18は、前記ステップS86
の演算対象オペレータmについてのオペレータ演算処理
サブルーチンの詳細な手順を示すフローチャートであ
り、図19は、このオペレータ演算処理でなされるオペ
レータ演算の基本的な流れを示す図である。以下、図1
9も参照しながら、演算対象オペレータmについてのオ
ペレータ演算処理を説明する。
【0117】図17において、まず、演算対象オペレー
タmのオペレータデータOPmDATAn内のオペレー
タオンパラメータOPONmがオン(“1”)であるか
否かを判別し(ステップS91)、OPONm=0のと
き、すなわち演算対象オペレータmがオペレータ演算を
行う必要のないものであるときには、直ちに本オペレー
タ演算処理を終了する一方、OPONm=1のとき、す
なわち演算対象オペレータmがオペレータ演算を行うべ
きものであるときにはステップS92に進む。
【0118】ステップS92では、オペレータデータO
PmDATAn内の前記サンプリング周波数指定データ
FSAMPmが“0”であるか否か、すなわち標準モー
ドのサンプリング周波数FSMAXで楽音波形を生成す
るか否かを判別し、FSAMPm=0のときには、各オ
ペレータでの演算処理は標準モードのサンプリング周波
数で楽音波形生成を行うことが基本とされているため、
オペレータデータOPmDATAn内の前記エンベロー
プパラメータEGPARmの設定値に応じてAEGm演
算を行い、その演算結果を前記EG状態バッファEGS
TATEmに格納する(ステップS93)。
【0119】一方、ステップS92で、FSAMPm≠
0、たとえばFSAMPm=fのとき、すなわち標準モ
ードのサンプリング周波数FSMAXを2-f倍に変更
し、変更後の周波数で楽音波形生成を行うときには、エ
ンベロープパラメータEGPARm中、レートが変化す
るパラメータ(以下、「変化レート関連パラメータ」と
いう)を2f倍にしてAEG演算を行い、その演算結果
をEG状態バッファEGSTATEmに格納する。この
ように、変化レート関連パラメータのレートを2f倍に
してエンベロープ生成演算を行うようにしたのは、この
とき、サンプリング周波数はFSMAX×2-fに低減さ
れるため、これに応じて、本実施の形態では、エンベロ
ープパラメータEGPARmの変化レート関連パラメー
タのレート、すなわち時間変化を速くして当該サンプリ
ング周波数における楽音波形生成を行い、その後、生成
された波形サンプルを2f個の対応する連続バッファに
書き込むことにより、元の音高の楽音となるように調整
する方法を採っているからである。
【0120】このように、ステップS93またはS94
は、図19におけるエンベロープデータAEGmの算出
を行っている。
【0121】続くステップS95では、AEGm演算に
より算出されたデータAEGmにオペレータデータOP
mDATAn内の前記トータルレベルパラメータTLm
の値を乗算し、図19に示すように、演算対象オペレー
タmの出力レベルAMPm(=AEGm×TLm)を算
出する。
【0122】そして、ステップS93またはS94で算
出された振幅制御用エンベロープデータAEGmおよび
ステップS95で算出された演算対象オペレータmの出
力レベルAMPmをそれぞれチェックし(ステップS9
6)、各データ値AEGmおよびAMPmがそれぞれ、
たとえば所定時間所定レベル以下になり、演算対象オペ
レータmの出力をなしとしてよいか、すなわち演算対象
オペレータmにおける楽音波形演算を終了してよいか否
かを判別し(ステップS97)、その答えが肯定(YE
S)のときにはステップS98に進む一方、その答えが
否定(NO)のときには図18のステップS101に進
む。
【0123】ステップS98では、演算対象オペレータ
mは前記「キャリア」であるか否かを判別し、「キャリ
ア」のときにはステップS99に進み、演算対象オペレ
ータmおよび演算対象オペレータmのみを変調している
「モジュレータ」の各バッファOPBUFをクリアし、
波形演算を停止させた後に、本オペレータ演算処理を終
了する。このように、演算対象オペレータmが「キャリ
ア」である場合に、演算対象オペレータmのみでなく、
演算対象オペレータmのみを変調しているモジュレータ
の波形演算を停止させるようにしたのは、キャリアは、
前記図4に示すように、楽音波形データを最終的に出力
するオペレータであるため、キャリアからの出力をなし
としてよいとき、すなわちステップS97からS98を
経てS99へ移行するときには、その前段であるモジュ
レータの出力もなしとしてよいからである。ただし、当
該モジュレータが他のキャリアを変調しているときに
は、当該モジュレータの波形演算を停止させることはで
きないため、これを「のみ」で担保している。
【0124】一方、ステップS98で、演算対象オペレ
ータmがキャリアでないとき、すなわちモジュレータの
ときには、演算対象オペレータmのバッファOPBUF
mのみをクリアしてその波形演算を停止させた(ステッ
プS100)後に、本オペレータ演算処理を終了する。
【0125】図18のステップS101では、アルゴリ
ズム指定データALGORnをチェックし、次いでステ
ップS102では、演算対象オペレータmが他のオペレ
ータから変調を受けているか否かを判別する。
【0126】ステップS102で、演算対象オペレータ
mが他のオペレータから変調を受けているときには、当
該変調を行っている各オペレータデータOPkDATA
n内の前記オペレータ出力値バッファOPOUTkに格
納されているオペレータ出力データをそれぞれ加算し、
演算対象オペレータmの前記変調データ入力バッファM
ODINmに格納する(ステップS103)一方、演算
対象オペレータmが他のオペレータから変調を受けてい
ないときには、ステップS103をスキップしてステッ
プS104に進む。
【0127】ステップS104では、前記ステップS9
2と同様にして、オペレータデータOPmDATAn内
の前記サンプリング周波数指定データFSAMPmが
“0”であるか否かを判別し、FSAMPm=0のとき
にはステップS105に進む一方、FSAMPm≠0の
ときにはステップS110に進む。
【0128】ステップS105では、位相値を更新する
位相値更新演算を行い、その演算結果を、演算対象オペ
レータmのオペレータデータOPmDATAn内の位相
値バッファPHBUFm(以下、この内容を「位相値P
HBUFm」という)に格納する。ここで、位相値更新
演算とは、図19の破線Aで囲まれた演算、すなわち次
式で示す演算をいう。
【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に格納された値の前回値を示している。
【0130】続くステップS106では、ステップS1
05で算出された位相値PHBUFmに基づいてテーブ
ルアドレスを算出し、演算対象オペレータmのウェーブ
セレクトデータWSELmに応じて選択された基本波形
(たとえば、前記図5で示した8種類の基本波形から選
択された波形)データ(以下、「基本波形テーブル」と
いう)から、この算出アドレスが示す位置のデータWA
VEm(PHBUFm)を読み出し、このデータWAV
Em(PHBUFm)に、前記ステップS95で算出し
た出力レベルAMPmを乗算して、演算対象オペレータ
mのオペレータ出力値バッファOPOUTm(=WAV
Em(PHBUFm)×AMPm)に格納する。
【0131】そして、ステップS107では、次式によ
りフィードバックサンプル演算を行い、その演算結果を
演算対象オペレータmのフィードバック出力値バッファ
FBmに格納する。
【0132】 0.5×(FBm+OPOUTm×FBLm) ただし、OPOUTmは、ステップS106で発生させ
た波形サンプルデータを示し、FBLmは、演算対象オ
ペレータmの前記フィードバックレベルデータFBLm
を示している。ここで、フィードバックサンプル演算を
行うのは、寄生発振を防止するためである(後述するス
テップS112も同様)。
【0133】さらに、ステップS108では、前記ステ
ップS98と同様にして、演算対象オペレータmが「キ
ャリア」であるか否かを判別し、「モジュレータ」のと
きには、直ちに本オペレータ演算処理を終了する一方、
「キャリア」のときには、ステップS106で発生させ
た波形サンプルデータOPOUTmに、楽音パラメータ
VOICEnの前記音量データVOLnを乗算し、その
乗算結果(=OPOUTm×VOLn)を、前記波形バ
ッファ(対応バッファ)における今回の書き込み位置を
示すポインタが指示する位置に加算するとともに、当該
ポインタの値を“1”だけ進めて更新した(ステップS
109)後に、本オペレータ演算処理を終了する。
【0134】ステップS110では、位相値更新演算を
行い、その演算結果を位相値バッファPHBUFmに格
納する。このステップS110の演算処理は、ステップ
S105の演算処理に対して、図19のブロックBで示
す処理を追加した点が異なるのみである。これは、FS
AMPm=f(≠0)であるため、位相値をfビットだ
けシフトアップして、すなわち位相値バッファPHBU
Fmの値を2f倍して、前記基本波形テーブルの読み出
しアドレスをサンプリング周波数FSMAX×2-f時の
アドレスに変更する必要がある、すなわち飛ばし読みす
る必要があるからである。
【0135】次に、前記ステップS106と同様にし
て、次式により波形サンプルを発生させ、オペレータ出
力値バッファOPOUTmに格納する。
【0136】 WAVEm(2f×PHBUFm)×AMPm そして、前記ステップS107と同様にして、フィード
バックサンプル演算を実行する(ステップS112)。
【0137】次いで、ステップS113で、前記ステッ
プS108と同様にして、演算対象オペレータmが「キ
ャリア」であるか否かを判別し、「モジュレータ」のと
きには、直ちに本オペレータ演算処理を終了する一方、
「キャリア」のときには、前記ステップS109と同様
にして、ステップS111で発生させた波形サンプルデ
ータOPOUTmに、楽音パラメータVOICEnの前
記音量データVOLnを乗算し、その乗算結果(=OP
OUTm×VOLn)を、前記波形バッファ中、前記ポ
インタが示す位置から連続する2f個の領域(バッフ
ァ)に加算するとともに、そのポインタの値を“2f
だけ進めて更新した(ステップS109)後に、本オペ
レータ演算処理を終了する。なお、ステップS109
で、同じ値のサンプルデータを書き込む際に、必要に応
じてサンプル間の補間演算を行い、その補間値を書き込
むようにしてもよい。
【0138】なお、本実施の形態では、ステップS10
6およびS111で説明したように、基本波形データと
しては基本波形テーブルに格納された値を使用するよう
にしたが、これに限らず、基本波形データを演算により
生成するようにしてもよい。もちろん、テーブルデータ
と演算との組合せにより、基本波形データを生成するよ
うにしてもよい。
【0139】また、ステップS106およびS110
で、基本波形テーブルを読み出すときのアドレスは、そ
れぞれステップS105およびS110で算出された位
相値PHBUFmに基づいて算出されたアドレスを使用
したが、これに限らず、この位相値PHBUFmを演算
や非線形特性テーブル等で歪ませたものを使用するよう
にしてもよい。
【0140】図20は、前記図10のステップS19の
音色設定処理サブルーチンの詳細な手順を示すフローチ
ャートである。
【0141】同図において、まず、MIDIチャンネル
とその各チャンネルに対応する音色の設定を行う(ステ
ップS121)。前述したように、本実施の形態では、
MIDIチャンネルとその対応音色はMIDI-CHボ
イステーブルで決定され、このMIDI-CHボイステ
ーブルにロードされるテーブルデータはハードディスク
等に格納され、ユーザが選択したMIDIファイルがロ
ードされると同時に、その対応するテーブルデータがM
IDI-CHボイステーブルにロードされるので、ステ
ップS121の処理は、現在ロードされているテーブル
データの編集または新たなテーブルデータのロード(読
み込み)である。
【0142】なお、各MIDIチャンネル毎にそれぞれ
希望のオペレータ数をユーザが設定可能とし、MIDI
-CHボイステーブル中の音色番号を変更するときに、
当該チャンネルに希望オペレータ数が設定されている場
合には、そのオペレータ数に一致するまたはそのオペレ
ータ数以内の楽音パラメータVOICEに対応する音色
番号を一覧表示し、その中からユーザが所望の音色番号
を選択して設定するようにしてもよい。このとき、CP
U3の負荷状態に応じて、当該チャンネルに設定された
希望オペレータ数を自動的に変更し、その変更後のオペ
レータ数以内の音色番号を一覧表示するようにしてもよ
い。さらに、ユーザがMIDI-CHボイステーブル中
のあるチャンネルの音色番号を変更したときに、その音
色番号に対応する楽音パラメータVOICEの構成オペ
レータ総数をチェックし、CPU3の負荷状態に応じ
て、当該チャンネルにこの音色を割り当てできない等の
警告を表示するようにしてもよい。この警告に加えて、
当該チャンネルの音色番号を、オペレータ数の小さい代
替音色の音色番号に自動的に変更するようにしてもよ
い。
【0143】以上説明したように、本実施の形態では、
CPU3の能力や動作環境、目的および設定等に応じ
て、FM演算処理に用いるオペレータ数をフレキシブル
に変更するようにしたので、CPU3の負荷の軽重およ
び出力楽音波形の品質の高低を自由に変更することがで
き、これにより、音源システム全体の自由度を向上させ
ることができる。
【0144】なお、本実施の形態では、楽音生成処理と
してFM音源方式を用いて説明したが、これに限らず、
たとえば、楽音波形生成ブロックを組み合わせてAM
(振幅変調)やPM(位相変調)など所定の信号処理を
行うような音源にも容易に適用できる。また、本発明に
含まれるCPUの負荷の軽減方法は波形メモリ読み出し
方式の音源、物理モデル音源をソフトウェアで実現する
際にも適用できるものである。
【0145】また、本実施の形態では、パソコンでの応
用を主な例としたが、ゲームやカラオケなどのアミュー
ズメント機器、電子楽器、一般電子機器への適用も容易
に可能である。また、パソコンのオプションとしての音
源ボードや音源ユニットに適用することも可能である。
【0146】なお、本発明によるソフトウェアは、フロ
ッピーディスクや光磁気ディスク、CD−ROMなどの
ディスクメディア、あるいはメモリカードなどで供給す
るようにもできる。また、ソフトウェアデータを記憶し
た半導体メモリチップ(典型的にはROM)をコンピュ
ータ機器に差し替え、追加するようにしてもよい。さら
には通信I/F14を通して、本発明に係る音源ソフト
ウェアを配信するようにしてもよい。
【0147】また、本発明に係る音源ソフトウェアが、
コンピュータシステムの中で、どういう位置づけ(アプ
リケーション・ソフトとするか、あるいは、たとえばデ
バイスドライバ・ソフトにするか)で起動、動作するか
はシステム構成やOSに応じて適宜、決めればよい。
【0148】また、本発明に係る音源ソフトウェアまた
はその機能を、他のソフトウェア、たとえば、ゲームな
どのアミューズメントソフト、カラオケソフトや自動演
奏・伴奏ソフトなどに組み込んでもよい。さらには、コ
ンピュータOSに直接、組み込んでしまってもよい。
【0149】
【発明の効果】以上説明したように、本発明に依れば、
選択された発音チャンネルに、設定されたアルゴリズム
が示す楽音波形生成ブロックが割り当てられ、該割り当
てられた楽音波形生成ブロックが当該アルゴリズムが示
す組み合わせ態様で組み合わせて楽音波形生成演算が行
われ、楽音波形データが生成されるので、発音割り当て
される前に、各発音チャンネルに対する楽音波形生成ブ
ロックの個数を任意に変更することができ、これによ
り、楽音波形データ生成手段の能力に応じて、該楽音波
形データ生成手段に対する負荷状態および生成される楽
音波形データの品質をフレキシブルに変更することが可
能となる効果を奏する。
【0150】また、選択された発音チャンネルに、当該
生成すべき楽音波形データの音色に対応して設定された
アルゴリズムが示す楽音波形生成ブロックが割り当てら
れ、該割り当てられた楽音波形生成ブロックが当該アル
ゴリズムが示す組み合わせ態様で組み合わせて楽音波形
生成演算が行われ、楽音波形データが生成されるので、
上記効果と同様の効果を奏することができる。
【0151】好ましくは、音色設定手段により音色が設
定されるときに、当該演奏パートにブロック数設定手段
により楽音波形生成ブロック数が設定されている場合に
は、当該演奏パートに設定された音色が、該設定ブロッ
ク数の範囲内の楽音波形生成ブロックを備えた音色に変
更されるので、上記効果をさらに高めることができる。
【0152】また、好ましくは、前記発音チャンネルに
おける楽音波形生成演算中に、所定の条件に応じて、当
該発音チャンネルに割り当てられた楽音波形生成ブロッ
クの個数が変更されるので、発音中に、楽音波形データ
生成手段の能力に応じて、該楽音波形データ生成手段に
対する負荷状態および生成される楽音波形データの品質
をフレキシブルに変更することができる。
【0153】さらに、本発明によれば、パソコンなど、
音楽演奏の他にも複数任意のタスク処理(たとえばワー
プロ、ネットワーク通信など)を実行させる場合が多い
コンピュータ機器では、ソフト音源処理実行中に音源以
外のタスクにCPUパワーがかかっても、楽音の途切れ
などの障害の発生を少なくできる。これは、見方を変え
れば、音源処理を実行中にも、より多くのタスクが処理
できるということができる。
【図面の簡単な説明】
【図1】本発明の実施の一形態に係る音源システムが備
えたソフトウェアのシステム構成の一例を示す図であ
る。
【図2】本発明の実施の一形態に係る音源システムの概
略構成を示す図である。
【図3】図1の音源システムが行う楽音生成処理の概要
を説明するための図である。
【図4】FM音源方式による楽音生成処理の概要を説明
するための図である。
【図5】基本波形テーブルとして選択される元となる基
本波形データの一例を示す図である。
【図6】割り当てられた発音チャンネルで発音すべき楽
音の音色パラメータを展開する音色レジスタ群を示す図
である。
【図7】楽音パラメータVOICEjのデータフォーマ
ットを示す図である。
【図8】各MIDIチャンネル(CH)毎に選択設定さ
れた楽音パラメータVOICEnの音色番号を記憶する
MIDI-CHボイステーブルを示す図である。
【図9】図1の音源システムのCPUが実行する初期プ
ログラムの手順を示すフローチャートである。
【図10】図9の初期プログラムに続いてCPUが実行
するメインプログラムの手順を示すフローチャートであ
る。
【図11】図10のMIDI処理サブルーチンの詳細な
手順を示すフローチャートである。
【図12】図11のMIDI処理サブルーチンの続きを
示すフローチャートである。
【図13】CHシーケンスレジスタのフォーマットの一
例を示す図である。
【図14】図10の波形演算処理サブルーチンの詳細な
手順を示すフローチャートである。
【図15】図14の波形演算処理サブルーチンの続きを
示すフローチャートである。
【図16】図15のチャンネルnのついてFM演算処理
サブルーチンの詳細な手順を示すフローチャートであ
る。
【図17】図16の演算対象オペレータmについてのオ
ペレータ演算処理サブルーチンの詳細な手順を示すフロ
ーチャートである。
【図18】図17の演算対象オペレータmについてのオ
ペレータ演算処理サブルーチンの続きを示すフローチャ
ートであ
【図19】図17および18のオペレータ演算処理でな
されるオペレータ演算の基本的な流れを示す図である。
【図20】図10の音色設定処理サブルーチンの詳細な
手順を示すフローチャートである。
【符号の説明】
3 CPU(アルゴリズム設定手段、発音チャンネル選
択手段、楽音波形データ生成手段、音色設定手段、ブロ
ック数設定手段、音色変更手段、ブロック数変更手段、
削減態様設定手段、サンプリング周波数設定手段) OPmDATAn オペレータデータ(楽音波形生成ブ
ロック) SSM ソフトウェア音源モジュール(楽音波形生成ブ
ロック、アルゴリズム設定手段、発音チャンネル選択手
段、楽音波形データ生成手段、音色設定手段、ブロック
数設定手段、音色変更手段、ブロック数変更手段、削減
態様設定手段、サンプリング周波数設定手段)

Claims (11)

    【特許請求の範囲】
  1. 【請求項1】 楽音波形生成演算を行う、ソフトウェア
    で構成された楽音波形生成ブロックを複数個組み合わせ
    ることにより、複数の発音チャンネルの各チャンネル毎
    に楽音波形データを生成する音源システムにおいて、 前記組み合わせられる楽音波形生成ブロックの個数およ
    びその組合せ態様を決定するアルゴリズムを設定するア
    ルゴリズム設定手段と、 前記複数の発音チャンネルから楽音波形データを生成す
    るチャンネルを選択する発音チャンネル選択手段と、 該選択された発音チャンネルに、前記設定されたアルゴ
    リズムが示す楽音波形生成ブロックを割り当て、該割り
    当てられた楽音波形生成ブロックを当該アルゴリズムが
    示す組み合わせ態様で組み合わせて楽音波形生成演算を
    行い、楽音波形データを生成する楽音波形データ生成手
    段とを有することを特徴とする音源システム。
  2. 【請求項2】 楽音波形生成演算を行う、ソフトウェア
    で構成された楽音波形生成ブロックを複数個組み合わせ
    ることにより、複数の発音チャンネルの各チャンネル毎
    に異なった音色の楽音波形データを生成する音源システ
    ムにおいて、 前記組み合わせられる楽音波形生成ブロックの個数およ
    びその組合せ態様を前記音色毎に決定するアルゴリズム
    を設定するアルゴリズム設定手段と、 前記複数の発音チャンネルから楽音波形データを生成す
    るチャンネルを選択する発音チャンネル選択手段と、 該選択された発音チャンネルに、当該生成すべき楽音波
    形データの音色に対応して前記設定されたアルゴリズム
    が示す楽音波形生成ブロックを割り当て、該割り当てら
    れた楽音波形生成ブロックを当該アルゴリズムが示す組
    み合わせ態様で組み合わせて楽音波形生成演算を行い、
    楽音波形データを生成する楽音波形データ生成手段とを
    有することを特徴とする音源システム。
  3. 【請求項3】 曲の各演奏パート毎に音色を設定する音
    色設定手段と、 該各演奏パート毎に前記組み合わせられる楽音波形生成
    ブロックの個数を設定するブロック数設定手段と、 前記音色設定手段により音色が設定されるときに、当該
    演奏パートに前記ブロック数設定手段により楽音波形生
    成ブロック数が設定されている場合には、当該演奏パー
    トに設定された音色を、該設定ブロック数の範囲内の楽
    音波形生成ブロックを備えた音色に変更する音色変更手
    段とを有することを特徴とする請求項2記載の音源シス
    テム。
  4. 【請求項4】 前記発音チャンネルにおける楽音波形生
    成演算中に、所定の条件に応じて、当該発音チャンネル
    に割り当てられた楽音波形生成ブロックの個数を変更す
    るブロック数変更手段を有することを特徴とする請求項
    3に記載の音源システム。
  5. 【請求項5】 曲の各演奏パート毎に、該各パートにそ
    れぞれ設定された音色に対応するアルゴリズムが示す楽
    音波形生成ブロックの削減態様を設定する削減態様設定
    手段を有し、 前記ブロック数変更手段は、該設定された削減態様およ
    び前記所定の条件に応じて楽音波形生成ブロックの個数
    を変更することを特徴とする請求項4記載の音源システ
    ム。
  6. 【請求項6】 前記所定の条件は、当該発音チャンネル
    において生成された楽音波形の音量エンベロープが減衰
    したことであり、 前記ブロック数変更手段は、該楽音波形の音量エンベロ
    ープが所定値以下に減衰したときに、その減衰に応じ
    て、前記アルゴリズム設定手段により設定されたアルゴ
    リズムが示す楽音波形生成ブロックの個数を減少させる
    方向に変更することを特徴とする請求項4記載の音源シ
    ステム。
  7. 【請求項7】 前記所定の条件は、当該発音チャンネル
    において生成すべき楽音波形の音量が小さく設定されて
    いることであり、 前記ブロック数変更手段は、当該楽音波形の音量が小さ
    く設定されているときには、前記アルゴリズム設定手段
    により設定されたアルゴリズムが示す楽音波形生成ブロ
    ックの個数を減少させる方向に変更することを特徴とす
    る請求項4記載の音源システム。
  8. 【請求項8】 前記所定の条件は、当該発音チャンネル
    に発音割り当てされた楽音波形生成ブロック中、その出
    力レベルが所定値より小さいブロックがあることであ
    り、 前記ブロック数変更手段は、出力レベルが所定値以下と
    なった楽音波形生成ブロックが他の楽音波形生成ブロッ
    クに影響を与えないものであるときには、当該楽音波形
    生成ブロックの演算を停止することにより、当該アルゴ
    リズムが示す楽音波形生成ブロックの個数を減少させる
    方向に変更することを特徴とする請求項4記載の音源シ
    ステム。
  9. 【請求項9】 前記各楽音波形生成ブロック毎に、該各
    楽音波形生成ブロックが実行する楽音波形生成演算の基
    準となるサンプリング周波数を設定するサンプリング周
    波数設定手段を有し、 前記楽音波形データ生成手段は、前記各楽音波形生成ブ
    ロックによる楽音波形生成演算を、該各楽音波形生成ブ
    ロックに設定されたサンプリング周波数を基準にして行
    うことを特徴とする請求項1乃至8のいずれかに記載の
    音源システム。
  10. 【請求項10】 所定の波形演算アルゴリズムを実行す
    ることにより、音響波形データを生成する音響波形デー
    タ生成方法において、 前記波形演算アルゴリズムを実行する演算部に関する所
    定の条件に応じて、前記音響波形データの生成に関する
    サンプリング周波数が変更されるようにしたことを特徴
    とする音響波形データ生成方法。
  11. 【請求項11】 複数ステップから成る所定の波形演算
    アルゴリズムを実行しその各ステップにおける演算結果
    に基づいて、音響波形データを生成する音響波形データ
    生成方法において、 実行される前記波形演算アルゴリズム内での演算結果に
    応じてサンプリング周波数が変更されるようにしたこと
    を特徴とする音響波形データ生成方法。
JP08246942A 1996-08-30 1996-08-30 コンピュータソフトウェアを用いた音源システム Expired - Fee Related JP3141789B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP08246942A JP3141789B2 (ja) 1996-08-30 1996-08-30 コンピュータソフトウェアを用いた音源システム
SG1997003053A SG67993A1 (en) 1996-08-30 1997-08-26 Sound source system based on computer software and method of generating acoustic waveform data
DE69711518T DE69711518T2 (de) 1996-08-30 1997-08-28 Auf Software basierendes Tonquellensystem und Verfahren zur Erzeugung von akustischen Wellenformdaten
EP97114933A EP0827132B1 (en) 1996-08-30 1997-08-28 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
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 (ja) 1996-08-30 1996-08-30 コンピュータソフトウェアを用いた音源システム

Publications (2)

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

Family

ID=17156042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP08246942A Expired - Fee Related JP3141789B2 (ja) 1996-08-30 1996-08-30 コンピュータソフトウェアを用いた音源システム

Country Status (1)

Country Link
JP (1) JP3141789B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6040516A (en) * 1998-03-31 2000-03-21 Yamaha Corporation Tone generation system using computer software and storage medium storing the computer software
JP2007094439A (ja) * 2007-01-09 2007-04-12 Yamaha Corp 楽音合成方法、記録媒体および楽音合成装置
JP2012016243A (ja) * 2010-07-05 2012-01-19 Honda Motor Co Ltd 制御装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6040516A (en) * 1998-03-31 2000-03-21 Yamaha Corporation Tone generation system using computer software and storage medium storing the computer software
JP2007094439A (ja) * 2007-01-09 2007-04-12 Yamaha Corp 楽音合成方法、記録媒体および楽音合成装置
JP2012016243A (ja) * 2010-07-05 2012-01-19 Honda Motor Co Ltd 制御装置

Also Published As

Publication number Publication date
JP3141789B2 (ja) 2001-03-05

Similar Documents

Publication Publication Date Title
USRE41757E1 (en) Sound source system based on computer software and method of generating acoustic waveform data
US5596159A (en) Software sound synthesis system
JP3235409B2 (ja) ミュージックシステム、音源および楽音合成方法
JP3293434B2 (ja) 楽音発生方法
JP2924745B2 (ja) 楽音発生装置及び方法
JP3372124B2 (ja) 電子楽器
JP3141789B2 (ja) コンピュータソフトウェアを用いた音源システム
JP3223756B2 (ja) ミュージックシステムおよび電子楽器
US7728217B2 (en) Sound generator for producing a sound from a new note
JP3322209B2 (ja) コンピュータソフトウェアを用いた音源システムおよび記憶媒体
JPH06259064A (ja) 電子楽器
JP2858120B2 (ja) 電子楽器
JP3521871B2 (ja) 楽音発生装置および記憶媒体
JP3223827B2 (ja) 音源波形データ生成方法および装置
JP3324409B2 (ja) 楽音処理方法及び装置
JP2715795B2 (ja) 発音割当手段を有する楽音合成装置
JP7124370B2 (ja) 電子楽器、方法及びプログラム
JP3533967B2 (ja) 楽音信号発生装置、楽音信号発生プログラムが記録されたコンピュータ読み取り可能な記録媒体
JP2000250546A (ja) 付加音発生装置
JPH10124050A (ja) 電子楽器
JP2858314B2 (ja) 楽音特性制御装置
JPH0764553A (ja) 電子楽器
JP3705203B2 (ja) 楽音発生方法
JP2000089759A (ja) 音生成方法
JP2019168645A (ja) 楽音生成装置、楽音生成方法、楽音生成プログラム及び電子楽器

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