JP3223827B2 - 音源波形データ生成方法および装置 - Google Patents

音源波形データ生成方法および装置

Info

Publication number
JP3223827B2
JP3223827B2 JP01733397A JP1733397A JP3223827B2 JP 3223827 B2 JP3223827 B2 JP 3223827B2 JP 01733397 A JP01733397 A JP 01733397A JP 1733397 A JP1733397 A JP 1733397A JP 3223827 B2 JP3223827 B2 JP 3223827B2
Authority
JP
Japan
Prior art keywords
sound source
delay
sampling frequency
waveform data
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.)
Expired - Fee Related
Application number
JP01733397A
Other languages
English (en)
Other versions
JPH10124064A (ja
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 JP01733397A priority Critical patent/JP3223827B2/ja
Priority to SG1997003053A priority patent/SG67993A1/en
Priority to DE69711518T priority patent/DE69711518T2/de
Priority to EP97114933A priority patent/EP0827132B1/en
Priority to EP00123550A priority patent/EP1087372A3/en
Priority to US08/920,947 priority patent/US5981860A/en
Publication of JPH10124064A publication Critical patent/JPH10124064A/ja
Priority to US09/976,769 priority patent/USRE41757E1/en
Application granted granted Critical
Publication of JP3223827B2 publication Critical patent/JP3223827B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、汎用の演算処理手
段を使用して、ソフトウェアとして記述された音源波形
データを生成する波形演算アルゴリズムを実行すること
により、音源波形データを生成するようにした音源波形
データ生成方法および装置に関する。
【0002】
【従来の技術】最近、ソフトウェアをパーソナルコンピ
ュータ等の汎用処理装置により実行させることにより音
源波形データを生成し、生成した音源波形データをCODE
C(DAコンバータ)においてアナログ楽音波形データ
に変換して発音するようにすることが試みられている。
このようにソフトウェアにより音源波形データを生成す
る音源をソフトウェア音源と呼んでいる。また、音源専
用LSIやそれに準じた仕様をマイクロプログラムとし
て実行するディジタルシグナルプロセッサ(DSP)を
備える音源専用機や、パーソナルコンピュータに拡張ボ
ードとして装着される音源ボードにより、音源波形デー
タを生成することも行われている。このような音源は、
ハードウェア音源と呼ばれている。
【0003】
【発明が解決しようとする課題】ところで、パーソナル
コンピュータでは、一般に複数のアプリケーションソフ
トを動作させており、ソフトウェア音源のアプリケーシ
ョンソフトを動作させているときに、例えば、カラオケ
用のアプリケーションソフトやゲーム用のアプリケーシ
ョンソフトを同時に動作させることが考えられる。する
と、パーソナルコンピュータにおける中央処理装置(C
PU)の負荷が大きくなり、ソフトウェア音源では音源
波形データの生成が遅れ、極端な場合には楽音の発音が
途切れるおそれが生じるようになる。また、CPUがマ
ルチタスクを行っている場合には、楽音発生以外のタス
ク処理が滞ってしまうなどの障害を生じる可能性があ
る。そこで、本発明はCPUの負荷が大きい場合であっ
ても楽音の発音が途切れることのない音源波形データを
生成できるとともに、CPUがマルチタスクを行ってい
る場合には、他のタスク処理が滞ってしまうことのない
音源波形データ生成方法および装置を提供することを目
的としている。
【0004】また、ハードウェア音源においては、波形
演算アルゴリズムをDSP等で実行させることにより音
源波形データを生成している。演算を実行するDSPの
能力は年々向上しているが、従来の音源波形データ生成
方法ではその能力を十分発揮することができなかった。
そこで、本発明は、ハードウェア音源において演算手段
の能力を十分発揮して、従来では得ることのできない高
精度の波形出力を得ることのできる音源波形データ生成
方法および装置を提供することを目的としている。
【0005】
【課題を解決するための手段】上記目的を達成するため
に、本発明の音源波形データ生成方法は、波形演算アル
ゴリズムを繰り返し実行することにより、音源波形デー
タを生成するようにした音源波形データ生成方法におい
て、上記波形演算アルゴリズムを実行する毎に、演算部
の負荷状態をチェックし、そのチェックの結果に応じ
て、生成される前記音源波形データのサンプリング周波
数が変更されるようにしている。
【0006】これにより、本発明は、CPUの負荷が大
きいときはサンプリング周波数を下げるようにすること
ができ、楽音の発音が途切れることのない音源波形デー
タを生成することができる。また、CPUがマルチタス
ク処理をしている場合においても各タスク処理のCPU
パワーを配分する余裕を得ることができる。さらに、C
PUの負荷が軽いときは通常のサンプリング周波数より
高いサンプリング周波数とすることができ、高精度の音
源波形データを生成することができるようになる。この
場合、サンプリング周波数を変更することに代えて、発
音数を変更するようにしてもよい。
【0007】また、本発明の他の音源波形データ生成方
法は、波形演算アルゴリズムを繰り返し実行することに
より、音源波形データを生成するようにした音源波形デ
ータ生成方法において、上記波形演算アルゴリズムを
行する毎に演算省略条件をチェックし、そのチェック
の結果、ゲインが実質的にゼロとされている部分の演算
を省略するようにしている。
【0008】これにより、本発明は、CPUの負荷が極
力大きくならないように効率的な演算を行うことができ
るので、楽音の発音が途切れることのない音源波形デー
タを生成することができる。また、効率的な演算を行え
ることからサンプリング周波数を従来より高いサンプリ
ング周波数とすることができ、高精度の音源波形データ
を生成することができるようになる。
【0009】本発明の音源波形データ生成装置は、上記
したそれぞれの音源波形データ生成方法における波形演
算アルゴリズムを実行する演算部を少なくとも備えるよ
うにしたものである。そして、これらの音源波形データ
生成装置は、前記した音源波形データ生成方法と同様の
作用を奏するものである。
【0010】さらに、本発明の他の音源波形データ生成
装置は、波形演算アルゴリズムを繰り返し実行すること
により、音源波形データを生成するようにした演算部を
少なくとも備え、上記演算部において、上記波形演算ア
ルゴリズムを実行する毎に、上記演算部の負荷状態をチ
ェックし、そのチェックの結果に応じて、生成される前
記音源波形データのサンプリング周波数が変更されるよ
うになされており、前記演算部には、信号サンプルを順
次記憶する記憶手段からなる遅延手段が含まれており、
該遅延手段は、入力信号サンプルを前記記憶手段に書き
込むライトポインタと、遅延出力サンプルを前記記憶手
段から読み出すリードポインタと、前記ライトポインタ
と前記リードポインタとのアドレス差が所望の遅延量に
なるよう制御するアドレス発生手段とを備え、該アドレ
ス発生手段は、前記信号サンプルのサンプリング周波数
が第1サンプリング周波数とされたときは、前記ライト
ポインタと前記リードポインタを1アドレスづつ更新制
御し、前記信号サンプルのサンプリング周波数が第1サ
ンプリング周波数の1/nの第2サンプリング周波数と
された場合は、前記ライトポインタを1アドレスづつn
回更新すると共に、前記リードポインタはnアドレスづ
つ更新制御されるようにしている。
【0011】このような本発明によれば、波形演算によ
り生成される信号サンプルのサンプリング周波数を変更
するようにしても、サンプリング周波数の変更に伴い、
遅延手段の遅延制御を行うようにしたので、生成される
信号サンプルのサンプリング周波数が変更されても、再
生したときに音高が変更されることを防止することがで
きる。また、遅延手段が効果付与手段内に備えられてい
る場合は、サンプリング周波数が変更されても効果付与
量が変更されることを防止することができ、音色の変化
を抑制することができる。
【0012】
【0013】
【発明の実施の形態】図1に本発明の音源波形データ生
成方法が実行されるソフトウェアシステムの構成例を示
す。図1において、MIDI出力部APS1はMIDI
メッセージを出力する部位であり、鍵盤等の演奏操作子
やMIDIメッセージを出力するシーケンサ、あるい
は、MIDIメッセージを出力するアプリケーションソ
フトである。MIDI APIIF1は、MIDIメッセージを
授受するオペレーションシステムOSが有している第1
のアプリケーションプログラミングインターフェースで
あり、ソフトウェア音源モジュールSSMは、オペレー
ティングシステムOSにドライバとしてインストールさ
れているアプリケーションソフトである。
【0014】このソフトウェア音源モジュールSSM
は、MIDI出力部APS1から出力されるMIDIメ
ッセージを、インターフェースIF1を介して受け取
る。そして、ソフトウェア音源モジュールSSMは、受
け取ったMIDIメッセージに基づいて音源波形データ
の生成処理を実行することにより音源波形データを生成
する。生成された音源波形データは、オペレーションシ
ステムOSが有している第2のアプリケーションプログ
ラミングインターフェースIF2("WAVE out API")を
介してオペレーションシステムOSにより受け取られ
る。出力デバイスOUDは、オペレーティングシステム
OSにインストールされたドライバモジュールであり、
ソフトウェア音源モジュールSSMから生成された音源
波形データをインターフェース”WAVE out API”(IF
2)を介して受け取り、この音源波形データを外部のハ
ードウェア(CODEC HARDWARE)に対して出力している。
【0015】この出力デバイスOUDは、例えば、ソフ
ト音源モジュールSSMの演算処理により生成されバッ
ファに格納された音源波形データをダイレクトメモリア
クセス(DMA)方式により読み出して、ディジタル・
アナログコンバータ(DAC)からなる外部ハードウェ
アに与えるようにしたソフトウェアである。また、ソフ
トウェア音源モジュールSSMは、演算により所定のサ
ンプリング周波数FSの音源波形データ(サンプルデー
タ)を生成する音源部と、この音源部を駆動するための
MIDI出力ドライバ部を含んでいる。このMIDI出
力ドライバ部は、受け取ったMIDIメッセージに応じ
た音制御パラメータをテーブル等から読み出して音源部
に供給している。
【0016】次に、ソフトウェア音源モジュールSSM
の動作タイミングチャートを図2に示す。この図に示す
ように、ソフトウェア音源モジュールSSMは所定の時
間長のフレーム毎に設定されている演算時刻毎に起動さ
れる。演算に際しては、その直前のフレーム内で受け取
ったMIDIメッセージに基づく音制御パラメータがテ
ーブル等から読み出されてバッファに格納されており、
このバッファに格納された各種の音制御パラメータに基
づいて音源波形を生成する生成演算処理が実行される。
すなわち、図2に示すように時刻T1から時刻T2まで
のフレームにおいては3つのMIDIメッセージを受け
取り、演算時刻T2になるとソフトウェア音源モジュー
ルSSMが起動されて、受け取った各MIDIメッセー
ジに応じた各種パラメータが読み出されてバッファに格
納され、前フレームで発音されていた楽音を継続して発
音するための音源波形データと、受け取ったMDIメッ
セージに基づいて新たに発音される音源波形データとの
生成演算が実行される。
【0017】この音源波形データの生成演算は、1フレ
ーム分に相当するサンプル数の音源波形データが発音チ
ャンネルごとに生成され、各発音チャンネルについての
音源波形データが累算されて波形出力バッファに書き込
まれる。そして、波形出力バッファの再生を出力デバイ
スOUDに予約する。この予約が、生成した音源波形デ
ータをソフトウェア音源モジュールSSMから第2のイ
ンターフェース"WAVEout API"に出力することに相当す
る。出力デバイスOUDは、各フレームごとに、直前の
フレームにおいて再生予約された波形出力バッファから
1サンプルづつ音源波形データを読み出して外部のハー
ドウェアであるDACに送る。例えば、時刻T1から時
刻T2までのフレームで生成された音源波形データが書
き込まれて再生予約された波形出力バッファからは、時
刻T2から時刻T3までのフレームで音源波形データが
読み出される。読み出された音源波形データは、DAC
によりアナログの楽音波形信号に変換されてサウンドシ
ステムから発音される。
【0018】次に、本発明の音源波形データ生成方法を
具現化した本発明の音源波形データ生成装置を備える処
理装置の一構成例の概略を示すブロック図を図3に示
す。図3に示す処理装置において、メイン制御部として
CPU1が使用され、このCPU1の制御の下で本発明
の音源波形データ生成方法が、ソフトウェア音源プログ
ラムによる音源波形データ生成処理として実行される。
同時に、その他のアプリケーションプログラム等の処理
が並列して実行される。CPU1には内部バスを介して
ROM(リード・オンリ・メモリ)2、RAM(ランダ
ム・アクセス・メモリ)3、ディスプレイインターフェ
ース(DISPLAY I/F)4、HDD(ハード・ディスク装
置)、CD−ROM装置(CD-ROM drv)7、内部バスと
拡張バス間のデータの受け渡しを行うインターフェース
(I/F)8、パソコン用のユーザインターフェースで
あるカナキー、数字キー、記号キー等を備えるキーボー
ド(KEY BOARD)10が接続されている。
【0019】また、CPU1に内部バス、I/F8、拡
張バスを介して、ハードウェア音源を構成するパーソナ
ルコンピュータの拡張ボードである音源ボード(DSP BO
ARD)9、ネットワークとのインターフェース(NETWORK
I/F)11、MIDIのインターフェース(MIDI I/F)
12、DAC14−2を備えるCODEC14が接続されて
いる。ROM2には、CPU1の動作プログラム等が格
納されており、RAM3には選択された各種の音制御パ
ラメータが格納されるパラメータバッファ領域、演算生
成された楽音波形データが格納される波形出力バッファ
領域、受信されたMIDIメッセージおよびその受信時
刻が格納される入力バッファ領域、および、CPU1の
ワークメモリ領域等が設定されている。
【0020】また、ディスプレイ5とディスプレイイン
ターフェース4は、ユーザが処理装置と対話するための
表示部であり、HDD6には、オペレーションシステム
OS(例えば、マイクロソフト社製のWindows3.1(商
標)、あるいは、Windows95(商標))や、ソフトウェ
ア音源モジュールを実現するプログラムや、"MIDI AP
I""WAVE API"を実現するその他のアプリケーションプロ
グラム等が格納されている。CD−ROM装置7には、
CD−ROM7−1がセットされて、CD−ROM7−
1に記録されているプログラムやデータが読み出され
る。これらの読み出されたプログラムやデータはHDD
6等に格納される。この場合、CD−ROM7−1にソ
フトウェア音源を実現する新たな音源プログラムが記録
されていると、容易に音源プログラムのバージョンアッ
プ等を行うことができる。
【0021】音源ボード9は、音源専用のボードであ
り、FM合成音源の演算あるいは波形メモリ音源の演算
を実行することによりハードウェア音源を実現してお
り、演算処理を行うDSP9−1と、各種バッファが設
定されると共に、各種音色パラメータや各種バッファ等
が設定されているRAM9−2から構成されている。ネ
ットワークインターフェース11は、イーサネット(et
hernet)等のLANや電話回線等を介してインターネッ
ト等に接続するためのインターフェースであり、ネット
ワークを通じて音源プログラム等のアプリケーションソ
フトやデータを受け取ることができる。MIDIインタ
ーフェース12は外部MIDI機器とのMIDIメッセ
ージの受け渡しを行ったり、鍵盤等の演奏操作子13か
らのMIDIイベントが入力されるインターフェースで
ある。この、MIDIインターフェース12を介して入
力されたMIDIメッセージは、その内容と時刻とがR
AM2の入力バッファ領域に格納される。
【0022】CODEC14は、ダイレクトメモリアクセス
方式で、RAM3の波形出力バッファ領域に格納されて
いる音源波形データを読み出してサンプルバッファ(SA
MPLEBUFFER)14−1に格納し、所定のサンプリング周
波数FS(例えば44.1kHz)の周期毎にサンプル
バッファ14−1から1サンプルづつ読み出してDAC
14−2によりアナログ楽音信号に変換して楽音信号出
力(TONE OUTPUT)として出力する。この楽音信号出力
は図示されていないサウンドシステムに入力されて楽音
が発音される。以上の構成はパソコン、ワークステーシ
ョン等と同等であり、それらの上で本発明の音源波形デ
ータ生成方法を実施することができる。
【0023】次に、CPU1の起動制御に基づくソフト
音源モジュールSSMによる、本発明の音源波形生成方
法の動作を概略説明すると、アプリケーションプログラ
ムAPS1が起動されると、ソフトウェア音源モジュールS
SMに第1のインターフェース"MIDI API"を経由してM
IDIメッセージが供給され始める。すると、ソフトウ
ェア音源モジュールSSMのMIDI出力ドライバ部が
起動され、各MIDIメッセージに応じた音制御パラメ
ータが設定される。そして、この音制御パラメータが当
該MIDIメッセージに割り当てられた発音チャンネル
用の音源レジスタに格納され、前記した図2に示すよう
に演算時刻毎に起動される音源部において所定サンプル
数の波形データが演算生成されるのである。
【0024】次に、図4ないし図6に本発明の音源波形
データ生成方法における音源モデルの概念を具体化した
構成例をブロック図として示すが、この音源モデルはハ
ードウェアとして実現されているのではなくソフトウェ
アとして実現されている。図4ないし図6に示す音源モ
デルは、管楽器系あるいは弦楽器系をシミュレートした
音源モデルであり、以下必要に応じて物理モデル音源と
いう。管楽器系の場合の物理モデル音源は、図4に示す
ように2個の円筒部の管の継ぎ目の部分にマウスピース
を取り付けた管楽器がシミュレートされており、弦楽器
系の場合には弦の両端がブリッジで固定された撥弦ある
いは擦弦楽器がシミュレートされている。
【0025】図4に示す物理モデル音源は図示するよう
にループ状とされており、ループ内の全体の遅延時間が
生成される楽音の音高の周期に対応するようになる。物
理モデル音源は、管楽器系とされた場合に、マウスピー
スより右側の管をシミュレートする回路において、4つ
の乗算器MU4〜MU7と2つの加算器AD4,AD5 からなる4乗
算格子型ジャンクションは、トーンホールをシミュレー
トしており、マウスピースからトーンホール間の管の伝
搬遅延が遅延回路DELAY-RL によりシミュレートされ、
トーンホールから管の終端間の伝搬遅延が遅延回路DELA
Y-RRによりシミュレートされている。さらに、管の音響
損失はローパスフィルタFILTER-Rでシミュレートされ、
管終端部での反射は、乗算器MU8によりシミュレートさ
れている。
【0026】同様に、マウスピースから左側の管をシミ
ュレートする回路において、その管の伝搬遅延は遅延回
路DELAY-Lによりシミュレートされており、管の音響損
失はローパスフィルタFILTER-Lでシミュレートされ、管
終端部での反射は、乗算器MU3によりシミュレートされ
ている。なお、遅延回路DELAY-RL、DELAY-RR、DELAY-L
には、生成される楽音のピッチに応じてテーブルから読
み出された遅延時間DRL、DRR、DL がそれぞれ設定さ
れ、ローパスフィルタFILTER-R、FILTER-Lには選択され
た音色を得るためのフィルタパラメータFRP、FRL がそ
れぞれ供給され、乗算器MU4〜MU7 には、トーンホール
の開閉操作によって変化する波形伝搬態様をシミュレー
トすべく、トーンホールの開閉操作に対応した乗算係数
M1〜M4が供給される。
【0027】この場合、遅延回路DELAY-RL、DELAY-RR、
DELAY-Lに設定される遅延時間の総和により出力信号の
ピッチがほぼ決定されることになるが、ローパスフィル
タFILTER-R、FILTER-Lには動作遅延時間が生じるため、
この動作遅延時間を差し引いた遅延時間を遅延回路DELA
Y-RL、DELAY-RR、DELAY-Lに振り分けて設定するように
する。また、マウスピースは右側の管をシミュレートす
る回路からの反射信号に乗算係数J2を乗算する乗算器MU
2と、左側の管をシミュレートする回路からの反射信号
に乗算係数J1を乗算する乗算器MU1とを備えている。さ
らに、乗算器MU1とMU2との出力信号を加算器AD1で加算
して、右側の管をシミュレートする回路に出力するとと
もに、左側の管をシミュレートする回路に出力してい
る。この場合、それぞれ減算器AD2,AD3により、それぞ
れの管をシミュレートする回路からの反射信号が減算さ
れて、それぞれの管をシミュレートする回路に供給され
ている。
【0028】さらに、加算器AD1には係数J3が乗算され
た励振部からの励振信号EX OUTが供給されて、励振戻り
信号EXT INが加算器AD6を介して励振部に戻されてい
る。なお、励振部はマウスピースの一部を構成してい
る。この物理モデル音源からの出力は、ループのどの部
分から出力してもよいが、図示する場合は、遅延回路DE
LAY-RRからの出力信号が出力信号OUTとして出力されて
いる。出力された出力信号OUTは、図5に示すエンベロ
ープ(ENVELOPE)制御部ELに入力されてエンベロープ
パラメータ(EG PAR)に基づくエンベロープが付与され
る。このエンベロープパラメータには、キーオン時のア
タックレートやキーオフ時のリリースレートのパラメー
タが含まれている。
【0029】さらに、共鳴体モデル部REに続いて入力
されて、供給された共鳴体パラメータ(RESONATOR PA
R)に基づいて楽器胴体の共鳴フォルマントの付与が行
われる。さらに、エフェクト部EFに入力されて、供給
されたリバーブ、コーラス、ディレイ、パン等の各種音
響効果を付与する効果パラメータ(EFFECT PAR)に基づ
いて効果付与が行われて楽音信号TONE OUTとして出力さ
れる。なお、ここでいう楽音信号TONE OUTは、音源波形
データと同義であり、所定のサンプリング周期のサンプ
ルデータとされている。
【0030】図6にマウスピースの一部を構成する励振
部の構成例を示すが、励振部戻り信号EX INは、マウス
ピース内においてリードに向かって帰還される空気振動
波の圧力に相当する信号として減算器AD11に供給され、
吹奏圧信号Pが減算される。減算器AD11からの出力は、
マウスピース内の圧力に相当する信号となり、マウスピ
ース内の圧力変化に対するリードの応答特性をシミュレ
ートした励振部フィルタFIL10、および、マウスピース
内の空気流の流速のマウスピース内空気圧に対する飽和
特性をシミュレートした非線形変換部2(NLC2)に乗算
器MU11でゲイン調整が行われて入力される。励振部フィ
ルタFIL10は、供給されるフィルタパラメータEFによ
り、カットオフ周波数や選択度が制御されている。
【0031】励振部フィルタFIL10からの出力信号は、
乗算器MU10においてゲイン調整が行われて、演奏者がマ
ウスピースを咥える圧力に相当するアンブシュール信号
Eが加算器AD10において加算され、リードに加わる圧力
に相当する信号が出力される。この加算器AD10からの出
力信号は、リードの開閉特性をシミュレートする非線形
変換部1(NLC1)に供給され、非線形変換部1の出力
と、非線形変換部2の出力とが乗算器MU12において乗算
され、マウスピースおよびリード間の間隙を通過する空
気流の体積流速に相当する信号が乗算器MU12から出力さ
れる。乗算器MU12から出力される信号は、乗算器MU13に
おいてゲイン調整が行われて、励振信号EXOUT として出
力される。
【0032】以上の説明は、管楽器をシミュレートした
場合の音源モデルの説明であり、弦楽器をシミュレート
したときは、マウスピースをシミュレートする回路は、
弦に振動が与えられる擦弦部あるいは撥弦部をシミュレ
ートすることになる。すなわち、信号Pが撥弦力や弓速
に対応する励起信号となり、信号Eが弓圧に相当する信
号となる。なお、弦楽器をシミュレートする場合は、乗
算器MU11に供給する乗算係数NL2G をほぼゼロとすると
共に、非線形変換部2の出力を所定の固定値(例えば
「1」)として、非線形変換部2(NLC2)の機能を用い
ていない。また、遅延回路DELAY-RL、DELAY-RR、DELAY-
Lは、弦の伝搬遅延時間をシミュレートするものであ
り、ローパスフィルタFILTER-R、FILTER-Lは弦の音響伝
搬損失をシミュレートするものとなる。励振部において
は、乗算係数NLG1,NLG2,NL1,NL2を種々設定することに
よって、モデリング対象の楽器に応じた励振部を形成す
ることができる。
【0033】次に、RAM3上に展開される各種データ
について図7を参照しながら説明する。前記したように
ソフトウェア音源モジュールSSMが起動されると、そ
の内部のMIDI出力ドライバ部が起動されて、入力さ
れたMIDIメッセージに応じた各種の音制御パラメー
タがRAM3に格納される。特に、MIDIメッセージ
により前記図4ないし図6に示すような物理モデル音源
(VA音源ともいう。)が指定されている場合は、選択さ
れたVA音源用の音制御パラメータVATONEPARがRAM3
上に設定されている制御パラメータバッファ(VATONEBU
F)に格納される。また、ソフトウェア音源モジュール
SSMにより1フレーム毎に生成演算された音源波形デ
ータは、RAM3に設定された波形出力バッファ(WAVE
BUF)に格納される。さらに、インターフェース”MIDI
API”を経由して入力されるMIDIメッセージの内容
とそのメッセージの受信時刻(イベントタイム)が対と
されて、RAM3上に設定されているMIDI入力バッ
ファ(MIDI RCV BUF,TM)に格納される。さらにまた、
RAM3上にはCPU1のワークエリア(CPU working
area)が設定されている。
【0034】バッファVATONEBUFには、選択された図8
に示すような音制御パラメータVATONEPARが格納される
と共に、演算生成されるサンプルデータの動作サンプリ
ング周波数を示すパラメータSAMPFREQ、MIDIメッセ
ージ内のイベントがVA音源を指定するキーオンイベント
の時にセットされるキーオンフラグVAKEYON、その場合
のピッチを指定するパラメータPITCH(VAKC)、および、
ベロシティを指定するパラメータVAVEL、ブレスコント
ローラの操作量パラメータBRETH CONTが格納される。さ
らに、息圧あるいは弓速度の値が格納されるプレッシャ
ーバッファPBUF、ピッチベンドパラメータが格納される
PBBUF、アンブシュール信号あるいは弓圧信号が格納さ
れるアンブシュールバッファEMBBUF、VA音源における発
音トランケートを指定するフラグVAKONTRUNCATE、ボリ
ウムその他のパラメータの格納バッファmiscbuf が設定
されている。
【0035】上記したパラメータSAMPFREQは、たとえば
2つのサンプリング周波数のうちの一方を選択可能とさ
れており、第1サンプリング周波数を44.1kHz、
第2サンプリング周波数を第1のサンプリング周波数の
1/2の22.05kHzとすることができる。また、
第2サンプリング周波数を2倍の88.2kHzとして
もよいが、ここで掲げたサンプリング周波数は一例であ
り、本発明のサンプリング周波数を特定するものではな
い。ところで、サンプリング周波数FSを1/2・FS
とすると、1フレームにおいて音源波形サンプルの生成
演算数の回数は、FS時に比較して1/2でよいことに
なる。これを利用して、本発明では、CPU1の負荷状
態をチェックして負荷が重いと判定された場合に1/2
・FSとされたサンプリング周波数を選択し、CPU1
の負荷を下げることによって演算生成できないサンプル
が生じないようにしている。
【0036】また、サンプリング周波数FSを2FSと
すると、1フレームにおいて音源波形サンプルを生成演
算する回数は、FS時に比較して2倍となり高精度のデ
ータを生成することができる。そこで、CPU1の負荷
状態をチェックして負荷が軽いと判断された場合に、2
FSとされたサンプリング周波数を選択して高精度の音
源波形データのサンプルを生成演算することができる。
なお、本発明では基準とされるサンプリング周波数をF
S1とすると、選択できるサンプリング周波数FS2
は、第1の例では FS1=n・FS2 (nは整数) となり、第2の例では FS1=1/n・FS2 (nは整数) となる。本発明は、第1の例を主体としており、以下の
説明では第1の例を主体として説明を行う。
【0037】なお、本発明は、生成される音源波形デー
タのサンプリング周波数を選択可能としたが、他にもCO
DECで再生したい音響信号がある場合は、CODECのDAコ
ンバータのサンプリング周波数を特定の標準的な値に固
定しておくのがよい。例えば、音楽CDのディジタル出
力に本発明による楽音をミキシングする場合などは、C
Dの規格に合わせてFS1=44.1kHzにしておけば
よい。このように、CODECのDAコンバータのサンプリ
ング周波数が標準的な値に固定されると共に、演算生成
される音源波形データにおける変更されるサンプリング
周波数の関係がFS1=n・FS2とされた場合(上記
第1の例)の本発明の実施の形態の例について次に説明
する。
【0038】DAコンバータのサンプリング周波数が標
準的な値に固定されることから、この固定された標準サ
ンプリング周波数FS1の周期毎に1サンプルづつ読み
出される波形出力バッファWAVEBUFには、波形演算のサ
ンプリング周波数の如何に関わらず標準サンプリング周
波数FS1に対応した波形データ列を作成しておく必要
がある。そこで、サンプリング周波数FS1の1/nの
サンプリング周波数FS2が選択された場合は、波形出
力バッファWAVEBUFには、演算結果の波形サンプルが隣
接したバッファ段にn個連続して並ぶように書き込んで
いく。そして、音源波形データが1フレーム分波形出力
バッファWAVEBUFに書き込まれたら、その波形出力バッ
ファWAVEBUFの内容をCODECに引き渡せばよい。なお、波
形出力バッファWAVEBUFのデータ列のサンプリング周波
数FSbと、CODEC(DAC)の動作サンプリング周波
数FScが異なり、サンプリング周波数のマッチングが
必要な場合においては、例えばFSb=k・FSc(K
>1)である時は、波形出力バッファWAVEBUFから音源
波形データをnアドレスづつ更新しながらの飛ばし読み
でCODECに引き渡せばよい。つまり、波形出力バッファW
AVEBUFに楽音波形サンプルを格納する処理からCODEC の
DACに至るまでの間に、サンプリング周波数変換処理
あるいはサンプリング周波数変換回路を挿入して、サン
プリング周波数を合わせるようにすればよい。
【0039】なお、MIDIイベントタイムバッファTMに
格納される時間情報は、イベント対応処理時に必要とな
るが、フレーム時間を例えば、5msあるいは2.5m
sなどと十分短く設定する場合は、フレーム内での各種
イベント対応処理の細かいタイミング管理は実質的に不
要となるので、この場合は時間情報を特に考慮してイベ
ント対応処理を行わなくてもよい。ただし、ブレスコン
トローラ等からの情報は後着優先とするのが好ましいの
で、このような情報のイベントについては前記時刻情報
を用いて後着優先処理を行うようにする。また、RAM
3には以上説明したバッファのほかに、アプリケーショ
ンプログラムを格納するようにしてもよい。
【0040】音制御パラメータVATONEPARの詳細を示す
図表を図8に示すが、音制御パラメータVATONEPARは、
励振部パラメータ(EXCITER PARAMETERS)、管楽器/弦
楽器パラメータ(P/S PARAMETERS)、エンベロープパラ
メータ(EG PAR)、共鳴体パラメータ(RESONATOR PA
R)、効果パラメータ(EFECT PAR)、サンプリング周波
数データ(SAMPLING FREQ.)から構成されている。これ
らの各パラメータには図8に示すような複数のパラメー
タが含まれているが、各遅延量パラメータや各トーンホ
ールジャンクション乗算係数は音高により決定されるパ
ラメータである。この場合、DLないしDRRは音高に対す
る遅延量の遅延量テーブルとされており、総遅延量が所
望の音高周期に対応したものなるように各遅延量が遅延
量テーブルから読み出されて設定されるようになる。こ
の遅延量テーブルは、所定の音高の音を実際に発音させ
て、その音高周波数のずれをフィードバックすることに
より作成したテーブルである。
【0041】また、FLPおよびFRPのフィルタパラメータ
は、モデリングする管の形状や、弦の特性、および操作
子の操作量に応じて設定される。なお、サンプリング周
波数に応じて好適な音制御パラメータVATONEPARが設定
されており、この音制御パラメータVATONEPARのサンプ
リング周波数がSAMPLINGFREQ.で示されている。生成演
算処理時には、このSAMPLING FREQ.情報を参照して該当
するサンプリング周波数用に用意された音制御パラメー
タVATONEPARを用いて演算処理を行う。この場合、標準
サンプリング周波数がFS1とされ、サンプリング周波
数FS2は、たとえば1/2・FS1とされている。
【0042】次に、フローチャートを参照しながら本発
明の動作を詳細に説明する。図9は電源投入時等に実行
される初期プログラムのフローチャートであり、初期プ
ログラムがスタートされると、ステップS10にてハー
ドウェアの初期化等のシステムの初期化が実行される。
そして、ステップS11にてOSプログラムが起動され
て、他のプログラムを実行できる状態となり、たとえば
メインプログラムが実行されるようになる。
【0043】次に、CPU1により実行されるメインプ
ログラムのフローチャートを図10に示すが、メインプ
ログラムがスタートされると、ステップS20にて各種
レジスタをリセットする等の初期設定が実行される。つ
いで、ステップS21にてディスクトップ等のディスプ
レイ画面に対するウィンドウの配置等の基本的なディス
プレイ処理を行う。その後、ステップS22にてタスク
・スイッチングのために起動要因のチェックがおこなわ
れる。そして、ステップS23にて起動要因が発生され
たか否かの判定が行われ、起動要因が発生するまではス
テップS21ないしステップS23の処理が循環して行
われる。ここで、起動要因が発生されると、ステップS
23にてYESと判定されてステップS24に進み、起動
要因に応じたタスクが実行されるようにタスク・スイッ
チング処理が行われる。
【0044】タスクのスイッチングを行う要因は要因1
ないし要因5まであり、まず、アプリケーションソフト
等からソフト音源API("MIDI API")を介してMIDIメッ
セージが供給されたことが検出されたときに要因1に該
当するものとして、ステップS25にてソフト音源モジ
ュールSSMが起動されてMIDI処理が行われる。また、
1フレームの周期ごとに割り込みが出力されるソフトタ
イマ(tim)からの内部割り込みがあったときには、要
因2に該当するものとして、ステップS26にてソフト
音源モジュールSSMが起動されて、波形演算処理が実
行され所定サンプル数の音源波形データが生成される。
さらに、DMA方式とされている出力デバイス(CODE
C)から音源波形データの転送要求があったときは、要
因3に該当するものとしてステップS27にて、波形出
力バッファWAVEBUFに格納されている音源波形データが
出力デバイスに転送される転送処理が行われる。
【0045】さらにまた、処理装置に備えられているマ
ウスやキーボードなどの入力操作子の操作に基づく操作
イベントが検出されたときには要因4に該当するものと
して、音色設定の操作イベントの場合は、ステップ28
にて音色設定処理が行われ、その他の操作イベントの場
合はステップS29にてその他の処理が行われる。さら
にまた、終了操作を検出したときには要因5に該当する
ものとして、ステップS30にて終了処理が実行され
る。なお、起動要因がないときは要因4に該当するもの
としてステップS28およびステップS29の処理を行
う。そして、これらの要因1ないし要因5に対する処理
が終了すると、ステップS21に戻り、ステップS21
ないしステップS30の処理が循環して、常時行われる
ようになっている。
【0046】次に、前記ステップS25にて実行される
MIDI処理のフローチャートを図11に示す。MIDI処理が
スタートされると、ステップS40にて供給されたMIDI
イベントの内容のチェックが行われる。このチェック
は、具体的にはバッファとして構成されている”MIDI A
PI ”に書き込まれているMIDIメッセージに対して行わ
れる。そして、そのMIDIイベントがノートンイベントか
否かがステップS41にて判定されて、ノートオンイベ
ントと判定されるとステップS42に進み、そのノート
オンイベントに割り当てられている発音チャンネル(MI
DI CH)が物理モデル音源(VA音源)に割り当てられた
発音チャンネル(VA CH)か否かがステップS42にて
判定される。ノートオンイベントに割り当てられている
発音チャンネルが物理モデル音源と判定されると、ステ
ップS43に進み物理モデル音源におけるキーオン処理
が実行されてリターンされる。また、ノートオンイベン
トに割り当てられている発音チャンネルが物理モデル音
源でないと判定されると、ステップS44に分岐して他
の音源のキーオン処理が行われ、リターンされる。この
キーオン処理は、たとえば音源ボード(DSP BOARD) 9
上のDSP9−1にて行われる。
【0047】また、ステップS41にてノートオンイベ
ントでないと判定されると、ステップS45に分岐して
ノートオフイベントか否かが判定される。ここで、ノー
トオフイベントと判定されるとステップS46に進み、
そのノートオフイベントに割り当てられている発音チャ
ンネル(MIDI CH)が物理モデル音源(VA音源)に割り
当てられた発音チャンネル(VA CH)か否かが判定され
る。そして、ノートオフイベントに割り当てられている
発音チャンネルが物理モデル音源と判定されると、ステ
ップS47に進み物理モデル音源におけるキーオンフラ
グVAKEYONが「0」とされると共に、MIDIイベントタイ
ムバッファTMにノートオフイベントの発生時刻が格納さ
れて、リターンされる。また、ノートオフイベントに割
り当てられている発音チャンネルが物理モデル音源でな
いと判定されると、ステップS48に分岐して他の音源
のキーオフ処理が行われリターンされる。
【0048】さらに、ステップS45にてキーオフイベ
ントでないと判定されると、ステップS49に分岐し
て、MIDIイベントがプログラムチェンジか否かが判定さ
れる。ここで、プログラムチェンジのMIDIイベントと判
定されるとステップS50に進み、そのプログラムチェ
ンジのMIDIイベントに割り当てられている発音チャンネ
ル(MIDI CH)が物理モデル音源(VA音源)に割り当て
られた発音チャンネル(VA CH)か否かが判定される。
そして、プログラムチェンジのMIDIイベントに割り当て
られている発音チャンネルが物理モデル音源と判定され
ると、ステップS51に進みプログラムチェンジで指定
されているVA音源用の音制御パラメータVATONEPARがバ
ッファVAPARBUFに格納されてリターンされる。また、プ
ログラムチェンジのMIDIイベントに割り当てられている
発音チャンネルが物理モデル音源でないと判定される
と、ステップS52に分岐してその発音チャンネルに対
応する音源の音色パラメータ処理が行われリターンされ
る。
【0049】さらにまた、ステップS49にてプログラ
ムチェンジのMIDIイベントでないと判定されると、ステ
ップS53に分岐して該当するMIDIイベントのMIDIイベ
ント処理が行われてリターンされる。このMIDIイベント
処理では、後述するように、たとえばブレスコントロー
ラを操作したとき等の処理が行われる。
【0050】次に、前記ステップS43にて実行される
物理モデル音源キーオン処理のフローチャートを図12
(a)に示す。 物理モデル音源キーオン処理がスター
トされると、ステップS55にて受信されたMIDIメッセ
ージ中のノートナンバがパラメータVAKCとしてバッファ
VATONEBUFに、MIDIメッセージ中のベロシティ情報がパ
ラメータVAVELとしてバッファVATONEBUFに格納され、VA
KEYONフラグが「1」とされる。さらに、MIDIメッセー
ジの受信時刻がイベント発生時刻としてバッファTMに、
パラメータVAKCとピッチベンド値が格納されているピッ
チベンドバッファPBBUFに格納されたピッチベンド値か
ら変換したピッチ周波数データがパラメータPITCH とし
てバッファVATONEBUFに格納される。以上の処理が終了
するとリターンされる。なお、ピッチ周波数を求めると
きにピッチベンド値を使用することに替えて、アンブシ
ュールパラメータの設定にビッチベンド値を使用しても
よい。
【0051】次に、前記した要因4が生じたときにステ
ップS28にて実行される音色設定処理のフローチャー
トを図12(b)に示す。ユーザがマウスやキーボード
を操作して音色の設定操作を行うと、音色設定処理が起
動され、ステップS50にて物理モデル音源の音色設定
が指示されたか否かが判定される。ここで、物理モデル
音源の音色設定が指示されたと判定されると、ステップ
S61にて指示された音色に対応する音色パラメータ
が、前記図7に示すようにバッファVATONEBUF上に展開
される。次いで、ステップS62にてユーザによる音色
パラメータの編集が行われて、音色設定処理は終了す
る。また、ステップS60にて物理モデル音源の音色設
定が指示されていないと判定された場合は、ステップS
62にジャンプしてユーザによる音色パラメータの編集
が行われて、音色設定処理は終了する。
【0052】次に、前記ステップS53にて行われるそ
の他のMIDIイベント処理のフローチャートを図12
(c)に示す。その他のMIDIイベント処理がスタートさ
れると、ステップS65にて受信されたその他のMIDIイ
ベントに割り当てられている発音チャンネル(MIDI C
H)が物理モデル音源(VA音源)に割り当てられた発音
チャンネル(VA CH)か否かが判定される。そして、そ
の他のMIDIイベントに割り当てられている発音チャンネ
ルが物理モデル音源と判定されると、ステップS66に
進みその他のMIDIイベントがブレスコントローライベン
トか否かが判定され、ブレスコントローライベントと判
定された場合は、ステップS67にてブレスコントロー
ライベント内のパラメータBRETH CONTがプレッシャーバ
ッファPBUFに格納される。
【0053】また、ブレスコントローライベントと判定
されない場合は、ステップS67をジャンプしてステッ
プS68に進み、その他のMIDIイベントがPITCH BENDイ
ベントか否かが判定される。ここで、PITCH BENDイベン
トと判定されるとステップS69にてアンブシュールモ
ードとされているか否かが判定されて、アンブシュール
モードと判定されたときは、ステップS70にてPITCH
BENDイベント中のパラメータPITCHBENDがアンブシュー
ルバッファEMBBUFに格納される。また、アンブシュール
モードでないと判定された場合は、ピッチベンドとして
使用するようにステップS72にてPITCH BENDイベント
中のパラメータPITCHBENDがピッチベンドバッファPBBUF
に格納される。
【0054】さらに、ステップS65にて物理音源モデ
ルに割り当てられた発音チャンネルでないと判定された
場合、および、ステップS68にてPITCH BENDイベント
でないと判定された場合は、ステップS71にジャンプ
して、受信されたその他のMIDIイベントが上記イベント
に該当しないとして、ステップS71にてそのイベント
に対応した処理が行われてリターンされる。なお、アン
ブシュール信号は演奏者がマウスピースを咥える圧力に
相当する信号であり、アンブシュール信号によりピッチ
が変化するため、アンブシュールモード時にはパラメー
タPITCHBENDがアンブシュールバッファEMBBUFに格納さ
れるのである。以上説明したように、MIDIイベントが受
信されるごとにMIDIイベント処理により演奏に関わるパ
ラメータの書き換えが行われるのである。
【0055】次に、物理モデルパラメータ展開処理のフ
ローチャートを図13に示すが、この処理は前記した音
色設定処理のステップS61にて行われる処理であり、
発音させる前に行われる処理である。物理モデルパラメ
ータ展開処理がスタートされると、ステップS75にて
CPU負荷状態がチェックされる。このチェックはCP
U1からの状態報告等に基づいて、設定されているサン
プリング周波数FSの値を考慮して行われる。そして、
チェックの結果、ステップS76にてCPU1に余裕が
あると判定されたときは、ステップS77にてユーザが
設定した1フレームの周期、またはもっとも短いフレー
ム周期である標準値のフレーム周期TIMDEFが、波形発生
処理を起動するタイマ割り込みを出力するソフトタイマ
の周期timとして設定される。なお、標準値のフレーム
周期TIMDEFは、たとえば2.5msecとされる。
【0056】ついで、ステップS78にて選択されてい
る物理モデル音源用の音制御パラメータVATONEPAR内の
サンプリング周波数FSが、動作サンプリング周波数SA
MPFREQとして設定される。さらに、ステップS79にて
アラーム解除処理が行われ、ステップS80にてパラメ
ータSAMPFREQ、パラメータVAKCに対応する音制御パラメ
ータVATONEPARが読み出されてバッファVAPARBUFに格納
されてリターンされる。この場合、パラメータVAVELを
も考慮した音制御パラメータVATONEPARを読み出してバ
ッファVAPARBUFに格納してもよい。
【0057】また、ステップS76にてCPU1に余裕
がないと判定された場合は、ステップS81に分岐して
フレーム時間自動変更モードに設定されているか否かが
判定される。フレーム時間自動変更モードに設定されて
いると判定された場合は、ステップS82にて標準値の
フレーム周期TIMDEFに整数αが乗算された値が、ソフト
タイマの周期timとして設定される。整数αは1を越え
る任意の設定数であり、フレーム周期を伸ばすと、パラ
メータを物理モデル音源に対して送る頻度を少なくする
ことができ、変更データの転送処理やデータ変化に伴う
演算などを低減することができる。
【0058】ついで、ステップS83にて現在設定され
ている動作サンプリング周波数SAMPFREQのチェックが行
われるが、動作サンプリング周波数SAMPFREQが標準のサ
ンプリング周波数FS1とされている場合は、CPU1
に余裕がないことからステップS84にて1/nとされ
たサンプリング周波数FS2が動作サンプリング周波数
SAMPFREQとして設定される。そして、前記したステップ
S79以降の処理が行われる。ただし、ステップS80
にては、変更されたパラメータSAMPFREQに対応する新た
な音制御パラメータVATONEPARが読み出されてバッファV
APARBUFに格納されるようになる。
【0059】さらに、ステップS83にて動作サンプリ
ング周波数SAMPFREQが標準サンプリング周波数FS1と
されていないと判定された場合は、ステップS85に分
岐してアラーム表示の処理が行われる。これは、動作サ
ンプリング周波数SAMPFREQが1/n・FS1とされ、C
PU1の負荷が比較的小さくなるはずのサンプリング周
波数FS2に設定されているにも関わらず、CPU1に
余裕がないと判断されたからであり、この場合は物理モ
デル音源における演算生成処理が不可能となるからであ
る。ついで、ステップS86にて物理モデル音源が発音
中であれば、その消音処理を行い前記したステップS8
0の処理を行う。
【0060】以上説明した処理により、バッファVAPARB
UFに物理モデル音源が波形データを生成するための音制
御パラメータVATONEPARが格納され、演算による波形発
生処理が行われるようになる。この波形発生処理におい
ては、CPU1の負荷状態によって動作サンプリング周
波数をダイナミックに変更する処理が同時に行われる。
この物理モデル音源の波形発生処理のフローチャートを
図14および図15に示す。周期timが設定されたソフ
トタイマのタイマ割り込み出力により波形発生処理が起
動され、ステップS90にてキーオンフラグVAKEYONが
「1」とされているか否かが判定される。キーオンフラ
グVAKEYONが「1」とされていると判定されると、ステ
ップS91にてそのフレームで必要とされる演算量が計
算される。この演算量は、継続音のためのサンプル数
と、直前のフレームにおいて受信されたMIDIメッセージ
にキーオンイベントが含まれていた場合は、新たに発音
される音のサンプル数とを生成するための演算量とな
る。なお、新たに発音される音のサンプル数は、MIDIメ
ッセージを受信した時刻から当該フレームが終了するま
でに必要なサンプル数でよい。
【0061】ついで、ステップS92にてCPU1の負
荷状態がチェックされる。このチェックは前フレームに
おいて波形演算時間が1フレーム周期に対して占めた割
合等を考慮して行われる。そして、チェックの結果、ス
テップS93にてCPU1に余裕があると判定されたと
きは、ステップS94にて選択されている音制御パラメ
ータVATONEPAR内のサンプリング周波数FSが動作サン
プリング周波数SAMPFEQとして設定される。また、CP
U1に余裕がないと判定された場合は、ステップS10
5に分岐して動作サンプリング周波数SAMPFREQを下げる
か否かが判定される。ここで、動作サンプリング周波数
SAMPFREQを下げる余地があると判定された場合は、ステ
ップS106にて動作サンプリング周波数SAMPFREQが1
/nとされたサンプリング周波数FS2とされる。
【0062】また、すでにサンプリング周波数FS2と
されていて動作サンプリング周波数SAMPFREQを下げる余
地がないと判定された場合は、ステップS107に分岐
してアラーム表示の処理が行われる。これは、動作サン
プリング周波数SAMPFREQが1/n・FS1とされ、CP
U1の負荷が比較的小さくなるはずのサンプリング周波
数FS2に設定されているにも関わらず、CPU1に余
裕がないと判断されたからであり、この場合は必要とす
る演算量を1フレーム時間あるいは所定時間内で達成す
ることができないからである。ついで、ステップS10
8にて物理モデル音源が発音中であれば、その消音処理
が行われリターンされる。
【0063】ところで、ステップS94あるいはステッ
プS106の処理が終了すると、ステップS95にてア
ラーム解除処理が行われ、ステップS96にて動作サン
プリング周波数SAMPFREQの変更処理が行われたか否かが
判定される。ここで、動作サンプリング周波数SAMPFREQ
の変更処理が行われたと判定された場合は、ステップS
97にて、サンプリング周波数変更によるパラメータ変
更処理が行われる。すなわち、発音中のノートに関する
動作サンプリング周波数SAMPFREQに対応する音制御パラ
メータVATONEPARが読み出されてバッファVAPARBUFに格
納される。なお、動作サンプリング周波数SAMPFREQの変
更処理が行われないと判定された場合は、ステップS9
7の処理はスキップされる。
【0064】ついで、ステップS98にてトランケート
処理を行うか否かが判定される。このトランケート処理
は、単音仕様の場合のトランケート処理とされ、発音さ
れていた音の消音処理を行って、次の音を立ち上げる処
理が行われる。ここで、トランケートフラグVATRUNCATE
が「1」とされていると、YESと判定されてトランケー
ト処理が行われる。すなわち、ステップS99に進み息
圧あるいは弓速度の信号Pと、アンブシュールあるいは
弓圧力の信号Eが「0」とされ、ステップS100にて
エンベロープのフォーシングダンプ処理が行われる。こ
のダンプ処理は、ENVLOPE制御部に供給されるEG PARを
制御することにより行われる。そして、エンベロープの
フォーシングダンプ処理が終了したか否かがステップS
101にて判定され、終了したと判定されると、ステッ
プS102にてループ内の遅延回路に設定されているDE
LAY量が「0」とされる。これにより、発音されていた
音の消音処理が終了する。
【0065】続けて、図15に示すステップS109に
てプレッシャーバッファPBUFに格納されているデータが
信号Pとして、アンブシュールバッファEMBBUFに格納さ
れているデータが信号Eとして設定されると共に、キー
コードパラメータVAKCとピッチベンドバッファPBBUFに
格納されていたピッチベンドパラメータに基づいて変換
した周波数データを、ピッチパラメータPITCHとして設
定する。さらに、ステップS110にてバッファVAPARB
UFに格納されている物理モデル用の音制御パラメータVA
TONEPARに基づいて、物理モデル演算処理が行われる。
この演算処理が一度行われると1サンプルの音源波形デ
ータが生成され、1サンプルの音源波形データは波形出
力バッファWAVEBUFに格納される。
【0066】そして、ステップS111にて前記ステッ
プS91にて計算したサンプル数分のサンプルの演算が
終了したか否かが判定され、演算が終了していないと判
定された場合は、ステップS113に分岐して、例えば
1フレーム時間あるいは所定時間内におけるCPU1の
演算占有時間がチェックされる。チェックの結果1フレ
ーム時間を超えていないとステップS114にて判定さ
れた場合は、ステップS110に戻り次のサンプルの演
算処理が行われる。ステップS110、S111、S1
13、S114の処理は、1フレーム時間を超えない限
り所定のサンプル数が得られるまで循環して実行され
る。この結果、ステップS111にて1フレームにおけ
る所定のサンプル数分の演算が終了したと判定されるよ
うになる。そして、ステップS112にて波形出力バッ
ファWAVEBUFに格納された音源波形データが出力デバイ
ス(CODEC)に引き渡されるようになる。
【0067】また、所定サンプル数分の演算が終了しな
いうちに1フレーム時間を超えてしまったとステップS
114にて判定された場合は、ステップS115に分岐
して波形出力バッファWAVEBUF上の音源波形データの消
音処理が行われる。ついで、ステップS112にて波形
出力バッファWAVEBUFに格納された音源波形データが出
力デバイス(CODEC)に引き渡されるようになる。な
お、ステップS90にてキーオンフラグVAKEYONが
「1」とされていないと判定された場合は、ステップS
103に分岐されキーオフ処理中か否かが判定され、YE
Sと判定された場合はステップS104にてキーオフ処
理が続行される。また、キーオフ処理中と判定されない
場合は、そのままリターンされる。
【0068】ところで、サンプリング周波数が変更可能
な物理モデル音源を構築するためには、サンプリング周
波数が可変できると共に、遅延時間も自由に設定できる
遅延手段が必要になる。この可変遅延手段について図1
8を参照しながら次に説明する。
【0069】物理モデル音源においては、各遅延回路は
RAM3の遅延領域をシフトレジスタとして使用するこ
とにより所定の遅延量を得るようにしている。図18に
示すDELAYx20がRAM3上に確保された遅延領域から
なる遅延回路であり、その遅延量の整数部は入力される
データが書き込まれるアドレス位置を示すライトポイン
タ(WRITE POINTER)と、データが読み出されるアドレ
ス位置を示すリードポインタ(READ POINTER)との間の
シフトレジスタ段数Dとなる。また、遅延量の小数部
は、リードポインタと該リードポインタよりn段前のア
ドレス位置(READPOINTER-n)からそれぞれ読み出され
るデータ間を補間するための乗算器MU21に設定される乗
算係数dとなる。ただし、補間用の乗算器MU20には乗算
係数(1−d)が設定される。
【0070】この場合、DELAYx20において加算器AD20
から出力される遅延出力の総遅延量は遅延段数換算で
は、(D+d)となり、時間換算ではサンプリング周波
数FSに対して(D+d)/FSとなる。ここで、設定
選択可能なサンプリング周波数のうち最高値をFS1と
すると、基本的にサンプリング周波数FS1の周期時間
が遅延1段に対応するように遅延を構成することが望ま
しいことになる。そうすれば、サンプリング周波数をF
S1のn分の1にするときは、サンプル演算毎に、隣接
したn段の遅延に演算結果の1サンプルをnアドレスに
わたり連続書き込みし、かつ遅延出力はリードポインタ
をnアドレスづつ更新させて読み出せばよいことにな
る。従って、このような構成の場合、必要な遅延時間T
dを実現する遅延段数換算値(D+d)は、サンプリン
グ周波数に関わらず、(D+d)=Td・FS1とな
る。なお、ライトポインタおよびリードポインタは、等
価的にシフトレジスタ上を矢印で図示するアドレス方向
に移動するようにされ、シフトレジスタの右端に達する
とその左端にジャンプするように移動して、DELAYx20
上を循環している。
【0071】上記したように、サンプリング周波数FS
に関わらず遅延1段の時間換算された遅延時間長を一定
(1/FS1)としているので、サンプリング周波数F
SがFS1の1/nのサンプリング周波数FS2に変更
された場合に遅延出力の遅延時間長が変化しないよう
に、ライトポインタは演算生成された1サンプルデータ
を連続するnアドレスにわたって書き込みようにして、
1サンプルデータが演算生成される毎にnアドレス進む
ようにし、リードポインタはnアドレスづつ更新されて
(n−1)アドレス飛ばしで遅延されたサンプルデータ
を読み出すようにしている。これにより、演算生成され
たサンプルデータの1サンプル前の遅延出力は、nアド
レス前のアドレス位置から読み出した遅延出力に対応す
るようになる。このため、図18に図示するように小数
遅延部においてリードポインタからn段(nアドレス)
前のアドレス位置から補間のための1サンプル前のデー
タを読み出しているのである。
【0072】また、物理モデル音源におけるフィルタ等
に備えられる単位遅延手段においても、前記した遅延回
路と同様の手段を用いることにより、設定されたサンプ
リング周波数が変更されても遅延時間長が変更されない
ようにしている。この単位遅延手段について図19を参
照して説明する。単位遅延手段もRAM3の遅延領域を
シフトレジスタとして使用することにより単位遅延を得
るようにしている。図19示すDELAYx21がRAM3上
に確保された遅延領域からなる単位遅延手段であり、そ
の単位遅延量は入力されるデータを書き込むライトポイ
ンタ(WRITE POINTER)のアドレス位置と、データを読
み出すリードポインタ(READ POINTER)のアドレス位置
との間のn段のシフトレジスタにより得ている。
【0073】前記図18に示す遅延回路において説明し
たように、1サンプル前のサンプルデータはnアドレス
(n段)前に書き込まれているので、ライトポインタと
リードポインタとのアドレス差はnアドレスとされてい
る。この場合も、ライトポインタはn個同じデータをn
アドレスにわたり書き込みようにし、リードポインタは
nアドレスづつ更新されてデータを読み出すようにして
いる。また、単位遅延手段においては、その性質上n段
の遅延領域のみにより構成することが可能である。
【0074】また、出力デバイスであるCODEC14の再
生サンプリング周波数は、前記したように一般に固定さ
れているので演算生成されるサンプルデータのサンプリ
ング周波数が1/nに変更された場合は、音源波形デー
タが1サンプル生成されたときに、その演算生成された
1サンプルデータをn個づつRAM3上の波形出力バッ
ファWAVEBUFの連続するアドレス位置に繰り返し書き込
むようにする。従って、この実施の形態の例では波形出
力バッファWAVEBUFF上には1フレーム分の波形出力サン
プルデータ列がサンプリング周波数FS1に対応した形
で生成される。ここで、CODEC14がサンプリング周波
数FS1で動作するとすれば、CODEC14は波形出力バ
ッファWAVEBUFの内容をそのまま受け取ってサンプリン
グ周波数FS1でDA変換すればよい。
【0075】なお、CODEC14の再生サンプリング周波
数が生成演算されるサンプルデータのサンプリング周波
数に応じて同期可変される場合は、演算生成されるサン
プルデータを順次1サンプルづつ RAM3上の波形出
力バッファWAVEBUFに書き込むようにすればよい。とこ
ろで、前記図14および図15に示す波形発生処理にお
いては、サンプリング周波数FSに最適な音制御パラメ
ータVATONEPARを読み出して、音源波形データの生成演
算時に使用するパラメータとしてバッファVAPARBUFに格
納している。このため、各音色の音制御パラメータVATO
NEPARは、取り得るサンプリング周波数FS毎のパラメ
ータセットとして記憶手段に記憶されている。
【0076】この態様の一例を図20(a)に示すが、
この例においては、VATONEPAR1(FS1) とVATONEPAR1(FS
2)とは、たとえばピアノの音制御パラメータであり、VA
TONEPARk(FS1) とVATONEPARk(FS2)とは、たとえばバイ
オリンの音色用の音制御パラメータである。このよう
に、VATONEPAR1〜VATONEPARkまでの音色番号の音制御パ
ラメータはサンプリング周波数毎に用意された同じ音色
のパラメータセットとされている。また、音色番号がVA
TONEPAR(K+1)以降の音制御パラメータは、それぞれ独立
した音色とされ、サンプリング周波数FS1あるいはサ
ンプリング周波数FS2のいずれかに対応した音制御パ
ラメータとされており、等しくされた音色番号はない。
【0077】また、他のパラメータの態様の例を図20
(b)に示すが、この例においては、設定可能な各サン
プリング周波数FSに対する音色データをそれぞれ同一
の音制御パラメータVATONEPARiに用意するようにしてい
る。すなわち、VATONEPAR1(FS1,FS2)〜VATONEPARm(FS1,
FS2)までは、サンプリング周波数FS1,FS2毎に用
意された同一の音色のパラメータがすべて1つの音制御
パラメータVATONEPARi内に用意されている。この場合、
サンプリング周波数FSに対応する音色パラメータを1
つの音制御パラメータVATONEPARi内から抽出して、バッ
ファVAPARBUFに格納するようにする。
【0078】なお、VATONEPARm+1以降の音色番号の音制
御パラメータにおいては、独立した音色の音制御パラメ
ータとされており、サンプリング周波数FS1あるいは
サンプリング周波数FS2のいずれかに対応する音色用
とされている。すなわち、VATONEPARm+1(FS1,*)はサン
プリング周波数FS1のパラメータのみとされており、
VATONEPARp(*,FS2)はサンプリング周波数FS2のみの
パラメータとされている。ところで、サンプリング周波
数を変更しても聴感上、同じ音になるようにする場合、
サンプリング周波数に応じて調整が必要になるパラメー
タには、遅延ループ部の遅延パラメータをはじめ、他に
フィルタ係数や、励振部の非線形変換部の非線形特性等
がある。
【0079】次に、前記した波形発生処理のステップS
110にて実行される物理モデル音源処理のフローチャ
ートを図16に示す。物理モデル音源処理がスタートさ
れると、ステップS120にて指定されたピッチ周波数
と、各部の設定状態を示す動作サンプリング周波数SAMP
FREQ、バッファVAPARBUFに格納されている音制御パラメ
ータVATONEPARに応じて、各可変遅延の遅延長設定処理
が行われる。この場合の各遅延時間長の設定は、図18
に示すように行われる。
【0080】ついで、ステップS121にて動作サンプ
リング周波数SAMPFREQ、息圧あるいは弓速度の信号P、
アンブシュールあるいは弓圧力の信号E、および、バッ
ファVAPARBUFに格納されている音制御パラメータVATONE
PARに基づいて、前記図6に示すような励振部に関する
演算処理が行われる。すなわち、励振戻り信号EXINが取
り込まれ、ついで動作サンプリング周波数SAMPFREQに対
応するフィルタパラメータFLTPARに基づいて、励振部フ
ィルタFIL10のフィルタ演算が行われる。さらに、動作
サンプリング周波数SAMPFREQに応じた非線形変換特性に
よる非線形変換部1、および、必要ならば非線形変換部
2の演算と、その周辺部の演算が行われる。そして、励
振部出力信号EXOUTが演算生成されて出力される。
【0081】続いて、ステップS122にて動作サンプ
リング周波数SAMPFREQと、バッファVAPARBUFに格納され
ているパラメータVATONEPARに基づいて、前記図4に示
すような管/弦モデル部に関する演算処理が行われる。
すなわち、励振部出力信号EXOUTが取り込まれ、動作サ
ンプリング周波数SAMPFREQに対応するジャンクションパ
ラメータJUNCTPARに基づいてジャンクション部の演算が
行われる。さらに、遅延ループ部の演算処理が行われる
が、ここでは、動作サンプリング周波数SAMPFREQに対応
するフィルタパラメータFLTPARに基づいて各終端フィル
タFILTER-R,FILTER-Lのフィルタ演算も行われる。そし
て、演算生成された励振戻り信号EXIN、および、出力サ
ンプル信号OUTが出力される。
【0082】続いて、ステップS123にて動作サンプ
リング周波数SAMPFREQと、バッファVAPARBUFに格納され
ているパラメータVATONEPARに基づいて、前記図5に示
すような音色効果付与部に関する演算処理が行われる。
すなわち、出力サンプル信号OUTが取り出され、ENVELOP
E制御部ELの演算処理、共鳴体モデル部REの演算処理、
エフェクト部EFの演算処理が行われる。そして、演算生
成された最終出力が、音源波形データTONEOUTとして出
力される。この音源波形データTONEOUTは前述したよう
に演算生成されたサンプルのサンプリング周波数FSに
応じた態様で波形出力バッファWAVEBUFに書き込まれ
る。
【0083】次に、物理モデル部演算処理のステップS
122にて行われる遅延ループ部演算処理のフローチャ
ートを図17に示す。ただし、このフローチャートでは
終端フィルタFILTER-Rと乗算器MU8に関する演算処理だ
けを詳細に示しているが、FILTER-Lと乗算器MU3の演算
処理も同様に行われる。遅延ループ部演算処理がスター
トされると、ステップS130にて終端フィルタFILTER
-Rの直前である右終端までのループ部分の演算処理が行
われる。ついで、ステップS131にて演算省略条件の
チェックが行われる。このチェックは実質的にループゲ
インがほぼゼロとされている部分の演算を省略して、遅
延ループ部全体の演算量を低減するために行う。具体的
に演算省略条件を挙げると、第1の演算省略条件は、終
端フィルタFILTER-Rの出力が「0」とされている時であ
る。この場合、終端フィルタFILTER-Rから所定時間
「0」が連続して出力されるときとしてもよい。さら
に、終端フィルタFILTER-Rの入力や内部遅延レジスタの
内容などまでチェックするようにしてもよい。さらにま
た、最終出力TONEOUTが十分に減衰している場合も演算
省略条件を満足しているとしてもよい。
【0084】第2の演算省略条件は、終端フィルタFILT
ER-Rの入力信号に十分な変化がないときである。このと
きは、演算を省略して直前の終端フィルタFILTER-Rから
の出力値を今回の出力値とする。さらに、乗算器MU8に
おいても同様に直前の出力値を今回の出力値としてもよ
い。第3の演算省略条件は、乗算器MU8の乗算係数TERMG
Rがゼロあるいはほぼゼロであるときである。この場合
は、演算を省略して右終端出力をゼロとする。
【0085】以上挙げた演算省略条件の内の終端フィル
タFILTER-Rに関する演算省略条件を満足したときに、ス
テップS132にてYESと判定されてステップS133
に進み、満足する省略条件に対応した上述した出力値の
受け渡し処理が行われる。また、終端フィルタFILTER-R
に関する演算省略条件を満足しないと判定された場合は
ステップS137に分岐して終端フィルタFILTER-Rに関
する演算が行われる。そして、ステップS133あるい
はステップS137の処理が終了すると、ステップS1
34にて上記の演算省略条件の内の乗算係数TERMGRに関
する演算省略条件を満足したときに、YESと判定されて
ステップS135に進み、満足する省略条件に対応した
出力値の受け渡し処理が行われる。また、乗算係数TERM
GRに関する演算省略条件を満足しないと判定された場合
はステップS138に分岐して、乗算器MU8において乗
算係数TERMGRを乗算する演算が行われる。そして、ステ
ップS135あるいはステップS138の処理が終了す
ると、ステップS136にて残る他の遅延ループ部分の
演算処理が行われてリターンされる。
【0086】なお、演算の省略は遅延ループ部分に限ら
ず、励振部、あるいは、音色効果付与部の演算について
も省略することができる。励振部については、励振部各
部の信号路の信号振幅や関連パラメータの値などがほぼ
ゼロとなっているか等をチェックして演算省略の解析判
断をする。また、音色効果付与部については、ENVELOPE
制御部EL、共鳴体モデル部RE、あるいは、エフェクト部
EFからの出力が十分減衰されて、ほぼゼロとされている
ときに、出力がほぼゼロとなっているブロック毎の演算
を省略してその出力値をゼロとすればよい。
【0087】以上説明した本発明において、サンプリン
グ周波数FSの変更制御に伴い、非線形部における非線
形変換特性によっては折り返しノイズが生じるおそれが
ある。そこで、このような場合は、非線形変換の入力側
においてオーバサンプリングし、得られた非線形変換出
力をフィルタで帯域制限した上で元のサンプリング周波
数に戻すようにすればよい。
【0088】ところで、前記図4に示す物理モデル音源
において、キーオン中に新たなキーオンが発生したとき
は、新たなキーオンに対応する楽音を発音する処理を行
うようになる。この際、前のキーオンに対応する楽音を
継承するような形で発音する場合は、物理モデル内を循
環する信号、例えば、管/弦モデル部などの遅延内の信
号は、基本的にはそのままで励振信号の発生をキーオン
に対応して行えばよい。しかしながら、直前のキーオン
対応の楽音発生状態を継承せず、独立性の高い楽音の立
ち上げを行う場合、あるいは新たなキーオンで直前のキ
ーオン時とは異なる音色の楽音を発生するときなどは、
新たなキーオンに応じて物理モデル内の、特に遅延回路
の初期化を行う必要が生じる。
【0089】この場合に、物理モデル音源の発音チャン
ネル数が「1」とされている場合には、前記物理モデル
音源内の全ての遅延回路を構成しているRAM3の遅延
領域をクリアして初期化してから新たなキーオンに対応
する楽音を生成することになる。また、物理モデル音源
の発音チャンネル数が複数チャンネルとされている場合
には、最も減衰の進んでいる発音チャンネルの楽音を消
音するように、その発音チャンネルの遅延回路を構成し
ているRAM3の遅延領域をクリアした後、初期化され
た当該遅延領域を使用して新たなキーオンに対応する楽
音を生成することになる。
【0090】このようなRAM3の遅延領域のクリア
は、当該遅延領域にデータ”0”を書き込むことにより
行われるので、クリア時間分だけ楽音生成が遅れるよう
になる。そこで、遅延領域のクリアの待ち時間をなくす
ことのできる遅延回路の構成をハードウェア的に図21
に示す。図21に示すように遅延回路は2系列の遅延手
段により構成するようにし、第1遅延系列の遅延手段
は、乗算手段MU31,遅延手段DELAYaと乗算手段MU32とが
縦続接続されて構成されており、第2遅延系列の遅延手
段は、乗算手段MU33,遅延手段DELAYbと乗算手段MU34と
が縦続接続されて構成されている。そして、入力データ
INPUTは第1遅延系列および第2遅延系列に分配されて
入力され、第1遅延系列および第2遅延系列の出力は、
加算手段AD31により合成されて遅延出力データOUTPUTと
して出力される。
【0091】また、乗算手段MU31には乗算係数INGAINa
が、乗算手段MU33には乗算係数INGAINbが、乗算手段MU3
2には乗算係数OUTGAINaが、乗算手段MU34には乗算係数O
UTGAINbが、それぞれ与えられている。なお、図21に
示すように乗算手段MU31,MU32により入力制御部(INPUT
CONTROLLER) が構成されており、乗算手段MU32,MU34
および加算手段AD31により合成部(MIX)が構成されて
いる。ところで、図21においては遅延回路はハードウ
ェア的に表現されているが、実際にはRAM3の遅延領
域を用いた遅延処理プログラムによりソフトウェアで実
現されている。
【0092】次に、図21に示す遅延回路の動作を図2
2を参照しながら説明する。図22(a)は第1の遅延
系列と第2の遅延系列とのいずれかをセレクタ式に制御
する場合の等価回路を示す図であり、入力データINPUT
はセレクタ(SEL)31において、遅延手段DELAYaあ
るいは遅延手段DELAYbのいずれかに導かれる。すなわ
ち、前記した入力制御部がセレクタ31を構成すること
になり、この際に乗算手段MU31に与えられる乗算係数IN
GAINaと、乗算手段MU33に与えられる乗算係数INGAINbの
うち一方の乗算係数を”0”に、他方の乗算係数を”
1”に制御することによりセレクタ31の機能を実現し
ている。
【0093】また、遅延出力データOUTPUTは遅延手段DE
LAYaあるいは遅延手段DELAYbのいずれかから出力され
る。すなわち、前記した合成部がセレクタ32を構成す
ることになり、この際に乗算手段MU32に与えられる乗算
係数OUTGAINaと、乗算手段MU34に与えられる乗算係数OU
TGAINbのうち一方の乗算係数が”0”に、他方の乗算係
数が”1”に制御されることによりセレクタ32の機能
が実現されている。なお、乗算係数INGAINYaと乗算係数
OUTGAINa とは等しい係数値となるように制御され、乗
算係数INGAINYbと乗算係数OUTGAINb とは等しい係数値
となるように制御される。また、遅延手段DELAYaと、遅
延手段DELAYbには、それぞれ割り当てられた楽音のピッ
チに応じた遅延量DLYa、あるいは遅延量DLYb が設定さ
れる。
【0094】図22(a)に示す遅延回路の動作を具体
的に説明すると、乗算係数INPUTaと、乗算係数OUTPUTa
とが”1”とされ、乗算係数INPUTbと、乗算係数OUTPUT
bとが”0”とされていると、入力データINPUTはセレク
タ31により遅延手段DELAYaに導かれ、遅延手段DELAYa
により設定された遅延量DLYaに応じた時間だけ遅延が
行われる。遅延された入力データは、セレクタ32を介
して所定時間遅延された出力データOUTPUTとして出力さ
れる。また、乗算係数INPUTaと、乗算係数OUTPUTaと
が”0”とされ、乗算係数INPUTbと、乗算係数OUTPUTb
とが”1”とされていると、入力データINPUTはセレク
タ31により遅延手段DELAYb に導かれ、遅延手段DELAY
b により設定された遅延量DLYbに応じた時間だけ遅延が
行われる。遅延された入力データは、セレクタ32を介
して所定時間遅延された出力データOUTPUTとして出力さ
れる。
【0095】このような第1の遅延系列と第2の遅延系
列とは、トグル的に切り換えて使用することができる。
従って、新たなキーオンが発生した時に、例えば、第1
の遅延系列を使用していた場合には、新たなキーオンが
発生したときに第1の遅延系列における乗算係数INPUTa
と乗算係数OUTPUTaとの乗算係数を”1”から”0”に
変更すると同時に、第2の遅延系列における乗算係数IN
PUTbと乗算係数OUTPUTbとの乗算係数を”0”から”
1”に変更するようにする。これにより、第2の遅延系
列の遅延手段DELAYbを使用することができ、これにより
直ちに新たなキーオンに応じた楽音を生成することがで
きるようになる。この際に、第1系列における乗算係数
が”0”に変更されることから、第1の遅延系列の遅延
手段DELAYaには、楽音の1周期以内においてデータ”
0”が書き込まれるようになり、クリアされるようにな
る。
【0096】なお、図22(a)に示す遅延回路はハー
ドウェア的に示されているが、ソフトウェアにより上記
した遅延制御を行う場合には、入力側および出力側にお
いてセレクタ31,セレクタ32を設ける必要はなく、
キーオン毎にRAM3における空いている遅延領域を割
り当てることにより、同等の動作を行うことができる。
また、新たなキーオンにより”0”の乗算係数が設定さ
れた遅延系列の遅延手段は、書込ポインタがそれまで使
用していた遅延長分(あるいは該当遅延に割り当てられ
ているメモリ領域分)移動することにより”0”が書き
込まれてクリアされるが、当該メモリ領域は、次に新た
に発生するキーオンにより割り当てられるまで待機状態
にしておいてもよい。この際に、メモリ領域に空きフラ
グを立てるようにするのが好適となる。さらに、新たな
キーオンが発生したときに、トランケート処理が行われ
て割り当てがはずれた遅延系列のクリア処理を、CPU
に余裕があるときに実行するようにしてもよい。
【0097】次に、図22(b)に示す遅延回路は、図
22(a)に示す遅延回路のセレクタ32を合成部(MI
X)34に置き換えたものであり、上記した図22
(a)に示す遅延回路と同様の遅延制御を行うことがで
きる。なお、図22(b)に示す遅延回路では、セレク
タ33により遅延系列を切り換えると同時に、合成部3
4を構成する乗算器MU32,MU34にそれぞれ設定する乗算
係数OUTGAINa,OUTGAINbを徐々に”1”から”0”、あ
るいは”0”から”1”へ切り換えていくクロスフェー
ド制御を行うこともでき、楽音の1周期以内において、
第1の楽音から第2の楽音へ滑らかに移行させることが
できる。
【0098】また、図21に示す遅延回路において、乗
算係数INGAINa,INGAINbを共に”1”として、第1遅延
系列および第2遅延系列を常時並列に動作させておき、
キーオンが発生する毎に前回のキーオン時に割り当てら
れた遅延系列とは異なる側の遅延系列に新たなキーオン
に対応したピッチとするための遅延量DLY を設定するよ
うにする。例えば、前回のキーオン時において第1遅延
系列が割り当てられた時には、今回のキーオンでは第2
遅延系列の遅延手段DELAYbに押鍵ピッチに対応する遅延
量DLYbを設定する。同時に、第1遅延系列の乗算係数OU
TGAINa を”1”から”0”に徐々に変化させると共
に、第2遅延系列の乗算係数OUTGAINb を”0”から”
1”に徐々に変化させる。
【0099】このように第1遅延系列と第2遅延系列を
クロスフェード制御することにより、実質的に加算手段
AD31から出力される出力データOUTPUTの遅延量は、遅延
量DLYaから遅延量DLYbに滑らかに変化していくようにな
る。すなわち、ポルタメントを実現することができるよ
うになる。さらにまた、第1遅延系列と第2遅延系列と
のクロスフェード制御を交互に何度も行うようにすると
共に、クロスフェード制御を行う毎に、徐々に”1”の
乗算係数に変化する側の遅延系列の遅延手段に設定され
る遅延量DLYを任意に変更することにより、任意のピッ
チカーブで音高が変化する楽音を得ることができる。
【0100】さらに、第1遅延系列と第2遅延系列を互
いに異なるサンプリング周波数対応の遅延回路として使
用すると共に、その遅延量は同一となるようにする。さ
らに、乗算係数INGAINaと乗算係数INGAINbとの和が”
1”となるようにすると共に、乗算係数OUTGAINaと乗算
係数OUTGAINbとの和が”1”となるようにしながら、適
宜各乗算係数を制御する。このようにすると、サンプリ
ング周波数の違いによる音色が混じり合うようになり、
新たな音色の楽音を生成することができるようになる。
また、物理モデル音源における枝路の信号振幅が小さく
なった場合には、前記した前のキーオンから新たなキー
オンに移行させる方法により、サンプリング周波数の低
い遅延系列に移行させるようにしてもよい。この際に移
行が完了した時点において、割り当てが解除された遅延
系列は他の遅延回路に割り当てることができるようにな
る。
【0101】上記した遅延回路においては、RAM3に
設定された遅延領域を使用して遅延回路がソフトウェア
的に実現されている。この様子を概略的に図23に示
す。図23に示すように、RAM3の所定領域が遅延領
域(DELAY AREA)に割り当てられており、この遅延領域
が複数に分割されて各遅延手段を構成するための単位遅
延領域(DELAY1a,DELAY1b,・・・,DELAYA9,・・・,DELA
Yn)とされる。この単位遅延領域が、それぞれ遅延手段
(DELAY1,・・・,DELAYn)に割り当てられるようにな
る。また、図示するように分割された単位遅延領域毎に
フラグ領域を設けるようにして、このフラグ領域に、そ
の単位遅延領域が遅延手段として使用されておらず空い
ていることを示す「空きフラグ」を立てるようにしても
よい。
【0102】前記図21に示す遅延回路を実現する遅延
領域の割り当てを図23を参照しながら説明する。ただ
し、物理モデル音源は第1遅延回路ないし第n遅延回路
を有しているものとする。前のキーオンにより、例えば
単位遅延領域DELAY1aが第1遅延回路DELAY1の第1遅延
系列の遅延手段に割り当てられ、単位遅延領域DELAY1a
の遅延量が前のキーオンに係るピッチに応じた遅延量DL
Yiに設定されている。また、前のキーオンにより、例え
ば単位遅延領域DELAY9が第n遅延回路DELAYnの第1遅延
系列の遅延手段に割り当てられ、単位遅延領域DELAY9の
遅延量が前のキーオンに係るピッチに応じた遅延量DLYi
に設定されている。
【0103】次いで、今回のキーオンが発生すると、例
えば単位遅延領域DELAY1bが第1遅延回路DELAY1の第2
遅延系列の遅延手段に割り当てられ、単位遅延領域DELA
Y1aの遅延量が今回のキーオンに係るピッチに応じた遅
延量DLYkに設定される。また、今回のキーオンにより、
例えば単位遅延領域DELAYnが第n遅延回路の第2遅延系
列の遅延手段DELAYnに割り当てられ、単位遅延領域DELA
Ynの遅延量が今回のキーオンに係るピッチに応じた遅延
量DLYkに設定される。これにより、前記した図21に示
す遅延回路の動作を実行することができる。
【0104】図23に示す構成は、物理モデル音源の発
音チャンネルが1発音チャンネルとされている場合を示
したが、発音チャンネルが複数発音チャンネルとされて
いる場合に遅延回路を実現する遅延領域の割り当てを図
24に示す。この場合の動作を説明すると、前のキーオ
ンにより、例えば単位遅延領域DELAY1aが第1発音チャ
ンネルの遅延回路DELAY1の第1遅延系列の遅延手段に割
り当てられると、単位遅延領域DELAY1aの遅延量が第1
発音チャンネルに割り当てられた前のキーオンに係るピ
ッチに応じた遅延量DLYpに設定される。次いで、今回の
キーオンが発生して、例えば単位遅延領域DELAY1bが第
1発音チャンネルの遅延回路DELAY1の第2遅延系列の遅
延手段に割り当てられると、単位遅延領域DELAY1aの遅
延量が第1発音チャンネルに割り当てられた今回のキー
オンに係るピッチに応じた遅延量DLYqに設定される。
【0105】また、前のキーオンにより、例えば単位遅
延領域DELAY9が第2発音チャンネルの遅延回路DELAYnの
第1遅延系列の遅延手段に割り当てられた場合は、単位
遅延領域DELAY9の遅延量が第2発音チャンネルに割り当
てられた前のキーオンに係るピッチに応じた遅延量DLYp
に設定される。そして、今回のキーオンにより、例えば
単位遅延領域DELAYnが第2発音チャンネルの遅延回路の
第2遅延系列の遅延手段DELAYnに割り当てられた場合
は、単位遅延領域DELAYnの遅延量が第2発音チャンネル
に割り当てられた今回のキーオンに係るピッチに応じた
遅延量DLYqに設定される。これにより、物理モデル音源
の発音チャンネルが複音化されていても、前記した図2
1に示す遅延回路の動作を実行することができる。
【0106】また、図23および図24に示す構成にお
いて、各遅延回路に割り当てられる単位遅延領域は、予
め割り当てを固定しておいてもよいが、遅延領域に設定
されている単位遅延領域の「空きフラグ」を見ながらキ
ーオン毎にダイナミックに単位遅延領域の割り当てを行
うようにしてもよい。
【0107】以上の説明は主に本発明をパーソナルコン
ピュータで実施するソフトウェア音源の場合を例にして
説明したが、コンピュータシステムの中で、アプリケー
ション・ソフトとするか、あるいは例えばデバイスドラ
イバ・ソフトにするかのいずれの位置づけで本発明の音
源ソフトウェアを起動、動作させるかは、システム構成
やオペレーションシステムOSに応じて適宜決めるよう
にすればよい。
【0108】さらに、本発明のような音源ソフトウェア
またはその機能を、他のソフトウェア、例えば、ゲーム
などのアミューズメントソフト、カラオケソフトや自動
演奏・伴奏ソフトなどに組み込んでもよい。さらにま
た、オペレーションシステムOSに直接組み込むように
してもよい。なお、本発明によるソフトウェアは、フロ
ッピーディスクや光磁気ディスク、CD−ROMなどの
ディスクメディア、あるいはメモりカードなどで供給す
ることもできる。また、ソフトウェアデータを記憶した
半導体チップ(典型的にはROM)を差し替え、追加す
るようにしてもよい。さらにはNETWORK I/F 11を通じて
音源ソフトウェアを配信するようにしてもよい。
【0109】以上の説明では、パソコンでの応用を例に
して説明したが、ゲームやカラオケなどのアミューズメ
ント機器、電子機器、一般電気機器への適用も容易に行
うことができる。また、パソコンのオプションとしての
音源ボードや音源ユニットに適用することも可能であ
る。さらに、専用MPU(DSP)を使用したソフトウ
ェア処理による音源専用機に適用することもできる。こ
の場合、MPUの処理能力が高ければサンプリング周波
数をより高めることができ、高精度の波形出力が必要な
ときにサンプリング周波数をn倍にすることもできる。
【0110】さらに、単音の音源に替えて発音チャンネ
ル数を複音化した場合には、発音処理中のチャンネル数
に応じて、サンプリング周波数の可変制御や、演算アル
ゴリズムの中の省略可能な演算部分の演算削除制御など
を行うようにしてもよい。この場合、演奏パート(MIDI
チャンネル)毎にサンプリング周波数を設定するように
してもよい。さらにまた、以上の実施の形態の説明で
は、CODEC の動作サンプリング周波数は固定であるとし
たが、可変であってもよい。その場合、例えば、波形出
力バッファWAVEBUFとCODEC(DAC)間にサンプリング
周波数を合わせるような処理あるいは回路(典型的には
オーバーサンプリングやダウンサンプリング、データ補
間など)を介在させればよい。
【0111】さらにまた、音色の変化や劣化をさけるた
めに、特定の音色あるいは発音チャンネルの音の生成演
算においては、サンプリング周波数の変更処理や演算ア
ルゴリズムの部分的演算削除を禁止するようにしてもよ
い。さらにまた、出力ボリウムがゼロに設定された場合
は、楽音出力をゼロに下げて、ボリウムが上げられるま
では波形演算処理を実行しないようにしてもよい。な
お、図4ないし図6に示す音源モデルは本発明における
音源モデルの一例であり、本発明はこれに限られるもの
ではない。また、本発明で開示されているサンプリング
周波数可変手段や、信号レベルなどの所定の条件による
波形演算省略制御手段は、物理モデル音源によらず、他
の音源方式にも適用することができる。本発明では、特
に物理モデル音源への適用を示したが、波形メモリ読み
出し方式によるものや、AM、FMなど各種変調技術に
よる音源においても適用可能である。また、図18およ
び図19に示す遅延時間長の制御方法は、リバーブ等の
信号遅延を用いる各種信号処理にも適用可能である。
【0112】
【発明の効果】本発明は以上のように構成されているの
で、CPUの負荷が大きいときはサンプリング周波数を
下げるようにすることができ、楽音の発音が途切れるこ
とのない音源波形データを生成することができる。ま
た、CPUの負荷が軽いときは通常のサンプリング周波
数より高いサンプリング周波数とすることができ、高精
度の音源波形データを生成することができるようにな
る。この場合、サンプリング周波数を変更することに代
えて、発音数を変更するようにしてもよい。
【0113】また、特定の条件を満足する場合、対応の
演算を省略するようにしたので、CPUの負荷が極力大
きくならないように効率的な演算を行うことができる。
したがって、楽音の発音が途切れることのない音源波形
データを生成することができる。また、効率的な演算を
行えることからサンプリング周波数を従来より高いサン
プリング周波数とすることもでき、高精度の音源波形デ
ータを生成することができるようになる。
【図面の簡単な説明】
【図1】 本発明の音源波形データ生成方法が実行され
るソフトウェアシステムの構成例を示す図である。
【図2】 図1に示すソフトウェアシステムの動作タイ
ムチャートを示す図である。
【図3】 本発明の音源波形データ生成方法を具現化し
た本発明の音源波形データ生成装置を備える処理装置の
一構成例の概略を示すブロック図である。
【図4】 本発明の音源波形データ生成方法における音
源モデルの概念を具体化した管/弦モデル部の構成例を
示すブロック図である。
【図5】 本発明の音源波形データ生成方法における音
源モデルの概念を具体化した音色効果付与部の構成例を
示すブロック図である。
【図6】 本発明の音源波形データ生成方法における音
源モデルの概念を具体化した励振部の構成例を示すブロ
ック図である。
【図7】 図6に示すRAM3上に展開される各種デー
タを示す図表である。
【図8】 本発明における演算生成に必要な音制御パラ
メータVATONEPARの詳細を示す図表である。
【図9】 本発明における初期プログラムのフローチャ
ートを示す図である。
【図10】 本発明におけるメインプログラムのフロー
チャートを示す図である。
【図11】 メインプログラム中のMIDI処理のフローチ
ャートを示す図である。
【図12】 MIDI処理中の物理モデル音源キーオン処理
のフローチャート、その他のMIDIイベント処理のフロー
チャート、および、ユーザにより起動される音色設定処
理のフローチャートを示す図である。
【図13】 音色設定処理中の物理モデルパラメータ展
開処理のフローチャートを示す図である。
【図14】 本発明における物理モデル音源の波形発生
処理のフローチャートの一部を示す図である。
【図15】 本発明における物理モデル音源の波形発生
処理のフローチャートの残る一部を示す図である。
【図16】 波形発生処理中の物理モデル演算処理のフ
ローチャートを示す図である。
【図17】 物理モデル演算処理中の遅延ループ部演算
処理のフローチャートを示す図である。
【図18】 モデル音源における遅延回路の遅延時間長
を制御する方法を説明するための図である。
【図19】 モデル音源における単位遅延手段の遅延時
間長を制御する方法を説明するための図である。
【図20】 各音色の音制御パラメータVATONEPARが格
納されている態様の例を示す図である。
【図21】 本発明に係る物理モデル音源における遅延
回路の構成をハードウェア的に示す図である。
【図22】 図21に示す遅延回路における動作モード
を説明するための図である。
【図23】 本発明に係る物理モデル音源における遅延
回路における遅延領域の割り当て動作を説明するための
図である。
【図24】 本発明に係る複数の発音チャンネルを有す
る物理モデル音源における遅延回路における遅延領域の
割り当て動作を説明するための図である。
【符号の説明】
1 CPU、2 ROM、3 RAM、4 ディスプレ
イインターフェース、5ディスプレイ、6 ハード・デ
ィスク装置、7 CD−ROM装置、7−1CD−RO
M、8 インターフェース、9 音源ボード、9−1
DSP、9−2 RAM、10 キーボード、11 ネ
ットワークインターフェース、12MIDIインターフェー
ス、13 演奏操作子、14 CODEC、14−1 サン
プルバッファ、14−2 DAC、20,21 RAM
上に確保された遅延領域、31,32,33 セレク
タ、34 合成部
フロントページの続き (72)発明者 平野 正志 静岡県浜松市中沢町10番1号 ヤマハ株 式会社内 (56)参考文献 特開 平6−97770(JP,A) 特開 平5−297876(JP,A) 特開 平5−249970(JP,A) 特公 平7−122796(JP,B2) (58)調査した分野(Int.Cl.7,DB名) G10H 7/08 G10H 1/02

Claims (5)

    (57)【特許請求の範囲】
  1. 【請求項1】 波形演算アルゴリズムを繰り返し実行す
    ることにより、音源波形データを生成するようにした音
    源波形データ生成方法において、 上記波形演算アルゴリズムを実行する毎に、演算部の負
    荷状態をチェックし、そのチェックの結果に応じて、生
    成される前記音源波形データのサンプリング周波数が変
    更されるようにしたことを特徴とする音源波形データ生
    成方法。
  2. 【請求項2】 波形演算アルゴリズムを繰り返し実行す
    ることにより、音源波形データを生成するようにした音
    源波形データ生成方法において、 上記波形演算アルゴリズムを実行する毎に演算省略条
    件をチェックし、そのチェックの結果、ゲインが実質的
    にゼロとされている部分の演算を省略するようにしたこ
    とを特徴とする音源波形データ生成方法。
  3. 【請求項3】 波形演算アルゴリズムを繰り返し実行す
    ることにより、音源波形データを生成するようにした演
    算部を少なくとも備え、 上記演算部において、上記波形演算アルゴリズムを実行
    する毎に、上記演算部の負荷状態をチェックし、そのチ
    ェックの結果に応じて、生成される前記音源波形データ
    のサンプリング周波数が変更されるようにしたことを特
    徴とする音源波形データ生成装置。
  4. 【請求項4】 波形演算アルゴリズムを繰り返し実行す
    ることにより、音源波形データを生成するようにした演
    算部を少なくとも備え、 上記演算部において、上記波形演算アルゴリズムを実行
    する毎に、演算省略条件をチェックし、そのチェックの
    結果、ゲインが実質的にゼロとされている部分の演算を
    省略するようにしたことを特徴とする音源波形データ生
    成装置。
  5. 【請求項5】 波形演算アルゴリズムを繰り返し実行す
    ることにより、音源波形データを生成するようにした演
    算部を少なくとも備え、 上記演算部において、上記波形演算アルゴリズムを実行
    する毎に、上記演算部の負荷状態をチェックし、そのチ
    ェックの結果に応じて、生成される前記音源波形データ
    のサンプリング周波数が変更されるようになされてお
    り、 前記演算部には、信号サンプルを順次記憶する記憶手段
    からなる遅延手段が含まれており、 該遅延手段は、入力信号サンプルを前記記憶手段に書き
    込むライトポインタと、遅延出力サンプルを前記記憶手
    段から読み出すリードポインタと、 前記ライトポインタと前記リードポインタとのアドレス
    差が所望の遅延量になるよう制御するアドレス発生手段
    とを備え、 該アドレス発生手段は、前記信号サンプルのサンプリン
    グ周波数が第1サンプリング周波数とされたときは、前
    記ライトポインタと前記リードポインタを1アドレスづ
    つ更新制御し、前記信号サンプルのサンプリング周波数
    が第1サンプリング周波数の1/nの第2サンプリング
    周波数とされた場合は、前記ライトポインタを1アドレ
    スづつn回更新すると共に、前記リードポインタはnア
    ドレスづつ更新制御されることを特徴とする音源波形デ
    ータ生成装置。
JP01733397A 1996-08-30 1997-01-14 音源波形データ生成方法および装置 Expired - Fee Related JP3223827B2 (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP01733397A JP3223827B2 (ja) 1996-08-30 1997-01-14 音源波形データ生成方法および装置
SG1997003053A SG67993A1 (en) 1996-08-30 1997-08-26 Sound source system based on computer software and method of 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
EP00123550A EP1087372A3 (en) 1996-08-30 1997-08-28 Sound source system based on computer software and method of generating acoustic data
DE69711518T DE69711518T2 (de) 1996-08-30 1997-08-28 Auf Software basierendes Tonquellensystem und Verfahren zur Erzeugung von akustischen Wellenformdaten
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 (3)

Application Number Priority Date Filing Date Title
JP24859296 1996-08-30
JP8-248592 1996-08-30
JP01733397A JP3223827B2 (ja) 1996-08-30 1997-01-14 音源波形データ生成方法および装置

Publications (2)

Publication Number Publication Date
JPH10124064A JPH10124064A (ja) 1998-05-15
JP3223827B2 true JP3223827B2 (ja) 2001-10-29

Family

ID=26353829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01733397A Expired - Fee Related JP3223827B2 (ja) 1996-08-30 1997-01-14 音源波形データ生成方法および装置

Country Status (1)

Country Link
JP (1) JP3223827B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100697672B1 (ko) * 2005-05-16 2007-03-20 (주)씨프로 카메라 틸팅장치

Also Published As

Publication number Publication date
JPH10124064A (ja) 1998-05-15

Similar Documents

Publication Publication Date Title
US5981860A (en) Sound source system based on computer software and method of generating acoustic waveform data
US5864080A (en) Software sound synthesis system
US11881196B2 (en) Electronic keyboard musical instrument and method of generating musical sound
JP3293434B2 (ja) 楽音発生方法
JP3223827B2 (ja) 音源波形データ生成方法および装置
US6162983A (en) Music apparatus with various musical tone effects
JPH09330079A (ja) 楽音信号発生装置及び楽音信号発生方法
JP3322209B2 (ja) コンピュータソフトウェアを用いた音源システムおよび記憶媒体
JP3141789B2 (ja) コンピュータソフトウェアを用いた音源システム
JP3518716B2 (ja) 楽音合成装置
JP3347338B2 (ja) 楽音合成装置
JP3572847B2 (ja) コンピュータソフトウェアを用いた音源システム及び方法
JP4096952B2 (ja) 楽音発生装置
JPH096343A (ja) 楽音信号発生装置
JP3719129B2 (ja) 楽音信号合成方法、楽音信号合成装置および記録媒体
JP3324409B2 (ja) 楽音処理方法及び装置
JP2002297139A (ja) 演奏データ変更処理装置
JP7124370B2 (ja) 電子楽器、方法及びプログラム
JP3280794B2 (ja) 残響音生成装置及び残響音生成方法
JP3590189B2 (ja) 電子弦楽器
JP3085696B2 (ja) 楽音合成装置
JP3305562B2 (ja) Dspを用いた音響効果付加装置
JP3463547B2 (ja) 演奏データ変更装置、演奏データ変更方法及びプログラムを記録した媒体
JP3092250B2 (ja) 楽音合成装置
JPH0944160A (ja) 楽音生成方法

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010724

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

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20080824

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090824

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees