JP2910632B2 - 波形メモリ音源装置 - Google Patents

波形メモリ音源装置

Info

Publication number
JP2910632B2
JP2910632B2 JP7198116A JP19811695A JP2910632B2 JP 2910632 B2 JP2910632 B2 JP 2910632B2 JP 7198116 A JP7198116 A JP 7198116A JP 19811695 A JP19811695 A JP 19811695A JP 2910632 B2 JP2910632 B2 JP 2910632B2
Authority
JP
Japan
Prior art keywords
address
waveform
data
memory
selector
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
JP7198116A
Other languages
English (en)
Other versions
JPH08234760A (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 JP7198116A priority Critical patent/JP2910632B2/ja
Publication of JPH08234760A publication Critical patent/JPH08234760A/ja
Application granted granted Critical
Publication of JP2910632B2 publication Critical patent/JP2910632B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、波形メモリから
波形データを読み出す方式の音源装置に関し、詳しく
は、波形メモリ読み出しのためのアドレス発生と、DS
Pで用いる遅延RAMの読み出し/書き込みのためのア
ドレス発生とを、共通のアドレス発生部によって時分割
で行なうようにした音源装置に関する。
【0002】
【従来の技術】従来より、いわゆる波形メモリ読み出し
方式の音源が知られている。これは、波形メモリにディ
ジタル波形データ(各サンプリング点ごとの振幅デー
タ)を記憶しておき、CPU(中央処理装置)からの楽
音発生の指示に応じて、その波形データを順次読み出し
て楽音波形を形成するものである。波形データの読み出
しアドレスは、アドレス発生器から発生される。アドレ
ス発生器は、発音すべき楽音の音高に応じた値(いわゆ
る、周波数ナンバ)Fを累算したアドレスqF(q=
0,1,2,3,…)を順次発生し、このアドレスにし
たがって波形メモリから波形データを順次読み出し、所
望の音高の波形を得る。
【0003】また、電子楽器では、楽音波形に残響効果
などの各種の効果(エフェクト)を付加する処理、ある
いは楽音波形に対する各種のフィルタリング処理などを
行なうために、DSP(ディジタル・シグナル・プロセ
ッサ)を備える場合がある。DSPには、入力データや
演算結果データを所定時間だけ遅延させて次の演算に用
いるために、データ遅延用の遅延RAM(ランダムアク
セスメモリ)が接続される。遅延RAMの読み出し/書
き込みアドレスは、マイクロプログラムにより発生す
る。
【0004】以上のように、波形メモリ音源とDSPと
は別々に構成されており、それぞれ独立に動作してい
た。アドレスの発生も、別々に行なわれていた。
【0005】一方、DSPのマイクロプログラムで波形
メモリ音源を構成することも行なわれているが、マイク
ロプログラムで波形メモリ用のアドレスを発生するよう
になっていた。すなわち、マイクロプログラムで演算し
ているステップ中に、波形メモリ読み出し用のアドレス
発生の動作が組み込まれているものであった。
【0006】
【発明が解決しようとする課題】上述の波形メモリ音源
における読み出しアドレスの発生とDSPにおける遅延
RAMの読み出し/書き込みアドレスの発生とを独立に
行なう方式では、回路が複雑化し、回路規模が大きくな
るという問題がある。また、DSPのマイクロプログラ
ムで波形メモリ音源を構成し、マイクロプログラムで波
形メモリ読み出し用のアドレス発生を行なうものでは、
そのアドレス発生動作にマイクロプログラムの多くのス
テップが費やされ効率が悪かった。
【0007】この発明は、波形メモリ音源のアドレス発
生部とDSPのアドレス発生部とを共用することによ
り、波形メモリ音源装置の構成を全体として単純化しか
つ回路規模の小さな回路で実現することを目的とする。
【0008】
【課題を解決するための手段】請求項1に係る発明は、
中央処理装置からの命令を受けて、ディジタル楽音波形
を出力する音源装置であって、波形データを記憶した波
形メモリと、データを書き込み所定時間の後に読み出す
ことにより、遅延したデータを得るための遅延用メモリ
と、加算あるいは減算を行なう1つの演算器を少なくと
も有し、前記波形メモリから波形データを読み出すため
の波形メモリアドレスと、前記遅延用メモリに対して書
き込み/読み出しするための遅延用メモリアドレスと
を、前記少なくとも1つの演算器を時分割に動作させる
ことにより発生するアドレス発生手段と、前記波形メモ
リから読み出された波形データに対し、前記遅延用メモ
リを用いたエフェクト処理を含む楽音生成演算処理を施
し、楽音波形データを得る波形演算手段とを備えたこと
を特徴とする。
【0009】請求項2に係る発明は、請求項1に記載の
発明における楽音生成演算を、読み出された波形データ
に対するサンプル補間演算、フィルタ処理、および音量
変化制御のうち少なくとも1つを含み、該波形データに
対する所望の楽音特性付与を行うものとしたことを特徴
とする。
【0010】請求項3に係る発明は、請求項1に記載の
発明において、前記アドレス発生手段が発生する波形メ
モリアドレスを、複数時分割チャンネルに対応した複数
の波形メモリアドレスとし、前記波形演算手段が実行す
る楽音生成演算を、前記波形メモリから前記複数の波形
メモリアドレスに応じて読み出された複数の波形データ
に基づいて、複数時分割チャンネルに対応する波形デー
タを生成する複数チャンネル処理を含むものとしたこと
を特徴とする。請求項4に係る発明は、請求項3に記載
の発明において、前記楽音生成演算を、生成された該複
数時分割チャンネルに対応する波形データを累算する累
算処理と、その累算結果に対して前記エフェクト処理に
よる音響効果付与を行う効果付与処理とを含むものとし
たことを特徴とする。請求項5に係る発明は、請求項3
に記載の発明において、前記アドレス発生手段を、前記
波形演算手段の前記複数チャンネル処理の実行に同期し
て、前記複数の波形メモリアドレスを発生するものとし
たことを特徴とする。
【0011】請求項6に係る発明は、請求項1に記載の
発明において、前記アドレス発生手段を、前記エフェク
ト処理に同期して、前記遅延メモリアドレスを発生する
ものとしたことを特徴とする。
【0012】請求項7に係る発明は、請求項1に記載の
発明において、前記アドレス発生手段を、波形メモリア
ドレスおよびディレイ量を記憶したアドレスメモリを備
え、前記アドレスメモリに記憶された波形メモリアドレ
スに基づいて新たな波形メモリアドレスを発生すると共
に、前記アドレスメモリに記憶されたディレイ量に基づ
いて遅延メモリアドレスを発生するものとしたことを特
徴とする。請求項8に係る発明は、請求項1に記載の発
明において、前記アドレス発生手段と前記波形演算手段
とを別体に設けることを特徴とする。
【0013】上記構成によれば、1つのアドレス発生手
段を共用して、音源部の波形メモリ用アドレス発生とD
SPの遅延用DRAMのアドレス発生とを時分割で行な
う。したがって、全体構成を単純化しかつ回路規模を小
さくできる。
【0014】
【発明の実施の形態】以下、図面を用いて、この発明の
実施例を説明する。
【0015】図2は、この発明の一実施例に係る音源装
置を適用した電子楽器の全体のブロック構成を示す。図
1は、この電子楽器の音源部のハードウエア的なブロッ
ク構成を示す。また図3は、音源部内におけるデータの
流れに着目した機能的な流れ図である。図1〜図3にお
いて、同一の番号は同一のものを示すものとする。
【0016】まず、図2を参照して、この電子楽器の全
体構成を説明する。この電子楽器は、鍵盤201、表示
部202、スイッチ群(SW)203、中央処理装置
(CPU)204、リードオンリメモリ(ROM)20
5、ランダムアクセスメモリ(RAM)206、音源部
207、波形メモリ208、遅延用ダイナミックRAM
(DRAM)209、ディジタルアナログ変換器(DA
C)210、サウンドシステム(SS)211、および
CPUバス212を備えている。鍵盤201、表示部2
02、スイッチ群203、CPU204、ROM20
5、RAM206、および音源部207は、CPUバス
212により相互に接続されている。
【0017】鍵盤201は、ユーザが演奏操作するため
の複数の鍵を備えた鍵盤である。表示部202は、電子
楽器のパネル上に設けられており、各種の情報を表示す
る。スイッチ群203は、パネル上に設けられており、
ユーザはこれを操作することにより電子楽器に対して各
種の指示を与えることができる。CPU204は、この
電子楽器全体の動作を制御する。特に、通常の演奏時に
は、鍵盤201の操作を検出し、その操作に応じて音源
部207に発音の指示を出す。
【0018】ROM205は、CPUが実行するプログ
ラム(音源部207を制御するための音源コントロール
プログラムなど)や各種の定数データなどを格納する。
RAM206は、ワークレジスタなどに用いる。音源部
207は、CPU204の指示に応じて、波形メモリ2
08から波形データを読み出し、効果付与などの加工を
施して、楽音波形として出力する。音源部207から出
力された楽音波形は、DAC210によりアナログ信号
に変換され、サウンドシステム211により放音され
る。
【0019】波形メモリ208には、所定のレートでサ
ンプリングされた波形データが格納されている。波形メ
モリ208は、ROMで構成してもよいし、RAMで構
成してもよい。RAMで構成する場合は、演奏前に、波
形データを波形メモリ208にロードするようにする。
本実施例では、波形メモリ208はあらかじめ波形デー
タが格納されているROMである。DRAM209は、
音源部207における遅延用のDRAMである。音源部
207内において楽音波形に効果付与などの処理を施す
際に、例えばあるタイミングであるデータをDRAM2
09に書き込み、所定のクロックの後に読み出して演算
に用いるというようにして、遅延したデータを得るのに
DRAM209を用いる。
【0020】次に、音源部207について詳しく説明す
る。まず、図3を参照して、音源部内部のデータの流れ
に着目して音源部207内の各処理機能を説明し、その
後、図1を参照して音源部207の内部のどのハードウ
エアブロックで上記各処理機能を実現しているかを説明
する。
【0021】図3において、REG302は、CPU2
04(音源コントロールプログラムが実行されている)
から送出された指定情報(音源部207に対する命令や
パラメータ情報である)を格納するための制御レジスタ
である。CPU204は、REG302に所定の指定情
報をセットして発音の開始指示を出す。セットする指定
情報としては、図3に示したように、メモリ読み出しピ
ッチ(周波数ナンバ)、メモリ読み出し区間、波形フォ
ーマット、カットオフ周波数、エンベロープ、パンニン
グ、エフェクト用係数、およびエフェクト用遅延DRA
Mアドレスなどの指定情報がある。
【0022】発音開始指示を受けると、音源部207は
楽音波形の発生の動作を開始する。まず、アドレス発生
部(ADC)303で波形メモリ208の読み出しアド
レスWMAを順次発生する。読み出しアドレスWMA
は、指定された読み出し区間の先頭から、指定された読
み出しピッチを順次累算した値である。特に、この電子
楽器では後述する波形補間部(ITP)305で2点直
線補間を行なうので、連続する2点分の読み出しアドレ
スを順に出力する。また、アドレス発生部303は、補
間用の位相情報(読み出しピッチを累算したときに出現
する小数部データ)を出力する。
【0023】アドレス発生部303から出力された上記
2点分のアドレスにしたがって、2点の波形データが、
波形メモリ208から読み出される。読み出された波形
データは、波形再生部(DEC)304により波形再生
される。波形メモリ208に格納されている波形データ
は、所定のフォーマットで圧縮されており、波形再生部
304はその圧縮を解除する機能を果たす。圧縮の波形
フォーマットは、REG302により指定される。この
実施例では、もともと16ビットの波形データを8ビッ
トに圧縮して波形メモリ208に格納しているので、波
形再生部304では、8ビットから16ビットに戻す圧
縮解除処理を行なう。
【0024】波形補間部(ITP)305は、圧縮解除
された2点分の波形データとアドレス発生部303から
の位相情報を用いて補間処理を行ない、補間結果(1点
分の楽音波形データ)を周波数成分制御部(DCF)3
06に出力する。なお、波形補間部305からいったん
音源部207の外に出て再び周波数成分制御部306に
入力する点線の矢印312は、補間結果を外部で加工し
て再び周波数成分制御部306に入力するようなインタ
ーフェースを備えていることを示している。
【0025】補間結果の楽音波形データに対し、周波数
成分制御部306でフィルタリングを行ない、音量変化
制御部(EGM)307でエンベロープを付与する。周
波数成分制御部306におけるカットオフ周波数などの
パラメータは、REG302で指定され、エンベロープ
ジェネレータ(EG)311で指定されたフィルタエン
ベロープ波形が生成され周波数成分制御部306に与え
られる。エンベロープ形状を規定する各種のパラメータ
も、同様に、エンベロープジェネレータ(EG)311
で音量エンベロープ波形を生成し音量変化制御部307
に与えられる。さらに、音量変化制御部307は、RE
G302により指定されたパンニング指定情報に基づい
てパンニングの処理を行なう。
【0026】この音源部207は、32チャンネル時分
割で動作する。加算制御部(ACC)308は、各チャ
ンネルの楽音波形データをチャンネル累算し、累算結果
として次段のドライ、コーラス、バリエーションの入力
のそれぞれについてL(左側)とR(右側)のステレオ
2系列(パラレル)およびリバーブ入力のモノラル1系
列の全部で7系列の楽音波形データを出力する。
【0027】音響効果制御部(DSP)309は、その
各入力の系列の楽音波形データのそれぞれに対して対応
する各種の効果(エフェクト)を付与する。付与する効
果に関する係数はREG302により指定される。音響
効果制御部309は、効果付与処理を行なうに際して、
所定時間遅延したデータを得るため、DRAM209に
データを書き込み所定の時間の後に読み出す処理を行な
う。なお、本明細書において、DSPとはマイクロプロ
グラムによってエフェクト演算を行なう可変アルゴリズ
ム回路と定義する。逆にいえば、マイクロプログラムで
動作するのでない、かつ、エフェクト演算を行なってい
ない、補間やフィルタリングの部分は狭義の音源部とし
てDSPとは区別できる。
【0028】DRAM209に対する書き込みアドレス
および読み出しアドレス(遅延データの読み出しアドレ
ス)はREG302で指定され、図3ではREG302
から「アドレス指定」の矢印が音響効果制御部(DS
P)309に直接入力し、音響効果制御部309からD
RAM209にアドレスDMAが入力するように図示し
ているが、実際には波形メモリ208に対するアドレス
発生部303を共用してDRAM209に対するアドレ
スDMAを発生するようにしている。これについては、
後に詳しく説明する。
【0029】出力制御部(PSO)310は、効果付与
済みのステレオ2系列パラレルの楽音波形データをシリ
アルデータとして、DAC210(図2)に出力する。
【0030】既に述べたように、図3はデータの流れに
着目して音源部207の内部の機能を説明した図であ
る。したがって、音源部内部のハードウエア構成と比較
すると、1つのハードウエアブロックで図3で説明した
複数の機能を果たす部分がある。次に、図1を参照し
て、ハードウエアの観点から見た音源部207の構成を
説明する。
【0031】図1において、音源部207は、制御レジ
スタ101、アドレス発生部102、圧縮解除部10
3、波形演算部104、DACインターフェース(DA
CI/O)105、およびエンベロープ発生器106を
備えている。また、図1では不図示であるが、波形演算
部制御クロック発生部を備えている。波形演算部制御ク
ロック発生部については図12で後述する。
【0032】制御レジスタ101は、図3のREG30
2の一部に相当する。アドレス発生部102は、図3の
アドレス発生部303に相当するとともに、遅延用DR
AM209の書き込み/読み出しアドレスDMAの発生
も行なう。圧縮解除部103は、図3の波形再生部30
4に相当する。エンベロープ発生器106は、図3のエ
ンベロープジェネレータ311に相当する。エンベロー
プ発生器106は、図3でも述べたように、音量エンベ
ロープ波形の発生のほかにフィルタリングのパラメータ
(フィルタエンベロープ)などを発生する。すなわち、
エンベロープ発生器106は、複数の関数を発生する機
能を備えたものである。
【0033】波形演算部104は、図3の波形補間部3
05、周波数成分制御部306、音量変化制御部30
7、加算制御部308、および音響効果制御部309に
相当する。また、DACI/O105は、図3の出力制
御部310に相当する。
【0034】ARAM114は、アドレス発生部102
の内部に設けられているワークメモリ領域である。図4
に、ARAM114のメモリマップを示す。ARAM1
14は、第1チャンネルから第32チャンネルの各チャ
ンネルごとの領域からなる。各チャンネルの領域は、現
アドレス下位ADL、現アドレス上位ADH、遅延量D
L1、および遅延量DL2の4つの情報を格納する領域
からなる。各領域の大きさは16ビットである。ただ
し、アドレス下位ADLは、16ビットのうち下位14
ビット分のみ使用する。
【0035】現アドレス下位ADLは、当該チャンネル
に関する波形メモリ読み出しアドレスを累算していくと
きの現在のアドレス値のうちの下位アドレスを格納する
領域である。現アドレス上位ADHは、そのアドレス値
のうち上位アドレスを格納する領域である。遅延量DL
1は、当該チャンネルに関する効果付与処理において、
DRAM209から遅延したデータを読み出す(書き込
みに用いてもよい)ときの遅延量を格納する領域であ
る。遅延量DL2も同様である。遅延量DL1およびD
L2の値は、効果付与のマイクロプログラムを設定する
ときに、CPU204からの指示に基づいて制御レジス
タ101を介してARAM114に設定される。
【0036】なお、領域に付した記号は、その領域その
ものを示すとともに、その領域に格納されたデータをも
示すものとする。例えば、現アドレス下位ADLという
ときは、現在のアドレス値の下位アドレスを格納する領
域そのものを示すとともに、その領域に格納されるアド
レス値の下位アドレスデータをも示すものとする。以
下、各領域に付した記号も同様である。
【0037】また、アドレスの下位ADLおよび上位A
DHは、アドレスの小数部および整数部に対応する場合
もあるが、一般には対応していない。アドレス整数部は
波形メモリのアドレスと対応し、各値に対応して波形メ
モリの波形サンプルが1つずつ存在しているアドレスを
言う。アドレス小数部は、それよりも細かい単位で、波
形メモリに記憶された連続する2サンプルの中間位置を
示す情報である。
【0038】再び図1を参照して、MPM111は、波
形演算部104の内部に設けられているワークメモリ領
域であり、効果付与のマイクロプログラムが設定され
る。効果付与のマイクロプログラムは、CPU204か
らの指示に基づいて制御レジスタ101を介して設定さ
れる。波形演算部104は、時分割で並行して複数の機
能を果たすように動作するが(その詳細は後述する)、
効果付与を実行するタイムスロットにおいてはMPM1
11のマイクロプログラムが順次実行されることとな
る。さらに、そのマイクロプログラムによる効果付与動
作において遅延したデータが必要であるときは、アドレ
ス発生部102から発生する遅延用DRAM209の書
き込みアドレスおよび読み出しアドレスを用いて遅延用
DRAM209に書き込み/読み出しを行なうようにし
ている。
【0039】CRAM113は、波形演算部104の内
部に設けられているワークメモリ領域であり、MPM1
11のマイクロプログラムが実行されるときに用いる係
数データを記憶する領域である。係数データとしては、
MPM111のマイクロプログラムの1ステップに対応
して、その1ステップを実行するときに用いる1つの係
数が格納できるようになっている。各ステップにおいて
用いる係数データは、CPU204からの指示に基づい
て制御レジスタ101を介して設定される。
【0040】TRAM112は、波形演算部104の内
部に設けられているワークメモリ領域である。図5に、
TRAM112のメモリマップを示す。TRAM112
の先頭には、フィルタ演算用遅延データを格納する領域
が、各チャンネルに2つ(D1とD2)づつ設けられて
いる。1つの遅延データ格納領域の大きさは24ビット
である。各領域D1,D2は、波形演算部104が図3
の周波数成分制御部306に相当するフィルタ演算動作
を行なうときに、データを書き込み遅延して読み出して
演算に用いるというように、フィルタ演算においてデー
タを一時的に保持するために用いられる。
【0041】フィルタ演算用遅延データの次には、7出
力分の累算値を格納する領域REV,DL,DR,CH
L,CHR,VAL,VARが設けられている。各領域
の大きさは24ビットである。これらの領域は、波形演
算部104が図3の加算制御部308に相当するチャン
ネル累算動作を行なうときに、その累算結果を格納する
領域である。7出力分の領域が容易されているのは、フ
ィルタ演算の結果の各時分割チャンネルの1サンプル出
力に対して7系統の出力を作成するためである。7系統
の出力を作成するのは、次の段における効果の付与が7
系統に分かれているからである。7系統とは、具体的に
は、リバーブ用累算値REV、ドライL用累算値DL、
ドライR用累算値DR、コーラスL用累算値CHL、コ
ーラスR用累算値CHR、バリエーションL用累算値V
AL、およびバリエーションR用累算値VARの7つで
ある。なお、Lはステレオの左側系統、Rはステレオの
右側系統を示す。
【0042】7出力分の累算値格納領域の次には、エフ
ェクト演算用テンポラリデータを格納するための24ビ
ット×57個の領域が設けられている。これは、波形演
算部104が効果付与動作を行なう際のテンポラリデー
タの格納用の領域である。
【0043】次に、図1のアドレス発生部102につい
て詳しく説明する。図6は、アドレス発生部102のブ
ロック構成を示す。アドレス発生部102は、ARAM
114、加減算器601、セレクタA602、セレクタ
B603、ラッチ604、合成器605、ゲート60
6、1ビットダウンシフタ607、DRAMアドレス発
生器608、ラッチ609、14ビットダウンシフタ6
10、波形メモリアドレス発生器611、ラッチ61
2、ラッチ613、ラッチ614、および減算器615
を備えている。
【0044】アドレス発生部102は時分割で動作し、
例えばセレクタA602やB603は各タイムスロット
ごとに所定の入力を選択出力するように制御される。ま
た、1ビットダウンシフタ607や14ビットダウンシ
フタ610は、ダウンシフトの処理を行なわず入力をそ
のまま出力するように制御される場合もある。各タイム
スロットにおける各部の動作は、図7を参照して後述す
る。
【0045】図6において、加減算器601は、24ビ
ットの加減算器であり、セレクタA602の選択出力デ
ータとセレクタB603の選択出力データとを入力して
加算または減算を実行する。この加減算器601では、
加減算の結果が出るまでに2クロック分の遅延があるの
で「2D」と表記してある。以下、処理に遅延が生じる
ブロックには同様に表記するものとする。
【0046】セレクタA602には、合成器605から
のデータ、データ「1」、データ「0」、制御レジスタ
101からのデータADMPX、およびゲート606を
介して入力するデータLFOが入力する。セレクタB6
03には、データ「0」、データPIT2、ラッチ61
2,613からのデータ、14ビットダウンシフタ61
0からのデータ、およびラッチ614からのデータが入
力する。
【0047】ADMPXは、各タイムスロットごとに必
要なデータを制御レジスタ101から読み出したもので
ある。LFOは、不図示の低周波発振器から出力される
データである。PIT2は、後述する図8の波形演算部
104内の可変シフタ809からの出力である。
【0048】図7は、図6のアドレス発生部102のタ
イミングチャートを示す。縦に引かれた点線により区切
られた各区間が1クロックのタイムスロットを示す。図
7は、1DAC周期768クロック(24クロック×時
分割32チャンネル)動作のうちの1チャンネル分を取
り出した図である。1チャンネル分の24クロックの各
区間には順にスロット番号(0から23)を付ける。図
7では、0,4,8,12,16,20のスロット番号
が記載してある。なお、このクロック図は複数の処理の
時分割の様子を示したものであり、各ブロックにおける
処理の遅れは省略されている。
【0049】行701に示す1,2,3,…,10の数
字が記載されたスロットおよびその下の行702に示す
11,12の数字が記載されたスロットは、1チャンネ
ル分の波形メモリアドレス発生の動作を行なうタイムス
ロットを示している。また、それらの数字は下記の処理
番号に対応している。例えば、スロット番号0の位置に
は「1」と記載されており、スロット番号2の位置には
「2」と記載されているが、これはスロット番号0のス
ロットで下記の処理番号1の処理を行ない、スロット番
号2のスロットで下記の処理番号2の処理を行なうとい
うことを示している。なお、行702は行701の下に
記載しているが、実際には当該チャンネルに関する処理
番号1〜10の処理を行701に示すスロットで実行し
た後、次のチャンネルの行702に示すスロットで処理
番号11,12の処理を行なっている。
【0050】波形メモリアドレス発生に係る処理番号1
〜12の処理を下記に示す。
【0051】1.処理番号1では、セレクタA602は
ゲート606からの入力データを選択出力し、セレクタ
B603はデータ「0」を選択出力する。加減算器60
1は、これらのデータを加算する。加算結果UDは、2
クロック後に出力され、次の処理番号2で使われること
になる。処理番号1において、ゲート606が開いてい
れば、LFO+0を計算することになる。ゲート606
が閉じていれば、0+0を計算することになる。ゲート
606の制御については後述する。
【0052】2.処理番号2では、上記処理番号1の加
算結果UDが加減算器601から出力される。このとき
1ビットダウンシフタ607は入力データの1ビットダ
ウンシフトを行ない、14ビットダウンシフタ610は
シフトを行なわず入力データをそのまま出力するように
なっている。したがって、処理番号1の加算結果UDを
1ビットダウンシフトしたデータがセレクタB603に
入力する。また、このときセレクタA602はゲート6
06からの入力データを選択出力し、セレクタB603
は処理番号1の加算結果UDを1ビットダウンシフトし
たデータを選択出力する。加減算器601は、これらの
データを加算する。加算結果は、2クロック後に出力さ
れ、次の処理番号3で使われることになる。以上より、
処理番号2において、ゲート606が開いていれば、L
FO+UD↓1を計算することになる。UD↓1は、デ
ータUDを1ビットダウンシフトしたデータを示す。
【0053】3.処理番号3は、処理番号1の結果の代
わりに処理番号2の結果を用いること以外は処理番号2
と同じ処理である。すなわち、処理番号3において、ゲ
ート606が開いていれば、LFO+UD↓1を計算す
ることになる。
【0054】以上の処理番号1〜3は、後述する処理番
号4の処理でピッチ(周波数ナンバ)PIT0に加算す
る値を算出する処理である。ピッチPIT0は周波数リ
ニアのデータであるため、そのまま累算して求めたアド
レスで発音すると、聴感上のずれが生じる。そこで、ピ
ッチに応じて(具体的には、ピッチの所定の上位ビット
に応じて処理番号1〜3におけるゲート606の開閉を
制御して)処理番号1〜3の結果をピッチPIT0に加
算して、スケーリングするようにしている。
【0055】例えば、ゲート606を処理番号1で開き
処理番号2,3で閉じるようにすれば、処理番号3の処
理結果は、LFOを2ビットダウンシフトした値、すな
わちLFO/4となる。また、ゲート606を処理番号
2で開き処理番号1,3で閉じるようにすれば、処理番
号3の処理結果は、LFOを1ビットダウンシフトした
値、すなわちLFO/2となる。また、ゲート606を
処理番号3で開き処理番号1,2で閉じるようにすれ
ば、処理番号3の処理結果はLFO自体となる。このよ
うに処理番号1〜3におけるゲート606の開閉を制御
して得た値をピッチPIT0に加算してスケーリングす
る。
【0056】4.処理番号4では、セレクタA602は
入力データADMPXを選択出力し、セレクタB603
は処理番号3の結果であるデータUDを選択出力する
(ダウンシフタ607,610は何れもスルー(入力デ
ータをそのまま出力)する)。このときの入力データA
DMPXは、制御レジスタからのピッチPIT0であ
る。加減算器601は、ADMPX(PIT0)+UD
を計算し出力する。なお、ADMPX(PIT0)は、
時分割の各タイムスロットで種々のデータがADMPX
として入力するが、この時点ではPIT0が入力するこ
とを示す。以下でも時分割で種々のデータが入力する信
号については同様に表記する。
【0057】上記加算結果は、2クロック後に加減算器
601から出力され1ビットダウンシフタ607に入力
するが、その時点では1ビットダウンシフタ607はシ
フトを行なわず入力データをそのまま出力するようにな
っている。1ビットダウンシフタ607をスルーした加
算結果は、ラッチ609にラッチされ、ピッチデータP
IT1として出力される。ピッチデータPIT1は、後
述する図8の波形演算部104内のセレクタG808に
入力し、可変シフタ809でオクターブ分のシフトを行
ない、ピッチデータPIT2として出力される。これ
は、ピッチPIT0,PIT1はオクターブ内のピッチ
を示すデータであるので、オクターブ分のシフトを行な
う必要があり、そのシフトを波形演算部104で行なう
ようにしたものである。ピッチデータPIT2は、次の
処理番号5のタイミングでセレクタB603に入力す
る。
【0058】5.処理番号5では、セレクタA602は
ARAM(図4)114の現アドレス下位ADLを選択
出力し、セレクタB603は上記ピッチデータPIT2
を選択出力する。合成器605は、ARAM114の現
アドレス下位ADLをスルーするように制御される。ま
た、ピッチデータPIT2は、この時点で波形演算部1
04から出力されるようになっている。なお、ARAM
114の現アドレス上位ADHと下位ADLの初期値
(すなわち、波形メモリの読み出しスタートアドレス)
は、CPU204が音源部207に発音開始を指示する
際に、CPU204から直接ARAM114に書き込ま
れる(後述する図14(b)のステップS13)。
【0059】加減算器601は、ARAM(ADL)+
PIT2を計算し、2クロック後に加算結果を出力す
る。これがピッチ(周波数ナンバ)の累算を行なう部分
である。この加算結果は、ARAM114の現アドレス
下位ADLに再び格納されるとともに、1ビットダウン
シフタ607に入力する。
【0060】6.処理番号6では、上記処理番号5の加
算結果が1ビットダウンシフタ607に入力するが、こ
のとき1ビットダウンシフタ607はシフトを行なわず
入力データをそのまま出力し、14ビットダウンシフタ
610は14ビットのダウンシフトを実行するようにな
っている。したがって、処理番号5の加算結果UDは、
14ビットダウンシフトされ(データUD↓14と表記
する)、セレクタB603に入力する。セレクタB60
3は、このデータUD↓14を選択出力する。また、セ
レクタA602はARAM114の現アドレス上位AD
Hを選択出力する。したがって、加減算器601は、A
RAM(ADH)+UD↓14を計算し、2クロック後
に加算結果を出力する。この加算は、処理番号5におけ
る累算の結果、現アドレス下位ADLから上位にあふれ
た分を上位ADHに加える処理である。この加算結果U
Dは、ARAM114の現アドレス上位ADHに再び格
納されるとともに、ダウンシフタ607,610をスル
ーしてセレクタB603に入力し、さらにラッチ612
にラッチされる。
【0061】次の処理番号7〜10の処理は、ループ部
の処理である。この実施例において、波形メモリ208
上の波形データは、アタック部とそれに引き続くループ
部とから構成されており、アドレス発生処理では、ルー
プ部の先頭位置(すなわちアタック部の最終位置)をア
ドレス0の基準としている。したがって、発音開始時に
ARAM114の現アドレスに設定される初期値(アタ
ック部の先頭を示すアドレス)は負数となる。ループ部
の先頭位置が基準(アドレス0)だからである。
【0062】以上より、処理番号6の加算結果が負数で
あるときは、アタック部のアドレスを発生しているとい
うことが分かる。加算結果が負数かどうかは、サインフ
ラグなどにより知ることができるから、処理番号6の加
算の後、現在発生しているアドレスがアタック部のアド
レスかループ部のアドレスかは判別できる。アタック部
のアドレスであるときは、処理番号6までの処理により
アドレスの整数部と小数部はARAM114に格納され
ているから(さらに整数部はラッチ612にラッチされ
ている)、以下の処理番号7〜10の処理は行なわず、
処理番号11,12を行なう。ループ部のアドレスであ
るときは、処理番号7〜10を行ない、引き続き処理番
号11,12を行なう。
【0063】7.処理番号7では、セレクタA602は
入力データADMPXを選択出力し、セレクタB603
は処理番号6の結果であるデータUDを選択出力する
(ダウンシフタ607,610は何れもスルー)。デー
タUDは、アドレスの整数部である。このときの入力デ
ータADMPXは、制御レジスタからのマイナスループ
レングス「−LL」である。ループレングスLLとは読
み出すべき波形データのループ部のデータ長を示し、マ
イナスループレングス「−LL」はループレングスLL
にマイナスを付けて負数にしたものである。したがっ
て、加減算器601は、ADMPX(−LL)+UDを
計算し、2クロック後に加算結果を出力する。加算結果
は、合成部605に入力する。合成部605は、その加
算結果(アドレス整数部)とARAM114の現アドレ
ス下位ADLとを結合して、セレクタA602に入力す
るようにする。
【0064】この処理番号7における加算でキャリーが
発生したとき(すなわち加算結果が負数であるとき)は
算出したアドレスUDの位置が未だループ部内部である
ことになり、キャリーが発生しなかったとき(すなわち
加算結果が正数であるとき)は算出したアドレスUDの
位置がループ部を超えたということになる。そこで、キ
ャリーが発生したときは以下の処理番号8〜10の処理
は行なわず、処理番号11,12を行なう。キャリーが
発生しなかったときは、ループ部の先頭付近のアドレス
に戻るために、以下の処理番号8〜10を行なう。
【0065】8.処理番号8では、セレクタA602は
合成部605のデータを選択出力し、セレクタB603
はデータ「0」を選択出力する。加減算器601は、
(合成部605のデータ)+0を計算し、2クロック後
に加算結果を出力する。この処理は、次の処理番号9で
合成部605のデータをセレクタB603に戻すために
行なうものである。
【0066】9.処理番号9では、セレクタA602は
入力データADMPXを選択出力し、セレクタB603
は処理番号8の結果であるデータUDを選択出力する
(ダウンシフタ607,610は何れもスルー)。この
データUDは、合成部605からのデータである。ま
た、このときの入力データADMPXは、補正用のデー
タLFRである。加減算器601は、ADMPX(LF
R)+UDを計算し、2クロック後に加算結果を出力す
る。この加算結果は、ARAM114の現アドレス下位
ADLに再び格納されるとともに、1ビットダウンシフ
タ607に入力する。
【0067】本処理番号9により、ループ部の先頭付近
の戻りアドレス(小数部も含む)が算出されることにな
る。その戻りアドレスの小数部は、直接ARAM114
の現アドレス下位ADLに格納される。なお、合成部6
05からのデータはループ部の先頭付近のアドレスにな
っているはずであるが、それにさらにLFRを加算する
のは1アドレスの中の微妙な戻り位置(小数部)を調整
するためである。LFRを加算することにより精密なル
ープを行なうようにしている。
【0068】10.処理番号10では、上記処理番号9
の加算結果が1ビットダウンシフタ607に入力する
が、このとき1ビットダウンシフタ607はシフトを行
なわず入力データをそのまま出力し、14ビットダウン
シフタ610は14ビットのダウンシフトを実行するよ
うになっている。したがって、処理番号9の加算結果U
D(戻りアドレス)は、14ビットダウンシフトされて
セレクタB603に入力する。セレクタB603はこの
14ビットダウンシフトされたデータUD↓14を選択
出力する。このデータが、ループ部の先頭付近の戻りア
ドレス(整数部)である。また、セレクタA602はデ
ータ「0」を選択出力する。したがって、加減算器60
1は、0+UD↓14を計算し、2クロック後に加算結
果を出力する。この加算結果(戻りアドレスの整数部)
は、ARAM114の現アドレス上位ADHに格納され
るとともに、ラッチ612にラッチされる。
【0069】11.処理番号11を行なう時点では、既
にラッチ612にアドレス整数部が格納されている。ま
た、処理番号11では、セレクタA602は入力データ
ADMPXを選択出力し、セレクタB603はラッチ6
12のデータを選択出力する。このときの入力データA
DMPXは、波形データのアドレス基準値WADであ
る。加減算器601は、ADMPX(WAD)+ラッチ
612を計算し、2クロック後に加算結果を出力する。
【0070】上述したようにアドレス発生処理では便宜
上ループ部の先頭位置をアドレス0の基準として処理を
行なっているが、波形データは実際には波形メモリ20
8の所定のアドレスに格納されている。そこで、波形デ
ータのアドレス基準値WAD(当該波形データのループ
部先頭位置の波形メモリ上でのアドレス)を加算して、
読み出しアドレスを波形メモリ上のアドレスに変換す
る。
【0071】上記加算結果は、ラッチ614に格納され
るとともに(ダウンシフタ607,610は何れもスル
ー)、波形メモリアドレス発生器611を介して波形メ
モリ208へのアドレスWMDとして出力される。波形
メモリアドレス発生器611は、読み出しアドレスを、
実際にメモリをアクセスする際に必要なローアドレスと
カラムアドレスに変換する機能を果たす。
【0072】12.処理番号12では、セレクタA60
2はデータ「1」を選択出力し、セレクタB603はラ
ッチ614のデータを選択出力する。加減算器601
は、1+ラッチ614のデータを計算し、2クロック後
に加算結果を出力する。これは、2点補間を行なうため
に、処理番号11で得たアドレスの次のアドレスを算出
するものである。加算結果は、ラッチ614に格納され
るとともに(ダウンシフタ607,610は何れもスル
ー)、波形メモリアドレス発生器611を介して波形メ
モリへのアドレスWMDとして出力される。なお、小数
部すなわちARAM114の現アドレス下位ADLは、
適当なタイミングでラッチ604にラッチされ、補間用
小数部FRACとして出力される。さらに、減算器61
5により1−FRACが計算され出力される。
【0073】本実施例は補間方式として2点の直線補間
を採用したが、例えば4点補間を行なう場合には、引き
続き処理番号13,14で処理番号12と同じ処理を行
なえば、処理番号12で得たアドレスの次および次の次
のアドレスを順次出力するようにできる。
【0074】また、波形メモリに記憶された波形が圧縮
されている場合、圧縮波形のサンプルを飛ばし読みする
と元の波形がデコードできないので、2サンプルを供給
するために、2以上のサンプルを読み出す場合もある。
さらに、長いビットの波形サンプル(例えば、16ビッ
ト)が2アドレスにまたがって記憶されている場合は、
連続する4アドレスを読み出すことにより、直線補間に
必要な2サンプルが再生できる。
【0075】以上の波形メモリアドレス発生に係る処理
の概要を下記に式のみで処理番号別に示す。
【0076】1.LFO+0→UD 2.LFO+UD↓1→UD 3.LFO+UD↓1→UD 4.ADMPX(PIT0)+UD→PIT1 5.ARAM(ADL)+PIT2→UD,ARAM
(ADL) 6.ARAM(ADH)+UD↓14→UD,ARAM
(ADH),ラッチ612 7.ADMPX(−LL)+UD→合成器(ARAM
(ADL)と合成) 8.(合成器+0→UD) 9.(ADMPX(LFR)+UD→UD,ARAM
(ADL)) 10.(0+UD↓14→ARAM(ADH),ラッチ
612) …処理番号8〜10は、処理番号7でキャリー非発生時
のみ 11.ADMPX(WAD)+ラッチ612→ラッチ6
14,WMA 12.1+ラッチ614→ラッチ614,WMA (13.1+ラッチ614→ラッチ614,WMA) (14.1+ラッチ614→ラッチ614,WMA)
【0077】次に、遅延用DRAMアドレス発生につい
て説明する。図7の行703に示す1,2,…,6の数
字が記載されたスロットは、遅延用DRAM209の書
き込み/読み出しアドレス発生処理を行なうスロットを
示している。また、それらの数字は下記の処理番号に対
応している。以下、遅延用DRAMアドレス発生に係る
処理番号1〜6の処理について説明する。
【0078】1.処理番号1では、セレクタA602は
データ「1」を選択出力し、セレクタB603はラッチ
613のデータを選択出力する。加減算器601は、ラ
ッチ613のデータ−1を計算する。計算結果は再びラ
ッチ613に格納される(ダウンシフタ607,610
は何れもスルー)。
【0079】ラッチ613は、DSP(波形演算部10
4が波形データに効果付与するためのエフェクト演算を
行なうとき、これを単にDSPと呼ぶものとする)の基
準カウント値を格納するラッチである。DSPは所定の
ステップ数のマイクロプログラムを繰り返し実行するル
ープ処理を行なうが、その1回のループの時間が1DA
Cサイクルに一致するようになっている。基準カウント
値はDSPが遅延用DRAM209にアクセスするとき
の基準アドレスになるが、この基準カウント値は上記の
ループ処理が1回終わるごとにカウントダウンされる。
処理番号1ではそのカウントダウンの処理を行なう。1
DACサイクルに1回カウントダウンすればよいから、
本処理番号1の処理は、1DACサイクルのうちの何れ
かのタイミングで1回実行される。なお、基準カウント
値の初期値は、このアドレス発生部102が動作を開始
した時点で、あるいは基準カウント値が0に至った1D
ACサイクルの次の1DACサイクルで、ラッチ613
に外部からセットするようになっている。
【0080】2.処理番号2では、セレクタA602は
ARAM114の遅延量DL1を選択出力し(合成器6
05はスルーする)、セレクタB603はラッチ613
の基準カウント値を選択出力する。加減算器601は、
基準カウント値+DL1を計算し、2クロック後に加算
結果を出力する。基準カウント値は、処理番号1で説明
したように1DACサイクルごとにカウントダウンされ
ていくから、基準カウント値+DL1は、現時点から遅
延量DL1以前のアドレスを示すことになる。したがっ
て、本処理番号2により遅延量DL1だけ遅延したアド
レスが生成される。加減算器601の加算結果は、ダウ
ンシフタ607,610をスルーしてセレクタB603
に入力し、次の処理番号3の処理で使用される。なお、
基準カウント値+DL1の計算結果が遅延用DRAM2
09の最終アドレスを越えることは考慮する必要が無い
ように、遅延用DRAM209のメモリサイズは1Mビ
ットや4Mビットなどに合せてある。すなわち、加算結
果の所定の上位ビットを捨てればよいようになってい
る。
【0081】3.処理番号3では、セレクタA602は
ゲート606からの入力データを選択出力し、セレクタ
B603は処理番号2の加算結果UD(遅延量DL1だ
け遅延したアドレス)を選択出力する。ゲート606は
開くように制御されるので、加減算器601は、LFO
+UDを計算する。LFOを加算するのは、変調をかけ
るためである。LFOは、このタイミングで不図示の低
周波発振器から出力される低周波信号である。加算結果
は、ダウンシフタ607をスルーし、DRAMアドレス
発生器608を介して、遅延用DRAM209の書き込
み/読み出しアドレスDMAとして出力される。DRA
Mアドレス発生器608は、算出したアドレスを、実際
にメモリをアクセスする際に必要なローアドレスとカラ
ムアドレスに変換する機能を果たす。
【0082】4.処理番号4は遅延用DRAMをクリア
する場合にのみ実行される処理であるので後述する。
【0083】5,6.処理番号5および6は上記処理番
号2および3の処理と同様である。ただし、遅延量DL
1の代わりに遅延量DL2を用いる。すなわち、処理番
号5でその基準カウント値に遅延量DL2を加算し、処
理番号6でLFOを加算して、遅延用DRAM209の
アドレスDMAを出力する。
【0084】なお、上記処理により2回の遅延アドレス
発生が行なえるが、そのアクセスは時分割32チャンネ
ルの波形メモリアドレス発生処理とは無関係である。1
DACサイクルは24クロック×32チャンネルである
から、1DACサイクル中に64回の遅延アドレス発生
を行なえるが、ここではその64回のうちの適当な2回
で遅延アドレス発生を行なっている。その2回のアクセ
スの遅延量を指定するために、ARAM114に遅延量
DL1とDL2を記憶している。
【0085】以上の1〜3,5,6の処理は遅延したデ
ータをアクセスするための遅延用DRAMアドレスの発
生処理であるが、これらを利用して遅延用DRAM20
9をクリアするためのアドレス発生を行なうことができ
る。その場合は、処理番号4の処理を追加する。以下、
遅延用DRAM209をクリアするためのアドレス発生
処理について説明する。
【0086】処理番号1〜3で上述の遅延用DRAMア
ドレス発生処理と同じ処理を行なう。ただし、処理番号
1は、1DACサイクルで1回のみ実行するのでなく、
1DACサイクルの全チャンネルのスロット番号1のス
ロットで常に実行する。また、処理番号2では遅延量D
L1をデータ「0」とし、処理番号3ではLFOをデー
タ「0」とする。さらに、処理番号4〜6でも同じ処理
を行なう。
【0087】以上より、ラッチ613の基準カウント値
をカウントダウンし、その値を出力する処理を、全チャ
ンネルの処理番号1〜3と4〜6で行ない、DRAMの
ベタのアドレス(アドレス最終値からアドレス0に向か
う)を出力する。このベタのアドレスで、DRAM20
9の各アドレス位置をクリア(初期設定)する。なお、
DRAMクリア用のアドレス発生を行なうときは、ラッ
チ613には初期値としてDRAM209の最終アドレ
スを設定する。また、アドレス0を出力したらそこでア
ドレス発生の処理を終了する。
【0088】以上の遅延用DRAMアドレス発生に係る
処理の概要を下記に式のみで処理番号別に示す。
【0089】1.(ラッチ613−1→ラッチ613)
…1DACサイクルに1回またはDRAMクリア時 2.ARAM(DL1)+ラッチ613→UD 3.LFO+UD→RAOUT 4.(ラッチ613−1→ラッチ613)…DRAMク
リア時 5.ARAM(DL2)+ラッチ613→UD 6.LFO+UD→RAOUT
【0090】次に、図1の波形演算部104について詳
しく説明する。図8は、波形演算部104のブロック構
成を示す。波形演算部104は、図1に示したMPM1
11、TRAM112、CRAM113のほか、セレク
タC801、セレクタD802、ラッチ803、乗算器
804、セレクタE805、DRAMインターフェース
(DRAMI/O)806、セレクタF807、セレク
タG808、可変シフタ809、セレクタH810、セ
レクタI811、加減算器812、乗数発生器813、
指数発生器814、およびDRAMI/O815を備え
ている。波形演算部104は、時分割で動作し、セレク
タや乗算器、加減算器などは、各タイムスロットごとに
所定の動作を行なうように制御される。各タイムスロッ
トにおける各部の動作は、図9を参照して後述する。
【0091】図8において、加減算器804は、10ビ
ット×24ビットの乗算器であり、セレクタC801の
選択出力データとセレクタD802の選択出力データと
を入力して乗算を実行する。この乗算器804では、乗
算の結果が出るまでに4クロック分の遅延(4D)があ
る。加減算器812は、29ビットの加減算器であり、
セレクタH810の選択出力データとセレクタI811
の選択出力データとを入力して加算または減算を実行す
る。この加減算器812では、加減算の結果が出るまで
に4クロック分の遅延(4D)がある。
【0092】図9は、図8の波形演算部104のタイミ
ングチャートを示す。図9および図8を参照して、各タ
イムスロットにおける波形演算部104の各部の動作を
説明する。図9の表記の仕方は図7と同様である。すな
わち図9は、1DAC周期768クロック(24クロッ
ク×時分割32チャンネル)動作のうちの1チャンネル
分を取り出した図である。なお、1つの発音チャンネル
の演算は、最初の24スロットの15,19番スロット
で補間演算、2番目の24スロットの6,10,14,
18,22番スロットおよび3番目の24スロットの2
番スロットでフィルタ演算、…のように複数の24スロ
ットにまたがって実行される。
【0093】行901に示す1,2の処理番号が記載さ
れたスロットは、当該チャンネルにおける波形データの
補間演算処理を行なうタイムスロットを示している。補
間演算処理の処理番号1,2の処理について説明する。
【0094】1.処理番号1では、セレクタC801は
1−FRACを選択出力し、セレクタD802は波形デ
ータWAVEを選択出力する。1−FRACは、図6の
アドレス発生部102の減算器615から出力されるデ
ータであり、1から小数部FRACを減算したものであ
る。波形データWAVEは、アドレス発生部102から
出力された読み出しアドレスにしたがって波形メモリ2
08から読み出された波形データである。
【0095】上述したように、本実施例では2点補間を
行なうので、アドレス発生部102は2点のアドレスを
順次出力する(波形メモリアドレス発生の処理番号11
と12)が、ここでは始めに出力されるアドレス(波形
メモリアドレス発生の処理番号11で出力されたアドレ
ス)により読み出された波形データがWAVEとして入
力する。乗算器804は、(1−FRAC)×WAVE
を計算し、4クロック後に計算結果MPYOを出力す
る。
【0096】セレクタE805は乗算器804の計算結
果MPYOを選択出力し、セレクタH810はセレクタ
E805からのデータMPYOを選択出力するから、加
減算器812にはデータMPYOが入力する。このと
き、セレクタI811は、データ「0」を選択出力す
る。加減算器812は、MPYO+0を計算し、4クロ
ック後に加算結果FAOを出力する。
【0097】2.処理番号2では、セレクタC801は
FRACを選択出力し、セレクタD802は波形データ
WAVEを選択出力する。FRACは、図6のアドレス
発生部102のラッチ604から出力される小数部デー
タFRACである。波形データWAVEは、アドレス発
生部102から出力された読み出しアドレスにしたがっ
て波形メモリ208から読み出された波形データであ
り、特に2点のうちの後の波形データ(波形メモリアド
レス発生の処理番号12で出力されたアドレスで読み出
した波形データ)である。乗算器804は、FRAC×
WAVEを計算し、4クロック後に計算結果MPYOを
出力する。
【0098】セレクタE805は乗算器804の計算結
果MPYOを選択出力し、セレクタH810はセレクタ
E805からのデータMPYOを選択出力するから、加
減算器812にはデータMPYOが入力する。このとき
セレクタI811は、上記処理番号1の処理結果である
加減算器812からのデータFAOを選択出力する。加
減算器812は、MPYO+FAOを計算し、4クロッ
ク後に加算結果NOUTを出力する。この結果NOUT
が、2点の波形データを小数部FRACに基づいて直線
補間した結果である。
【0099】補間結果の波形データNOUTは、図2の
矢印312に示したように外部に出力されて加工された
後に再び波形演算部104に戻り、フィルタ演算に用い
られる。具体的には、次のフィルタ演算の処理番号1で
セレクタI811への入力NINに戻ってくる。なお、
補間結果をそのままフィルタ演算に渡す場合はTRAM
112に補間結果を保持する領域を設けておき、そこに
格納して、フィルタ演算で必要なタイミングでTRAM
112からセレクタI811に入力するようにすればよ
い。
【0100】以上の補間演算処理の概要を下記に式のみ
で処理番号別に示す。
【0101】 1.(1−FRAC)×WAVE→MPYO MPYO+0→FAO 2.FRAC×WAVE→MPYO MPYO+FAO→NOUT
【0102】図9の行902に示す1〜6の処理番号が
記載されたスロットは、当該チャンネルにおける波形デ
ータのフィルタ演算処理を行なうタイムスロットを示し
ている。フィルタ演算処理の処理番号1〜6の処理につ
いて説明する。
【0103】1.処理番号1では、セレクタC801は
データMODを選択出力し、セレクタD802はTRA
M112のフィルタ演算用遅延データD1を選択出力す
る。このときの入力データMODは、制御レジスタから
のデータ「−q」である。qはフィルタ演算におけるフ
ィルタリング特性を規定するパラメータである。乗算器
804は、MOD(−q)×TRAM(D1)を計算
し、計算結果MPYOを出力する。なお、MOD(−
q)は、時分割の各タイムスロットで種々のデータがM
ODとして入力するが、この時点では−qが入力するこ
とを示している。また、TRAM(D1)は、図5に示
したTRAM112のうちデータD1を用いることを示
している。以下でも同様に表記する。
【0104】上記乗算結果MPYOは、4クロック後に
乗算器804から出力されセレクタE805に入力する
が、その時点ではセレクタE805は乗算結果MPYO
を選択出力し、セレクタH810は該セレクタE805
からの入力を選択出力する。したがって、この乗算結果
MPYOが加減算器812に入力する。一方、セレクタ
I811は入力データNIN(上述した補間演算の結果
NOUTを外部で加工して戻ってきたデータ)を選択出
力するから、加減算器812のもう一方の入力はNIN
である。加減算器812は、MPYO+NINを計算
し、4クロック後に加算結果FAOを出力する。この加
算結果FAOは次の処理番号2で使用される。
【0105】2.処理番号2では、セレクタC801は
データ「−1」を選択出力し、セレクタD802はTR
AM112のフィルタ演算用遅延データD2を選択出力
する。乗算器804は、−1×TRAM(D2)を計算
し、計算結果MPYOを出力する。上記乗算結果MPY
Oは、4クロック後に乗算器804から出力されセレク
タE805に入力するが、その時点ではセレクタE80
5は乗算結果MPYOを選択出力し、セレクタH810
は該セレクタE805からの入力を選択出力する。した
がって、この乗算結果MPYOが加減算器812に入力
する。
【0106】一方、セレクタI811は処理番号1の結
果FAOを選択出力する。したがって、加減算器812
は、MPYO+FAOを計算し、4クロック後に加算結
果を出力する。この加算結果は、TRAM112のテン
ポラリエリアXに書き込まれ、処理番号4で使用され
る。テンポラリエリアXは、遅延データD1の格納領域
を用いて差し支えないので、ここでは該領域を用いてい
る。
【0107】3.処理番号3では、セレクタI811は
TRAM112のフィルタ演算用遅延データD1を選択
出力し、セレクタH810はデータ「0」を選択出力す
る。加減算器812は、TRAM(D1)+0を計算
し、加算結果FAOを4クロック後に出力する。これは
フィルタ演算用遅延データD1を次の処理番号4で使用
するためにタイミングを合せるための処理である。
【0108】また本処理番号3のスロットでは、上記の
フィルタ演算ための処理以外に、図6の波形メモリアド
レス発生処理の処理番号4で説明したように、1オクタ
ーブ内でのピッチを示すピッチデータPIT1をシフト
して、オクターブ分も合せたピッチデータPIT2とし
て出力する処理を行なっている。具体的には、まずセレ
クタC801はデータMODを選択出力する。このとき
データMODとして、オクターブ分のシフト量を示すオ
クターブデータOCT(MODの上位5ビット)が入力
している。セレクタF807は、セレクタC801が選
択出力するデータMODの上位5ビット、すなわちオク
ターブデータOCTを選択出力する。セレクタG808
はピッチデータPIT1を選択出力するから、可変シフ
タ809には、セレクタG808からピッチデータPI
T1が入力し、セレクタF807からオクターブデータ
OCTが入力することになる。可変シフタ809は、ピ
ッチデータPIT1をオクターブデータOCTだけシフ
トし、シフト結果(オクターブ分を含むピッチデータP
IT2)を出力する。このピッチデータPIT2が、図
6の波形メモリアドレス発生処理の処理番号5で使用さ
れる。
【0109】4.処理番号4では、セレクタC801は
エンベロープ発生器106からのデータEGOUTを選
択出力し、セレクタD802はTRAM112のテンポ
ラリエリアXからのデータ(処理番号2で設定)を選択
出力する。EGOUTとしてはフィルタ演算における周
波数特性を規定するパラメータKが入力する。乗算器8
04は、EGOUT(K)×TRAM(X)を計算し、
計算結果MPYOを出力する。上記乗算結果MPYO
は、4クロック後に乗算器804から出力されセレクタ
E805に入力するが、その時点ではセレクタE805
は乗算結果MPYOを選択出力し、セレクタH810は
該セレクタE805からの入力を選択出力する。したが
って、この乗算結果MPYOが加減算器812に入力す
る。
【0110】一方、セレクタI811は、処理番号3の
結果FAOを選択出力する。したがって、加減算器81
2は、MPYO+FAOを計算し、4クロック後に加算
結果を出力する。この加算結果は、TRAM112のフ
ィルタ演算用遅延データD1に書き込まれる。
【0111】5.処理番号5では、セレクタI811は
TRAM112のフィルタ演算用遅延データD2を選択
出力し、セレクタH810はデータ「0」を選択出力す
る。加減算器812は、TRAM(D2)+0を計算
し、加算結果FAOを4クロック後に出力する。これは
フィルタ演算用遅延データD2を次の処理番号6で使用
するためにタイミングを合せるための処理である。ま
た、本処理番号5のスロットでは、上記のフィルタ演算
ための処理以外の処理も行なっているが、ここでは省略
する。
【0112】6.処理番号6では、セレクタC801は
エンベロープ発生器106からのデータEGOUTを選
択出力し、セレクタD802はTRAM112のフィル
タ演算用遅延データD1を選択出力する。EGOUTと
してはフィルタ演算における周波数特性を規定するパラ
メータKが入力する。乗算器804は、EGOUT
(K)×TRAM(D1)を計算し、計算結果MPYO
を出力する。上記乗算結果MPYOは、4クロック後に
乗算器804から出力されセレクタE805に入力する
が、その時点ではセレクタE805は乗算結果MPYO
を選択出力し、セレクタH810は該セレクタE805
からの入力を選択出力する。したがって、この乗算結果
MPYOが加減算器812に入力する。
【0113】一方、セレクタI811は、処理番号5の
結果FAOを選択出力する。したがって、加減算器81
2は、MPYO+FAOを計算し、4クロック後に加算
結果を出力する。この加算結果は、TRAM112のフ
ィルタ演算用遅延データD2に書き込まれる。この書き
込みデータD2が、フィルタ演算の結果である。
【0114】以上のフィルタ演算処理の概要を下記に式
のみで処理番号別に示す。
【0115】 1.MOD(−q)×TRAM(D1)→MPYO MPYO+NIN→FAO 2.(−1)×TRAM(D2)→MPYO MPYO+FAO→TRAM(X) 3.(PIT1をMOD(OCT)に応じてシフト→P
IT2) TRAM(D1)+0→FAO 4.EGOUT(K)×TRAM(X)→MPYO MPYO+FAO→TRAM(D1) 5.(その他の処理) TRAM(D2)+0→FAO 6.EGOUT(K)×TRAM(D1)→MPYO MPYO+FAO→TRAM(D2)
【0116】図10は、上記フィルタ演算処理のアルゴ
リズムを示す。上記処理番号1は、遅延部1007で遅
延したデータD1にqを乗算し(1009)、マイナス
を付けて、加算部1001で入力データNINと加算す
る処理に相当する。処理番号2は、遅延部1008で遅
延したデータD2にマイナスを付けて、加算部1002
で加算部1001の出力データに加算する処理に相当す
る。処理番号3と4は、加算部1002の出力データに
エンベロープ発生器106からのパラメータKを乗算
(1003)し、遅延データD1と加算(1004)す
る部分に相当する。処理番号5と6は、加算部1004
の出力データにエンベロープ発生器106からのパラメ
ータKを乗算(1005)し、遅延データD2と加算
(1006)する部分に相当する。
【0117】図9の行903に示す1〜6の処理番号が
記載されたスロットは、時分割チャンネル出力累算処理
を行なうタイムスロットを示している。この処理の処理
番号1〜7の処理について説明する。
【0118】0.処理番号1〜7の前処理として、未使
用スロットを使ってTRAM112の遅延データD2、
すなわち上記フィルタ演算の結果データD2をラッチ8
03にラッチしておく。
【0119】1.処理番号1では、セレクタC801は
データEGOUTを選択出力し、セレクタD802はラ
ッチ803のデータを選択出力する。このときエンベロ
ープ発生器106から出力されるEGOUTは、リバー
ブ用のエンベロープデータEGREVである。乗算器8
04は、EGOUT(EGREV)×ラッチ803のデ
ータを計算し、計算結果MPYOを出力する。この乗算
結果MPYOは、4クロック後に乗算器804から出力
されセレクタE805に入力するが、その時点ではセレ
クタE805は乗算結果MPYOを選択出力し、セレク
タH810は該セレクタE805からの入力を選択出力
する。したがって、この乗算結果MPYOが加減算器8
12に入力する。
【0120】一方、セレクタI811はTRAM112
のリバーブ用累算値REVを選択出力する。なお、第1
チャンネルの処理のときに、TRAM112のリバーブ
用累算値REVの領域はゼロクリアしておく。加減算器
812は、MPYO+TRAM(REV)を計算し、4
クロック後に加算結果を出力する。この加算結果は、再
びTRAM112のリバーブ用累算値REVに格納され
る。以上のようにして、各チャンネルの波形データにリ
バーブ用エンベロープデータEGREVを乗算して累算
し、全チャンネルについて累算した結果を得る。累算結
果は、TRAM112のリバーブ用累算値REVに格納
されていることになる。
【0121】以上の処理番号1の処理の概要を式で表す
と以下のようになる。
【0122】1.EGOUT(EGREV)×フィルタ
演算結果データ→MPYO MPYO+TRAM(REV)→TRAM(REV)
【0123】2〜7.処理番号2〜7の処理は、上記処
理番号1と同じである。ただし、EGOUTは、リバー
ブ用エンベロープデータEGREVの代わりに、それぞ
れ、ドライL用エンベロープデータEGDL、ドライR
用エンベロープデータEGDR、コーラスL用エンベロ
ープデータEGCHL、コーラスR用エンベロープデー
タEGCHR、バリエーションL用エンベロープデータ
EGVAL、およびバリエーションR用エンベロープデ
ータEGを用いる。これらのエンベロープデータは、そ
れぞれ処理番号2〜7のタイミングでエンベロープ発生
器106から出力される。また、TRAM112内の累
算値を格納する領域は、リバーブ用累算値REVの代わ
りに、それぞれ、ドライL用累算値DL、ドライR用累
算値DR、コーラスL用累算値CHL、コーラスR用累
算値CHR、バリエーションL用累算値VAL、および
バリエーションR用累算値VARの各領域を用いる。
【0124】すなわち、式で表すと以下のようになる。
【0125】2.EGOUT(EGDL)×フィルタ演
算結果データ→MPYO MPYO+TRAM(DL)→TRAM(DL) 3.EGOUT(EGDR)×フィルタ演算結果データ
→MPYO MPYO+TRAM(DR)→TRAM(DR) 4.EGOUT(EGCHL)×フィルタ演算結果デー
タ→MPYO MPYO+TRAM(CHL)→TRAM(CHL) 5.EGOUT(EGCHR)×フィルタ演算結果デー
タ→MPYO MPYO+TRAM(CHR)→TRAM(CHR) 6.EGOUT(EGVAL)×フィルタ演算結果デー
タ→MPYO MPYO+TRAM(VAL)→TRAM(VAL) 7.EGOUT(EGVAR)×フィルタ演算結果デー
タ→MPYO MPYO+TRAM(VAR)→TRAM(VAR)
【0126】図9の行904に示す○印が記載されたス
ロットは、波形演算部104によるエフェクト演算処理
を行なうタイムスロットを示している。波形演算部10
4によるエフェクト演算処理は、従来のディジタル・シ
グナル・プロセッサ(DSP)で行なわれていたエフェ
クト演算処理と同様の処理である。すなわち、MPM1
11(図1)のマイクロプログラムが1ステップずつ図
9の○印のスロットで読み出され、該マイクロプログラ
ムにより波形演算部104の各部が制御されてエフェク
ト演算動作を行なう。
【0127】具体的には、上記の時分割チャンネル出力
累算処理によりTRAM112に7系統の累算値が設定
されているから、それらの累算値をセレクタD802を
介して乗算器804に入力し、CRAM113から係数
データCOEFを読み出してセレクタC801を介して
乗算器804に入力する。そして、乗算結果をセレクタ
E805およびセレクタH810を介して(あるいはセ
レクタG808を介して可変シフタ809でシフトし
て)、加減算器812に入力し加減算を行なう。加減算
器812のもう一方の入力としては、加減算器812の
出力、あるいはTRAM112の累算値やエフェクト演
算用テンポラリデータを用いる。加減算の結果は、加減
算器812の入力側に戻したり、TRAM112とセレ
クタD802を介して乗算器804の入力側に戻すこと
ができる。さらに、加減算器812の計算結果に応じて
乗数発生部813で乗数YMを発生し、セレクタC80
1を介してその乗数YMを乗算器804に入力すること
もできる。以上のようにして、従来のDSPと同様にエ
フェクト演算を行なうことができる。
【0128】特に、この波形演算部104では、固定小
数点データと浮動小数点データとの相互の変換を行なえ
るように可変シフタ809を備えている。遅延用DRA
M209に格納されるデータなどは浮動小数点データで
あるが、加減算は固定小数点データに施すからである。
【0129】例えば、セレクタC801に入力した係数
データCOEFが浮動小数点データであるときは、係数
データCOEFの指数部(上位5ビット)をセレクタF
807を介して可変シフタ809にシフト量として入力
し、係数データCOEFの仮数部(下位10ビット)を
乗算器804に入力して乗算を行ない、乗算結果はセレ
クタE805およびセレクタG808を介して可変シフ
タ809に入力する。そして、可変シフタ809でその
乗算結果を係数データCOEFの指数部に応じてシフト
して固定小数点データに変換する。
【0130】また、遅延用DRAM209から読み出し
た浮動小数点データを固定小数点データに変換するとき
は、以下のようにする。まず、遅延用DRAM209か
らの読み出しは高速ページモードで4ビット×4回で行
なわれるので、DRAMI/O806でそれらを結合し
て16ビットの浮動小数点データに変換し、その指数部
EXP1はセレクタF807を介して可変シフタ809
にシフト量として入力する。仮数部は、セレクタG80
8を介して可変シフタ809に入力し、指数部EXP1
に応じてシフトして固定小数点データに変換する。
【0131】一方、加減算器812からの固定小数点デ
ータの出力を浮動小数点データに変換するときは、以下
のようにする。まず、加減算器812からの固定小数点
データの出力を指数発生部814に入力する。指数発生
部814は、入力した固定小数点データから指数部EX
P2を求めるとともに、入力データをスルーしてセレク
タG808を介して可変シフタ809に入力するように
する。可変シフタ809は、その入力データを指数部E
XP2に応じてシフトアップし、仮数部を生成する。そ
の仮数部は可変シフタ809からDRAMI/O815
に入力し、また指数発生部814から指数部EXP1
(これはEXP2の符号を変えたもの、すなわち−EX
P2である)がDRAMI/O815に入力する。DR
AMI/O815は、入力した浮動小数点データを高速
ページモードで4ビット×4回でDRAM209に書き
込む。
【0132】なお、エフェクト演算は、累算結果に対し
て施すもので、時分割32チャンネルの処理とは関係が
ない。図9に示したように1チャンネル分の24クロッ
ク分をみると、そのうちの6クロックでエフェクト演算
を行なう。具体的には、1DACサイクルの全192ク
ロック(6クロック×32)を用いて、192ステップ
分のマイクロプログラム動作を行ない、これにより7系
列の累算結果を入力して1つのエフェクト結果(図11
の出力OUT_LとOUT_R)を生成する。アドレス
発生部102では24クロックで2回の遅延用DRAM
209のアドレス発生を行なうようになっていたから、
これをマイクロプログラム側からみると3ステップに1
回、遅延用DRAM209へのデータ書き込み/読み出
しができることになる。
【0133】図11は、波形演算部104におけるエフ
ェクト演算により実現されるエフェクタの機能を表すブ
ロック図である。大きく分けて、リバーブ、コーラス、
およびバリエーション部がある。なお、エフェクト演算
の出力信号OUT_LおよびOUT_Rは、図8のTR
AM112から図3の出力制御部(パラレルシリアル変
換器)310に送出される。図11のエフェクタにおけ
る複数の入力は、それぞれ、先に説明した累算値DL,
DR,…,VARに1対1で対応しており、各入力には
各累算値の全発音チャンネルにわたる累算結果がサンプ
リング周期毎に入力される。また、図11のバリエーシ
ョンのブロック中の4つの枠の記載、すなわちコーラス
(Chorus)その他、フェーザー(Phase
r)、初期反射(ER)+ディストーション(Dis
t.)、リバーブ(Reverb)+ワウ(Wah)
が、それぞれ、図13のエフェクトプログラムの4つの
バリエーションVA1,VA2,VA3,VA4と対応
している。
【0134】図12は、波形演算部104の各部に送る
制御クロックを発生する波形演算部制御クロック発生部
の構成を示す。波形演算部制御クロック発生部は、タイ
ミング発生器1201、マイクロプログラム(MP)ア
ドレス発生回路1202、マイクロプログラムROM1
11(図1のMPM)、および制御クロックセレクタ1
204を備えている。
【0135】制御クロックセレクタ1204は、4スロ
ットに1回(すなわち、図9の行904に示した○印の
スロットで)マイクロプログラムROM111から出力
されるマイクロプログラムを選択出力する。それ以外の
スロットでは、セレクタ1204によりタイミング発生
器1201に切換えて、音源としての動作をするための
各種の信号を出力する。タイミング発生器1201で
は、マイクロプログラムのアドレスのベースとなるカウ
ント値や、エフェクト演算以外の演算(補間演算、フィ
ルタ演算、出力累算演算)動作のための制御クロックを
発生する。
【0136】図13は、マイクロプログラムROM11
1が格納しているエフェクトプログラムを示す。エフェ
クトは、図11でも示したように、バリエーション、コ
ーラス、およびリバーブの3系統から構成される。バリ
エーションについては、4つの異なるプログラム130
1〜1304のうちから1つを選択可能になっている。
【0137】図14(a)は、この実施例の電子楽器に
おけるメインルーチンのフローチャートである。この電
子楽器の電源がオンされると、CPU204は、まずス
テップS1で各種の初期設定を行ない、ステップS2で
鍵処理を行なう。これは、鍵盤201の鍵操作を検出
し、その操作に応じた処理を行なうものである。ステッ
プS3では、パネルスイッチ処理を行なう。これは、パ
ネルスイッチ203の操作を検出し、その操作に応じた
処理を行なうものである。ステップS3の後、ステップ
S2に戻る。
【0138】図14(b)は、キーオンイベントルーチ
ンのフローチャートである。図1のステップS2の鍵処
理において鍵盤201の何れかの鍵が押下されると本キ
ーオンイベントルーチンが実行される。まず、ステップ
S11で、発音すべき楽音の音色番号をレジスタTC
に、ノート番号をレジスタNNに、それぞれセットす
る。ステップS12では、発音チャンネルを割り当て
る。割当てた発音チャンネルのナンバはレジスタiにセ
ットする。次に、ステップS13で、音色番号TCおよ
びノート番号NNに応じた音色データを音源部207の
第iチャンネルの制御レジスタ101に書き込む。ステ
ップS14では、ARAM114の第iチャンネルの現
アドレス下位ADLおよび上位ADHにスタートアドレ
スをセットする。次に、ステップS15でTRAM11
2の第iチャンネルの遅延データD1,D2をクリアし
て、ステップS16で制御レジスタのiチャンネルにノ
ートオンを送出する。これにより、既に説明したような
動作による楽音の発生を開始する。
【0139】図14(c)は、エフェクト選択イベント
ルーチンのフローチャートである。図1のステップS3
のパネルスイッチ処理においてパネル上のエフェクト選
択スイッチが押下されると本エフェクト選択イベントル
ーチンが実行される。まず、ステップS21で、ユーザ
が選択したエフェクトの番号をレジスタENにセットす
る。次に、ステップS22で現在発音されている音をミ
ュートし、ステップS23で遅延用DRAM209、お
よびTRAM112のテンポラリデータをクリアする。
ステップS24では、選択されたエフェクトENに基づ
いて、用いるべきバリエーションのマイクロプログラム
の選択情報VALSELを設定する。このVALSEL
に応じて、図13の4つの異なるプログラム1301〜
1304のうちから1つが決定される。次に、ステップ
S25で係数メモリCRAM113にエフェクトENの
各ステップの係数を設定する。そして、ステップS26
でミュートをオフする。
【0140】上記実施例によれば、波形メモリ208の
読み出しアドレス発生と遅延用DRAM209のアクセ
スアドレス発生とを1つのアドレス発生部102で時分
割で行なうようにしている。したがって、マイクロプロ
グラムがアドレスの発生から完全に切り離されたので、
マイクロプログラムのステップ数が節約されるととも
に、プログラミングの容易化が達成される。
【0141】なお、本発明の構成でFM方式の楽音合成
を行うこともできる。その場合、波形メモリには各オペ
レータの基本波形となる1周期分の波形データを記憶さ
せ、アドレス発生器の発生するアドレスを位相データと
して利用する。そして、波形演算部の出力する波形デー
タを、セレクタ602に入力データの1つとして供給
し、発生した該位相データに対するFM変調演算を行
う。
【0142】また、遅延RAMを用いた遅延処理を、バ
リエーション、コーラス、リバーブ等のエフェクト処理
に以外に、物理モデル演算、回帰型演算等の楽音生成処
理や、櫛形フィルタ演算、補間フィルタ演算等のフィル
タ処理に適用しても良い。
【0143】
【発明の効果】請求項1に係る発明によれば、1つのア
ドレス発生手段を共用して、2種類のアドレス(波形メ
モリアドレスと遅延メモリアドレス)を発生することが
できる。したがって、全体構成を単純化しかつ回路規模
を小さくできる。請求項2に係る発明では、波形演算手
段は、エフェクト処理以外の楽音特性付与も実行するの
で、より構成が簡単になる。請求項3に係る発明では、
1つの回路で複数楽音の生成とエフェクト処理を行なう
ので、より構成が簡単になる。請求項4に係る発明で
は、1つの回路で複数楽音の生成と効果付与処理を行な
うので、より構成が簡単になる。
【0144】請求項5に係る発明では、遅延メモリのア
ドレスも同時に生成しているにもかかわらず、波形メモ
リのアドレスは時分割チャンネルに同期して発生するの
で、タイミングの調整が不要であり、より構成が簡単に
なる。請求項6に係る発明では、波形メモリのアドレス
も同時に生成しているにもかかわらず、遅延メモリのア
ドレスはエフェクト演算に適したタイミングで行なわれ
るので、より構成が簡単になる。請求項7に係る発明で
は、波形メモリアドレス発生と遅延メモリアドレス発生
に必要なデータを共通のメモリに記憶しているので、よ
り構成が簡単になる。
【図面の簡単な説明】
【図1】この発明の一実施例に係る音源部のハードウエ
ア的なブロック構成図
【図2】図1の音源装置を適用した電子楽器の全体のブ
ロック構成図
【図3】音源部内におけるデータの流れに着目した機能
的な流れ図
【図4】ARAMのメモリマップ図
【図5】TRAMのメモリマップ図
【図6】アドレス発生部のブロック構成図
【図7】アドレス発生部のタイミングチャート図
【図8】波形演算部のブロック構成図
【図9】波形演算部のタイミングチャート図
【図10】フィルタ演算処理のアルゴリズムを示す図
【図11】エフェクタの機能を表すブロック図
【図12】波形演算部制御クロック発生部の構成図
【図13】マイクロプログラムROMが格納しているエ
フェクトプログラムを示す図
【図14】メインルーチン、キーオンイベントルーチ
ン、およびエフェクト選択イベントルーチンのフローチ
ャート図
【符号の説明】
101…制御レジスタ、102…アドレス発生部、10
3…圧縮解除部、104…波形演算部、105…DAC
インターフェース(DACI/O)、106…エンベロ
ープ発生器、201…鍵盤、202…表示部、203…
スイッチ群(SW)、204…中央処理装置(CP
U)、205…リードオンリメモリ(ROM)、206
…ランダムアクセスメモリ(RAM)、207…音源
部、208…波形メモリ、209…遅延用ダイナミック
RAM(DRAM)、210…ディジタルアナログ変換
器(DAC)、211…サウンドシステム(SS)、2
12…CPUバス。

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】中央処理装置からの命令を受けて、ディジ
    タル楽音波形を出力する音源装置であって、 波形データを記憶した波形メモリと、 データを書き込み所定時間の後に読み出すことにより、
    遅延したデータを得るための遅延用メモリと、加算あるいは減算を行なう1つの演算器を少なくとも有
    し、 前記波形メモリから波形データを読み出すための波
    形メモリアドレスと、前記遅延用メモリに対して書き込
    み/読み出しするための遅延用メモリアドレスとを、
    記少なくとも1つの演算器を時分割に動作させることに
    より発生するアドレス発生手段と、 前記波形メモリから読み出された波形データに対し、前
    記遅延用メモリを用いたエフェクト処理を含む楽音生成
    演算処理を施し、楽音波形データを得る波形演算手段と
    を備えたことを特徴とする波形メモリ音源装置。
  2. 【請求項2】前記楽音生成演算は、読み出された波形デ
    ータに対するサンプル補間演算、フィルタ処理、および
    音量変化制御のうち少なくとも1つを含み、該波形デー
    タに対する所望の楽音特性付与を行う請求項1に記載の
    波形メモリ音源装置。
  3. 【請求項3】前記アドレス発生手段が発生する波形メモ
    リアドレスは、複数時分割チャンネルに対応した複数の
    波形メモリアドレスであり、 前記波形演算手段が実行する楽音生成演算は、前記波形
    メモリから前記複数の波形メモリアドレスに応じて読み
    出された複数の波形データに基づいて、複数時分割チャ
    ンネルに対応する波形データを生成する複数チャンネル
    処理を含む請求項1に記載の波形メモリ音源装置。
  4. 【請求項4】前記楽音生成演算は、生成された該複数時
    分割チャンネルに対応する波形データを累算する累算処
    理と、その累算結果に対して前記エフェクト処理による
    音響効果付与を行う効果付与処理とを含む請求項3に記
    載の波形メモリ音源装置。
  5. 【請求項5】前記アドレス発生手段は、前記波形演算手
    段の前記複数チャンネル処理の実行に同期して、前記複
    数の波形メモリアドレスを発生する請求項3に記載の波
    形メモリ音源装置。
  6. 【請求項6】前記アドレス発生手段は、前記エフェクト
    処理に同期して、前記遅延メモリアドレスを発生する請
    求項1に記載の波形メモリ音源装置。
  7. 【請求項7】前記アドレス発生手段は、波形メモリアド
    レスおよびディレイ量を記憶したアドレスメモリを備え
    ており、前記アドレス発生手段は、前記アドレスメモリ
    に記憶された波形メモリアドレスに基づいて新たな波形
    メモリアドレスを発生すると共に、前記アドレスメモリ
    に記憶されたディレイ量に基づいて遅延メモリアドレス
    を発生する請求項1に記載の波形メモリ音源装置。
  8. 【請求項8】 前記アドレス発生手段と前記波形演算手段
    とを別体に設けることを特徴とする請求項1に記載の波
    形メモリ音源装置。
JP7198116A 1994-12-30 1995-07-11 波形メモリ音源装置 Expired - Fee Related JP2910632B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7198116A JP2910632B2 (ja) 1994-12-30 1995-07-11 波形メモリ音源装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP6-338872 1994-12-30
JP33887294 1994-12-30
JP7198116A JP2910632B2 (ja) 1994-12-30 1995-07-11 波形メモリ音源装置

Publications (2)

Publication Number Publication Date
JPH08234760A JPH08234760A (ja) 1996-09-13
JP2910632B2 true JP2910632B2 (ja) 1999-06-23

Family

ID=26510770

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7198116A Expired - Fee Related JP2910632B2 (ja) 1994-12-30 1995-07-11 波形メモリ音源装置

Country Status (1)

Country Link
JP (1) JP2910632B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014112198A (ja) * 2012-11-05 2014-06-19 Yamaha Corp 音発生装置

Also Published As

Publication number Publication date
JPH08234760A (ja) 1996-09-13

Similar Documents

Publication Publication Date Title
JPH06195073A (ja) 効果付与装置
US5596645A (en) Sound image localization control device for controlling sound image localization of plural sounds independently of each other
JP2722795B2 (ja) 楽音合成装置
JPH04306697A (ja) ステレオ方式
JP3008922B2 (ja) 楽音発生装置および楽音発生方法
JPH0883066A (ja) 電子楽器
JP2910632B2 (ja) 波形メモリ音源装置
JP3016470B2 (ja) 音源装置
JP3104873B2 (ja) 音源装置
JPH0310959B2 (ja)
JP3095018B2 (ja) 楽音発生装置
JPH03121493A (ja) 電子楽器
JP3459016B2 (ja) オーディオ信号処理方法および装置
JP3552265B2 (ja) 音源装置および音声信号形成方法
JP3525482B2 (ja) 音源装置
JPS6352399B2 (ja)
JPS61204697A (ja) 楽音信号発生装置
JP3508139B2 (ja) デジタル信号処理プロセッサ
JP2671825B2 (ja) 波形合成装置
JP2580795B2 (ja) 電子楽器
JPH08211873A (ja) 効果付与装置
JP2814939B2 (ja) 波形処理装置
JP2833485B2 (ja) 楽音発生装置
JP2940440B2 (ja) 電子楽器の波形データ圧縮記録方法および波形データ再生方法
JPH021314B2 (ja)

Legal Events

Date Code Title Description
S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20090409

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20090409

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100409

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20110409

Year of fee payment: 12

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

Free format text: PAYMENT UNTIL: 20120409

Year of fee payment: 13

LAPS Cancellation because of no payment of annual fees