JP2001166777A - 音源装置 - Google Patents

音源装置

Info

Publication number
JP2001166777A
JP2001166777A JP2000346173A JP2000346173A JP2001166777A JP 2001166777 A JP2001166777 A JP 2001166777A JP 2000346173 A JP2000346173 A JP 2000346173A JP 2000346173 A JP2000346173 A JP 2000346173A JP 2001166777 A JP2001166777 A JP 2001166777A
Authority
JP
Japan
Prior art keywords
waveform
processing
signal processing
channel
read
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2000346173A
Other languages
English (en)
Other versions
JP3723973B2 (ja
Inventor
Tetsuji Ichiki
哲二 市来
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 JP2000346173A priority Critical patent/JP3723973B2/ja
Publication of JP2001166777A publication Critical patent/JP2001166777A/ja
Application granted granted Critical
Publication of JP3723973B2 publication Critical patent/JP3723973B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

(57)【要約】 【課題】各種の方式の音源装置において、装置構成をそ
れ程複雑にすることなく、録音用波形処理と再生用波形
処理を共に実行できるようにすることを目的とする。 【解決手段】1つのプログラマブル信号処理手段(例え
ばDSP)を、録音用波形処理(例えばサンプリングや
リサンプリング)と再生用波形処理(例えば波形メモリ
から波形データを読み出してエフェクト付与などの処理
を施して出力する処理)との両方に共用する。また、1
つのプログラマブル信号処理手段で、録音用波形処理と
再生用波形処理との両方を並列に実行するようにする。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、ディジタル楽音
波形データを生成出力する音源装置に関し、詳しくは、
1つのDSPを用いて録音用波形処理と再生用波形処理
の両方を並列に実行可能にした音源装置に関する。
【0002】
【従来の技術】従来より、各種の方式の音源装置が知ら
れている。このような音源装置で生成された楽音は、D
SP(ディジタル・シグナル・プロセッサ)によりエフ
ェクト(効果)付与などを施して放音される。
【0003】
【発明が解決しようとする課題】一方、このような音源
装置では、外部の楽音をサンプリングして波形メモリに
格納(録音)し楽音生成に用いるようにしたものも知ら
れている。楽音のサンプリングのためには、通常、音源
装置に外部の楽音を取り込むためのサンプリング用の回
路を設ける。
【0004】ところで、近年、音源装置の機能に対する
要求は高度化し、装置の構成は複雑にすることなく音源
装置の機能を向上化させたいという要求がある。しか
し、装置の構成を複雑にすることなく、発音中にサンプ
リングしたり、一旦サンプリングして波形メモリに書き
込んだ波形データを読み出して効果付与などを施した後
に再度波形メモリに書き込むリサンプリングなどを行な
うことはできなかった。すなわち、装置の構成を複雑に
することなく、録音用波形処理と再生用波形処理を共に
行なうことができなかった。
【0005】この発明は、各種の方式の音源装置におい
て、装置構成をそれ程複雑にすることなく、録音用波形
処理と再生用波形処理を共に実行できるようにすること
を目的とする。
【0006】
【課題を解決するための手段】この目的を達成するた
め、請求項1の発明に係る音源装置は、楽音波形を録音
するための記憶手段と、所定サンプリング周期で楽音波
形を供給する波形供給手段と、ロードされたプログラム
に応じて信号処理を実行するプログラマブル信号処理手
段と、録音動作または再生動作を指示する指示手段と、
(i)前記指示手段により録音動作が指示されていたとき
は、前記プログラマブル信号処理手段に所定の第1のプ
ログラムをロードし、前記波形供給手段から供給された
楽音波形に対し該第1のプログラムにしたがって録音用
の信号処理を施すように制御し、(ii)前記指示手段によ
り再生動作が指示されていたときは、前記プログラマブ
ル信号処理手段に所定の第2のプログラムをロードし、
前記波形供給手段から供給された楽音波形に対し該第2
のプログラムにしたがって再生用の信号処理を施すよう
に制御する制御手段と、前記プログラマブル信号処理手
段が前記第1のプログラムを実行することにより出力さ
れる録音用信号処理済みの楽音波形を前記記憶手段に書
き込む書き込み手段と、前記プログラマブル信号処理手
段が前記第2のプログラムを実行することにより出力さ
れる再生用信号処理済みの楽音波形を外部のサウンドシ
ステムに供給する出力手段とを備えたことを特徴とす
る。
【0007】請求項2の発明に係る音源装置は、楽音波
形を録音するための記憶手段と、所定サンプリング周期
で楽音波形を供給する波形供給手段と、前記波形供給手
段から供給された楽音波形に対して録音用信号処理を施
すための第1のプログラムと前記波形供給手段から供給
された楽音波形に対して再生用信号処理を施すための第
2のプログラムとを並列に実行するプログラマブル信号
処理手段と、前記プログラマブル信号処理手段が前記第
1のプログラムを実行することにより出力される録音用
信号処理済みの楽音波形を前記記憶手段に書き込む書き
込み手段と、前記プログラマブル信号処理手段が前記第
2のプログラムを実行することにより出力される再生用
信号処理済みの楽音波形を外部のサウンドシステムに供
給する出力手段とを備えたことを特徴とする。
【0008】請求項3の発明に係る音源装置は、楽音波
形を録音するための記憶手段と、所定サンプリング周期
で楽音波形を供給する波形供給手段と、指示手段と、前
記指示手段の指示に応じた録音処理プログラムをロード
して実行するプログラマブル信号処理手段と、前記波形
供給手段から供給された楽音波形に対して前記プログラ
マブル信号処理手段により前記録音処理プログラムのア
ルゴリズムで録音用信号処理を施し、その出力を前記記
憶手段に録音するように制御する制御手段と、前記プロ
グラマブル信号処理手段で信号処理された楽音信号を前
記記憶手段に記録する書き込み手段とを備えたことを特
徴とする。
【0009】請求項4の発明に係る音源装置は、請求項
1から3において、前記プログラマブル信号処理手段を
ディジタル・シグナル・プロセッサとしたものである。
【0010】
【発明の実施の形態】以下、図面を用いてこの発明の実
施の形態を説明する。
【0011】図1は、この発明に係る音源装置を適用し
た電子楽器の全体のブロック構成を示す。図2は、図1
の音源部の詳細なブロック構成を示す。なお、以下で説
明する各図面において、同一の番号は同一のものを示す
ものとする。
【0012】図1を参照して、この電子楽器の全体構成
を説明する。この電子楽器は、鍵盤101、表示部10
2、スイッチ群(SW)103、中央処理装置(CP
U)104、リードオンリメモリ(ROM)105、ラ
ンダムアクセスメモリ(RAM)106、外部記憶装置
107、音源部108、波形メモリ109、外部回路1
10、遅延メモリ111、ディジタルアナログ変換器
(DAC)112、サウンドシステム(SS)113、
およびバスライン114を備えている。鍵盤101、表
示部102、スイッチ群103、CPU104、ROM
105、RAM106、外部記憶装置107、および音
源部108は、バスライン114により相互に接続され
ている。
【0013】鍵盤101は、ユーザが演奏操作するため
の複数の鍵を備えた鍵盤である。表示部102は、電子
楽器のパネル上に設けられており、各種の情報を表示す
る。スイッチ群103は、パネル上に設けられており、
ユーザはこれを操作することにより電子楽器に対して各
種の指示を与えることができる。CPU104は、この
電子楽器全体の動作を制御する。特に、通常の演奏時に
は、鍵盤101の操作を検出し、その操作に応じて音源
部108に発音の指示を出す。ROM105は、CPU
が実行するプログラム(音源部108を制御するための
音源コントロールプログラムなど)や各種の定数データ
などを格納する。RAM106は、ワークレジスタなど
に用いる。外部記憶装置107には、後述するDRAM
構成の波形メモリ109にロードする波形データなどが
格納されている。
【0014】音源部108は、CPU104の指示に応
じて、波形メモリ109から波形データ(波形サンプ
ル)を読み出し、補間、エンベロープ付与(音量変化制
御)、チャンネル累算(ミキシング)、および効果(エ
フェクト)付与などの加工を施して、楽音波形データと
して出力する。音源部108から出力された楽音波形デ
ータは、DAC112によりアナログ信号に変換され、
サウンドシステム113により放音される。
【0015】波形メモリ109は、DRAM(ダイナミ
ックRAM)により構成されている。波形メモリ109
には、所定のレートでサンプリングされた波形サンプル
データが格納されている。1つの波形サンプルは16ビ
ット非圧縮形式であり、アドレスは波形サンプル単位に
付けられている。すなわち、1アクセスで1つの波形サ
ンプルが読み出せる。波形サンプルは、楽音の発音に先
立って外部記憶装置107から読み出して波形メモリ1
09に格納してもよいが、特にこの実施の形態の音源で
は、複数チャンネル分の楽音発生の動作を行なう際に使
用されなかった空きタイムスロットを別の用途に用いる
ことができるようになっているので、楽音発生の動作中
にその空きタイムスロットを用いて波形データを外部記
憶装置107から読み出して波形メモリ109に格納し
てもよい。
【0016】外部回路110については、後に詳しく説
明する。遅延メモリ111は、音源部108内にある信
号処理回路(DSP)で用いる遅延用のメモリである。
楽音波形に効果付与などの処理を施す際に、例えばある
タイミングであるデータを遅延メモリ111に書き込
み、所定のクロックの後に読み出して演算に用いるとい
うようにして、遅延したデータを得るのに遅延メモリ1
11を用いる。
【0017】図2を参照して、音源部108について詳
しく説明する。図2において、音源部108は、制御レ
ジスタ201、読み書き回路202、音量変化制御回路
203、ミキサ204、信号処理回路205、およびイ
ンターフェース206を備えている。この音源部108
は時分割32チャンネルで動作する。音源部108内の
各部には、時分割動作を行なうための基準信号となる制
御クロック信号や0〜31を繰り返しカウントするチャ
ンネルカウント値などの制御信号が供給されている。
【0018】図2において、制御レジスタ201は、C
PU104から送出された各種の指定情報(音源部10
8に対する命令やパラメータ情報)を格納するための制
御レジスタである。制御レジスタ201内にはXアクセ
ス処理を制御するXアクセス回路304が設けられてい
るが、これについては後に詳述する。CPU104は、
制御レジスタ201に所定の指定情報をセットして発音
の開始指示を出す。セットする指定情報としては、割り
当てチャンネル、波形メモリ読み出しピッチ(周波数ナ
ンバ)、波形メモリ読み出し区間、エンベロープパラメ
ータ、ミキサ204に対する設定情報、およびエフェク
ト用係数などがある。
【0019】あるチャンネルにおける発音開始指示を受
けると、音源部108は楽音波形の発生の動作を開始す
る。まず、読み書き回路202は、波形メモリ109の
読み出しアドレスを順次発生する。読み出しアドレス
は、指定された読み出し区間の先頭から、指定された読
み出しピッチを順次累算した値である。特に、この音源
部108では、読み書き回路202中に波形サンプルを
バッファリングする波形バッファ(後述する図3の32
7)を備え、波形メモリ109からはチャンネルごとに
必要な数の波形サンプル(波形データ)のみを読み出す
ようになっており、各チャンネルにおける波形メモリア
クセス回数は可変できるようになっている。そこで、読
み書き回路202は、各チャンネルにおいて必要なアク
セス回数に応じた波形サンプルの読み出しアドレスを、
時分割チャンネルタイミングとは異なるタイミングで、
順次連続して出力するようになっている。読み書き回路
202で発生した読み出しアドレスは、波形メモリ10
9に入力し、これにより時分割チャンネルタイミングと
は異なるタイミングで波形サンプルが波形メモリ109
から読み出される。読み書き回路202は、この波形サ
ンプルを受け取り、内部の波形バッファに記憶し、補間
処理を行なって楽音波形データとして出力する。
【0020】読み書き回路202において、上述したよ
うに波形サンプルをバッファリングする波形バッファを
備え、波形メモリ109からはチャンネルごとに必要な
数の波形サンプルのみを読み出すようになっていること
により、空きタイムスロットが得られる。読み書き回路
202は、この空きタイムスロットにおいて、後述する
Xアクセス処理、すなわちCPU104からの波形メモ
リ109へのアクセス、またはミキサ204からXアク
セス回路304経由で戻ってくる楽音波形データの波形
メモリ109への書き込みなどができるように動作す
る。
【0021】音量変化制御回路203は、読み書き回路
202から時分割で出力される各チャンネルの楽音波形
データにエンベロープを付与して出力する。どのような
エンベロープを付与するかは、制御レジスタ201を介
してCPU104から与えられたエンベロープパラメー
タに基づいて決定される。図2の音量変化制御回路20
3の出力ライン211に「32」と付してあるのは、音
量変化制御回路203の出力が時分割32チャンネル分
あることを示している。他の各部の入出力ラインに付し
てある数値も、同様にチャンネル数を示すものとする。
【0022】ミキサ204には、音量変化制御回路20
3から出力される32チャンネル分の楽音波形データ、
後述する信号処理回路205から出力される8チャンネ
ル分の楽音波形データ、および後述する外部回路110
から(インターフェース206を介して)出力される8
チャンネル分の楽音波形データが、入力ライン211,
212,213を介して入力する。ミキサ204は、こ
れらの各入力ラインから入力した各チャンネルの楽音波
形データにそれぞれ適宜係数(係数値はCPU104が
制御レジスタ201を介して与える)を乗算してミキシ
ングする。ミキサ204の出力は、8チャンネル分が信
号処理回路205に、8チャンネル分が(インターフェ
ース206を介して)外部回路110に、1チャンネル
分が制御レジスタ201内のXアクセス回路304に、
音源部108の最終的な出力となる2チャンネル(Lお
よびR出力)分がDAC112に、それぞれ出力ライン
221,222,223,224を介して、出力される
ようになっている。ミキサ204は、任意の入力ライン
から入力した任意のチャンネルの楽音波形データに指定
された係数を乗算してミキシングし、そのミキシング結
果を任意の出力ラインの任意のチャンネルに送出でき
る。どの入力ラインのどのチャンネルの入力にどのよう
な係数を乗算し、乗算結果をどのようにミキシングし、
ミキシング結果をどの出力ラインに出力するかは、CP
U104の指定に基づいて決定される。
【0023】信号処理回路205は、内部のマイクロプ
ログラムメモリにロードされたマイクロプログラムにし
たがって動作するDSPであり、ミキサ204からの楽
音波形データに対してチャンネルごとに独立に信号処理
を行ない処理結果を再びミキサ204に戻す。信号処理
回路205は、信号処理を行なう際に、必要に応じて遅
延メモリ111を用いて遅延したデータを得る。信号処
理回路205が実行するマイクロプログラムはCPU1
04が適宜ロードする。信号処理回路205の機能はロ
ードするマイクロプログラムにより規定されるが、簡単
に言うと、サンプリングやリサンプリングの際の波形処
理、あるいは効果付与などの信号処理を行なうものであ
る。このマイクロプログラムの具体的な設定について
は、図10および図11を参照して後述する。
【0024】外部回路110は、例えば、外部から音声
や楽音を取り込むためのアナログ/ディジタル変換器
(ADC)、効果(エフェクト)付与処理を行なう外部
DSP、あるいはディジタルフィルタなどである。ミキ
サ204から外部回路110への出力は8チャンネル
分、外部回路110からミキサ204への入力は8チャ
ンネル分であり、これらは当然独立に使用できるチャン
ネルであるので、複数の外部回路(当然、異なる処理を
行なうものでもよい)110を任意の入出力ラインの任
意のチャンネルに(インターフェース206を介して)
接続可能である。なお、「外部」というのは音源部10
8から見て「外部」であるということであり、外部回路
110は図1の電子楽器中に設けてもよいし、図1の電
子楽器の外部に設けてもよい。
【0025】上述したように、ミキサ204は任意の入
力ライン211〜213から入力した任意のチャンネル
の楽音波形データに指定された係数を乗算してミキシン
グし、そのミキシング結果を任意の出力ライン221〜
224の任意のチャンネルに送出できるようになってい
るから、例えば、以下の〜のような処理を行なうこ
とができることになる。
【0026】外部回路110としてADCを用いて、
マイクロフォンなどから入力したアナログ信号をディジ
タル信号に変換してミキサ204に入力させる。ミキサ
204では、この外部からの楽音信号を、音源部108
内部で波形メモリ109から波形データを読み出して発
生した楽音とミキシングして、DAC112への出力ラ
イン224に出力する。必要に応じてミキサ204の出
力を、DAC112に出力する代わりに一旦信号処理回
路205や他の外部回路110に入力し、信号処理回路
205や他の外部回路110を用いて効果付与処理など
の波形処理を行なった後にDAC112に出力するよう
にしてもよい。
【0027】外部の楽音のサンプリングを行なうこと
ができる。すなわち、外部回路110としてADCを用
いて、マイクロフォンなどから入力したアナログ信号を
ディジタル信号に変換してミキサ204に入力させる。
ミキサ204では、この外部からの楽音信号を、例えば
音源部108内部で波形メモリ109から波形データを
読み出して発生した楽音とミキシングして、Xアクセス
回路304への出力ライン223に出力し、読み書き回
路202経由で波形メモリ109に書き込むようにす
る。必要に応じてミキサ204の出力を、Xアクセス回
路304への出力ライン223に出力する代わりに信号
処理回路205や外部回路110に入力し、信号処理回
路205や外部回路110を用いて効果付与処理などの
波形処理を行なった後にXアクセス回路304に出力す
るようにしてもよい。
【0028】リサンプリング(サンプリングなどによ
り波形メモリ109上に用意されている波形に、加工を
施して再び波形メモリ109に書き込む処理)を行なう
ことができる。すなわち、サンプリングなどにより波形
メモリ109に記憶してある波形データを、読み書き回
路202の所定の発音チャンネルを利用して読み出し
て、ミキサ204に入力させる。2つ以上の波形を混合
して再書き込みするリサンプリングの場合もあるので、
ここで読み出す波形データは1ないし複数の波形データ
である。ミキサ204では、この楽音信号を信号処理回
路205や外部回路110に流し、必要に応じて種々の
波形処理を行なわせ、その結果を得る。波形処理が施さ
れた楽音信号を受けたミキサ204は、その楽音信号を
Xアクセス回路304への出力ライン223に出力し、
読み書き回路202経由で波形メモリ109に書き込
む。なお、ミキサ204における最初のミキシング結果
を、信号処理回路205や外部回路110に流さずに、
そのままXアクセス回路304へ供給するようにしても
よい。
【0029】外部回路110としてDSPやディジタ
ルフィルタを用いて、あるいは信号処理回路205を用
いて、ミキサ204から取り出した楽音波形に効果付与
処理やフィルタリング処理を行ない、処理結果をミキサ
204に戻す。ミキサ204では、処理された楽音波形
を、音源部108内部で発生した楽音とミキシングして
DAC112への出力ライン224やXアクセス回路3
04への出力ライン223に出力する。
【0030】なお、上記〜は本実施形態において実
現できる処理例を示したものであり、音源部108内の
時分割処理の処理時間が確保でき、必要なマイクロプロ
グラムが信号処理回路205にロードできるならば、上
記〜を含め外部回路110と信号処理回路205の
各種機能を任意に組み合わせて楽音波形に対する処理を
行ない、DAC112に出力したり、Xアクセス回路3
04経由で読み書き回路202に戻して波形メモリ10
9に書き込むようにできる。
【0031】図3は、音源部108内の制御レジスタ2
01および読み書き回路202の詳細なブロック構成を
示す。なお、図3に示されている回路のうち、制御レジ
スタ201は、制御レジスタのすべてを示したものでな
く、その一部分を示したものである。制御レジスタ20
1には、図3に示したもの以外に、エンベロープパラメ
ータ、ミキサの設定、およびエフェクト用係数などの他
の制御データも記憶されている。
【0032】制御レジスタ201は、レジスタ301、
レジスタ302、優先フラグ303、および、Xアクセ
ス回路304を備えている。レジスタ301,302
は、CPU104から楽音生成を指示する際に送出され
る各種指示情報を格納する。具体的には、レジスタ30
1は、例えば波形読み出しのための読み出しアドレス
(相対アドレス)の初期値AS、波形データのループ部
のデータ長LPA、ピッチPITCHなどを格納する。
レジスタ302は、読み出すべき波形データのループ部
の先頭を示す絶対アドレスWAを格納する。なお、読み
出しアドレスの初期値ASは、波形データのループ部の
先頭位置(すなわちアタック部の末尾)を基準とした相
対アドレスであるので、負の値に設定されている。波形
データの読み出しは、絶対アドレスWAより初期値AS
で示される分だけ前の位置からスタートする。波形デー
タのループ部のデータ長LPAは、ループ部末尾位置の
相対アドレス(正値)である。
【0033】Xアクセス回路304は、XAレジスタ3
11、セレクタ312、FIFO(First In
First Out(先入れ先出し)の8段のレジス
タ)313、Xフラグ314、およびサンプル数レジス
タ315を備えている。Xアクセス回路304は、後述
するXアクセス処理(CPU104からの波形メモリ1
09のアクセス、およびミキサ204から出力ライン2
23を介して送出された楽音波形データの波形メモリ1
09への書き込み)を、楽音発生のための波形メモリ読
み出しと並行して実行するための制御を行なう回路であ
る。優先フラグ303は、Xアクセス処理を優先的に行
ないたい場合にオンされるフラグである。Xアクセス回
路304の動作および機能、並びに、Xアクセス処理お
よび優先フラグ303の使い方については後述する。
【0034】読み書き回路202は、処理A演算回路3
21、アドレスRAM(ARAM)322、アキュムレ
ータ(ACC)323、制御RAM324、処理B演算
回路325、補間回路326、波形バッファ327、取
り込み回路328、およびセレクタ(SEL)329,
330を備えている。
【0035】図3の制御レジスタ201および読み書き
回路202では、大きくは、処理A、処理B、取り込み
処理、補間処理、およびXアクセス処理の5つの処理を
行なう。各処理の概要は以下の通りである。処理Aは、
主として処理A演算回路321により実行される処理で
あり、具体的には、楽音生成のために時分割チャンネル
タイミングにしたがって各チャンネルのアドレス(波形
サンプル読み出しアドレス(相対アドレス))を作成す
る処理である。各チャンネルのアドレスは、ARAM3
22に保持される。処理Bは、主として処理B演算回路
325により実行される処理であり、具体的には、楽音
生成のために、時分割チャンネルタイミングとは異なる
タイミングで、アドレスWMA(波形サンプル読み出し
アドレス(絶対アドレス))をセレクタ329を介して
波形メモリ109に向けて送り出す処理である。取り込
み処理は、主として取り込み回路328により実行され
る処理であり、具体的には、処理Bにより波形メモリ1
09に送り出されたアドレスにしたがって読み出された
波形サンプルをセレクタ330を介して取り込み、各チ
ャンネル別に波形バッファ327に書き込む処理であ
る。処理Bと取り込み処理が行なわれるときは、セレク
タ329と330は、処理B演算回路325から出力さ
れるアドレスWMAが波形メモリ109のアドレス端子
に入力して、波形メモリ109から読み出された波形サ
ンプルが取り込み回路328に取り込まれるように、選
択制御される。補間処理は、補間回路326により実行
される処理であり、具体的には、時分割チャンネルタイ
ミングにしたがって、波形バッファ327から各チャン
ネルの波形サンプルを読み出し、補間を行なって補間済
みサンプル(楽音波形データ)を生成出力する処理であ
る。補間回路326から出力された楽音波形データは、
図2の音量変化制御回路203に入力する。Xアクセス
処理は、主としてXアクセス回路304の制御のもとで
実行される処理であり、具体的には、上記処理Bおよび
取り込み処理で波形メモリ109をアクセスするタイム
スロット以外のタイムスロットで、CPU104からの
波形メモリ109のアクセスおよびミキサ204から出
力ライン223を介して送出された楽音波形データの波
形メモリ109への書き込みを行なう処理である。Xア
クセス処理の際には、セレクタ329と330は、XA
レジスタ311に格納されているアドレスが波形メモリ
109のアドレス端子に入力し、波形メモリ109のデ
ータラインがFIFO313に接続するように、選択制
御される。以上の5つの処理の詳細については後述す
る。
【0036】図4は、図3の制御RAM324の構成を
示す。詳しくは後述するが、処理Aでは、各チャンネル
のアドレス作成と並行して、各チャンネルについて読み
出すべき必要サンプル数を求めて制御RAM324に格
納する処理を行なう。そのため、制御RAM324は、
チャンネル番号(CH番号)とそのチャンネルにおいて
読み出すべきサンプル数を格納する領域が複数用意され
て構成される。読み書き回路202内には書き込みポイ
ンタおよび読み出しポインタが備えられており、各チャ
ンネルにおいて読み出すべき必要サンプル数を制御RA
M324に書き込むとき(処理A)は書き込みポインタ
をすすめ、制御RAM324からチャンネル番号とサン
プル数を読み出して当該チャンネルに関する読み出しア
ドレスを送出するとき(処理B)は読み出しポインタを
進める。制御RAM324は、リング状に使用するよう
になっており、書き込みまたは読み出しポインタが制御
RAM324の一方の端に至った場合、その次のポイン
タの位置は制御RAM324の他方の端になる。また、
読み出しポインタの指す位置が書き込みポインタの指す
位置を追いかけるように書き込みおよび読み出しが行な
われるが、書き込みポインタが読み出しポインタを追い
越さない程度の領域の大きさが確保されているものとす
る。書き込みポインタおよび読み出しポインタは、アキ
ュムレータ323と同様に、それぞれ、前半処理用のも
のと後半処理用のものとが別々に設けられている。単
に、書き込みポインタおよび読み出しポインタと呼ぶと
きは、前半処理では前半処理用のもの、後半処理では後
半処理用のものを指すものとする。前半処理は第0〜第
15チャンネルの処理、後半処理は第16〜第31チャ
ンネルの処理である(図8,9で後述する)。なお、図
4のような構成のほか、各チャンネルに1つずつアドレ
スを対応させ、そこに必要サンプル数を書き込むように
してもよい。
【0037】図5は、図3のARAM322のメモリマ
ップを示す。ARAM322は、処理Aにおいて各チャ
ンネルのアドレスを作成するのに用いる領域である。A
RAM322は、32チャンネル分(第0〜第31チャ
ンネル)の各チャンネルごとの領域からなり、これらの
領域に各チャンネルの現在のアドレス値を記憶する。各
チャンネルの領域はアドレス上位ADH、およびアドレ
ス下位ADLからなる。ADHおよびADLの領域の大
きさはそれぞれ16ビットである。アドレス上位ADH
とアドレス下位ADLとを合わせた32ビットのアドレ
ス値は、アドレス整数部とアドレス小数部とに分けられ
る。アドレス整数部は23ビット、アドレス小数部は9
ビットである。アドレス整数部は、波形メモリ109の
アドレスと対応している。すなわち、アドレス整数部の
1つの値に対応して、波形メモリ109の波形サンプル
が1つ存在する。アドレス小数部は、それよりも細かい
単位を示し、何点かの波形サンプルを用いた補間処理で
用いる情報である。
【0038】図6は、図3の波形バッファ(サンプルR
AM)327の構成を示す。波形バッファ327は、各
チャンネルごとの4つの再生サンプル格納領域からな
る。4つの再生サンプル格納領域はリング状に使用す
る。すなわち、各チャンネルごとにポインタを設け、波
形サンプルを書き込むときは、そのポインタで指す位置
に書き込み、ポインタを1つ進める。ポインタは、例え
ば図6の第iチャンネルなら、再生サンプル1→2→3
→4→1→2→…というように進める。
【0039】次に、図3の制御レジスタ201および読
み書き回路202で実行する上記5つの処理について詳
しく説明する。始めにこれらの処理を実行するタイミン
グについて説明し、その後、各処理それぞれの詳細を説
明する。
【0040】図3、図8、および図9を参照して、読み
書き回路202の要部の処理のタイミングの概要につい
て説明する。図8において、「処理A」は、図3の主と
して処理A演算回路321により実行される処理Aを行
なう区間を示す。「処理BおよびXアクセス処理」は、
図3の主として処理B演算回路325により実行される
処理B、およびXアクセス回路304の制御のもとで実
行されるXアクセス処理を行なう区間を示す。「取り込
み処理およびXアクセス処理」は、図3の主として取り
込み回路328により実行される取り込み処理、および
Xアクセス回路304の制御のもとで実行されるXアク
セス処理を行なう区間を示す。「補間処理」は、図3の
補間回路326により補間処理を行なう区間を示す。
【0041】「処理A」および「補間処理」の処理区間
は、1サンプリング周期を前半区間と後半区間に分け、
前半区間で第0〜第15チャンネルの処理を行ない、後
半区間で第16〜第31チャンネルの処理を行なうよう
になっている。すなわち、前半区間(処理A前半区間)
801で第0〜第15チャンネルに関する処理Aを、後
半区間(処理A後半区間)811で第16〜第31チャ
ンネルに関する処理Aを、前半区間(補間前半区間)8
06で第0〜第15チャンネルに関する補間処理を、後
半区間(補間後半区間)816で第16〜第31チャン
ネルに関する補間処理を、それぞれ実行する。「処理B
およびXアクセス処理」の処理区間では、1サンプリン
グ周期を前半区間と後半区間に分けたそれぞれの区間の
前側区間802,812で処理Bを行ない、後側区間8
03,813でXアクセス処理を行なう。第0〜第15
チャンネルの処理Bを行なう処理B前半区間802は、
当該チャンネルの処理Aを行なう処理A前半区間801
が終了した直後から開始され、必要な処理Bが行なわれ
た後の空き時間の区間803でXアクセス処理が行なわ
れる。同様に、第16〜第31チャンネルの処理Bを行
なう処理B後半区間812は、当該チャンネルの処理A
を行なう処理A後半区間811が終了した直後から開始
され、必要な処理Bが行なわれた後の空き時間の区間8
13でXアクセス処理が行なわれる。取り込み処理は、
処理Bのアドレス送り出しのタイミングにしたがって行
なわれるから、取り込み処理についても同様に、1サン
プリング周期を前半区間と後半区間に分けたそれぞれの
区間の前側区間804,814で取り込み処理を行な
い、後側区間805,815でXアクセス処理を行な
う。取り込み処理の後、各チャンネルの波形サンプルが
波形バッファ327に揃うことが保証されるタイミング
で開始される区間806,816で時分割チャンネルタ
イミングにしたがって各チャンネルの補間処理を行な
う。
【0042】図9は、図8の前半処理の各処理中のチャ
ンネルの様子を示す。図9の「処理A前半ch」は、図
8の区間801におけるチャンネルの様子を示す。図9
の「処理B前半chおよびXアクセス処理」は、図8の
区間802,803におけるチャンネルの様子を示す。
図9の「取り込み前半chおよびXアクセス処理」は、
図8の区間804,805におけるチャンネルの様子を
示す。図9の「補間前半ch」は、図8の区間806に
おけるチャンネルの様子を示す。後半処理も同様であ
る。なお、図9では各チャンネルタイミングを縦に並べ
て揃えて記載しているが、実際には各処理のタイミング
は図8に示すようにずれている。
【0043】この実施の形態では、図9からも分かるよ
うに、処理A演算回路321によるアドレス作成の処理
Aと補間回路326による補間処理は、それぞれ、1サ
ンプリング周期を等分割した時分割チャンネルタイミン
グにしたがって順番にチャンネルごとの処理が行なわれ
る。一方、処理B演算回路325からのアドレス送り出
しの処理Bと取り込み回路328による波形データの取
り込みの処理は、時分割チャンネルタイミングとは独立
したタイミングで動作する。
【0044】例えば、図8および図9において、処理A
前半区間801では、処理A演算回路321により、第
0〜第15チャンネルについて時分割チャンネルタイミ
ングにしたがって順番に各チャンネルのアドレスを作成
している。処理B前半区間802では、処理B演算回路
325により、時分割チャンネルタイミングとは異なる
タイミングで、第0チャンネルのアドレスを1つ、第2
チャンネルのアドレスを3つ、第5チャンネルのアドレ
スを1つ、…というように、第0〜第15チャンネルの
アドレスの送り出しを行なっている。1アドレス送り出
しを行なう区間の時間幅は、時分割チャンネルタイミン
グで1チャンネル分の処理を行なう区間の時間幅の1/
4である。したがって、1チャンネル分の処理を行なう
時間幅で波形メモリを4アクセスできる。各チャンネル
で送り出すアドレスの個数が区々であるのは、波形バッ
ファ(サンプルRAM)327に過去の波形データ(再
生サンプル)が保持されており各チャンネルごとに必要
な個数の波形データのみ読み出せば充分なため、あるい
は発音する必要がなくアドレスの送り出しが不要なチャ
ンネルがあるためである。ここ(図9)では、それぞ
れ、第0チャンネルは1アクセス、第2チャンネルは3
アクセス、第5チャンネルは1アクセス、第7チャンネ
ルは2アクセス分の波形メモリからの読み出しが必要な
場合を示している。その他のチャンネルは、発音してい
ないか、既に読み出して波形バッファ327に記憶され
たサンプルのみで楽音が生成できるチャンネルである。
なお、発音していないチャンネルとは、音量変化制御回
路203などで音量レベルの下げられたチャンネルであ
り、そのチャンネルに関しては処理Bにおける波形メモ
リのアクセスタイミングを使用しないように、制御がな
されている。
【0045】取り込み前半区間804では、処理B前半
区間802のアドレス送り出しのタイミングにしたがっ
て波形メモリ109から読み出された波形データを取り
込んでいる。補間回路326は、補間前半区間806で
時分割チャンネルタイミングにしたがって、波形バッフ
ァ327のデータを用いて第0〜第15チャンネルに関
する補間処理を行なう。あるチャンネルについて補間を
行なう時点で、補間を行なうために必要な当該チャンネ
ルの波形データは波形バッファ327に用意されている
ようになっている。
【0046】以上のようなタイミングで、第0〜第15
チャンネルの楽音波形データが生成される。後半の区間
を用いて処理される第16〜第31チャンネルについて
も同様である。
【0047】処理B演算回路325におけるアドレス送
り出しの処理Bおよび取り込み回路328における波形
データ取り込みの処理が必要なアクセス数だけ時分割チ
ャンネルタイミングとは異なるタイミングで行なわれる
ことにより、空きタイムスロットが出現する。図9の
「処理B前半chおよびXアクセス処理」および「取り
込み前半chおよびXアクセス処理」の区間中、「−c
h」は何れのチャンネルのサンプル読み出しにも使用さ
れていない空きタイムスロットを示す。この空きタイム
スロットの区間803,805は、任意に使用可能であ
る。そこで、処理B演算回路325は、この空きタイム
スロットの区間でセレクタ329,330を切り替え、
Xアクセス処理(Xアクセス回路304の制御のもとで
行なわれるCPU104による波形メモリ109へのア
クセス処理、およびミキサ204から出力ライン223
を介して戻ってくる楽音波形データの波形メモリ109
への書き込み処理)が行なわれるようにする。
【0048】なお、処理A演算回路321や処理B演算
回路325を始めとして図3の制御レジスタ201およ
び読み書き回路220の各部には、不図示のクロック発
生部からの制御クロックが入力している。このクロック
を基準として各部が動作することにより、図8,9に示
すようなタイミングで各処理が実行される。
【0049】次に、図3の制御レジスタ201および読
み書き回路202による5つの処理について、以下の
(1)〜(5)で詳細に説明する。
【0050】(1)処理A演算回路321で実行する処
理Aについて詳しく説明する。あるチャンネルで楽音の
発音開始が指示されると、当該チャンネルに関する処理
Aが処理A演算回路321で実行開始される。処理A
は、図8,9で説明したように時分割チャンネルタイミ
ングで実行される。まず、1番始めの当該チャンネルの
タイムスロット(ノートオン立上がり直後)で、処理A
演算回路321は、当該チャンネルに対応するARAM
322(図5)のアドレス格納領域(ADHとADL)
を初期化する。初期値は、読み出すべき波形データの先
頭アドレスAS(波形データのループ部の先頭位置を基
準とした相対アドレスであるので負値)であり、CPU
104が図3のレジスタ301を介して指定する。次回
以降の当該チャンネルのタイムスロットで、処理A演算
回路321は、当該チャンネルに対応するARAM32
2のアドレス格納領域の現アドレス値に、当該チャンネ
ルにおけるアドレスの進み値(周波数ナンバ)であるピ
ッチPITCHを加算する。加算結果は、元のARAM
322のアドレス格納領域に格納される。ピッチPIT
CHは、CPU104が図3のレジスタ301を介して
指定する。
【0051】この加算は、具体的には、当該チャンネル
の現アドレス値のアドレス小数部にピッチPITCHを
加算し、加算結果のうちアドレス小数部のビット数より
上位に溢れた値を現アドレス値のアドレス整数部に加算
することにより行なう。この溢れ値は、新たに読み出す
べき波形サンプルの数になっている。読み書き回路20
2では波形バッファ327にそれまでに読み出した波形
サンプルが保持されており、上記溢れ値が波形メモリ上
での読み出しアドレスの進み量になっているからであ
る。先述した図9は、溢れ値が、第0チャンネルで1、
第2チャンネルで3、第5チャンネルで1、第7チャン
ネルで2の場合である。なお、その他のチャンネルは、
発音していない、または、溢れ値が0のチャンネルであ
る。
【0052】なお、波形メモリ109上の波形データは
アタック部とそれに引き続くループ部とから構成され、
波形データのループ部の先頭位置(すなわちアタック部
の末尾)を基準として、読み出しアドレスの初期値AS
(負値)およびループ部末尾位置の相対アドレスLPA
(正値)が設定されている。波形サンプルのアクセスは
アタック部の先頭から開始され(すなわち現アドレス
が、負の相対アドレスASからスタートして徐々に増加
する)、アタック部の読み出しが終わると現アドレス値
が正の値になりループ部に入る。以後は必要に応じてル
ープ部の波形サンプルを繰り返し読み出す。そのため、
現アドレス値がループ部末尾位置(=相対アドレスLP
A)を越えたときは、現アドレス値から値LPAを減算
し、減算結果を新たな現アドレス値として設定する処理
を行なう。現アドレス値には、後に波形データのループ
部の先頭を示す絶対アドレスWAを加算する。処理A演
算回路321は、上述のアドレスを作成する処理中で、
このようなアドレスをループ部先頭付近に戻す処理も行
なっている。
【0053】以上のように、当該チャンネルのタイムス
ロットで、ARAM322上の現アドレスにピッチ(周
波数ナンバ)を累算していき、当該チャンネルに関する
順次アドレスをARAM322上に生成する。
【0054】処理Aでは、上述した各チャンネルのアド
レスを作成する処理の他、制御RAM324(図4)内
の書き込み位置を指す書き込みポインタを1つ進め、各
チャンネルごとの必要サンプル数を、制御RAM324
の書き込みポインタで指す位置に格納する処理を行な
う。各チャンネルごとの必要サンプル数は、上述の現ア
ドレス値のアドレス小数部にピッチPITCHを加算し
た加算結果のうちアドレス小数部のビット数より上位に
溢れた値に一致しているから、この溢れ値を得てチャン
ネル番号とともに制御RAM324に格納する。
【0055】さらに、処理Aでは、上述の各チャンネル
のアドレス作成、および各チャンネルに関する必要サン
プル数の格納の処理の他、所定の複数のチャンネルごと
に必要な波形メモリアクセス数(この実施の形態ではサ
ンプル数とアクセス数とは一致する)を累算する処理を
も行なう。具体的には、処理A演算回路321で、第0
〜第15チャンネルのアドレス作成(前半処理)と並行
してこれらのチャンネルについて読み出すべき必要なサ
ンプル数を累算し、さらに第16〜第31チャンネルの
アドレス作成(後半処理)と並行してこれらのチャンネ
ルについて読み出すべき必要なサンプル数を累算する。
【0056】アキュムレータ(ACC)323は、この
累算を行なうためのアキュムレータである。読み書き回
路202では、前半処理と後半処理に分けて累算を行な
うため、アキュムレータ323は実際には前半アキュム
レータと後半アキュムレータとの2つのアキュムレータ
からなる。単に、アキュムレータ323というときは、
前半処理では前半アキュムレータ、後半処理では後半ア
キュムレータのことを指すものとする。
【0057】具体的に累算の処理は、以下のように行な
う。まず、前半処理および後半処理の開始時点でアキュ
ムレータ323を初期設定(ゼロクリア)する。以後
は、前半処理および後半処理の最後のチャンネルまで、
必要なサンプル数(すなわち、アクセス数)をアキュム
レータ323に累算していく。各チャンネルについて読
み出すべき必要なサンプル数は、上記制御RAM324
に書き込む際に分かる。
【0058】さらに処理Aでは、上記のように累算した
結果であるアクセス回数累算値が、実際にアクセスを実
行する処理Bの前半区間または後半区間における最大ア
クセス可能数(アクセスの制限回数)を超えていないか
判定し、その結果に応じて各チャンネルごとのアクセス
回数および補間次数を決定する。以下、これについて説
明する。まず前半処理の区間に着目して説明する。前半
処理の区間は1サンプリング周期の半分の時間区間であ
り、その区間で第0〜第15チャンネルに関する処理B
(および多少の遅れ時間の後に実行される取り込み処
理)を行なう。また、処理Bで1アドレス送り出しを行
なう区間の時間幅は時分割チャンネルタイミングで1チ
ャンネル分の処理を行なう区間の時間幅の1/4であ
る。したがって、もしXアクセス処理を当該区間内で行
なわないなら(すなわち図8,9の区間803,805
がない場合)、前半区間では64アクセスが可能であ
る。この実施の形態では、各チャンネルで4点補間を行
なうので、前半区間で処理する16チャンネルのすべて
で4点の波形サンプルを読み出す必要がある場合でも、
4点×16ch=64アクセスであるから、Xアクセス
処理を行なわずに前半区間のすべてを処理Bおよび取り
込み処理に使用すれば、すべてのチャンネルで4点補間
を行なうことができる。ただし、優先フラグ(次の処理
Bの説明で詳述する)303がオンされているときは前
半区間のXアクセス処理で所定回(この実施の形態では
1回)のアクセスを優先的に実行しなければならないた
め、前半区間の処理Bおよび取り込み処理による最大ア
クセス可能数は64から上記Xアクセス処理のアクセス
数を減算した値となる。したがって、上述したようにア
キュムレータ323で累算したアクセス回数累算値が前
半区間における最大アクセス可能数を超えることが考え
られる。この場合は、制御RAM324に書き込んだ各
チャンネルのサンプル数をすべてアクセスすることはで
きないので、アクセス回数の多い(例えば3回あるいは
4回)チャンネルの中の何れかのチャンネルのアクセス
回数を削減し補間次数を落とす。補間次数を落とすとい
うのは、例えば、4点補間の処理を3点補間あるいは2
点補間(直線補間)に変更する、ということである。ア
クセス回数を削減するチャンネルの決定方法としては、
例えば下記のおよびのような方法がある。
【0059】チャンネル順に片端からアクセス回数を
削減する。 その時点で音量レベルの小さいチャンネルからアクセ
ス回数を削減する。このようにすると楽音への影響が小
さい。各チャンネルの音量レベルは、エンベロープ値か
ら分かる。
【0060】なお、この実施の形態では前半区間で64
アクセス可能で補間は4点補間であり、実際には第0〜
第15のすべてのチャンネルで4点の読み出しを行なう
場合はきわめて稀であると考えられるから、アクセス回
数を累算して最大アクセス可能数と比較した結果から各
チャンネルのアクセス回数と補間次数を決定する機能は
設けなくとも実用上はほとんど問題がない。ただし、4
点補間でなく例えば各チャンネルで6点補間を行なう場
合や、優先フラグ303がオンのときにXアクセス処理
に優先的に確保するアクセス数が多い場合などでは、有
効な機能である。以上、前半区間に着目して説明したが
後半区間でも同様である。
【0061】(2)次に、処理B演算回路325で実行
する処理Bについて詳しく説明する。処理B演算回路3
25は、時分割チャンネルタイミングとは異なるタイミ
ングで、処理B、すなわちアドレスを波形メモリ109
に向けて送り出す処理を行なう。図9で説明したよう
に、時分割チャンネルタイミングの1チャンネル当りの
時間内で4アクセス(4サンプルの読み出し)が可能で
ある。処理Bの波形メモリアクセス処理は、処理Aの時
分割チャンネルタイミングにしたがった処理とは関係が
なく、読み出しが必要な各チャンネルについて順次連続
して行なわれる。読み出しが必要なチャンネルとサンプ
ル数は、上述の処理Aで決定され、制御RAM324に
セットされている。また、図8,9で説明したように、
あるチャンネルについて処理Bを行なうときには既に当
該チャンネルに関する処理Aは実行済みであり、当該チ
ャンネルのアドレス値がARAM322にセットされて
いる。
【0062】アドレス送り出しの処理を説明する。ま
ず、図4に示す制御RAM324内の読み出し位置を指
す読み出しポインタの値が、当該チャンネルに関する処
理A前半または後半処理の終了時点の書き込みポインタ
の値と一致しているか否か判定する。例えば、当該チャ
ンネルの処理Bが図8の処理B前半区間802内の処理
である場合は、読み出しポインタの値を、処理A前半区
間801の終了時点の書き込みポインタの値と比較する
ということである。これが一致すれば、その処理Bの区
間で読み出すべきサンプルはもう無いということだか
ら、当該区間の処理Bは終えて、残った空きスロットで
後述するXアクセス処理を行なうように制御する。
【0063】読み出しポインタの値が上記書き込みポイ
ンタの値に一致していないときは、読み出しポインタを
1つ進めて、読み出しポインタが指すチャンネル番号と
サンプル数を制御RAM324から読み出す。そして、
そのサンプル数分の当該チャンネル番号に関するアドレ
スを波形メモリ109に送り出す。具体的には、ARA
M322から当該チャンネルの現アドレス整数部を読み
出し、必要なサンプル数のサンプルを順次アクセスする
ための複数のオフセットを加算し、さらに波形データの
ループ部の先頭を示す絶対アドレスWAを加算して(処
理Aで作成したアドレスは相対アドレスであるので、絶
対アドレスに変換するためWAを加算する)、最終的な
読み出しアドレスWMAを求め、セレクタ329がこの
アドレスWMAを選択出力するように制御する。これに
より1アドレスが波形メモリ109に送り出される。加
算するオフセットは、例えば図9の例では、第0チャン
ネルでは0、第2チャンネルの1回目が−2、2回目が
−1、3回目が0、第5チャンネルの1回目が−1、2
回目が0などとなる。以上のようにして、図8,9で説
明したアドレス送り出しのタイミングで、読み出しポイ
ンタを進めながらアドレスを連続的に送り出していく。
【0064】図8,9でも説明したように、上記アドレ
ス送り出しの処理は必要な回数だけ時分割チャンネルタ
イミングとは異なるタイミングで行なわれるので、アク
セス余り時間としての空きタイムスロットが出現する。
そこで、アドレス送り出しの処理の後、処理B演算回路
325はXAレジスタ311からのアドレスが選択出力
されるようにセレクタ329を切り替え(さらに、波形
メモリ109のデータラインがFIFO313に接続す
るようにセレクタ330を切り替える)、Xアクセス回
路304の制御のもとでこの余り時間を利用してXアク
セス処理が行なわれるようにする。
【0065】優先フラグ303は、CPU104が適宜
オン/オフする。優先フラグ303がオンされていると
き、処理B演算回路325は楽音発生のための各チャン
ネルの波形データ読み出しの状態にかかわらず、Xアク
セス処理に最低1回(複数回でもよい。確保するスロッ
ト数は任意に指定できる。)のアクセススロットを確保
する(すなわち、図8、9において、前半処理では区間
803,805を、後半処理では区間813,815
を、それぞれ最低限1アクセス分だけは確保する)。こ
れにより、CPU104からの波形メモリ109へのア
クセス処理、またはミキサ204から出力ライン223
を介して戻ってくる楽音波形データの波形メモリ109
への書き込み処理を、1アクセスだけ必ず入れることが
できる。
【0066】(3)次に、取り込み回路328で実行す
る取り込み処理について説明する。取り込み回路328
は、処理B演算回路325から送り出されたアドレスW
MAにより読み出された波形サンプルを取り込み、波形
バッファ327に書き込む。このときセレクタ330
は、処理B演算回路325の制御のもとで、波形メモリ
109のデータラインを取り込み回路328に接続す
る。波形サンプル取り込みの結果、波形バッファ327
には、基本的に各チャンネル4サンプルが用意されるこ
とになる。ただし、処理Aで補間次数を落としたチャン
ネルがある場合は、当該チャンネルについては、次数を
落とした補間で必要なサンプルが波形バッファ327に
用意される。なお、波形メモリ109に格納されている
波形サンプルが圧縮されている場合は、取り込み回路3
28でデコードを行なうようにする。
【0067】取り込み処理は処理Bによるアドレス送り
出しと同期して行なわれるので、処理Bで説明したよう
に、アクセス余り時間としての空きタイムスロットが出
現する。そこで、取り込み処理の後、処理B演算回路3
25は波形メモリ109のデータラインとFIFO31
3とが接続されるようにセレクタ330を切り替え、X
アクセス回路304の制御のもとでこの余り時間を利用
してXアクセス処理が行なわれるようにする。
【0068】(4)次に、補間回路326で実行する補
間処理について詳しく説明する。補間回路326は、時
分割チャンネルタイミングにしたがって、チャンネルご
とに順に補間処理を行なう。1つのチャンネルに関する
補間処理は、以下のとおりである。まず、波形バッファ
327から当該チャンネルの4つの波形サンプルを順次
読み出す。そして、各サンプルに所定の補間係数を乗算
して累算する。各サンプルに乗算する補間係数は、当該
チャンネルのアドレス小数部FRACに基づいて決定す
る。アドレス小数部FRACは、ARAM322から処
理B演算回路325経由で入力する。以上により、補間
済みの楽音波形データが生成出力される。なお、上述し
た波形メモリのアクセス回数削減により補間次数を落と
したチャンネルについては、落とした次数での補間を行
ない補間済みの楽音波形データを得る。
【0069】(5)次に、Xアクセス処理について詳し
く説明する。上述したように、処理Bおよび取り込み処
理で必要な各チャンネルについて順次連続してアドレス
送り出しを行ない波形サンプルを波形バッファ327に
読み出した後、空きタイムスロットがあるときには、処
理B演算回路325は、その空きタイムスロットの区間
でXアクセス処理を行なうようにセレクタ329と33
0を切り替える。具体的には、図8,9の区間803,
813においてXAレジスタ311が波形メモリ109
のアドレスラインに接続されるようにセレクタ329を
切り替え、区間805,815においてFIFO313
が波形メモリ109のデータラインに接続されるように
セレクタ330を切り替える。処理B演算回路325
は、このようにセレクタ329,330を切り替えると
ともに、Xアクセス処理が可能になった旨をXアクセス
回路304に伝える。これにより、Xアクセス回路30
4は(CPU104から指示されていた場合)Xアクセ
ス処理を開始する。また、処理B演算回路325は、X
アクセス処理終了時(1サンプリング周期の半分の時間
幅である前半区間および後半区間の終了時)に再びセレ
クタ329,330を切り替えて、次の処理Bおよび取
り込み処理が可能になるようにする。なお、波形メモリ
109へのアドレスの入力と当該アドレスのデータアク
セスとは若干のタイミングのずれがある(例えば図8の
取り込み前半区間804は処理B前半区間802から若
干遅れている)ので、セレクタ329の切り替えのタイ
ミングとセレクタ330の切り替えのタイミングとは若
干ずれることになるが、その切り替えの制御は処理B演
算回路325により適正に行なわれるようになってい
る。
【0070】Xアクセス処理は、具体的には、CPU1
04から波形メモリ109に波形データを書き込む処
理、CPU104により波形メモリ109から波形デー
タを読み出す処理、およびミキサ204から出力ライン
223を介して戻ってくる波形データの波形メモリ10
9への書き込み処理の3つがある。以下、それぞれにつ
いて説明する。
【0071】CPU104から波形メモリ109にデー
タを書き込む場合、まずCPU104はセレクタ312
を切り替えて、CPU104が接続されているデータバ
スとFIFO313とが接続されるようにする。そし
て、CPU104は、XAレジスタ311に書き込みア
ドレス(先頭アドレス)をセットし、書き込むべき波形
サンプルデータの数をサンプル数レジスタ315にセッ
トし、書き込むべき波形サンプルデータの始めの8サン
プルをセレクタ312を介して8段のFIFO313に
順にセットして、Xアクセス回路304に書き込みスタ
ートを指示する。以後、CPU104は、適宜Xフラグ
314を参照し、Xフラグ314がオンされているとき
は、FIFO313に、書き込むべき波形サンプルデー
タの残りを順次書き込む。Xフラグ314はFIFO3
13の空きの状態を示すフラグであり、CPU104か
らのデータ書き込みの際には、FIFO313に空きが
あるとき自動的にオンとなり、FIFO313に空きが
ないとき自動的にオフとなる。したがって、CPU10
4はXフラグ314がオフとなるまでFIFO313に
書き込みデータを送ってよい。
【0072】図7(a)は、CPU104からFIFO
313にデータを書き込む際のFIFOの使用方法を示
す。矩形701,702はFIFO313を示し、斜線
部分はデータが書き込まれている部分、白抜き部分は空
きの部分を示す。701ではFIFO313の8段の領
域すべてにデータが書き込まれておりXフラグがオフさ
れている。このときCPU104はデータをFIFO3
13に書き込むことができない。Xアクセス処理でFI
FO313のデータが読み出され波形メモリ109に書
き込まれると、702に示すようにFIFO313に空
きができXフラグがオンされる。このときCPU104
は、Xフラグのオンを検出して次の書き込みデータをF
IFO313に書き込むことができる。
【0073】書き込むべき波形サンプルデータをすべて
FIFO313に送ったら、CPU104から見ると書
き込み終了である。そこで、CPU104は、Xアクセ
ス回路304にCPU書き込みストップ処理を指示して
書き込み処理を終了する。
【0074】一方、CPU104からの書き込みスター
ト指示を受けたXアクセス回路304は、処理B演算回
路325から空きタイムスロットである旨の指示がある
区間(区間803,813,805,815)の各タイ
ムスロットで、FIFO313内の波形サンプルデータ
を波形メモリ109に書き込む処理を行なう。1つのタ
イムスロットで行なう処理は、以下の通りである。まず
XAレジスタ311に格納されているアドレスを波形メ
モリ109に送出する。次に、FIFO313から波形
サンプルデータを1つ取り出し、波形メモリ109に送
出して上記アドレス位置に書き込む。その後、XAレジ
スタ311のアドレスをインクリメントする。Xアクセ
ス回路304内には、書き込みスタート指示でゼロクリ
アされ、波形サンプルデータを1つ波形メモリ109に
書き込むとカウントアップされるカウンタが備えられて
おり、Xアクセス回路304は書き込みの度にこのカウ
ンタの値とサンプル数レジスタ315のサンプル数を比
較する。カウンタの値がサンプル数レジスタ315のサ
ンプル数に至ったら、指示されたデータをすべて書き込
んだということであるから、書き込み処理を終了する。
また、CPU104からCPU書き込みストップ処理の
指示があったときは、FIFO313に残っているデー
タをすべて波形メモリ109に書き込んで、処理を終了
する。なお、サンプル数レジスタ315を設けることな
く、Xアクセス回路304では、CPU104からのC
PU書き込みストップ処理の指示があるまでFIFO3
13にデータがあれば波形メモリ109に書き込むこと
としてもよい。
【0075】波形メモリ109からCPU104にデー
タを読み出す場合、まずCPU104はセレクタ312
を切り替えて、CPU104が接続されているデータバ
スとFIFO313とが接続されるようにする。そし
て、CPU104は、XAレジスタ311に読み出しア
ドレス(先頭アドレス)をセットし、読み出すべき波形
サンプルデータの数をサンプル数レジスタ315にセッ
トして、Xアクセス回路304に読み出しスタートを指
示する。以後、CPU104は、適宜Xフラグ314を
参照し、Xフラグ314がオンされているときは、FI
FO313から波形サンプルデータを順次読み出す。X
フラグ314はFIFO313の空きの状態を示すフラ
グであり、CPU104によるデータ読み出しの際に
は、FIFO313に波形メモリ109からの読み出し
データがあるとき自動的にオンとなり、FIFO313
に読み出しデータがないとき自動的にオフとなる。
【0076】図7(b)は、CPU104によりFIF
O313からデータを読み出す際のFIFOの使用方法
を示す。矩形703,704はFIFO313を示し、
斜線部分は読み出したデータを格納した部分、白抜き部
分は空きの部分を示す。703ではFIFO313の8
段の領域はすべて空きでありXフラグがオフされてい
る。このときFIFO313には読み出しデータが未だ
ないからCPU104はデータを読み出すことができな
い。Xアクセス処理で波形メモリ109からデータが読
み出されFIFO313に書き込まれると、704に示
すようにXフラグがオンされる。このときCPU104
は、Xフラグのオンを検出してFIFO313から読み
出しデータを読み出すことができる。
【0077】Xフラグ314はFIFO313に読み出
しデータがあるか否かを示すとともに、Xフラグ314
がオフのときはサンプル数レジスタ315で指定された
数だけの波形サンプルを読み出したか否かを判別できる
ようになっている。そこで、CPU104は、Xフラグ
314がオフのとき、サンプル数レジスタ315で指定
した数だけの波形サンプルデータを読み出したか否かを
判別し、読み出していたらXアクセス回路304にCP
U読み出しストップ処理を指示して読み出し処理を終了
する。
【0078】一方、CPU104からの読み出しスター
ト指示を受けたXアクセス回路304は、処理B演算回
路325から空きタイムスロットである旨の指示がある
区間(区間803,813,805,815)の各タイ
ムスロットで、波形メモリ109から波形サンプルデー
タを読み出してFIFO313に書き込む処理を行な
う。1つのタイムスロットで行なう処理は、以下の通り
である。まずXAレジスタ311に格納されているアド
レスを波形メモリ109に送出する。次に、当該アドレ
スの波形サンプルデータを波形メモリ109から1つ読
み出し、FIFO313に書き込む。その後、XAレジ
スタ311のアドレスをインクリメントする。Xアクセ
ス回路304内には、読み出しスタート指示でゼロクリ
アされ、波形サンプルデータを1つ波形メモリ109か
らFIFO313に読み出すとカウントアップされるカ
ウンタが備えられており、Xアクセス回路304は読み
出しの度にこのカウンタの値とサンプル数レジスタ31
5のサンプル数を比較する。カウンタの値がサンプル数
レジスタ315のサンプル数に至ったら、指示された数
のデータを読み出したということであるから、読み出し
処理を終了する。また、CPU104からCPU読み出
しストップ処理の指示があったときは、処理を終了す
る。なお、サンプル数レジスタ315を設けることな
く、Xアクセス回路304では、CPU104からのC
PU読み出しストップ処理の指示があるまで波形メモリ
109からFIFO313へのデータ読み出しを続ける
こととしてもよい。
【0079】ミキサ204から出力ライン223を介し
て戻ってくる波形データを波形メモリ109に書き込む
場合、まずCPU104はセレクタ312を切り替え
て、ミキサ204からの出力ライン223とFIFO3
13とが接続されるようにする。そして、CPU104
は、XAレジスタ311に書き込みアドレス(先頭アド
レス)をセットし、書き込むべき波形サンプルデータの
数をサンプル数レジスタ315にセットして、Xアクセ
ス回路304に書き込みスタートを指示する。以後、サ
ンプリング周期ごとにミキサ204から出力ライン22
3を介して波形サンプルデータが送出されてくるので、
Xアクセス回路304は、その送られてきたデータをF
IFO313に書き込む。なお、ミキサ204から戻っ
てくるデータの書き込みの場合、上述のCPU104か
らのデータ書き込みの場合のようにXフラグ314がオ
ンのときデータをFIFO313に書き込むというよう
なことができず、ミキサ204から送られてくるデータ
はサンプリング周期ごとに送られてくるので、送られて
きたデータはすぐにFIFO313に書き込まなければ
ならない。その時点でFIFO313に空きがないとき
は、ミキサ204から送られてきたデータは捨てられ
る。ただし、既に述べたように、1サンプリング周期の
間にXアクセス処理のスロットが1つも取れないほど楽
音発生のための波形メモリアクセスが混むという事態は
ほとんど無いと考えられるので、上記の場合にミキサ2
04から送られてきたデータを捨てることにしても実用
上はほとんど問題はない。また、優先フラグ303をオ
ンしておけば、1サンプリング周期の間にXアクセス処
理のスロットを少なくとも1回は確保できるので、ミキ
サ204から送られてきたデータは必ず波形メモリ10
9に書き込めることになる。
【0080】一方、CPU104からの書き込みスター
ト指示を受けたXアクセス回路304は、処理B演算回
路325から空きタイムスロットである旨の指示がある
区間(区間803,813,805,815)の各タイ
ムスロットで、FIFO313内の波形サンプルデータ
を波形メモリ109に書き込む処理を行なうが、この処
理は上記CPU104からの波形データ書き込みで説明
したのと同じであるので、説明を省略する。
【0081】以上で図3の制御レジスタ201および読
み書き回路202による5つの処理の詳細な説明を終わ
る。
【0082】図10および図11は、図2の信号処理回
路(DSP)205およびミキサ204の設定の具体例
を示す。
【0083】図10(a)は、サンプリングを行なう際
の設定の例を示す。ブロック1001,1005は、図
2のミキサ204によるミキシング処理(以下、単にM
IXとする)を示す。ブロック1002,1003,1
004は、図2の信号処理回路205で実行する処理
(信号処理回路205に設定されたマイクロプログラム
に対応する)を示す。矢印は信号の流れを示し、FIF
O1006は図3のXアクセス回路304内のFIFO
313に相当する。MIX1001への「ADC入力」
は、図2の外部回路(ADC)110からインタフェー
ス206および入力ライン213を介して入力する外部
からの楽音信号である。このADC入力は、ミキサ20
4への入力の8チャンネルの内の一つを用いる。
【0084】MIX1001の出力は、図2のミキサ2
04から出力ライン221を介して信号処理回路205
に出力される8チャンネルの内の一つである。信号処理
回路205では図10(a)のブロック1002〜10
04に示す処理を行なう。すなわち、MIX1001か
らの出力に対し、エンベロープ抽出処理1003によっ
てエンベロープを抽出し、エンベロープの立ち上がりで
ゲート1002を開くようにする。ゲート1002が開
かれると、サンプリング周期毎にMIX1001の出力
すなわち外部から入力した楽音波形が波形処理1004
へと送出される。波形処理1004では、入力した楽音
波形に対して各種の波形処理を施す。例えば、直流分を
カットするDCカット処理、入力レベルが小のときにミ
ュートをかけるノイズミュート処理、エンベロープのレ
ベルがある所定値以上の場合にゲインを下げるコンプレ
ッサ処理、入力波形のレベルが小さい場合によりそのレ
ベルを小さくするエキスパンダ処理、および高いサンプ
リング周波数で外部から入力した楽音波形を低いサンプ
リング周波数に落としたり逆にサンプリング周波数を上
げたりすためのFs(サンプリング周波数)変換処理な
どである。
【0085】波形処理1004の出力は再びMIX10
05に戻る。これは、図2の信号処理回路205の処理
結果を入力ライン212のうちの1チャンネルを使って
ミキサ204に戻す部分に相当する。そして、MIX1
005からFIFO1006に楽音波形を出力し波形メ
モリ1009に書き込む。これは、ミキサ204から出
力ライン223を介して制御レジスタ201内のFIF
O313に波形データを書き込む部分を示す。FIFO
313に書き込まれたデータは既に説明したように波形
メモリ109に書き込まれる。
【0086】図10(b)は、リサンプリング用のマイ
クロプログラムおよびミキサの設定の例(その1)を示
す。図10(a)と同様に、MIX1011,1014
は図2のミキサ204に対応し、FIFO1015は図
3のFIFO313に対応する。ブロック1012,1
013は、図2の信号処理回路205に設定するマイク
ロプログラムに対応する。MIX1011への「ch出
力」は、図2の音量変化制御回路203から入力ライン
211を介して入力する楽音信号であり、サンプリング
などによりあらかじめ波形メモリ109上に用意されて
いる波形データを読み出して生成した楽音波形である。
この「ch出力」は、32チャンネルのうちの一つでも
よいし、複数チャンネルでもよい。すなわち、複数の発
音チャンネルで複数の波形データを読み出し、読み出さ
れた複数の波形データをMIX1011でミキシングす
るようにしてもよい。
【0087】MIX1011の出力は、図2のミキサ2
04から出力ライン221を介して信号処理回路205
に出力される8チャンネルの内の一つである。信号処理
回路205ではブロック1012,1013に示す処理
を行なう。すなわち、MIX1001からの出力に対
し、分離フィルタ1012による成分分離を施し周期成
分と非周期成分とを取り出す。インターリーブ1013
は、この周期成分と非周期成分とを交互にMIX101
4に出力しFIFO1015に書き込むようにする。こ
れにより、サンプリングなどによりあらかじめ波形メモ
リ上に用意されている楽音波形に対し成分分離を施して
再び波形メモリに戻すリサンプリングが行なわれる。な
お、分離フィルタ1012から出力される周期成分につ
いては例えばLPC圧縮などを施してもよい。
【0088】図10(c)は、リサンプリング用のマイ
クロプログラムおよびミキサの設定の例(その2)を示
す。図10(a)と同様に、MIX1021,1023
は図2のミキサ204に対応し、FIFO1024は図
3のFIFO313に対応する。ブロック1022は、
図2の信号処理回路205に設定するマイクロプログラ
ムに対応する。MIX1021への「ch出力」は、図
2の音量変化制御回路203から入力ライン211を介
して入力する楽音信号であり、サンプリングなどにより
あらかじめ波形メモリ109上に用意されている波形デ
ータを読み出して生成した楽音波形である。この「ch
出力」は、32チャンネルのうちの一つでもよいし、複
数チャンネルでもよい。すなわち、複数の発音チャンネ
ルで複数の波形データを読み出し、読み出された複数の
波形データをMIX1021でミキシングするようにし
てもよい。
【0089】MIX1021の出力は、図2のミキサ2
04から出力ライン221を介して信号処理回路205
に出力される8チャンネルの内の一つである。信号処理
回路205ではブロック1022に示す波形処理を行な
う。この波形処理1022としては、例えば、イコライ
ザ、モジュレーション(変調)、波形圧縮、Fs変換、
物理モデル音源、およびリバーブ付与の処理などがあ
る。物理モデル音源というのは、ミキサ1021からの
出力を駆動信号として物理モデル音源を働かせてその結
果の波形を出力するということである。波形処理102
2の結果は、MIX1023を介してFIFO1024
に書き込まれ、再び波形メモリ109に録音される。こ
れにより、サンプリングなどにより波形メモリ上に存在
する楽音波形に対し各種の波形処理を施して再び波形メ
モリに戻すリサンプリングが行なわれる。
【0090】図11(a)は、楽音発生用のマイクロプ
ログラムおよびミキサの設定の例(その1)を示す。ま
た、図11(b)は、楽音発生用のマイクロプログラム
およびミキサの設定の例(その2)を示す。図10
(a)と同様に、MIX1101,1103,1111
〜1113,1117は図2のミキサ204に対応す
る。DAC1104,1118は図1のDAC112に
対応する。図11(a)ではブロック1102が、図1
1(b)ではブロック1114〜1116が、それぞ
れ、図2の信号処理回路205に設定するマイクロプロ
グラムに対応する。各MIX1101,1111〜11
13へ入力している「ch出力」は、それぞれ、図2の
音量変化制御回路203から入力ライン211を介して
入力する楽音信号(32チャンネルのうちの一つでもよ
いし、複数チャンネルでもよい)である。各MIX11
01,1111〜1113の出力は、それぞれ、図2の
ミキサ204から出力ライン221を介して信号処理回
路205に出力される8チャンネルの内の一つである。
【0091】図11(a)の場合、信号処理回路205
ではMIX1101の出力に対してリバーブ処理110
2を施し、MIX1103を介してDAC1104に出
力し放音する。図11(b)の場合、信号処理回路20
5ではMIX1111〜1113のの出力に対してそれ
ぞれコーラス処理1114、リバーブ処理1115、お
よびバリエーション1116を施し、その処理結果をM
IX1117でミキシングしてDAC1104に出力し
放音する。
【0092】なお、図10および図11の各設定例にお
いて、MIXのブロックには図示した入力以外の他の楽
音波形を入力させてミキシングを行なうようにしてもよ
い。また、これらのマイクロプログラムの設定例は、信
号処理回路205のマイクロプログラムメモリの容量に
応じて適宜並行して実行するように設定することもでき
る。例えば、図10(a)のサンプリング用のマイクロ
プログラムと図11(a)の楽音発生用のマイクロプロ
グラムとを同時に実行するようなことも可能である。ま
た、MIX1103,1117のミキシング結果を、D
AC1104,1118に出力するとともに、ライン2
23を通じてFIFO313に出力し、波形メモリ10
9へ書き込むようにしてもよい。これは、演奏された波
形データをそのまま録音する、フレーズ録音である。
【0093】次に、フローチャートを用いて、上述の電
子楽器のCPU104の処理手順を説明する。
【0094】図12(a)は、CPU104の制御プロ
グラムのうちメインルーチンの処理手順を示す。この電
子楽器の電源がオンされると、まずステップ1201
で、各種の初期設定を行なう。次にステップ1202で
何らかの起動要因があるか否かチェックし、ステップ1
203で起動要因があればステップ1204に進む。起
動要因がなければ再び1202に戻る。ステップ120
4では発生している起動要因の種類を判別しそれぞれの
処理に分岐する。起動要因が鍵盤101の鍵操作イベン
トであるとき(外部からのMIDIイベントを受け付け
ることができるようになっている場合は、MIDIイベ
ント発生も同等である)は、ステップ1205の鍵盤処
理を行ない、その後再びステップ1202に戻る。起動
要因がパネルスイッチ103の操作イベントであるとき
は、ステップ1206のパネルスイッチ処理を行ない、
ステップ1202に戻る。起動要因がXフラグ314に
関するイベントであるときは、ステップ1207でフラ
グ処理を行ない、ステップ1202に戻る。起動要因が
その他の要因(例えば後述するソフト音源の波形生成ト
リガーなど)であるときは、ステップ1208でその他
の処理を行ない、ステップ1202に戻る。起動要因が
電源スイッチの操作イベントであるときは、ステップ1
204で終了処理を行なった後、処理を終了する。
【0095】図12(b)は、図12(a)のステップ
1205の鍵盤処理のうち鍵盤101のキーオンイベン
トがあったときに実行されるキーオンイベント処理の手
順を示す。まずステップ1211で、キーオンされた鍵
のノートナンバをレジスタNNに、キーオン時のベロシ
ティをレジスタVDに、それぞれ設定する。次に、ステ
ップ1212で、発音チャンネル(第0〜第31チャン
ネル)の割り当てを行ない、割り当てたチャンネルナン
バをレジスタiに設定する。ステップ1213で、現在
設定されている音色のノートナンバNNに対応する波形
データのアドレスなどの情報を制御レジスタ(具体的に
は図3のレジスタ301や302)201に設定する。
ステップ1214では、現在設定されている音色のエン
ベロープパラメータやミキサの混合比などの設定をやは
り制御レジスタ201に対して行なう。その後、ステッ
プ1215で第iチャンネルに対しノートオン(音源1
08に対する発音指示)を送出し、既に説明したような
音源部108の楽音発生の動作を開始させる。
【0096】図13(a)は、図12(a)のステップ
1206のパネルスイッチ処理のうちサンプリングスイ
ッチ(SW)がオンされたときに実行されるサンプリン
グSWイベント処理の手順を示す。ユーザは、あらかじ
め外部回路110として外部音を入力してA/D変換す
るADCを接続しておき、サンプリングを行なうときサ
ンプリングSWをオンする。サンプリングSWがオンさ
れると、まずステップ1301で、CPU104は、R
OM105、RAM106、または外部記憶装置107
などから入力波形処理用マイクロプログラムを読み出
し、信号処理回路205内のマイクロプログラムメモリ
にロードする。ここでロードするマイクロプログラム
は、例えば図10(a)のブロック1002〜1004
で説明したような処理を行なうマイクロプログラムであ
る。次に、ステップ1302で、ADC(外部回路11
0)の動作の設定およびミキサ204の混合比などの設
定を行なう。ステップ1303では、波形メモリ109
内の書き込み領域のアドレスおよびサンプル数を設定す
る。これは、図3のXAレジスタ311に書き込み領域
のアドレスを設定し、サンプル数レジスタ315に書き
込むべきサンプルの数を設定することに相当する。ステ
ップ1304では、信号処理回路205の書き込み処理
をスタートさせ、さらにADCをスタートさせる。これ
により、図10(a)で説明したようなサンプリングの
処理が実行される。
【0097】図13(b)は、図12(a)のステップ
1206のパネルスイッチ処理のうちリサンプリングS
Wがオンされたときに実行されるリサンプリングSWイ
ベント処理の手順を示す。ユーザによりリサンプリング
SWがオンされると、まずステップ1311で、CPU
104は、ROM105、RAM106、または外部記
憶装置107などからリサンプリング用マイクロプログ
ラムを読み出し、信号処理回路205内のマイクロプロ
グラムメモリにロードする。ここでロードするマイクロ
プログラムは、例えば図10(b)および(c)で説明
したブロック1012,1013またはブロック102
2のような処理を行なうマイクロプログラムである。次
に、ステップ1312で、発音チャンネルの割り当てを
行ない割り当てたチャンネルナンバをレジスタiに設定
する。次に、ステップ1313で読み出し波形のアドレ
スを設定し、ステップ1314でエンベロープパラメー
タやミキサ204の混合比などを設定する。これは制御
レジスタ201の各種の情報を設定することに相当す
る。ステップ1315では、リサンプリングした結果の
波形データを書き込むべき波形メモリ109内のアドレ
スおよびサンプル数を設定する。これは制御レジスタ2
01のXAレジスタ311およびサンプル数レジスタ3
15を設定することに相当する。その後、ステップ13
16で信号処理回路205の書き込みをスタートし、ノ
ートオンを送出して処理を終了する。ノートオンを送出
するのは、ステップ1313で設定したアドレスから波
形データを読み出す処理を開始するためである。以上に
より、図10(b)または図10(c)に示したような
信号の流れでリサンプリングが実行される。
【0098】なお、ステップ1312で複数チャンネル
を割り当て、それらのチャンネルで読み出した楽音波形
をミキシングして所定の処理の後に波形メモリに書き込
んでもよいし(図10(b)や(c)でMIX101
1,1021に複数チャンネル出力が入力する場合)、
各チャンネルごとに所定の処理を行なった後にミキシン
グして波形メモリに書き込んでもよい(図10(b)で
複数チャンネルの各チャンネルそれぞれで1011〜1
013の処理を行ないそれらの複数系列をMIX101
4でミキシングする場合、あるいは図10(c)で複数
チャンネルの各チャンネルそれぞれで1021〜102
2の処理を行ないそれらの複数系列をMIX1023で
ミキシングする場合)。複数チャンネルをミキシングす
る場合は、各チャンネルで波形のスタート位置をずらし
てミキシングすることもできる。その場合は、ステップ
1316で、各チャンネルの波形のスタート位置のずら
し方に応じてノートオンを複数回送出する必要がある。
ただし、FIFOの書き込みスタートは1番最初のノー
トオンからである。
【0099】図14(a)は、図12(a)のステップ
1206のパネルスイッチ処理のうち波形読み出しSW
(または波形書き込みSW)がオンされたときに実行さ
れる波形読み出し(書き込み)SWイベント処理の手順
を示す。なお、波形読み出しSWイベント処理と波形書
き込みSWイベント処理とは「読み出し」と「書き込
み」とを入れ替えるだけでほとんど同様の処理であるの
で、同じ図14(a)を用いて説明する。始めに波形読
み出しSWイベント処理について説明し、次に波形書き
込みSWイベント処理について説明する。
【0100】波形読み出しSWイベント処理では、まず
ステップ1401で、波形メモリ109内の読み出し領
域のアドレスおよび読み出すサンプル数をXAレジスタ
311およびサンプル数レジスタ315に設定する。次
にステップ1402で、波形メモリ109から読み出し
たデータを書き込むべきRAM106内の書き込み領域
のアドレスを設定する。次にステップ1403で、CP
U104は、図3のXアクセス回路304に読み出しス
タートを指示して(ステップ1404は波形書き込みS
Wイベント処理のときのみ使用)、処理を終了する。以
上により、先述したXアクセス処理が開始され、楽音波
形の生成と平行して波形メモリ109からの波形データ
が図3のFIFO313に順次読み出されてくるので、
CPU104は後述するXフラグ読み出しイベント処理
(図14(b))によりFIFO313のデータを取り
出す。このような波形データの読み出し処理は、サンプ
リングやリサンプリングで波形メモリに書き込んだ波形
データを読み出して外部記憶装置に格納(リアルタイム
・ハードディスク・レコーディング)したり、読み出し
た波形にCPUで加工を施して再び波形メモリに書き込
む場合などに用いる。
【0101】波形書き込みSWイベント処理では、まず
ステップ1401で、波形メモリ109内の書き込み領
域のアドレスおよび書き込むサンプル数をXAレジスタ
311およびサンプル数レジスタ315に設定する。次
にステップ1402で、波形メモリ109に書き込むべ
き波形データが用意されているRAM106内の読み出
し領域のアドレスを設定する。次にステップ1403
で、CPU104は、図3のXアクセス回路304に書
き込みスタートを指示する。またステップ1404で、
前準備としてRAM106内の読み出し領域の最初の8
サンプルを読み出してFIFO313に書き込んで、処
理を終了する。以上により、先述したXアクセス処理が
開始され、楽音波形の生成と平行して図3のFIFO3
13の波形データが波形メモリ109の書き込み領域に
書き込まれるので、CPU104は後述するXフラグ書
き込みイベント処理(図14(c))によりFIFO3
13に波形データを書き込む。このような波形データの
書き込みは、外部記憶装置の波形データを波形メモリに
書き込んだり、読み出した波形にCPUで加工を施して
再び波形メモリに書き込む場合などに用いる。また、後
述するソフト音源における波形書き込みでも用いる。さ
らに、波形メモリ上にバッファ領域を設け、発音チャン
ネルによる該バッファ領域の波形データのループ再生を
しつつ、該領域に外部記憶装置の波形データを順次供給
すれば、外部記憶装置に記憶された長時間波形データの
ダイレクト再生も可能である。
【0102】図14(b)は、図12(a)のステップ
1207のフラグ処理のうちXフラグ読み出しイベント
処理の手順を示す。これは、CPU104による波形メ
モリ109からの読み出し処理がスタートしていた場合
(図14(a)の波形読み出しSWイベント処理が実行
されていた場合)においてXフラグがオンである(すな
わち波形メモリ109から読み出したデータがFIFO
313に存在する)ときに実行される処理である。まず
ステップ1411で、FIFO313にセットされてい
る波形データを読み出して、RAM106の書き込み領
域に書き込む。次にステップ1412で、サンプル数レ
ジスタ315のサンプル数と実際に波形メモリ109か
ら読み出してRAM106に書き込んだ波形サンプルの
数とを比較することにより読み出しが終了かどうかを判
定する。読み出し終了に至ったときは、ステップ141
3で、CPU104は読み出しストップ処理を行ない処
理を終了する。ステップ1412で未だ終了に至ってい
ないときは処理を継続する。ステップ1412の読み出
しストップ処理は、図14(a)の波形読み出しSWイ
ベント処理で設定された読み出し処理の状態を解除する
処理である。
【0103】図14(c)は、図12(a)のステップ
1207のフラグ処理のうちXフラグ書き込みイベント
処理の手順を示す。これは、CPU104による波形メ
モリ109への書き込み処理がスタートしていた場合
(図14(a)の波形書き込みSWイベント処理が実行
されていた場合)においてXフラグがオンである(すな
わちFIFO313に空きがある)ときに実行される処
理である。まずステップ1421で、RAM106の読
み出し領域から次に書き込むべき波形データを読み出し
てFIFO313の空き領域に書き込む。次にステップ
1422で、サンプル数レジスタ315のサンプル数と
実際にRAM106からFIFO313に書き込んだ波
形サンプルのサンプル数とを比較し、書き込むべきサン
プル数をすべて書き込んだか否かを判定する。すべての
データを書き込んだときは終了ということであるから、
ステップ1423で、CPU104は書き込みストップ
処理を行ない処理を終了する。ステップ1422で未だ
終了条件が満たされていないときは処理を継続する。ス
テップ1423の書き込みストップ処理により、FIF
O313に残っているデータが波形メモリ109へ書き
込まれる。
【0104】以上説明したこの実施の形態の電子楽器に
よれば、サンプルバッファを備えているため、チャンネ
ル発音に使用されない余り時間が生じるので、該余り時
間のタイムスロットを用いて、チャンネル発音以外の目
的で波形メモリアクセス(例えば、CPUアクセスやミ
キサから戻ってくる波形データの書き込みなど)を発音
中に行なうことができる。特に、波形メモリ109のア
クセス状況を検出する機能を持つXアクセス回路304
が備えられているのでので、CPU104は、Xフラグ
314を参照してそれがオンのときはどんどんデータの
読み書きができ発音中であっても高速なアクセスが可能
になる。さらに、Xアクセス処理のバッファとしてFI
FO313が備えられているので、アクセスは非常に高
速で行なえる。なお、CPU104からXフラグ314
を参照してそれがオンのときにデータを読み書きする処
理は、上記実施の形態では割り込みを用いずにCPU1
04のループ処理中で行なっているが、割り込みを用い
て実行するようにしてもよい。すなわち、FIFO31
3に空きがある(CPUからの書き込み時)、またはF
IFO313に読み出しデータがある(CPUによる読
み出し時)とき、割り込みでそれをCPU104に知ら
せ、それに応じてCPU104がFIFO313にアク
セスに行くようにしてもよい。
【0105】また、この実施の形態の電子楽器によれ
ば、波形メモリアクセスをチャンネルタイミングと独立
にしているので、アクセス回数に制限を加えるときに下
記のような利点がある。すなわち、発音数が少なけれ
ば、該制限による影響は無く、発音しているチャンネル
はすべて高次の補間(上記の例では4点補間)を実行で
きる。発音数が多くなり、アクセス回数が制限に引っ掛
かるようになると、全発音数のうちの一部のチャンネル
の補間次数を落として、補間次数は落ちるものの発音数
を減らさずに済ませることができる。
【0106】さらに、この実施の形態の電子楽器では、
波形メモリのアクセス回数を合計値で管理しているの
で、例えば、Xアクセスの要求として、全アクセス時間
の1/3使用したい、あるいは1/4使用したい、とい
うような場合に、アクセス制御が非常に簡単に行なえ
る。
【0107】この実施の形態の電子楽器によれば、DS
Pをサンプリングやリサンプリングの処理に兼用するよ
うにしているので、装置構成をそれ程複雑にすることな
く、外部から入力した楽音のサンプリングや既に波形メ
モリに格納されている波形データを読み出してエフェク
ト付与などの処理を施した後に再度波形メモリに書き込
むリサンプリングを行なうことができる。DSPでは効
果付与などの再生用の波形処理とサンプリングやリサン
プリングなどの録音用の波形処理とを並列に行なうこと
ができるので、再生と録音とを並行して実施できる。
【0108】なお、上記波形メモリのアクセス動作(処
理Bおよび取り込み処理)を、各時分割チャンネルのタ
イミング(固定)の中で行なうようにしてもよい。この
場合、すべての発音チャンネルについて、1チャンネル
当たり4つのアクセススロットがあるので、その中で各
発音チャンネルは0回〜4回のサンプル読み出しと、残
りのスロットで4回〜0回のXアクセスを行なうように
する。
【0109】また、前半区間および後半区間の各64ア
クセスを、処理B(ないし取り込み処理)とXアクセス
処理でどのように分配したら良いかに関しては、上記の
例では、優先フラグ303で、1回のXアクセスを優先
するようにしている。しかし、2アクセス以上優先させ
たい場合もある。例えば、外部記憶手段から波形メモリ
に波形データを転送したり、逆に波形メモリの波形デー
タを外部記憶手段に転送するときは、該外部記憶手段の
データ転送速度に応じて転送を行なうのが効率が良い。
その速度を達成するために必要なXアクセスの回数を優
先にするのがよい。その他の場合でも、波形データをや
り取りする相手の要求速度や最適速度に合わせて、Xア
クセスの優先回数を任意に設定できるようにすればよ
い。
【0110】次に、この実施の形態の電子楽器におい
て、CPU104によりソフトウェア音源(以下、ソフ
ト音源と呼ぶ)を実現する例について説明する。ソフト
音源とは、CPU104で所定のソフトウェアを実行し
て楽音波形を生成するものである。CPU104で生成
した楽音波形は、音源部108の所定のチャンネルを用
いて放音する。
【0111】なお、ソフト音源はCPU104がROM
105の楽音生成ソフトウェアを実行することにより実
現されるが、該ソフト音源を利用する側から見ると、楽
音生成ソフトウェアをドライバとして登録しておき、該
ドライバを起動した後、所定のソフト音源に係るAPI
(Application Program Interface)に各種演奏入力を
表わすMIDI(Musical Instruments digital Interf
ace)イベントメッセージを出力して楽音生成に関する
各種の処理をソフト音源に行なせる、という手順にな
る。CPU104は汎用の演算処理装置であり、該AP
Iに対して演奏入力を与える処理、すなわちMIDIイ
ベントを該APIに出力する処理など、ソフト音源とは
別の処理も行なっている。CPU104が該APIに対
して演奏入力を与える処理とは、例えば、鍵盤101の
操作に応じてリアルタイムで発生する演奏入力を該AP
Iに出力したり、外部MIDI機器からリアルタイムで
入力したMIDIイベントに応じた演奏入力を該API
に出力したり、RAM106上にMIDIイベントのシ
ーケンスを用意しておき(外部記憶装置107上にある
データを用いてもよい)これを順次演奏入力として該A
PIに出力したり、といった処理である。
【0112】図16を参照して、ソフト音源の楽音生成
原理を説明する。図16において、S1〜S4の各区間
は、所定のサンプル数(例えば、128サンプル)分の
再生を行なう単位となる時間フレームを示す。「演奏入
力」のライン上に記載してある下向き矢印は、その時刻
で演奏入力があったことを示す。演奏入力とは、ソフト
音源に係るAPI(Application Program Interface)
に、ノートオン、ノートオフ、アフタタッチ、プログラ
ムチェンジなどの各種のMIDIイベントが入力される
ことである。図16の例では、フレームS1で3つ、S
2で2つ、S3で1つの演奏入力がそれぞれあったとい
うことである。ソフト音源は、複数チャンネル分の複数
楽音を同時生成可能であり、RAM106上に用意され
る複数チャンネル分のソフト音源レジスタで各楽音を制
御するようになっている。ソフト音源は、演奏入力とし
てノートオンイベント(例えば鍵盤101の鍵のノート
オン)を入力したときは、ソフト音源レジスタに関して
発音割り当てを行ない、割り当てたチャンネルに対応す
るソフト音源レジスタに該チャンネルの発音を制御する
各種のデータとノートオンを書き込む。演奏入力として
ノートオフイベントを入力したときは、該当するチャン
ネルに対応するソフト音源レジスタにノートオフを書き
込む。ノートオンやノートオフ以外の演奏入力(例えば
アフタタッチの変更など)についても同様に、該当する
チャンネルに対応するソフト音源レジスタに演奏入力に
応じたデータを書き込む。ある時間フレームでソフト音
源レジスタに書込まれたデータは、データの種類にかか
わりなく、必ず次の時間フレームから波形生成演算に使
用される。
【0113】図16の「CPUによる波形生成」の矩形
1601〜1604は、CPU104により波形生成演
算を実行する区間を示す。この波形生成演算では、ソフ
ト音源レジスタに設定された複数チャンネル分のデータ
に基づいて複数チャンネル分の楽音波形生成を行なう。
演奏入力に応じてソフト音源レジスタが書き換えられ、
一方、演奏入力のない期間は、ソフト音源レジスタは過
去に書込まれたデータを保持している。したがって、各
波形生成の区間1601〜1604では、直前あるいは
さらに前のフレームで検出した演奏入力に応じた波形生
成演算を実行することになる。フレームが切り替わるタ
イミングでフレーム割り込みが発生するので、各フレー
ムでの波形生成演算はこのフレーム割り込みを契機とし
て(後述の図15(b))実行される。
【0114】例えば、フレームS1で検出された3つの
演奏入力に対しては、次のフレームS2の先頭のフレー
ム割り込みを契機として区間1602で波形生成演算を
行なう。CPU104は、この波形生成演算により、R
AM106上に波形データを生成する。生成した波形デ
ータは、当該フレームの残りの時間区間を用いて波形メ
モリ109上に用意されているバッファ領域に書き込
む。このバッファ領域としては、連続したアドレスに用
意された同じ大きさの2つのバッファ領域PB0とPB
1(2つをまとめてダブルバッファと呼ぶ)を用いる。
バッファ領域への書き込みは、上述したXアクセス処理
(特にCPU104から波形メモリ109への書き込み
処理)によって行なう。また、フレーム毎にバッファP
B0とPB1とを交互に用いるようにする。例えば、フ
レームS1の区間1601で生成した波形データは次の
フレームの開示時点までにRAM106から波形メモリ
109上のバッファ領域PB0に書き込み、フレームS
2の区間1602で生成した波形データはバッファ領域
PB1に書き込み、フレームS3の区間1603で生成
した波形データはバッファ領域PB0に書き込み、フレ
ームS4の区間1604で生成した波形データはバッフ
ァ領域PB1に書き込み、…というように、交互にPB
0とPB1に波形データを書き込む。
【0115】バッファPB0およびPB1に書き込んだ
波形データの読み出し再生は、図16の「読み出し再
生」に示すように、フレーム割り込みを契機として、波
形生成したフレームの次のフレームの区間で行なう。す
なわち、フレームS1で生成しPB0に書き込んだ波形
データは次のフレームS2で、フレームS2で生成しP
B1に書き込んだ波形データは次のフレームS3で、フ
レームS3で生成しPB0に書き込んだ波形データは次
のフレームS4で、…というように、PB0とPB1の
波形データを交互に読み出し再生していく。
【0116】図15(a)は、図12(a)のステップ
1206のパネルスイッチ処理のうちソフト音源スター
トSWがオンされたときに実行されるソフト音源スター
トSWイベント処理の手順を示す。ユーザによりソフト
音源スタートSWがオンされると、まずステップ150
1で、ソフト音源で生成した楽音波形を発音するために
用いる発音チャンネル(第0〜第31チャンネル)の割
り当てを行ない、割り当てたチャンネルナンバをレジス
タiに設定する。次に、ステップ1502で、音源部1
08に対して、当該チャンネルiによりダブルバッファ
領域PB0,PB1のループ読み出し再生を行なうよう
に設定する。これは、図16の「読み出し再生」で示し
たように、フレーム割り込みごとにバッファPB0とP
B1とを交互に読み出し再生するように、音源部108
に指示情報を送出して設定する処理である。具体的に
は、ダブルバッファ領域PB0,PB1は連続したアド
レスに用意された同じサイズのバッファ領域であるの
で、領域PB0の先頭アドレスをループのスタートアド
レス(絶対アドレスWA)として設定し、さらに(領域
PB1の末尾アドレス)から(領域PB0の先頭アドレ
ス)を引き算した値をループサイズ(相対アドレスLP
A)として設定し、相対アドレスASを0に設定すれ
ば、ループ読み出しによりPB0〜PB1の領域が繰り
返し読み出される。ステップ1503では、エンベロー
プパラメータやミキサの混合比などの設定を行なう。な
お、ここで設定されるエンベロープパラメータは、単に
ループ読み出しのフェードイン/フェードアウトをする
のに使うだけで、発生する楽音のエンベロープ(楽音音
量の時間的変化)を制御するのではない。ミキサの混合
比も、1楽音の混合比ではなく、ソフト音源で生成した
複数楽音の混合波形の出力先を制御する混合比である。
【0117】次に、ステップ1504で、CPU104
で生成した楽音波形を始めに書き込む書き込み領域を波
形メモリ109内のバッファPB0とするため、図3の
XAレジスタ311に初期値としてバッファPB0の先
頭アドレスを設定し、サンプル数レジスタ315にサン
プル数としてバッファPB0の容量(上記ループサイズ
LPAの1/2)を設定する。ステップ1505で、C
PU104は、波形メモリ109への書き込み処理(X
アクセス処理)の前準備を行ない、ダブルバッファPB
0,PB1をゼロクリアする。ステップ1506で、当
該チャンネルiにノートオンを送出し、図16で説明し
た所定時間間隔のフレーム割り込みを開始させ、処理を
終了する。なお、フレーム割り込みは、バッファPB0
およびPB1をループ読み出しする際のリターン発生時
(すなわちPB1の再生終了時)と、ループ読み出しの
中間点(LPA/2)通過時(すなわちPB0の再生終
了時)に発生する。図示していないが、フレーム割り込
みを発生する割り込み発生回路が音源108の内部に設
けられている。割り込みの代わりに、CPUが「読み出
し再生」用に設定した発音チャンネルのアドレス現在値
をチェックしてフレームの変わるタイミングを検出する
ようにしてもよい。
【0118】図15(b)は、図16で説明した所定時
間の時間フレームごとに発生するフレーム割り込みで実
行するフレーム割り込み処理の手順を示す。フレーム割
り込みが発生すると、まずステップ1511で、現在ソ
フト音源レジスタに設定されている演奏入力に対応する
楽音波形をRAM106上に生成する。これは、図16
において各フレーム割り込みごとに実行する波形生成演
算1601〜1604に相当する。次に、ステップ15
12で該生成した楽音波形を書き込むべき波形メモリ1
09内の書き込み領域のアドレス(PB0またはPB1
の先頭アドレス)および書き込むサンプル数(ループサ
イズLPAの1/2)をXAレジスタ311およびサン
プル数レジスタ315に設定する。図16で説明したよ
うに、この書き込み領域としてはバッファ領域PB0と
PB1とを交互に用いる。次にステップ1513で、C
PU104は、図3のXアクセス回路304に書き込み
スタートを指示する。またステップ1514で、前準備
として楽音波形の最初の8サンプルをFIFO313に
書き込んで、処理を終了する。この後、Xアクセス処理
によりFIFO313のデータが波形メモリに書き込ま
れる毎に(Xフラグが1になって)、図14(c)の処
理と同じような処理により、残りの楽音波形サンプルが
順次FIFOに供給される。
【0119】以上により、先述したXアクセス処理が開
始され、ステップ1511で生成した楽音波形が波形メ
モリ109のバッファ領域PB0またはPB1に書き込
まれる。一方、図15(a)の処理により、図16の
「読み出し再生」に示したようにダブルバッファPB0
とPB1とを交互に読出し再生する処理が開始している
ので、後は図15(b)のようにフレーム割り込みごと
に楽音波形を生成してダブルバッファに書き込めば、そ
の楽音波形が第iチャンネルで発音される。このソフト
音源で発生した楽音は第iチャンネルでミキサ204に
入力するので、上述したように、この楽音に対して信号
処理回路205や外部回路110で効果付与などの信号
処理を施してDAC112に出力したり再び波形メモリ
109に書き込むようにもできる。
【0120】また、この第iチャンネルにおけるダブル
バッファPB0とPB1の読み出し処理のFナンバ(図
3の処理Aで用いたピッチPITCH)を調整すること
により、再生ピッチを調整することができ、いわゆるオ
ーバサンプリングを行なうこともできる。例えば、ソフ
ト音源で生成した楽音波形を出力する音源部108の第
iチャンネルは48kHzのサンプリング周波数で動作
するようにし、CPU104はサンプリング周波数24
kHzで楽音波形を生成する場合、第iチャンネルのF
ナンバを0.5に設定すればよい。この場合は、補間回
路326で48kHzのサンプリング周波数でも折り返
しノイズが発生しないように高調波部分をカットして補
間が行なわれる。
【0121】従来のソフト音源では、図16に示したよ
うな読み出し再生のためにサンプリング周期ごとにCP
Uに割り込みをかけて、その割り込みごとにCPUが生
成した楽音波形を音源部にDMA転送するというような
ことを行なっていたので、CPUに対して割り込みが頻
繁にかかっていた。この実施の形態のソフト音源では、
CPU104はフレーム割り込みごとの処理を行なえ
ば、あとはXアクセス処理で自動的に波形メモリ109
に書き込んで再生してくれるので、CPUに対する割り
込み処理が削減できるという効果がある。
【0122】なお、ソフト音源の機能を用いる場合は、
図16で説明したように所定のフレームの区間における
演奏入力を保持しておく必要があるので、キーオンイベ
ント処理は、図12(b)の代わりに、発生したキーオ
ンイベントを記憶しておく処理を行なうようにする。
【0123】図17は、図3のXアクセス回路304の
変形例を示す。図3のXAレジスタ311をXA1レジ
スタ1701、XA2レジスタ1702、およびセレク
タ1703に置き換え、図3のセレクタ312およびF
IFO313をFIFO1704、ラッチ1705、お
よびセレクタ1706に置き換えるものである。他の部
分は上述の実施の形態のままとする。
【0124】XA1レジスタ1701およびFIFO1
704は、Xアクセス処理でCPU104から波形メモ
リ109をアクセスする際の、アクセスアドレスを設定
するレジスタおよびアクセスデータを設定するFIFO
である。XA2レジスタ1702およびラッチ1705
は、Xアクセス処理でミキサ204から出力ライン22
3を介して波形メモリ109に書き込みを行なう際の、
アクセスアドレスを設定するレジスタおよびミキサ20
4からのデータを記憶するラッチである。この構成で、
セレクタ1703,1706をXアクセス処理の区間で
時分割で切り替えるようにして、ミキサ204から戻っ
てくる波形データの波形メモリ109への書き込みと、
CPU104からの波形メモリ109のアクセスとを、
並行して行なうことができるようにする。
【0125】特に、ミキサ204からはサンプリング周
期ごとに波形データが戻ってくるが、その波形データは
捨てる訳にはいかないので、必ずラッチ1705に記憶
することとする。そして、サンプリング周期ごとのXア
クセス処理の区間で必ず1回は、セレクタ1703でX
A2レジスタ1702を選択しセレクタ1706でラッ
チ1705を選択するようにして、ラッチ1705の波
形データをXA2レジスタ1702で指示されたアドレ
スに書き込む。Xアクセス処理のその他の区間では、セ
レクタ1703でXA1レジスタ1701を選択しセレ
クタ1706でFIFO1704を選択するようにし
て、CPU104による波形メモリ109のアクセスを
実行する。XA1レジスタ1701およびXA2レジス
タ1702のアドレスを順次インクリメントする機能
は、図3で説明したのと同じである。なお、Xアクセス
処理の区間では、ラッチ1705の波形データの書き込
みを優先して必ず1回は行なうようにする必要がある
が、Xアクセス処理の区間そのものが確保できない場合
も考えられるので、上述の優先フラグ303をオンして
Xアクセス処理で必ず何回かのアクセスができるように
するとよい。
【0126】このような構成により、例えば、サンプリ
ングやリサンプリングした波形をミキサ204からラッ
チ1705経由で波形メモリ109に書き込み、波形メ
モリ109上にある程度溜まったところでCPU104
により当該波形データを読み出して、外部記憶装置(ハ
ードディスクなど)に送れば、リアルタイム・ハードデ
ィスク・レコーディングを行なうことができる。1サン
プリング周期で1回書き込まれるラッチ1705経由の
波形データの処理速度に比較すると、CPU104によ
る読み出し処理の処理速度は速い。特に、FIFOを用
いているので読み出し速度はさらに高速になる。そこ
で、波形メモリ109上に溜まったデータを一気にCP
U104で読み出して、ハードディスクなどに書き込む
ようにできる。
【0127】なお、上記形態では、図3の読み書き回路
202において処理A演算回路321と処理B演算回路
325とを独立した構成としたが、処理A演算回路32
1と処理B演算回路325とをひとまとめにして、1つ
の演算回路を時分割で共用することにより処理Aと処理
Bとを行なうようにしてもよい。
【0128】上記形態では、波形メモリの波形サンプル
を16ビット非圧縮の形式としたが、他の形式でもよ
い。例えば、1アクセスで16ビットを読み出せること
はそのままにして、8ビット非圧縮または8ビット圧縮
形式にしてもよい。ただし、この場合、サンプル数とア
クセス数とが異なるので、その調整が必要である。ま
た、圧縮形式の場合は、連続してサンプルを読み出して
いかないと再生できなくなるため、飛ばし読みの際に対
処が必要である。
【0129】波形メモリとしてDRAMを用いた場合
は、必ずリフレッシュが必要であるので、Xアクセス処
理の区間でリフレッシュを行なうようにしてもよい。ま
た、CPUからの波形メモリの読み出し/書き込みは、
その緊急度に応じて対応するとよい。例えば、CPUか
らの波形メモリアクセスの緊急度が低いときは、音源チ
ャンネルで使用されなかった空きタイムスロットを用い
てアクセスを行なう。また、緊急度が高いときは、始め
にCPUからの波形メモリアクセスの分を確保し、残り
を音源チャンネルで使用する。
【0130】また、上記形態では、図8,9に示したよ
うに処理Bおよび取り込みを行なう前半および後半の区
間の前側のスロットで連続した波形メモリのアクセスを
行なっているが、前側でなくてもよい。例えば、前半/
後半区間内の前側のスロットでXアクセス処理を行な
い、後側のスロットで各チャンネルについての連続した
波形メモリのアクセスを行なうようにしてもよい。ただ
しその場合、例えば図8の取り込み前半区間804の処
理が終了して、波形バッファに補間に必要な全サンプル
が用意された後に、補間前半区間806の補間処理が始
まるようにする必要がある(後半処理も同様)。そのた
め、補間を行なう区間をずらす必要がある(取り込み前
半処理が終了した後に補間前半処理を開始し、取り込み
後半処理が終了した後に補間後半処理を開始すれば十
分)。さらに、Xアクセス処理のタイムスロットを前半
区間あるいは後半区間中で分散させてもよい。
【0131】さらに、上記形態では、図8,9に示した
ように各処理を1サンプリング周期を前半と後半に分割
した区間で実行するようにしているが、区間の分け方は
これに限らない。例えば、1サンプリング周期を1/
3,1/4,…に分割し、それらの区間を単位にして各
処理を行なうようにしてもよい。また、等分割でなく、
変則的な区間の分割を行なってもよい。さらに、区間を
分けずに、1サンプリング周期を単位としてもよい。た
だし、処理Bでアドレス送り出しを行なって波形メモリ
をアクセスする前に、処理AによるARAMの書き換え
が行なわれることがないことを、保証する必要がある。
そのためには、例えば区間を分けない場合は、ARAM
を2セット用意し、処理Aによるアドレスの書き換えと
処理Bによるアドレスの送り出しとで、2セットのアド
レスRAMを交互に使用するなどの方法を採る必要があ
る。なお、1サンプリング周期を前半と後半に分けて処
理する方式によれば、1セットのARAMで処理Aと処
理Bとを交互に行なうことができるので、回路構成が簡
易にでき合理的といえる。
【0132】
【発明の効果】以上説明したように、本発明によれば、
1つのプログラマブル信号処理手段を、録音用波形処理
と再生用波形処理との両方に共用することができる。ま
た、1つのプログラマブル信号処理手段で、録音用波形
処理と再生用波形処理との両方を並列に実行することが
できる。したがって、簡単な構成で録音用波形処理と再
生用波形処理とを行なうことができる。任意の処理アル
ゴリズム(指示手段により指示されたもの)で処理した
波形を録音することができる。プログラマブル信号処理
手段としてはDSPを用いることができるので、装置構
成はそれ程複雑にしなくて済む。
【図面の簡単な説明】
【図1】この発明に係る波形メモリ音源装置を適用した
電子楽器の全体のブロック構成図
【図2】この発明に係る波形メモリ音源装置を適用した
音源部のブロック構成図
【図3】制御レジスタおよび読み書き回路の詳細図
【図4】制御RAMの構成図
【図5】アドレスRAMのメモリマップを示す図
【図6】波形バッファの構成図
【図7】FIFOの使用方法を示す図
【図8】読み書き回路の要部のタイミング図
【図9】図8の各処理中のチャンネルの様子を示す図
【図10】マイクロプログラムおよびミキサ設定の励
(その1)を示す図
【図11】マイクロプログラムおよびミキサ設定の励
(その2)を示す図
【図12】メインルーチンおよびキーオンイベント処理
ルーチンのフローチャート図
【図13】サンプリングSWイベント処理ルーチンおよ
びリサンプリングSWイベント処理ルーチンのフローチ
ャート図
【図14】波形読み出し(書き込み)SWイベント処理
ルーチン、Xフラグ(読み出し)イベント処理ルーチ
ン、およびXフラグ(書き込み)イベント処理ルーチン
のフローチャート図
【図15】ソフト音源スタートSWイベント処理ルーチ
ンおよびソフト音源フレーム割り込み処理ルーチンのフ
ローチャート図
【図16】ソフト音源の楽音生成原理を説明するための
【図17】Xアクセス回路の変形例を示す図
【符号の説明】
101…鍵盤、102…表示部、103…スイッチ群
(SW)、104…中央処理装置(CPU)、105…
リードオンリメモリ(ROM)、106…ランダムアク
セスメモリ(RAM)、107…外部記憶装置、108
…音源部、109…波形メモリ、110…外部回路、1
11…遅延メモリ、112…ディジタルアナログ変換器
(DAC)、113…サウンドシステム(SS)、11
4…バスライン114、201…制御レジスタ、202
…読み書き回路、203…音量変化制御回路、204…
ミキサ、205…信号処理回路、206…インターフェ
ース、301,302…レジスタ、303…優先フラ
グ、304…Xアクセス回路、311…XAレジスタ、
312…セレクタ、313…FIFO(First I
n First Out(先入れ先出し)の8段のレジ
スタ)、314…Xフラグ、315…サンプル数レジス
タ、321…処理A演算回路、322…アドレスRAM
(ARAM)、323…アキュムレータ(ACC)、3
24…制御RAM、325…処理B演算回路、326…
補間回路、327…波形バッファ、328…取り込み回
路、329,330…セレクタ(SEL)。

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】楽音波形を録音するための記憶手段と、 所定サンプリング周期で楽音波形を供給する波形供給手
    段と、 ロードされたプログラムに応じて信号処理を実行するプ
    ログラマブル信号処理手段と、 録音動作または再生動作を指示する指示手段と、 (i)前記指示手段により録音動作が指示されていたとき
    は、前記プログラマブル信号処理手段に所定の第1のプ
    ログラムをロードし、前記波形供給手段から供給された
    楽音波形に対し該第1のプログラムにしたがって録音用
    の信号処理を施すように制御し、 (ii)前記指示手段により再生動作が指示されていたとき
    は、前記プログラマブル信号処理手段に所定の第2のプ
    ログラムをロードし、前記波形供給手段から供給された
    楽音波形に対し該第2のプログラムにしたがって再生用
    の信号処理を施すように制御する制御手段と、 前記プログラマブル信号処理手段が前記第1のプログラ
    ムを実行することにより出力される録音用信号処理済み
    の楽音波形を前記記憶手段に書き込む書き込み手段と、 前記プログラマブル信号処理手段が前記第2のプログラ
    ムを実行することにより出力される再生用信号処理済み
    の楽音波形を外部のサウンドシステムに供給する出力手
    段とを備えたことを特徴とする音源装置。
  2. 【請求項2】楽音波形を録音するための記憶手段と、 所定サンプリング周期で楽音波形を供給する波形供給手
    段と、 前記波形供給手段から供給された楽音波形に対して録音
    用信号処理を施すための第1のプログラムと前記波形供
    給手段から供給された楽音波形に対して再生用信号処理
    を施すための第2のプログラムとを並列に実行するプロ
    グラマブル信号処理手段と、 前記プログラマブル信号処理手段が前記第1のプログラ
    ムを実行することにより出力される録音用信号処理済み
    の楽音波形を前記記憶手段に書き込む書き込み手段と、 前記プログラマブル信号処理手段が前記第2のプログラ
    ムを実行することにより出力される再生用信号処理済み
    の楽音波形を外部のサウンドシステムに供給する出力手
    段とを備えたことを特徴とする音源装置。
  3. 【請求項3】楽音波形を録音するための記憶手段と、 所定サンプリング周期で楽音波形を供給する波形供給手
    段と、 指示手段と、 前記指示手段の指示に応じた録音処理プログラムをロー
    ドして実行するプログラマブル信号処理手段と、 前記波形供給手段から供給された楽音波形に対して前記
    プログラマブル信号処理手段により前記録音処理プログ
    ラムのアルゴリズムで録音用信号処理を施し、その出力
    を前記記憶手段に録音するように制御する制御手段と、 前記プログラマブル信号処理手段で信号処理された楽音
    信号を前記記憶手段に記録する書き込み手段とを備えた
    ことを特徴とする音源装置。
  4. 【請求項4】前記プログラマブル信号処理手段が、ディ
    ジタル・シグナル・プロセッサである請求項1から3の
    何れか1つに記載の音源装置。
JP2000346173A 2000-11-14 2000-11-14 音源装置 Expired - Fee Related JP3723973B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000346173A JP3723973B2 (ja) 2000-11-14 2000-11-14 音源装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000346173A JP3723973B2 (ja) 2000-11-14 2000-11-14 音源装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP22062096A Division JP3148803B2 (ja) 1996-08-02 1996-08-02 音源装置

Publications (2)

Publication Number Publication Date
JP2001166777A true JP2001166777A (ja) 2001-06-22
JP3723973B2 JP3723973B2 (ja) 2005-12-07

Family

ID=18820090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000346173A Expired - Fee Related JP3723973B2 (ja) 2000-11-14 2000-11-14 音源装置

Country Status (1)

Country Link
JP (1) JP3723973B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237594A (ja) * 2009-03-31 2010-10-21 Yamaha Corp 楽音生成装置
JP2021141391A (ja) * 2020-03-03 2021-09-16 株式会社東芝 通信装置、通信システム、通信方法、および処理プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010237594A (ja) * 2009-03-31 2010-10-21 Yamaha Corp 楽音生成装置
JP2021141391A (ja) * 2020-03-03 2021-09-16 株式会社東芝 通信装置、通信システム、通信方法、および処理プログラム
JP7218313B2 (ja) 2020-03-03 2023-02-06 株式会社東芝 通信装置、通信システム、および通信方法

Also Published As

Publication number Publication date
JP3723973B2 (ja) 2005-12-07

Similar Documents

Publication Publication Date Title
US5831193A (en) Method and device for forming a tone waveform by combined use of different waveform sample forming resolutions
US6326537B1 (en) Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency
JP3137043B2 (ja) 波形メモリ音源装置および楽音発生装置
JPH1020860A (ja) 楽音発生装置
JP3148803B2 (ja) 音源装置
JP3723973B2 (ja) 音源装置
EP3373289A1 (en) Electronic musical instrument, musical sound generating method, and storage medium
JPH07121181A (ja) 音声情報処理装置
JPH08160961A (ja) 音源装置
JP3019755B2 (ja) 楽音発生方法および楽音発生装置
JPH11288285A (ja) 楽音発生方法及び装置
JP4132268B2 (ja) 波形再生装置
JP2882464B2 (ja) 波形メモリ音源装置
JP3832383B2 (ja) 楽音生成装置及びプログラム
JP3016470B2 (ja) 音源装置
JP2956552B2 (ja) 楽音発生方法および装置
JP3832382B2 (ja) 楽音生成装置及びプログラム
JP2003280650A (ja) 変調波形発生装置
JP2970372B2 (ja) 音源パラメータ供給装置
JP2833485B2 (ja) 楽音発生装置
JP2940440B2 (ja) 電子楽器の波形データ圧縮記録方法および波形データ再生方法
JP2001092450A (ja) オーディオ・ファイルの生成処理方法
JPH0659678A (ja) 電子楽器
JP2546464B2 (ja) 電子楽器
JP3651675B2 (ja) 電子楽器

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050526

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050603

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050802

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050829

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050911

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100930

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20100930

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110930

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20120930

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20130930

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees