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
Application number
JP21936398A
Other languages
English (en)
Other versions
JP2000056763A (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 JP21936398A priority Critical patent/JP3518357B2/ja
Publication of JP2000056763A publication Critical patent/JP2000056763A/ja
Application granted granted Critical
Publication of JP3518357B2 publication Critical patent/JP3518357B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、プログラム処理に
より、楽音を生成する楽音生成方法、楽音生成装置及び
楽音生成処理プログラムを記録した記録媒体に関する。
【0002】
【従来の技術】従来から、例えば特開平9−17955
6号公報に示されているように、プログラム処理によ
り、楽音を表す波形データを所定の区間毎に繰り返し生
成して記憶手段に書き込んでおき、同記憶手段に書き込
まれた各区間の波形データを所定レートで順次読出すと
ともに各区間の波形データの読出しが終了する毎に次の
区間の波形データの前記読出しを開始するようにして、
連続した楽音を生成することは知られている。
【0003】
【発明が解決しようとする課題】しかし、上記従来例に
おいては、波形データを生成するための処理よりも優先
順位の高いプログラム処理が実行されて、次の区間の波
形データの読出し開始タイミングまでに同次の区間の波
形データの生成及び書き込みが終了していないと、楽音
が途切れたり、不自然な楽音が発生されるという問題が
ある。
【0004】
【発明の概要】本発明は、上記問題に対処するためにな
されたもので、その目的は波形データを生成するための
処理よりも優先順位の高いプログラム処理が実行されて
も、楽音が途切れたり、不自然な楽音が発生されないよ
うにした楽音生成方法、楽音生成装置及び楽音生成処理
プログラムを記録したコンピュータ読み取り可能な記録
媒体を提供することにある。
【0005】上記目的を達成するために、本発明の構成
上の特徴は、楽音を表す波形データを順次生成して記憶
手段に書き込んでおき、同記憶手段に書き込まれた波
データを所定の区間毎に所定レートで順次読出すととも
に各区間の波形データの読出しが終了する毎に次の区間
の波形データの前記読出しを開始するようにして、連続
した楽音を生成する楽音生成方法、楽音生成装置及び楽
音生成処理プログラムを記録したコンピュータ読み取り
可能な記録媒体において、次の区間の波形データの読出
し開始タイミングまでに同次の区間の波形データの生成
及び書き込みが終了するか否かを判定し、同次の波形デ
ータの生成及び書き込みが終了しないと判定されたとき
記憶手段に書き込まれていて既に読出された区間の波形
データを再読出しするようにしたことにある。
【0006】これによれば、次の区間の波形データの読
出し開始タイミングまでに同次の区間の波形データの生
成及び書き込みが終了していなくても、波形データの読
出しが途切れることがなくなるので、生成される楽音を
途切れさせることなく発生させることができる。また、
再読出しに利用される波形データとしては、記憶手段に
書き込まれていて既に読出された区間の波形データ、す
なわち現在読出されている波形データに近い波形デー
タ、例えば前記読出し開始タイミングまで読出されてい
た区間の波形データを利用できる。したがって、生成さ
れる楽音が極端に変化することを回避して、同楽音を自
然に連続させることができ、生成楽音の音質を良好にで
きる。
【0007】また、前記本発明の他の構成上の特徴は、
前記読出し開始タイミングよりも所定時間だけ前の判定
タイミングで、次の区間の波形データの生成及び書き込
みが同読出し開始タイミングまでに終了するか否かを判
定するようにしたことにある。これによれば、次の区間
の波形データの生成及び書き込みが終了しているか否か
が、同読出し開始タイミング前に確実に判定されるの
で、前記再読出しが確実に行われるようになる。
【0008】さらに、前記本発明の他の構成上の特徴
は、次の波形データの生成及び書き込みが終了しないと
判定されたとき、前記判定タイミングから前記読出し開
始タイミングまで、同判定タイミングまで読出されてい
た区間の波形データと同判定タイミングまで読出されて
いた区間よりも一つ前の区間の波形データのうちの判定
タイミングからその区間の終わりまでの波形データとを
混合して出力するようにしたことにある。これによれ
ば、前記再読出しの開始時における波形データの連続性
がさらに改善され、生成される楽音の連続性がより良好
になる。
【0009】
【発明の実施の形態】以下、本発明の一実施形態を図面
を用いて説明すると、図1は本発明に係りプログラム処
理によって楽音を生成する楽音生成装置の全体を概略的
に示している。
【0010】この楽音生成装置は、バス10に接続され
てコンピュータ本体部を構成するCPU(中央処理装
置)11、ROM(リード・オンリイ・メモリ)12、
タイマ13、RAM(ランダム・アクセス・メモリ)1
4及び波形インターフェース回路15を備えている。C
PU11は、マイクロプロセッサなどにより構成され、
楽音を表す波形データを生成出力するための図3のソフ
ト音源プログラム及び波形データの再生を制御するため
の図4の波形再生デバイス制御プログラムや、図示しな
い各種アプリケーションプログラムを実行するものであ
る。ROM12は、ハードディスク21から装置のシス
テムプログラムをブートするためのプログラムなどを記
憶しているものである。タイマ13は、時刻を計時指示
するとともにタイマ割込み処理のタイミングをCPU1
1に指示するものである。
【0011】RAM14は、CPU11のワークエリ
ア、波形データエリア、音色データエリア、チャンネル
レジスタエリア、波形バッファエリアなどの各種データ
エリアからなるメモリである。本実施形態においては、
特に図2に詳細に示すように、前記波形バッファエリア
として、プログラム処理により生成された所定区間分の
波形データをそれぞれ一時的に記憶するための波形バッ
ファ14a,14b,14cが用意される。以降、この
所定区間を1フレームというとともに、波形バッファ1
4a,14b,14cに記憶される1フレームずつの波
形データをそれぞれ波形データA,B,Cという。
【0012】波形インターフェース回路15は、サンプ
リングクロック発生器15a、DMAC(ダイレクト・
メモリ・アクセス・コントローラ)15b,15c、A
DC(アナログ・ディジタル・コンバータ)15d及び
DAC(ディジタル・アナログ・コンバータ)15eか
らなる。サンプリングクロック発生器15aは、CPU
11によりバス10を介して指示されたサンプリング周
期にてサンプリングクロック信号をDMAC15b,1
5cにそれぞれ供給するものである。DMAC15b
は、CPU11によりバス10を介して制御される制御
回路、前記サンプリングクロック信号に応答してカウン
トアップするアドレスカウンタ回路などからなり、アド
レスカウンタ回路によるアドレスカウント値の更新時に
は優先的にバス10を確保するとともにRAM14のア
ドレスを直接指定して、CPU11の指示に依らずに波
形データをRAM14に直接書き込む。
【0013】DMAC15cは、DMAC15bと同様
な制御回路及びアドレスカウンタ回路などからなるが、
本発明に密接に関係するので、その機能を図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の制御動
作は、次のサンプリングデータの読出しのために、アド
レスカウンタ回路を歩進させておくものである。
【0014】また、ステップ308,310の制御動作
は、アドレスカウンタ回路によるアドレスカウント値を
用いて、1フレーム分の波形データの再生終了タイミン
グの少し前の所定の判定タイミングで、図3の音源ソフ
トプログラムに対して波形生成終了チェックを要求する
ものである(図8参照)。ステップ312,314の制
御動作は、前記と同様にアドレスカウンタ回路によるア
ドレスカウント値を用いて、1フレーム分の波形データ
の再生終了のタイミングで、図3のソフト音源プログラ
ム及び図4の波形再生デバイス制御プログラムに対して
前記再生終了を通知するものである(図8参照)。
【0015】ADC15dは、外部から入力されたアナ
ログ波形信号をディジタル波形データに変換してDMA
C15bに出力する。DAC15eは、DMAC15c
により読出されたディジタル波形データをアナログ波形
信号に変換して出力する。この波形インターフェース回
路15のDAC15eの出力には、アンプ、スピーカな
どからなって楽音を発生するサウンドシステム16が接
続されている。
【0016】バス10には、キーボード及びマウス1
7、表示器18、ハードディスク21及びリムーバブル
ディスク22も接続されている。キーボード及びマウス
17は、使用者により操作される操作子であってCPU
11に外部から指示を与えるものである。表示器18
は、CPU11による処理状態などを表示するものであ
る。ハードディスク21及びリムーバブルディスク22
は、本発明に係るソフト音源プログラム及び波形再生デ
バイス制御プログラムや、各種アプリケーションプログ
ラム、波形データ、音色制御データなどを記憶しておく
大容量のメモリ装置である。
【0017】さらに、バス10には、読取り及び書込み
装置23、外部インターフェース24及びMIDI(Mu
sical Instrument Digital Interface)インターフェー
ス25も接続されている。読取り及び書込み装置23
は、外部記録媒体としてのコンパクトディスク23a及
びフレキシブルディスク23bに記憶されている各種プ
ログラム及びデータを読取るとともに、前記両ディスク
23a,23bに各種プログラム及びデータを書き込む
ためのものである。外部インターフェース24は、各種
プログラム及びデータを電話回線などを介して外部とや
り取りするものである。MIDIインターフェースは、
自動演奏装置、電子楽器などの図示しない外部機器との
音高、キーオン、キーオフなどのMIDIデータ(演奏
データ)のやり取りに利用されるものである。
【0018】次に、上述した楽音生成装置を用いて楽音
を生成する動作について説明する。この装置を用いて楽
音を生成させる前に、使用者は、楽音の生成に関係する
ソフト音源プログラム及び波形再生デバイス制御プログ
ラムや、アプリケーションプログラムなどの各種プログ
ラム、並びに波形データ、音色制御データなどの各種デ
ータを記録したコンパクトディスク23a又はフレキシ
ブルディスク23bを読取り及び書込み装置23にセッ
トして、表示器18を見ながらキーボード及びマウス1
7を操作することにより、前記各種プログラム及びデー
タをコンパクトディスク23a又はフレキシブルディス
ク23bから読取ってハードディスク21又はリムーバ
ブルディスク22に書込んでおく。なお、外部機器に記
憶されている前記各種プログラム及びデータを外部イン
ターフェース24を介して入力して、ハードディスク2
1又はリムーバブルディスク22に書込んでおくように
してもよい。
【0019】この準備の終了後、楽音の生成を必要とす
る図示しないアプリケーションプログラムを起動させる
と、図3のソフト音源プログラム及び図4の波形再生デ
バイス制御プログラムも同時に自動的に立ち上げられ
る。なお、アプリケーションプログラムによっては、使
用者が、キーボード及びマウス17の操作によって前記
ソフト音源プログラム及び波形再生デバイス制御プログ
ラムを立ち上げることもある。そして、この楽音生成の
制御が実行される場合には、前記アプリケーションプロ
グラムによって生成されたMIDIデータ(音高デー
タ、キーオンデータ、キーオフデータ)がソフト音源プ
ログラムに対して与えられるか、MIDIインターフェ
ース25を介して外部から供給される。
【0020】前記図3のソフト音源プログラムの起動に
あたっては、CPU11は、ステップ100における起
動指示後、ステップ102にてステップ104〜122
の処理を実行するためのプログラム及びデータをハード
ディスク21又はリムーバブルディスク22から読出し
てRAM14に記憶し、波形インターフェース回路15
の作動を許容し(特に、サンプリングクロック発生器1
5a及びDMAC15cの作動を許容し)、かつステッ
プ104〜122の処理により利用される波形データエ
リア、音色データエリア、チャンネルレジスタエリア、
波形バッファエリアなどの各種データエリアをRAM1
4内に確保する。
【0021】前記ステップ102の初期設定処理後、ス
テップ104にて、ステップ110〜120の各処理の
下記起動要因〜をチェックする。 アプリケーションプログラム又は外部からMIDIデ
ータがこのソフト音源プログラムに対して供給された
か。 DMAC15cからこのソフト音源プログラムに対し
て1フレーム分の波形データの再生終了が通知された
か。 DMAC15cからこのソフト音源プログラムに対し
て次の1フレーム分の波形データの生成終了のチェック
要求があったか。 アプリケーションプログラム、外部又はキーボード及
びマウス17などからこのソフト音源プログラムに対し
て楽音の音色及び音量の変更などのその他の指示があっ
たか。 アプリケーションプログラム、外部又はキーボード及
びマウス17からこのソフト音源プログラムに対して終
了の要求があったか。
【0022】前記チェックの結果、前記〜の起動要
因がなければ、ステップ106にて「NO」と判定し
て、ステップ104,106からなる循環処理を続け
る。一方、前記〜の起動要因があれば、ステップ1
06,108の判定処理により、CPU11はステップ
110〜120のいずれかの処理を実行する。なお、こ
れらの各処理については、楽音の発音動作を関連して詳
しく後述する。
【0023】前記図4の波形再生デバイス制御プログラ
ムの起動にあたっては、CPU11は、ステップ200
における起動指示後、ステップ202にてステップ20
4〜218の処理を実行するためのプログラム及びデー
タをハードディスク21又はリムーバブルディスク22
から読出してRAM14に記憶し、かつステップ204
〜218の処理により利用される各種データエリアをR
AM14内に確保する。
【0024】前記ステップ202の初期設定処理後、ス
テップ204にて、ステップ210〜216の各処理の
下記起動要因〜をチェックする。 ソフト音源プログラムからこの波形再生デバイス制御
プログラムに対して次の1フレーム分の波形データの生
成終了が通知されたか。 DMAC15cからこの波形再生デバイス制御プログ
ラムに対して1フレーム分の波形データの再生終了が通
知されたか。 アプリケーションプログラム、外部又はソフト音源プ
ログラムからこの波形再生デバイス制御プログラムに対
してその他の処理を実行すべき指示があったか。 アプリケーションプログラム、外部又はキーボード及
びマウス17からこの波形再生デバイス制御プログラム
に対して終了の要求があったか。
【0025】前記チェックの結果、前記〜の起動要
因がなければ、ステップ206にて「NO」と判定し
て、ステップ204,206からなる循環処理を続け
る。一方、前記〜の起動要因があれば、ステップ2
06,208の判定処理により、CPU11はステップ
210〜216のいずれかの処理を実行する。なお、こ
れらの各処理についても、楽音の発音動作を関連して詳
しく後述する。
【0026】次に、楽音の発音動作について詳しく説明
するが、上述した各プログラムの各ステップの処理は、
図示しないオペレーティング・システム(OS)の制御
のもとに、一つのステップの処理が終了するまで実行さ
れ続けるものではなく、各ステップの処理は一部ずつ実
行されるものであり、実質的には複数のプログラムの処
理が同時に進行しているものと等価である(いわゆるマ
ルチタスク処理)。
【0027】まず、図3のソフト音源プログラムに対し
て図8(A)に示すようにMIDIデータが供給される
と、CPU11は、ステップ104〜108の判定処理
により、ステップ110のMIDI処理ルーチンを実行
する。このMIDI処理ルーチンでは、音高データ及び
キーオンデータなどの楽音発生開始のためのMIDIデ
ータが供給された場合、同供給されたMIDIデータを
予め用意されている複数の発音チャンネルのいずれかに
割当てるとともに、同MIDIデータに対応した楽音制
御データをRAM14内に設けたチャンネルレジスタに
記憶して、同データに対応した楽音の発生を準備する。
また、音高データ及びキーオフデータなどの楽音発生終
了のためのMIDIデータが供給された場合には、同デ
ータが割り当てられている発音チャンネルを捜して、同
チャンネルにおける楽音の発生終了を準備する。これら
の楽音の発生開始又は発生終了の準備が終了すると、M
IDI処理ルーチンの実行は終了され、新たなMIDI
データがこのソフト音源プログラムに再び供給されたと
きにはじめて、前記ステップ110のMIDI処理ルー
チンが実行される。
【0028】一方、DMAC15cから図3のソフト音
源プログラム及び図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…として順次
記憶させる。
【0029】なお、次の1フレーム分の波形データが次
の再生終了タイミングまでに生成される場合には、図8
に示すような再生終了タイミングより少し前の所定の判
定タイミングで、DMAC15cからこのソフト音源プ
ログラムに対して次の1フレーム分の波形データの生成
終了のチェック要求があっても、実質的な処理は実行さ
れない。すなわち、ステップ102〜108の処理によ
り、プログラムはステップ114に進められるが、同ス
テップ114にて波形生成は終了しているとの判定のも
とにプログラムはステップ104に戻される。
【0030】最初に、前記ステップ112の波形生成処
理により、次の1フレーム分の波形データの生成が正常
に終了した場合、正確には図8に示す判定タイミングま
でに同波形データの生成が終了している場合について説
明する。この場合、前記波形生成処理ルーチンにおい
て、生成終了時に、波形再生デバイス制御プログラムに
対して次の1フレーム分の波形データの生成終了が通知
される。具体的には、CPU11が、RAM14内に設
けられて波形再生デバイス制御プログラム用のワークエ
リアにその旨を書き込んでおく。これにより、CPU1
1は、図4の波形再生デバイス制御プログラムのステッ
プ204,206の循環処理中、波形受取り処理の起動
要因ありと判定して、ステップ208の処理によりステ
ップ210の波形受取り処理ルーチンを実行をする。
【0031】この波形受取り処理ルーチンの詳細は、図
5に詳細に示されており、その実行がステップ230に
て開始され、ステップ232にて波形バッファ14a〜
14cのうちで前記波形生成処理により次の1フレーム
の波形データを記憶させた波形バッファの先頭アドレス
をワークエリアに記憶しておく。次に、ステップ234
にて、受け取った波形データの再生を予約、すなわちワ
ークエリアに次の1フレーム分の波形データを受け取っ
た旨を書込んでおき、ステップ236にてこの波形受け
取り処理ルーチンの実行を終了する。
【0032】そして、DMAC15cから1フレーム分
の波形データの再生終了が通知されると、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にて、このフレーム処理ルーチンの実行を終了
する。
【0033】このように、次の1フレーム分の波形デー
タの再生がDMAC15cに対して指示されると、DM
AC15cは、前記次の1フレーム分の波形データを再
生するようになる。すなわち、サンプリングクロック発
生器15aからのサンプリングクロック信号の到来毎
に、ステップ302〜306の制御動作により、アドレ
スカウンタ回路のカウント値PPを「1」ずつ進めなが
ら、波形バッファ14a〜14cのうちで先頭アドレス
がHADである波形バッファ内のサンプリングデータ、
すなわち前記波形生成処理ルーチンにて生成された次の
1フレーム分の波形データを記憶した波形バッファ内の
サンプリングデータを順次読出して、DAC15eに供
給する。DAC15eは、前記サンプリングデータをD
/A変換して、同D/A変換されたアナログ波形信号を
サウンドシステム16に供給し、同サウンドシステム1
6は前記アナログ波形信号に対応した楽音を発音する。
【0034】なお、前記においては、図3のステップ1
12の波形生成処理ルーチンの説明を、図4の波形再生
デバイス制御ルーチンのステップ212のフレーム処理
ルーチンの説明よりも先に行ったが、これは波形生成後
に同生成した波形が発生されることを理解し易くするた
めであり、実際にはフレーム処理ルーチンの方が波形生
成処理ルーチンよりも先に実行される。すなわち、前述
のようにDMAC15cからソフト音源プログラム及び
波形再生デバイス制御プログラムに対して同時に1フレ
ーム分の波形データの再生終了が通知されるが、この場
合には、前記フレーム処理ルーチンが波形生成処理ルー
チンよりも優先して処理されるようになっている。
【0035】このようにして、波形データは1フレーム
ずつ生成されるとともに、波形バッファ14a〜14c
に順番に記憶され、同記憶された波形データは次の再生
終了タイミングから順次読み出されて、楽音として発音
される。したがって、ステップ112の波形生成処理に
よって次の1フレーム分の波形データの生成が正常に終
了した場合、各フレーム毎に新たに生成された複数チャ
ンネル分の波形データに基づく楽音が継続的に発生され
るので、楽音は常に連続的に変化しながら発音されるこ
とになる。
【0036】次に、前記ステップ112の波形生成処理
により、次の1フレーム分の波形データの生成が正常に
終了しない場合、すなわち、図8に示す判定タイミング
において「同波形データの生成が次のフレームの開始ま
でに完了しない」と判定される場合について説明する。
この場合、前記判定タイミングにDMAC15cからソ
フト音源プログラムに対して波形データの生成終了のチ
ェック要求があると、CPU11は、ステップ104〜
108の処理により、プログラムをステップ114に進
める。そして、ステップ114にて、ステップ112に
よる波形生成が終了していないことを判定して、プログ
ラムをステップ116に進める。
【0037】ステップ116においては、前記判定タイ
ミングから次のフレームタイミングまで、同判定タイミ
ングまで読出されていたフレームの波形データと同フレ
ームの一つの前のフレームの波形データとをクロスフェ
ード処理する。例えば、図8のフレーム4に示すよう
に、ステップ112の処理によってフレーム5の波形デ
ータAを生成するとともに波形バッファ14aに書き込
んでいる際、判定タイミングで波形生成が終了しないと
判定された場合について説明する。この場合、波形バッ
ファ14c内に記憶されていてDMAC15cによって
読出し再生中の波形データCであって、判定タイミング
から次の再生終了タイミングまでに対応した波形データ
(各サンプリングデータ)の振幅を徐々に小さくするフ
ェードアウト処理を行う。これと同時に、波形バッファ
14bに記憶されていて波形データCの前の波形データ
Bであって、判定タイミングから次の再生終了タイミン
グまでに対応した波形データ(各サンプリングデータ)
の振幅を徐々に大きくするフェードイン処理を行う。そ
して、これらのフェードアウト処理されたサンプリング
データとフェードイン処理されたサンプリングデータと
を加算(混合)してクロスフェードサンプリングデータ
を生成し、生成したクロスフェードサンプリングデータ
を、判定タイミングから次の再生終了タイミングまでに
対応した各サンプリングデータ(波形データCの終わり
の部分)に代えて波形バッファ14cに書き込む。な
お、このステップ116のクロスフェード処理がなされ
る状態では、前述したステップ112の波形生成処理は
次の再生終了タイミングまで実行されない。
【0038】一方、DMAC15cは、サンプリングク
ロック発生器15aからのサンプリングクロック信号の
到来毎に、ステップ302〜306の制御動作により、
アドレスカウンタ回路のカウント値PPを「1」ずつ進
めながら、波形バッファ14cからサンプリングデータ
を順次読出し続けるので、前記クロスフェード処理され
たサンプリングデータが順次読出される。なお、このD
MAC15cによるサンプリングデータの読出し時に
は、前記ステップ116のクロックフェード処理は一時
的に中断されるが、同サンプリングデータの読出しレー
トはそれほど速くないので、前記クロスフェード処理に
よるサンプリングデータの生成及び書込みは充分に間に
合う。
【0039】そして、DMAC15cから1フレーム分
の波形データの再生終了が通知されると、前述した場合
と同様に、CPU11はステップ204〜208の判定
処理によりステップ212のフレーム処理ルーチンを実
行する。この場合、波形受取り処理ルーチン(図5)の
ステップ234による波形再生の予約がなされていない
ので、フレーム処理ルーチンにおいては、ステップ24
2にて「NO」と判定されてプログラムがステップ24
8に進められる。ステップ248においては、現在読出
し中の1フレーム分の波形データの再生をDMAC15
cに指示する。具体的には、DMAC15cの制御回路
は現在読出し中の波形バッファの先頭アドレスを示す先
頭アドレスデータHADをそのままに維持して、アドレ
スカウンタ回路のカウント値PPを「0」にクリアす
る。したがって、次のフレーム(例えば、図8に示すよ
うにフレーム5)では、前回読出した1フレーム分の波
形データ(例えば、図8に示すクロスフェード処理した
波形データC)を繰り返し読出すことになる。
【0040】この1フレーム分の波形データの繰り返し
読出し後には、同読出し中に次の波形データの生成が正
常に行われれば上述のように同生成された次の1フレー
ム分の波形データが読出される。また、前記読出し中に
次の波形データの生成が正常に行われなければ、前記と
同様に、読出された1フレーム分の波形データが繰り返
し読出されることになる。
【0041】また、アプリケーションプログラム、外
部、又はキーボード及びマウス17などからソフト音源
プログラムに対して楽音の音色及び音量の変更などのそ
の他の指示があった場合にも、CPU11は、図3のス
テップ104〜108の判定処理により、ステップ11
8にて前記指示に応じた処理を実行する。また、アプリ
ケーションプログラム、外部、又はキーボード及びマウ
ス17などから波形再生デバイス制御プログラムに対し
てその他の指示があった場合には、CPU11は、図4
のステップ204〜208の判定処理により、ステップ
214にて前記指示に応じた処理を実行する。
【0042】さらに、アプリケーションプログラム、外
部、又はキーボード及びマウス17からソフト音源プロ
グラム及び波形再生デバイス制御プログラムに対して終
了の要求があった場合には、図3のソフト音源プログラ
ムにおいては、CPU11がステップ104〜108の
判定処理によりステップ120の終了処理を実行して、
ステップ122にてこのソフト音源プログラムの実行を
終了する。一方、図3の波形再生デバイス制御プログラ
ムにおいては、CPU11がステップ204〜208の
判定処理によりステップ216の終了処理を実行して、
ステップ218にてこの波形再生デバイス制御プログラ
ムの実行を終了する。なお、前記両終了処理において
は、各プログラムにて使用していたRAM14内のエリ
アを開放するとともに、波形インターフェース回路15
の作動を停止する。
【0043】上記作動説明からも理解できるとおり、ス
テップ112の波形生成処理により判定タイミングまで
に次のフレームの波形データが生成されないとき、RA
M14に既に記憶されていて現在読出し中の波形データ
を次のフレームの波形データとして繰り返し読出すよう
にしたので、常に読出される波形データが途切れること
もなく、かつ読出される波形データが極端に変化するこ
ともなくなり、発生楽音を自然に連続させることができ
るようになる。また、前記波形データの繰り返し読出し
の際には、判定タイミングから次の波形データの再生終
了タイミングまで、同判定タイミングまで読出されてい
た波形データと一つ前のフレームの終わりの部分の波形
データとをクロスフェード処理して出力するようにした
ので、前記繰り返し読出しの開始時における波形データ
の連続性がさらに改善され、生成される楽音の連続性が
より良好になる。
【0044】なお、上記実施形態においては、前記波形
データの繰り返し読出しの際にクロスフェード処理を行
うようにしたが、プログラム及び波形処理を簡素化する
ために、クロスフェード処理を省略して次のフレームの
開始時に今まで読出していた波形データを単に繰り返し
読出すようにしてもよい。このようにしても、隣合うフ
レームの波形データが連続して読出されるので、波形の
連続性は保たれる。また、この場合、1フレームの波形
データの生成終了の判定タイミングを、1フレーム分の
波形データの再生終了タイミングの直前など同再生終了
タイミングとほぼ同一タイミングにするようにしてもよ
い。
【0045】また、上記実施形態では、一旦途切れた波
形生成処理が復帰するときに、新たに生成された波形デ
ータをいきなり出力するようになっていたが(図8のフ
レーム6)、そこのところを、それまで繰り返し出力し
ていた波形データをフェードアウトし、同新たに生成さ
れた波形データをフェードインするように変更してもよ
い。このようにすれば、復帰時のクリックノイズの発生
を防止できる。
【0046】また、上記実施形態では、3つの波形バッ
ファを使用するソフト音源であったが、本発明を10個
とか、20個とか、それ以外の数の波形バッファを使用
するソフト音源で実施してもよい。また、所定周期で波
形を生成し、DMAC15cで読み出される1つのリン
グバッファに、順次追加していくタイプのソフト音源で
実現してもよい。
【0047】また、上記実施形態では、波形生成に障害
が生じた場合、1フレーム分の波形データを繰り返し出
力するようになっていたが、波形バッファにそれよりも
長時間の波形データが残っている場合には、それよりも
大きなサイズの波形データを繰り返し読み出すようにし
てもよい。ループサイズを大きくした方が、繰り返し読
み出しに固有なピッチを目立たなくすることができる。
また、1フレームのループサイズは、生成している楽音
のピッチとは全く関係のない大きさであったが、何れか
1つ若しくは複数の発音チャンネルで生成している楽音
のピッチに応じたループサイズを設定し、そのループサ
イズで繰り返し読み出しを行うようにしてもよい。その
場合、繰り返し読み出しにより発生するピッチは、それ
まで発音チャンネルで発生していた楽音のピッチを引き
継いでおり、ループピッチによる悪影響を防止できる。
【0048】さらに、上記実施形態では、クロスフェー
ドによりループ波形の終わりをループ波形の先頭に接続
していたが、ループの終わりと先頭の近傍で同じような
値と傾きをもつサンプルをサーチして、そこで直接接続
するようにしてもよい。また、同じ波形データを単に繰
り返し読み出しするだけでは単調なので、波形生成に障
害が生じた場合に、過去に再生した複数の異なる波形デ
ータを繰り返し再生するとともに、その繰り返し再生す
る波形データを徐々にフェードアウトするようにしても
よい。
【図面の簡単な説明】
【図1】 本発明に係る楽音生成装置の全体を示す概略
ブロック図である。
【図2】 図1の波形インターフェース回路及びRAM
の詳細を示すブロック図である。
【図3】 図1の楽音生成装置にて実行されるソフト音
源プログラムのフローチャートである。
【図4】 図1の楽音生成装置にて実行される波形再生
デバイス制御プログラムのフローチャートである。
【図5】 図4の波形受取り処理ルーチンの詳細を示す
フローチャートである。
【図6】 図4のフレーム処理ルーチンの詳細を示すフ
ローチャートである。
【図7】 図1,2の波形インターフェース回路の機能
を示す機能フローチャートである。
【図8】 (A)は波形データの生成及び再生を説明する
ためのタイムチャートであり、(B)はクロスフェード処
理を説明するためのタイムチャートである。
【符号の説明】
10…バス、11…CPU、14…RAM、14a〜1
4c…波形バッファ、15…波形インターフェース回
路、15a…サンプリングクロック発生器、15b,1
5c…DMAC、21…ハードディスク、22…リムー
バルディスク、23a…コンパクトディスク、23b…
フレキシブルディスク。

Claims (9)

    (57)【特許請求の範囲】
  1. 【請求項1】 楽音を表す波形データを順次生成して記
    憶手段に書き込んでおき、前記記憶手段に書き込まれ
    形データを所定の区間毎に所定レートで順次読出すと
    ともに各区間の波形データの読出しが終了する毎に次の
    区間の波形データの前記読出しを開始するようにして、
    連続した楽音を生成する楽音生成方法において、 次の区間の波形データの読出し開始タイミングまでに同
    次の区間の波形データの生成及び書き込みが終了するか
    否かを判定し、同次の波形データの生成及び書き込みが
    終了しないと判定されたとき前記記憶手段に書き込まれ
    ていて既に読出された区間の波形データを再読出しする
    ようにしたことを特徴とする楽音生成方法。
  2. 【請求項2】 前記請求項1に記載の楽音生成方法にお
    いて、前記再読出しする波形データは、前記読出し開始
    タイミングまで読出されていた区間の波形データである
    楽音生成方法。
  3. 【請求項3】 前記請求項1に記載の楽音生成方法にお
    いて、前記読出し開始タイミングよりも所定時間だけ前
    の判定タイミングで、前記次の区間の波形データの生成
    及び書き込みが同読出し開始タイミングまでに終了する
    か否かを判定するようにした楽音生成方法。
  4. 【請求項4】 前記請求項3に記載の楽音生成方法にお
    いて、次の波形データの生成及び書き込みが終了しない
    と判定されたとき、前記判定タイミングから前記読出し
    開始タイミングまで、同判定タイミングまで読出されて
    いた区間の波形データと同判定タイミングまで読出され
    ていた区間よりも一つ前の区間の波形データのうちの判
    定タイミングからその区間の終わりまでの波形データ
    を混合して出力するようにした楽音生成方法。
  5. 【請求項5】 楽音を表す波形データを順次生成して記
    憶手段に書き込む波形データ生成手段と、前記記憶手段
    に書き込まれた波形データを所定の区間毎に所定レート
    で順次読出すとともに各区間の波形データの読出しが終
    了する毎に次の区間の波形データの前記読出しを開始す
    る波形データ再生手段とを備え、連続した楽音を生成す
    る楽音生成装置において、 次の区間の波形データの読出し開始タイミングまでに同
    次の区間の波形データの生成及び書き込みが終了するか
    否かを判定する判定手段と、 前記判定手段により前記次の区間の波形データの生成及
    び書き込みが終了しないと判定されたとき前記波形デー
    タ再生手段を制御して前記記憶手段に書き込まれていて
    既に読出された区間の波形データを再読出しする再読出
    し制御手段とを設けたことを特徴とする楽音生成装置。
  6. 【請求項6】 前記請求項5に記載の楽音生成装置にお
    いて、前記再読出し制御手段は、前記読出し開始タイミ
    ングまで読出されていた区間の波形データの再読出しを
    制御するものである楽音生成装置。
  7. 【請求項7】 前記請求項5に記載の楽音生成装置にお
    いて、前記判定手段は、前記読出し開始タイミングより
    も所定時間だけ前の判定タイミングで、前記波形データ
    生成手段による次の区間の波形データの生成及び書き込
    みが同読出し開始タイミングまでに終了するか否かを判
    定するものである楽音生成装置。
  8. 【請求項8】 前記請求項7に記載の楽音生成装置にお
    いて、前記判定手段により前記次の区間の波形データの
    生成及び書き込みが終了しないと判定されたとき、前記
    判定タイミングから前記読出し開始タイミングまで、同
    判定タイミングまで読出されていた区間の波形データと
    同判定タイミングまで読出されていた区間よりも一つ前
    の区間の波形データのうちの判定タイミングからその区
    間の終わりまでの波形データとを混合して出力する混合
    手段を設けたことを特徴とする楽音生成装置。
  9. 【請求項9】 発生される楽音を表す波形データを一時
    的に記憶するためのバッファメモリと、前記バッファメ
    モリに記憶されている波形データを所定レートで順次読
    出すための読出し回路とを備え、コンピュータプログラ
    ム処理により連続した楽音を生成するための楽音生成装
    置に適用され、 楽音を表す波形データを順次生成させて前記バッファメ
    モリに書き込ませる波形データ生成ステップと、 前記読出し回路を制御して前記バッファメモリに書き込
    まれた各区間の波形データを所定レートで順次読出させ
    るとともに各区間の波形データの読出しが終了する毎に
    次の区間の波形データの前記読出しを開始させる波形デ
    ータ再生ステップと、 次の区間の波形データの読出し開始タイミングまでに同
    次の区間の波形データの生成及び書き込みが終了するか
    否かを判定させる判定ステップと、 前記判定ステップにより前記次の区間の波形データの生
    成及び書き込みが終了しないと判定されたとき前記読出
    し回路を制御して前記バッファメモリに書き込まれてい
    て既に読出された区間の波形データを再読出しさせる再
    読出しステップとを含む楽音生成処理プログラムを記録
    したコンピュータ読み取り可能な記録媒体。
JP21936398A 1998-08-03 1998-08-03 楽音生成方法、楽音生成装置及び楽音生成処理プログラムを記録したコンピュータ読み取り可能な記録媒体 Expired - Fee Related JP3518357B2 (ja)

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)

* Cited by examiner, † Cited by third party
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

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