JP3518357B2 - 楽音生成方法、楽音生成装置及び楽音生成処理プログラムを記録したコンピュータ読み取り可能な記録媒体 - Google Patents
楽音生成方法、楽音生成装置及び楽音生成処理プログラムを記録したコンピュータ読み取り可能な記録媒体Info
- Publication number
- JP3518357B2 JP3518357B2 JP21936398A JP21936398A JP3518357B2 JP 3518357 B2 JP3518357 B2 JP 3518357B2 JP 21936398 A JP21936398 A JP 21936398A JP 21936398 A JP21936398 A JP 21936398A JP 3518357 B2 JP3518357 B2 JP 3518357B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform data
- read
- waveform
- generation
- reading
- 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
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
より、楽音を生成する楽音生成方法、楽音生成装置及び
楽音生成処理プログラムを記録した記録媒体に関する。
6号公報に示されているように、プログラム処理によ
り、楽音を表す波形データを所定の区間毎に繰り返し生
成して記憶手段に書き込んでおき、同記憶手段に書き込
まれた各区間の波形データを所定レートで順次読出すと
ともに各区間の波形データの読出しが終了する毎に次の
区間の波形データの前記読出しを開始するようにして、
連続した楽音を生成することは知られている。
おいては、波形データを生成するための処理よりも優先
順位の高いプログラム処理が実行されて、次の区間の波
形データの読出し開始タイミングまでに同次の区間の波
形データの生成及び書き込みが終了していないと、楽音
が途切れたり、不自然な楽音が発生されるという問題が
ある。
されたもので、その目的は波形データを生成するための
処理よりも優先順位の高いプログラム処理が実行されて
も、楽音が途切れたり、不自然な楽音が発生されないよ
うにした楽音生成方法、楽音生成装置及び楽音生成処理
プログラムを記録したコンピュータ読み取り可能な記録
媒体を提供することにある。
上の特徴は、楽音を表す波形データを順次生成して記憶
手段に書き込んでおき、同記憶手段に書き込まれた波形
データを所定の区間毎に所定レートで順次読出すととも
に各区間の波形データの読出しが終了する毎に次の区間
の波形データの前記読出しを開始するようにして、連続
した楽音を生成する楽音生成方法、楽音生成装置及び楽
音生成処理プログラムを記録したコンピュータ読み取り
可能な記録媒体において、次の区間の波形データの読出
し開始タイミングまでに同次の区間の波形データの生成
及び書き込みが終了するか否かを判定し、同次の波形デ
ータの生成及び書き込みが終了しないと判定されたとき
記憶手段に書き込まれていて既に読出された区間の波形
データを再読出しするようにしたことにある。
出し開始タイミングまでに同次の区間の波形データの生
成及び書き込みが終了していなくても、波形データの読
出しが途切れることがなくなるので、生成される楽音を
途切れさせることなく発生させることができる。また、
再読出しに利用される波形データとしては、記憶手段に
書き込まれていて既に読出された区間の波形データ、す
なわち現在読出されている波形データに近い波形デー
タ、例えば前記読出し開始タイミングまで読出されてい
た区間の波形データを利用できる。したがって、生成さ
れる楽音が極端に変化することを回避して、同楽音を自
然に連続させることができ、生成楽音の音質を良好にで
きる。
前記読出し開始タイミングよりも所定時間だけ前の判定
タイミングで、次の区間の波形データの生成及び書き込
みが同読出し開始タイミングまでに終了するか否かを判
定するようにしたことにある。これによれば、次の区間
の波形データの生成及び書き込みが終了しているか否か
が、同読出し開始タイミング前に確実に判定されるの
で、前記再読出しが確実に行われるようになる。
は、次の波形データの生成及び書き込みが終了しないと
判定されたとき、前記判定タイミングから前記読出し開
始タイミングまで、同判定タイミングまで読出されてい
た区間の波形データと同判定タイミングまで読出されて
いた区間よりも一つ前の区間の波形データのうちの判定
タイミングからその区間の終わりまでの波形データとを
混合して出力するようにしたことにある。これによれ
ば、前記再読出しの開始時における波形データの連続性
がさらに改善され、生成される楽音の連続性がより良好
になる。
を用いて説明すると、図1は本発明に係りプログラム処
理によって楽音を生成する楽音生成装置の全体を概略的
に示している。
てコンピュータ本体部を構成するCPU(中央処理装
置)11、ROM(リード・オンリイ・メモリ)12、
タイマ13、RAM(ランダム・アクセス・メモリ)1
4及び波形インターフェース回路15を備えている。C
PU11は、マイクロプロセッサなどにより構成され、
楽音を表す波形データを生成出力するための図3のソフ
ト音源プログラム及び波形データの再生を制御するため
の図4の波形再生デバイス制御プログラムや、図示しな
い各種アプリケーションプログラムを実行するものであ
る。ROM12は、ハードディスク21から装置のシス
テムプログラムをブートするためのプログラムなどを記
憶しているものである。タイマ13は、時刻を計時指示
するとともにタイマ割込み処理のタイミングをCPU1
1に指示するものである。
ア、波形データエリア、音色データエリア、チャンネル
レジスタエリア、波形バッファエリアなどの各種データ
エリアからなるメモリである。本実施形態においては、
特に図2に詳細に示すように、前記波形バッファエリア
として、プログラム処理により生成された所定区間分の
波形データをそれぞれ一時的に記憶するための波形バッ
ファ14a,14b,14cが用意される。以降、この
所定区間を1フレームというとともに、波形バッファ1
4a,14b,14cに記憶される1フレームずつの波
形データをそれぞれ波形データA,B,Cという。
リングクロック発生器15a、DMAC(ダイレクト・
メモリ・アクセス・コントローラ)15b,15c、A
DC(アナログ・ディジタル・コンバータ)15d及び
DAC(ディジタル・アナログ・コンバータ)15eか
らなる。サンプリングクロック発生器15aは、CPU
11によりバス10を介して指示されたサンプリング周
期にてサンプリングクロック信号をDMAC15b,1
5cにそれぞれ供給するものである。DMAC15b
は、CPU11によりバス10を介して制御される制御
回路、前記サンプリングクロック信号に応答してカウン
トアップするアドレスカウンタ回路などからなり、アド
レスカウンタ回路によるアドレスカウント値の更新時に
は優先的にバス10を確保するとともにRAM14のア
ドレスを直接指定して、CPU11の指示に依らずに波
形データをRAM14に直接書き込む。
な制御回路及びアドレスカウンタ回路などからなるが、
本発明に密接に関係するので、その機能を図7の機能フ
ローチャートに従って説明しておく。このDMAC15
cの作動はソフト音源プログラム(図3)の処理によっ
て許容され、この状態でサンプリングクロック発生器1
5aからサンプリングクロック信号が供給される毎に、
図7の機能フローチャートのステップ300にて制御動
作を開始し、ステップ302〜314からなる制御動作
後、ステップ316にて次の制御動作の開始を待つ。ス
テップ302〜306からなる制御動作は、RAM14
内の波形バッファ14a〜14cのうちのいずれかから
楽音波形の瞬時値を表すサンプリングデータ(波形デー
タ)を一つずつ直接読み出してDAC15eに供給す
る。この場合、ステップ302の制御動作は、CPU1
1に対してバス10の割込み要求を発し、DMAC15
cから波形バッファ14a〜14cに対するアドレス指
定と、同バッファ14a〜14cからDMAC15cへ
のサンプリングデータの供給とのために、バス10を他
のプログラム処理に優先して一時的に開放させるもので
ある。ステップ304の制御動作は、波形バッファ14
a〜14cからサンプリングデータを読出して、DAC
15eに供給するものである。ステップ306の制御動
作は、次のサンプリングデータの読出しのために、アド
レスカウンタ回路を歩進させておくものである。
は、アドレスカウンタ回路によるアドレスカウント値を
用いて、1フレーム分の波形データの再生終了タイミン
グの少し前の所定の判定タイミングで、図3の音源ソフ
トプログラムに対して波形生成終了チェックを要求する
ものである(図8参照)。ステップ312,314の制
御動作は、前記と同様にアドレスカウンタ回路によるア
ドレスカウント値を用いて、1フレーム分の波形データ
の再生終了のタイミングで、図3のソフト音源プログラ
ム及び図4の波形再生デバイス制御プログラムに対して
前記再生終了を通知するものである(図8参照)。
ログ波形信号をディジタル波形データに変換してDMA
C15bに出力する。DAC15eは、DMAC15c
により読出されたディジタル波形データをアナログ波形
信号に変換して出力する。この波形インターフェース回
路15のDAC15eの出力には、アンプ、スピーカな
どからなって楽音を発生するサウンドシステム16が接
続されている。
7、表示器18、ハードディスク21及びリムーバブル
ディスク22も接続されている。キーボード及びマウス
17は、使用者により操作される操作子であってCPU
11に外部から指示を与えるものである。表示器18
は、CPU11による処理状態などを表示するものであ
る。ハードディスク21及びリムーバブルディスク22
は、本発明に係るソフト音源プログラム及び波形再生デ
バイス制御プログラムや、各種アプリケーションプログ
ラム、波形データ、音色制御データなどを記憶しておく
大容量のメモリ装置である。
装置23、外部インターフェース24及びMIDI(Mu
sical Instrument Digital Interface)インターフェー
ス25も接続されている。読取り及び書込み装置23
は、外部記録媒体としてのコンパクトディスク23a及
びフレキシブルディスク23bに記憶されている各種プ
ログラム及びデータを読取るとともに、前記両ディスク
23a,23bに各種プログラム及びデータを書き込む
ためのものである。外部インターフェース24は、各種
プログラム及びデータを電話回線などを介して外部とや
り取りするものである。MIDIインターフェースは、
自動演奏装置、電子楽器などの図示しない外部機器との
音高、キーオン、キーオフなどのMIDIデータ(演奏
データ)のやり取りに利用されるものである。
を生成する動作について説明する。この装置を用いて楽
音を生成させる前に、使用者は、楽音の生成に関係する
ソフト音源プログラム及び波形再生デバイス制御プログ
ラムや、アプリケーションプログラムなどの各種プログ
ラム、並びに波形データ、音色制御データなどの各種デ
ータを記録したコンパクトディスク23a又はフレキシ
ブルディスク23bを読取り及び書込み装置23にセッ
トして、表示器18を見ながらキーボード及びマウス1
7を操作することにより、前記各種プログラム及びデー
タをコンパクトディスク23a又はフレキシブルディス
ク23bから読取ってハードディスク21又はリムーバ
ブルディスク22に書込んでおく。なお、外部機器に記
憶されている前記各種プログラム及びデータを外部イン
ターフェース24を介して入力して、ハードディスク2
1又はリムーバブルディスク22に書込んでおくように
してもよい。
る図示しないアプリケーションプログラムを起動させる
と、図3のソフト音源プログラム及び図4の波形再生デ
バイス制御プログラムも同時に自動的に立ち上げられ
る。なお、アプリケーションプログラムによっては、使
用者が、キーボード及びマウス17の操作によって前記
ソフト音源プログラム及び波形再生デバイス制御プログ
ラムを立ち上げることもある。そして、この楽音生成の
制御が実行される場合には、前記アプリケーションプロ
グラムによって生成されたMIDIデータ(音高デー
タ、キーオンデータ、キーオフデータ)がソフト音源プ
ログラムに対して与えられるか、MIDIインターフェ
ース25を介して外部から供給される。
あたっては、CPU11は、ステップ100における起
動指示後、ステップ102にてステップ104〜122
の処理を実行するためのプログラム及びデータをハード
ディスク21又はリムーバブルディスク22から読出し
てRAM14に記憶し、波形インターフェース回路15
の作動を許容し(特に、サンプリングクロック発生器1
5a及びDMAC15cの作動を許容し)、かつステッ
プ104〜122の処理により利用される波形データエ
リア、音色データエリア、チャンネルレジスタエリア、
波形バッファエリアなどの各種データエリアをRAM1
4内に確保する。
テップ104にて、ステップ110〜120の各処理の
下記起動要因〜をチェックする。 アプリケーションプログラム又は外部からMIDIデ
ータがこのソフト音源プログラムに対して供給された
か。 DMAC15cからこのソフト音源プログラムに対し
て1フレーム分の波形データの再生終了が通知された
か。 DMAC15cからこのソフト音源プログラムに対し
て次の1フレーム分の波形データの生成終了のチェック
要求があったか。 アプリケーションプログラム、外部又はキーボード及
びマウス17などからこのソフト音源プログラムに対し
て楽音の音色及び音量の変更などのその他の指示があっ
たか。 アプリケーションプログラム、外部又はキーボード及
びマウス17からこのソフト音源プログラムに対して終
了の要求があったか。
因がなければ、ステップ106にて「NO」と判定し
て、ステップ104,106からなる循環処理を続け
る。一方、前記〜の起動要因があれば、ステップ1
06,108の判定処理により、CPU11はステップ
110〜120のいずれかの処理を実行する。なお、こ
れらの各処理については、楽音の発音動作を関連して詳
しく後述する。
ムの起動にあたっては、CPU11は、ステップ200
における起動指示後、ステップ202にてステップ20
4〜218の処理を実行するためのプログラム及びデー
タをハードディスク21又はリムーバブルディスク22
から読出してRAM14に記憶し、かつステップ204
〜218の処理により利用される各種データエリアをR
AM14内に確保する。
テップ204にて、ステップ210〜216の各処理の
下記起動要因〜をチェックする。 ソフト音源プログラムからこの波形再生デバイス制御
プログラムに対して次の1フレーム分の波形データの生
成終了が通知されたか。 DMAC15cからこの波形再生デバイス制御プログ
ラムに対して1フレーム分の波形データの再生終了が通
知されたか。 アプリケーションプログラム、外部又はソフト音源プ
ログラムからこの波形再生デバイス制御プログラムに対
してその他の処理を実行すべき指示があったか。 アプリケーションプログラム、外部又はキーボード及
びマウス17からこの波形再生デバイス制御プログラム
に対して終了の要求があったか。
因がなければ、ステップ206にて「NO」と判定し
て、ステップ204,206からなる循環処理を続け
る。一方、前記〜の起動要因があれば、ステップ2
06,208の判定処理により、CPU11はステップ
210〜216のいずれかの処理を実行する。なお、こ
れらの各処理についても、楽音の発音動作を関連して詳
しく後述する。
するが、上述した各プログラムの各ステップの処理は、
図示しないオペレーティング・システム(OS)の制御
のもとに、一つのステップの処理が終了するまで実行さ
れ続けるものではなく、各ステップの処理は一部ずつ実
行されるものであり、実質的には複数のプログラムの処
理が同時に進行しているものと等価である(いわゆるマ
ルチタスク処理)。
て図8(A)に示すようにMIDIデータが供給される
と、CPU11は、ステップ104〜108の判定処理
により、ステップ110のMIDI処理ルーチンを実行
する。このMIDI処理ルーチンでは、音高データ及び
キーオンデータなどの楽音発生開始のためのMIDIデ
ータが供給された場合、同供給されたMIDIデータを
予め用意されている複数の発音チャンネルのいずれかに
割当てるとともに、同MIDIデータに対応した楽音制
御データをRAM14内に設けたチャンネルレジスタに
記憶して、同データに対応した楽音の発生を準備する。
また、音高データ及びキーオフデータなどの楽音発生終
了のためのMIDIデータが供給された場合には、同デ
ータが割り当てられている発音チャンネルを捜して、同
チャンネルにおける楽音の発生終了を準備する。これら
の楽音の発生開始又は発生終了の準備が終了すると、M
IDI処理ルーチンの実行は終了され、新たなMIDI
データがこのソフト音源プログラムに再び供給されたと
きにはじめて、前記ステップ110のMIDI処理ルー
チンが実行される。
源プログラム及び図4の波形再生デバイス制御プログラ
ムに対して、1フレーム分の波形データの再生終了が通
知されると(図8参照)、CPU11は、図3のステッ
プ104〜108の判定処理により、ステップ112の
波形生成処理ルーチンを実行する。この波形生成処理ル
ーチンでは、次の1フレーム分の波形データを生成して
RAM14内に設けた波形バッファ14a〜14cのい
ずれかに記憶しておくために、チャンネルレジスタに記
憶されている楽音制御データに基づいて、複数の発音チ
ャンネルにそれぞれ割当てられている複数の楽音の各瞬
時値を表すサンプリングデータを生成するとともに、同
生成した各サンプリングデータを加算混合して複数の楽
音を混合した混合楽音の瞬時値を表すサンプリングデー
タを順次生成して、波形バッファ14a〜14cいずれ
かに記憶していく。この場合、前記各楽音に関するサン
プリングデータの生成に当たっては、RAM14内に記
憶した音色データ、楽音波形を表す波形データなどを利
用して、波形メモリ読出し方式、変調方式、高調波加算
方式などの楽音合成方式により楽音波形を生成する。ま
た、混合楽音に関するサンプリングデータの波形バッフ
ァ14a〜14cへの記憶に関しては、1フレーム分の
波形データを、波形バッファ14a,14b,14c,
14a…の順に波形データA,B,C,A…として順次
記憶させる。
の再生終了タイミングまでに生成される場合には、図8
に示すような再生終了タイミングより少し前の所定の判
定タイミングで、DMAC15cからこのソフト音源プ
ログラムに対して次の1フレーム分の波形データの生成
終了のチェック要求があっても、実質的な処理は実行さ
れない。すなわち、ステップ102〜108の処理によ
り、プログラムはステップ114に進められるが、同ス
テップ114にて波形生成は終了しているとの判定のも
とにプログラムはステップ104に戻される。
理により、次の1フレーム分の波形データの生成が正常
に終了した場合、正確には図8に示す判定タイミングま
でに同波形データの生成が終了している場合について説
明する。この場合、前記波形生成処理ルーチンにおい
て、生成終了時に、波形再生デバイス制御プログラムに
対して次の1フレーム分の波形データの生成終了が通知
される。具体的には、CPU11が、RAM14内に設
けられて波形再生デバイス制御プログラム用のワークエ
リアにその旨を書き込んでおく。これにより、CPU1
1は、図4の波形再生デバイス制御プログラムのステッ
プ204,206の循環処理中、波形受取り処理の起動
要因ありと判定して、ステップ208の処理によりステ
ップ210の波形受取り処理ルーチンを実行をする。
5に詳細に示されており、その実行がステップ230に
て開始され、ステップ232にて波形バッファ14a〜
14cのうちで前記波形生成処理により次の1フレーム
の波形データを記憶させた波形バッファの先頭アドレス
をワークエリアに記憶しておく。次に、ステップ234
にて、受け取った波形データの再生を予約、すなわちワ
ークエリアに次の1フレーム分の波形データを受け取っ
た旨を書込んでおき、ステップ236にてこの波形受け
取り処理ルーチンの実行を終了する。
の波形データの再生終了が通知されると、CPU11は
ステップ204〜208の処理により、ステップ212
のフレーム処理ルーチンを実行する。このフレーム処理
ルーチンの詳細は、図6に詳細に示されているように、
ステップ240にて開始され、ステップ242にて再生
予約があるか否かを判定する。この場合、前記のように
して次の1フレームの波形データの再生予約がなされて
いるので、ステップ242における「YES」との判定
のもとに、ステップ244,246の処理を実行する。
ステップ244においては、前記再生予約を解除すなわ
ち前記次の1フレームの波形データを受け取った旨の内
容をワークエリアから消す。ステップ246において
は、次の1フレーム分の波形データの再生をDMAC1
5cに指示する。具体的には、DMAC15c内の制御
回路内に前記次の1フレーム分の波形データを記憶した
波形バッファの先頭アドレスを先頭アドレスデータHA
Dとして記憶させるとともに、アドレスカウンタ回路の
カウント値PPを「0」にクリアする。そして、ステッ
プ250にて、このフレーム処理ルーチンの実行を終了
する。
タの再生がDMAC15cに対して指示されると、DM
AC15cは、前記次の1フレーム分の波形データを再
生するようになる。すなわち、サンプリングクロック発
生器15aからのサンプリングクロック信号の到来毎
に、ステップ302〜306の制御動作により、アドレ
スカウンタ回路のカウント値PPを「1」ずつ進めなが
ら、波形バッファ14a〜14cのうちで先頭アドレス
がHADである波形バッファ内のサンプリングデータ、
すなわち前記波形生成処理ルーチンにて生成された次の
1フレーム分の波形データを記憶した波形バッファ内の
サンプリングデータを順次読出して、DAC15eに供
給する。DAC15eは、前記サンプリングデータをD
/A変換して、同D/A変換されたアナログ波形信号を
サウンドシステム16に供給し、同サウンドシステム1
6は前記アナログ波形信号に対応した楽音を発音する。
12の波形生成処理ルーチンの説明を、図4の波形再生
デバイス制御ルーチンのステップ212のフレーム処理
ルーチンの説明よりも先に行ったが、これは波形生成後
に同生成した波形が発生されることを理解し易くするた
めであり、実際にはフレーム処理ルーチンの方が波形生
成処理ルーチンよりも先に実行される。すなわち、前述
のようにDMAC15cからソフト音源プログラム及び
波形再生デバイス制御プログラムに対して同時に1フレ
ーム分の波形データの再生終了が通知されるが、この場
合には、前記フレーム処理ルーチンが波形生成処理ルー
チンよりも優先して処理されるようになっている。
ずつ生成されるとともに、波形バッファ14a〜14c
に順番に記憶され、同記憶された波形データは次の再生
終了タイミングから順次読み出されて、楽音として発音
される。したがって、ステップ112の波形生成処理に
よって次の1フレーム分の波形データの生成が正常に終
了した場合、各フレーム毎に新たに生成された複数チャ
ンネル分の波形データに基づく楽音が継続的に発生され
るので、楽音は常に連続的に変化しながら発音されるこ
とになる。
により、次の1フレーム分の波形データの生成が正常に
終了しない場合、すなわち、図8に示す判定タイミング
において「同波形データの生成が次のフレームの開始ま
でに完了しない」と判定される場合について説明する。
この場合、前記判定タイミングにDMAC15cからソ
フト音源プログラムに対して波形データの生成終了のチ
ェック要求があると、CPU11は、ステップ104〜
108の処理により、プログラムをステップ114に進
める。そして、ステップ114にて、ステップ112に
よる波形生成が終了していないことを判定して、プログ
ラムをステップ116に進める。
ミングから次のフレームタイミングまで、同判定タイミ
ングまで読出されていたフレームの波形データと同フレ
ームの一つの前のフレームの波形データとをクロスフェ
ード処理する。例えば、図8のフレーム4に示すよう
に、ステップ112の処理によってフレーム5の波形デ
ータAを生成するとともに波形バッファ14aに書き込
んでいる際、判定タイミングで波形生成が終了しないと
判定された場合について説明する。この場合、波形バッ
ファ14c内に記憶されていてDMAC15cによって
読出し再生中の波形データCであって、判定タイミング
から次の再生終了タイミングまでに対応した波形データ
(各サンプリングデータ)の振幅を徐々に小さくするフ
ェードアウト処理を行う。これと同時に、波形バッファ
14bに記憶されていて波形データCの前の波形データ
Bであって、判定タイミングから次の再生終了タイミン
グまでに対応した波形データ(各サンプリングデータ)
の振幅を徐々に大きくするフェードイン処理を行う。そ
して、これらのフェードアウト処理されたサンプリング
データとフェードイン処理されたサンプリングデータと
を加算(混合)してクロスフェードサンプリングデータ
を生成し、生成したクロスフェードサンプリングデータ
を、判定タイミングから次の再生終了タイミングまでに
対応した各サンプリングデータ(波形データCの終わり
の部分)に代えて波形バッファ14cに書き込む。な
お、このステップ116のクロスフェード処理がなされ
る状態では、前述したステップ112の波形生成処理は
次の再生終了タイミングまで実行されない。
ロック発生器15aからのサンプリングクロック信号の
到来毎に、ステップ302〜306の制御動作により、
アドレスカウンタ回路のカウント値PPを「1」ずつ進
めながら、波形バッファ14cからサンプリングデータ
を順次読出し続けるので、前記クロスフェード処理され
たサンプリングデータが順次読出される。なお、このD
MAC15cによるサンプリングデータの読出し時に
は、前記ステップ116のクロックフェード処理は一時
的に中断されるが、同サンプリングデータの読出しレー
トはそれほど速くないので、前記クロスフェード処理に
よるサンプリングデータの生成及び書込みは充分に間に
合う。
の波形データの再生終了が通知されると、前述した場合
と同様に、CPU11はステップ204〜208の判定
処理によりステップ212のフレーム処理ルーチンを実
行する。この場合、波形受取り処理ルーチン(図5)の
ステップ234による波形再生の予約がなされていない
ので、フレーム処理ルーチンにおいては、ステップ24
2にて「NO」と判定されてプログラムがステップ24
8に進められる。ステップ248においては、現在読出
し中の1フレーム分の波形データの再生をDMAC15
cに指示する。具体的には、DMAC15cの制御回路
は現在読出し中の波形バッファの先頭アドレスを示す先
頭アドレスデータHADをそのままに維持して、アドレ
スカウンタ回路のカウント値PPを「0」にクリアす
る。したがって、次のフレーム(例えば、図8に示すよ
うにフレーム5)では、前回読出した1フレーム分の波
形データ(例えば、図8に示すクロスフェード処理した
波形データC)を繰り返し読出すことになる。
読出し後には、同読出し中に次の波形データの生成が正
常に行われれば上述のように同生成された次の1フレー
ム分の波形データが読出される。また、前記読出し中に
次の波形データの生成が正常に行われなければ、前記と
同様に、読出された1フレーム分の波形データが繰り返
し読出されることになる。
部、又はキーボード及びマウス17などからソフト音源
プログラムに対して楽音の音色及び音量の変更などのそ
の他の指示があった場合にも、CPU11は、図3のス
テップ104〜108の判定処理により、ステップ11
8にて前記指示に応じた処理を実行する。また、アプリ
ケーションプログラム、外部、又はキーボード及びマウ
ス17などから波形再生デバイス制御プログラムに対し
てその他の指示があった場合には、CPU11は、図4
のステップ204〜208の判定処理により、ステップ
214にて前記指示に応じた処理を実行する。
部、又はキーボード及びマウス17からソフト音源プロ
グラム及び波形再生デバイス制御プログラムに対して終
了の要求があった場合には、図3のソフト音源プログラ
ムにおいては、CPU11がステップ104〜108の
判定処理によりステップ120の終了処理を実行して、
ステップ122にてこのソフト音源プログラムの実行を
終了する。一方、図3の波形再生デバイス制御プログラ
ムにおいては、CPU11がステップ204〜208の
判定処理によりステップ216の終了処理を実行して、
ステップ218にてこの波形再生デバイス制御プログラ
ムの実行を終了する。なお、前記両終了処理において
は、各プログラムにて使用していたRAM14内のエリ
アを開放するとともに、波形インターフェース回路15
の作動を停止する。
テップ112の波形生成処理により判定タイミングまで
に次のフレームの波形データが生成されないとき、RA
M14に既に記憶されていて現在読出し中の波形データ
を次のフレームの波形データとして繰り返し読出すよう
にしたので、常に読出される波形データが途切れること
もなく、かつ読出される波形データが極端に変化するこ
ともなくなり、発生楽音を自然に連続させることができ
るようになる。また、前記波形データの繰り返し読出し
の際には、判定タイミングから次の波形データの再生終
了タイミングまで、同判定タイミングまで読出されてい
た波形データと一つ前のフレームの終わりの部分の波形
データとをクロスフェード処理して出力するようにした
ので、前記繰り返し読出しの開始時における波形データ
の連続性がさらに改善され、生成される楽音の連続性が
より良好になる。
データの繰り返し読出しの際にクロスフェード処理を行
うようにしたが、プログラム及び波形処理を簡素化する
ために、クロスフェード処理を省略して次のフレームの
開始時に今まで読出していた波形データを単に繰り返し
読出すようにしてもよい。このようにしても、隣合うフ
レームの波形データが連続して読出されるので、波形の
連続性は保たれる。また、この場合、1フレームの波形
データの生成終了の判定タイミングを、1フレーム分の
波形データの再生終了タイミングの直前など同再生終了
タイミングとほぼ同一タイミングにするようにしてもよ
い。
形生成処理が復帰するときに、新たに生成された波形デ
ータをいきなり出力するようになっていたが(図8のフ
レーム6)、そこのところを、それまで繰り返し出力し
ていた波形データをフェードアウトし、同新たに生成さ
れた波形データをフェードインするように変更してもよ
い。このようにすれば、復帰時のクリックノイズの発生
を防止できる。
ファを使用するソフト音源であったが、本発明を10個
とか、20個とか、それ以外の数の波形バッファを使用
するソフト音源で実施してもよい。また、所定周期で波
形を生成し、DMAC15cで読み出される1つのリン
グバッファに、順次追加していくタイプのソフト音源で
実現してもよい。
が生じた場合、1フレーム分の波形データを繰り返し出
力するようになっていたが、波形バッファにそれよりも
長時間の波形データが残っている場合には、それよりも
大きなサイズの波形データを繰り返し読み出すようにし
てもよい。ループサイズを大きくした方が、繰り返し読
み出しに固有なピッチを目立たなくすることができる。
また、1フレームのループサイズは、生成している楽音
のピッチとは全く関係のない大きさであったが、何れか
1つ若しくは複数の発音チャンネルで生成している楽音
のピッチに応じたループサイズを設定し、そのループサ
イズで繰り返し読み出しを行うようにしてもよい。その
場合、繰り返し読み出しにより発生するピッチは、それ
まで発音チャンネルで発生していた楽音のピッチを引き
継いでおり、ループピッチによる悪影響を防止できる。
ドによりループ波形の終わりをループ波形の先頭に接続
していたが、ループの終わりと先頭の近傍で同じような
値と傾きをもつサンプルをサーチして、そこで直接接続
するようにしてもよい。また、同じ波形データを単に繰
り返し読み出しするだけでは単調なので、波形生成に障
害が生じた場合に、過去に再生した複数の異なる波形デ
ータを繰り返し再生するとともに、その繰り返し再生す
る波形データを徐々にフェードアウトするようにしても
よい。
ブロック図である。
の詳細を示すブロック図である。
源プログラムのフローチャートである。
デバイス制御プログラムのフローチャートである。
フローチャートである。
ローチャートである。
を示す機能フローチャートである。
ためのタイムチャートであり、(B)はクロスフェード処
理を説明するためのタイムチャートである。
4c…波形バッファ、15…波形インターフェース回
路、15a…サンプリングクロック発生器、15b,1
5c…DMAC、21…ハードディスク、22…リムー
バルディスク、23a…コンパクトディスク、23b…
フレキシブルディスク。
Claims (9)
- 【請求項1】 楽音を表す波形データを順次生成して記
憶手段に書き込んでおき、前記記憶手段に書き込まれた
波形データを所定の区間毎に所定レートで順次読出すと
ともに各区間の波形データの読出しが終了する毎に次の
区間の波形データの前記読出しを開始するようにして、
連続した楽音を生成する楽音生成方法において、 次の区間の波形データの読出し開始タイミングまでに同
次の区間の波形データの生成及び書き込みが終了するか
否かを判定し、同次の波形データの生成及び書き込みが
終了しないと判定されたとき前記記憶手段に書き込まれ
ていて既に読出された区間の波形データを再読出しする
ようにしたことを特徴とする楽音生成方法。 - 【請求項2】 前記請求項1に記載の楽音生成方法にお
いて、前記再読出しする波形データは、前記読出し開始
タイミングまで読出されていた区間の波形データである
楽音生成方法。 - 【請求項3】 前記請求項1に記載の楽音生成方法にお
いて、前記読出し開始タイミングよりも所定時間だけ前
の判定タイミングで、前記次の区間の波形データの生成
及び書き込みが同読出し開始タイミングまでに終了する
か否かを判定するようにした楽音生成方法。 - 【請求項4】 前記請求項3に記載の楽音生成方法にお
いて、次の波形データの生成及び書き込みが終了しない
と判定されたとき、前記判定タイミングから前記読出し
開始タイミングまで、同判定タイミングまで読出されて
いた区間の波形データと同判定タイミングまで読出され
ていた区間よりも一つ前の区間の波形データのうちの判
定タイミングからその区間の終わりまでの波形データと
を混合して出力するようにした楽音生成方法。 - 【請求項5】 楽音を表す波形データを順次生成して記
憶手段に書き込む波形データ生成手段と、前記記憶手段
に書き込まれた波形データを所定の区間毎に所定レート
で順次読出すとともに各区間の波形データの読出しが終
了する毎に次の区間の波形データの前記読出しを開始す
る波形データ再生手段とを備え、連続した楽音を生成す
る楽音生成装置において、 次の区間の波形データの読出し開始タイミングまでに同
次の区間の波形データの生成及び書き込みが終了するか
否かを判定する判定手段と、 前記判定手段により前記次の区間の波形データの生成及
び書き込みが終了しないと判定されたとき前記波形デー
タ再生手段を制御して前記記憶手段に書き込まれていて
既に読出された区間の波形データを再読出しする再読出
し制御手段とを設けたことを特徴とする楽音生成装置。 - 【請求項6】 前記請求項5に記載の楽音生成装置にお
いて、前記再読出し制御手段は、前記読出し開始タイミ
ングまで読出されていた区間の波形データの再読出しを
制御するものである楽音生成装置。 - 【請求項7】 前記請求項5に記載の楽音生成装置にお
いて、前記判定手段は、前記読出し開始タイミングより
も所定時間だけ前の判定タイミングで、前記波形データ
生成手段による次の区間の波形データの生成及び書き込
みが同読出し開始タイミングまでに終了するか否かを判
定するものである楽音生成装置。 - 【請求項8】 前記請求項7に記載の楽音生成装置にお
いて、前記判定手段により前記次の区間の波形データの
生成及び書き込みが終了しないと判定されたとき、前記
判定タイミングから前記読出し開始タイミングまで、同
判定タイミングまで読出されていた区間の波形データと
同判定タイミングまで読出されていた区間よりも一つ前
の区間の波形データのうちの判定タイミングからその区
間の終わりまでの波形データとを混合して出力する混合
手段を設けたことを特徴とする楽音生成装置。 - 【請求項9】 発生される楽音を表す波形データを一時
的に記憶するためのバッファメモリと、前記バッファメ
モリに記憶されている波形データを所定レートで順次読
出すための読出し回路とを備え、コンピュータプログラ
ム処理により連続した楽音を生成するための楽音生成装
置に適用され、 楽音を表す波形データを順次生成させて前記バッファメ
モリに書き込ませる波形データ生成ステップと、 前記読出し回路を制御して前記バッファメモリに書き込
まれた各区間の波形データを所定レートで順次読出させ
るとともに各区間の波形データの読出しが終了する毎に
次の区間の波形データの前記読出しを開始させる波形デ
ータ再生ステップと、 次の区間の波形データの読出し開始タイミングまでに同
次の区間の波形データの生成及び書き込みが終了するか
否かを判定させる判定ステップと、 前記判定ステップにより前記次の区間の波形データの生
成及び書き込みが終了しないと判定されたとき前記読出
し回路を制御して前記バッファメモリに書き込まれてい
て既に読出された区間の波形データを再読出しさせる再
読出しステップとを含む楽音生成処理プログラムを記録
したコンピュータ読み取り可能な記録媒体。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21936398A JP3518357B2 (ja) | 1998-08-03 | 1998-08-03 | 楽音生成方法、楽音生成装置及び楽音生成処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP21936398A JP3518357B2 (ja) | 1998-08-03 | 1998-08-03 | 楽音生成方法、楽音生成装置及び楽音生成処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000056763A JP2000056763A (ja) | 2000-02-25 |
JP3518357B2 true JP3518357B2 (ja) | 2004-04-12 |
Family
ID=16734265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP21936398A Expired - Fee Related JP3518357B2 (ja) | 1998-08-03 | 1998-08-03 | 楽音生成方法、楽音生成装置及び楽音生成処理プログラムを記録したコンピュータ読み取り可能な記録媒体 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3518357B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3878485B2 (ja) | 2002-01-11 | 2007-02-07 | ローランド株式会社 | 波形再生装置 |
US7723601B2 (en) * | 2007-03-22 | 2010-05-25 | Qualcomm Incorporated | Shared buffer management for processing audio files |
-
1998
- 1998-08-03 JP JP21936398A patent/JP3518357B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000056763A (ja) | 2000-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6441290B2 (en) | Apparatus and method for reproducing or recording, via buffer memory, sample data supplied from storage device | |
US6553436B2 (en) | Apparatus and method for playback of waveform sample data and sequence playback of waveform sample data | |
KR100375329B1 (ko) | 음원제어장치및음원제어방법 | |
JPH11126070A (ja) | 楽音生成方法 | |
JP2684899B2 (ja) | 電子楽器用音源装置 | |
JP3518357B2 (ja) | 楽音生成方法、楽音生成装置及び楽音生成処理プログラムを記録したコンピュータ読み取り可能な記録媒体 | |
JP3637577B2 (ja) | 楽音生成方法 | |
JP3978928B2 (ja) | 楽音生成装置 | |
JP3799711B2 (ja) | 楽音発生方法および楽音発生装置 | |
JP3666467B2 (ja) | 波形編集装置及び波形編集用プログラム | |
JP3781171B2 (ja) | 楽音発生方法 | |
JP2956550B2 (ja) | 楽音発生装置および楽音発生方法 | |
JP3551818B2 (ja) | 楽音生成方法および楽音生成装置 | |
JP4120979B2 (ja) | 波形再生装置 | |
JPS62994A (ja) | Pcm音声信号記憶装置 | |
JP3546801B2 (ja) | 波形データ生成方法、波形データ記憶方法、波形データ生成装置および記録媒体 | |
JP3003559B2 (ja) | 楽音生成方法 | |
JPH1031486A (ja) | 演奏データ記憶再生方法および装置 | |
JP2765469B2 (ja) | 楽音信号再生装置 | |
JP3660379B2 (ja) | 音源制御情報の記憶方法及び音源制御装置 | |
JP3235557B2 (ja) | 波形再生装置、波形録音再生装置、波形出力回路、波形入出力回路、波形再生方法および波形録音再生方法 | |
JP3407625B2 (ja) | 自動演奏装置、自動演奏方法及びプログラムを記録した媒体 | |
JP3230756B2 (ja) | デジタルレコーダ | |
JP3627590B2 (ja) | 音生成方法 | |
JP2004157350A (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: 20040106 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040119 |
|
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: 20080206 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090206 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090206 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100206 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110206 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120206 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130206 Year of fee payment: 9 |
|
LAPS | Cancellation because of no payment of annual fees |