JP3104873B2 - 音源装置 - Google Patents

音源装置

Info

Publication number
JP3104873B2
JP3104873B2 JP11303202A JP30320299A JP3104873B2 JP 3104873 B2 JP3104873 B2 JP 3104873B2 JP 11303202 A JP11303202 A JP 11303202A JP 30320299 A JP30320299 A JP 30320299A JP 3104873 B2 JP3104873 B2 JP 3104873B2
Authority
JP
Japan
Prior art keywords
data
program
waveform
processing
address
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
JP11303202A
Other languages
English (en)
Other versions
JP2000122644A (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 JP11303202A priority Critical patent/JP3104873B2/ja
Publication of JP2000122644A publication Critical patent/JP2000122644A/ja
Application granted granted Critical
Publication of JP3104873B2 publication Critical patent/JP3104873B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Reverberation, Karaoke And Other Acoustics (AREA)
  • Electrophonic Musical Instruments (AREA)

Description

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

    (57)【特許請求の範囲】
  1. 【請求項1】中央処理装置からの命令を受けて、ディジ
    タル楽音波形を出力する音源装置であって、 複数チャンネルの波形データを生成するための第1プロ
    グラムと、チャンネル累算処理を行なう第2プログラム
    と、複数ブロックの効果付与処理を行なうための第3プ
    ログラムとを記憶した記憶手段と、 前記第1プログラム、前記第2プログラム、および前記
    第3プログラムを時分割で並行して実行する波形演算手
    段であって、 前記波形演算手段は、楽音のサンプリング周期をチャン
    ネル数分に分割した第1の時分割タイミングで前記第1
    プログラムを実行することにより複数チャンネルの波形
    データを生成出力し、前記第2プログラムを実行するこ
    とにより時分割チャンネル周期で出力される前記各チャ
    ンネルの波形データを、効果付与処理の各ブロックで使
    用される数だけ累算して累算結果を出力し、前記サンプ
    リング周期をエフェクトブロック数分に分割した、前記
    第1の時分割タイミングとは異なる、第2の時分割タイ
    ミングで前記第3プログラムを実行することにより、前
    記累算結果に対し複数ブロックの効果付与処理を実行す
    ることを特徴とする音源装置。
  2. 【請求項2】中央処理装置からの命令を受けて、ディジ
    タル楽音波形を出力する音源装置であって、 複数チャンネルの波形データを生成するための複数の各
    時分割チャンネルにおける処理を行なう第1プログラム
    と、チャンネル累算処理を行なう第2プログラムと、複
    数ブロックの効果付与処理を行なう第3プログラムとを
    記憶した記憶手段と、 生成する前記波形データおよび前記楽音データのサンプ
    リング周期内で時分割で、前記第1プログラム、前記第
    2プログラム、および前記第3プログラムを互いに並列
    実行する波形演算手段であって、前記第1プログラムで
    は、時分割チャンネル周期で各チャンネルの波形データ
    を生成出力し、前記第2プログラムでは、時分割チャン
    ネル周期で出力される前記各チャンネルの波形データに
    対して発音チャンネル数とは異なる数の複数系列の累算
    を行ないサンプリング周期毎の各系列の累算結果を出力
    し、前記第3プログラムでは、前記各系列の累算結果の
    それぞれに対し効果付与処理を実行し、それぞれ効果の
    付与された複数系列の楽音データを出力するものとを備
    えたことを特徴とする音源装置。
  3. 【請求項3】前記波形演算手段は、前記第1プログラム
    と前記第2プログラムと前記第3プログラムがそれぞれ
    アクセス可能な共通記憶手段を備えており、前記共通記
    憶手段を介することにより、各プログラム間でデータの
    受け渡しが行なわれる請求項1または2の何れか1つに
    記載の音源装置。
  4. 【請求項4】さらに効果選択手段を備え、 前記波形演算手段は、前記効果選択手段による選択に応
    じて、前記第1プログラムおよび前記第2プログラムに
    は変更を加えず、前記第3プログラムのみを変更して実
    行する請求項1または2の何れか1つに記載の音源装
    置。
JP11303202A 1994-12-30 1999-10-25 音源装置 Expired - Fee Related JP3104873B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP11303202A JP3104873B2 (ja) 1994-12-30 1999-10-25 音源装置

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP33887394 1994-12-30
JP6-338873 1994-12-30
JP11303202A JP3104873B2 (ja) 1994-12-30 1999-10-25 音源装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP7198117A Division JP3016470B2 (ja) 1994-12-30 1995-07-11 音源装置

Publications (2)

Publication Number Publication Date
JP2000122644A JP2000122644A (ja) 2000-04-28
JP3104873B2 true JP3104873B2 (ja) 2000-10-30

Family

ID=26563440

Family Applications (1)

Application Number Title Priority Date Filing Date
JP11303202A Expired - Fee Related JP3104873B2 (ja) 1994-12-30 1999-10-25 音源装置

Country Status (1)

Country Link
JP (1) JP3104873B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0562867U (ja) * 1991-12-25 1993-08-20 美和医療電機株式会社 過電流警報器

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0562867U (ja) * 1991-12-25 1993-08-20 美和医療電機株式会社 過電流警報器

Also Published As

Publication number Publication date
JP2000122644A (ja) 2000-04-28

Similar Documents

Publication Publication Date Title
JP2722795B2 (ja) 楽音合成装置
JPH04306697A (ja) ステレオ方式
JP3008922B2 (ja) 楽音発生装置および楽音発生方法
JPH0883066A (ja) 電子楽器
JP3016470B2 (ja) 音源装置
JP3104873B2 (ja) 音源装置
JP2910632B2 (ja) 波形メモリ音源装置
JPH01198797A (ja) 電子楽器
JPH0310959B2 (ja)
JPH0318197B2 (ja)
JP3633963B2 (ja) 楽音生成装置及び楽音生成方法
KR100236786B1 (ko) 음원장치
JP3832383B2 (ja) 楽音生成装置及びプログラム
JP2882464B2 (ja) 波形メモリ音源装置
JP3552265B2 (ja) 音源装置および音声信号形成方法
JP3095018B2 (ja) 楽音発生装置
JPS6352399B2 (ja)
JPH0125079B2 (ja)
JP2814939B2 (ja) 波形処理装置
JP3832382B2 (ja) 楽音生成装置及びプログラム
JP2723041B2 (ja) 楽音発生装置
JP3433764B2 (ja) 波形変更装置
JPH021314B2 (ja)
JP2580795B2 (ja) 電子楽器
JPH10133659A (ja) ディジタル信号処理プロセッサ

Legal Events

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20000804

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

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20080901

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20090901

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees