JP3223555B2 - 波形読出装置 - Google Patents

波形読出装置

Info

Publication number
JP3223555B2
JP3223555B2 JP05361192A JP5361192A JP3223555B2 JP 3223555 B2 JP3223555 B2 JP 3223555B2 JP 05361192 A JP05361192 A JP 05361192A JP 5361192 A JP5361192 A JP 5361192A JP 3223555 B2 JP3223555 B2 JP 3223555B2
Authority
JP
Japan
Prior art keywords
address
waveform
value
output
data
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 - Lifetime
Application number
JP05361192A
Other languages
English (en)
Other versions
JPH05257478A (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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP05361192A priority Critical patent/JP3223555B2/ja
Publication of JPH05257478A publication Critical patent/JPH05257478A/ja
Application granted granted Critical
Publication of JP3223555B2 publication Critical patent/JP3223555B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、DPCM(差分パルス
符号変調)方式で記憶された波形データに対してループ
再生を行なって楽音を生成する電子楽器等に用いられる
波形読出装置に関する。
【0002】
【従来の技術及び発明が解決しようとする課題】電子楽
器の音源としてPCM方式の音源が開発されている。P
CM方式の音源では、自然楽器の楽音などの音響信号が
所定のサンプリング周波数でサンプリングされ、各サン
プル値が量子化された後、その量子化されたサンプル値
が2進符号に符号化され、各符号が波形データとして予
めメモリ(波形メモリ)に記憶される。その波形データ
は、演奏に応じて読み出され、電子楽器の音源波形とし
て使用される。
【0003】PCM方式の音源は、自然界の様々な音の
音色に忠実に従った楽音を生成できるという特徴を有す
る。ここで、周波数特性及びS/N特性が優れた楽音を
得るためには、音響信号を高いサンプリング周波数(例
えば44kHz程度)でサンプリングし、かつ各サンプ
ルを大きな量子化ビット数(例えば16ビット)で量子
化しなければならない。この結果、波形データを記憶す
るために大きな記憶容量の波形メモリを必要とする。
【0004】このような問題点を解決するために、DP
CM方式の音源が開発されている。DPCM方式の音源
では、PCM方式の場合と同様にして音響信号の量子化
されたサンプル値が得られた後に、隣接するサンプル値
間の差分値が計算され、各差分値が2進符号に符号化さ
れ、それが差分値データとして予め波形メモリに記憶さ
れる。その差分値データは、演奏に応じて読み出されて
順次積分され(累算され)、その結果得られる波形デー
タが電子楽器の音源波形として使用される。
【0005】一般に、音響信号の各サンプル値の差分値
は、元のサンプル値に比べてダイナミックレンジが狭
い。このため、PCM方式の場合と同じ音質の楽音を生
成するために、DPCM方式の場合には、差分値データ
の符号長を、PCM方式の場合における波形データの符
号長より短くすることができる。従って、DPCM方式
の場合には、データの記憶容量をPCM方式の場合より
小さくすることが可能となる。
【0006】一方、PCM方式において波形メモリの記
憶容量の削減を図った音源として、いわゆるループ再生
方式の音源が開発されている。ループ再生方式の音源で
は、音響信号の楽音の音色が変化しない区間(例えばサ
スティーン区間)については、その区間の一部分の音響
信号のみが波形データとして波形メモリに記憶される。
そして、演奏時には、この区間の波形データが波形メモ
リから繰り返し読み出され、電子楽器の音源波形として
使用される。
【0007】ループ再生方式では、音響信号の全ての区
間の波形データを記憶する必要はないため、波形データ
の記憶容量の削減効果が大きい。従って、このループ再
生方式を上述のDPCM方式と組み合せることによっ
て、差分値データの記憶容量を更に削減できることが期
待される。
【0008】ここで、PCM方式におけるループ再生で
は、波形メモリから波形データが読み出される場合、波
形メモリの読出しアドレスが所定のエンドアドレスに達
したら、その読出しアドレスがループスタートアドレス
に戻された後に波形データメモリからの波形データの読
出しが続行される。
【0009】これに対して、DPCM方式においては、
波形メモリ上の連続するアドレスの各差分値データを順
次読み出して積分してゆかなければ、正しい波形データ
を得ることはできない。従って、DPCM方式において
ループ再生を行なおうとする場合には、アドレスがエン
ドアドレスからループスタートアドレスに戻される場合
に、エンドアドレスにおける積分結果である波形出力
が、ループスタートアドレスにおいて本来演算される積
分結果と異ならないように制御を行なう必要がある。さ
もないと、ループの毎にバイアスが重畳され続けてしま
い、生成される楽音に大きな雑音が含まれることになっ
てしまう。
【0010】このような問題点を解決するに、それぞれ
における積分結果である各波形出力が共に0となるよう
なエンドアドレスとループスタートアドレスを選択する
ようにした従来例がある。しかし、この従来例では、エ
ンドアドレスとループアドレスとして選択可能なアドレ
スが限られ、また、その条件を満たすアドレスを検出す
るために煩雑な作業を必要とするという問題点を有して
いる。
【0011】また、エンドアドレスとループアドレスに
よって定まるループ区間において、波形出力の平均値が
0となるように差分値データに修正を加えるようにした
従来例もある。しかし、この従来例の場合、例えば音色
データを何百種類も記憶するような電子楽器の開発にお
いては、各音色毎に、ループ区間の波形出力の平均値を
計算し差分値データを修正する処理を行なわなければな
らず、非常に煩雑な作業を必要とするという問題点を有
している。また、この従来例では、ループ区間内の波形
に修正が加えられるため、生成される楽音の音質を劣化
させてしまうおそれがあるという問題点も有している。
【0012】本発明の課題は、ループ区間の設定を簡単
に行うことができ、音質の劣化も少なく、かつ音源規模
の増大を抑えることのできる電子楽器の波形読出装置を
実現することにある。
【0013】
【課題を解決するための手段】本発明は、まず、音響信
号波形の隣接する波形値間の差分値を示す差分値データ
を記憶すると共に、前記音響信号波形の所定のループス
タート時点における波形値を記憶する波形記憶手段を有
する。
【0014】次に、波形記憶手段から差分値データを順
次読み出すための複数のアドレスであって、音響信号の
所定のループスタート時点から所定のループエンド時点
までの区間の差分値データを繰り返す読み出すためのア
ドレスを生成するアドレス生成手段を有する。
【0015】更に、サンプリングタイミング毎に、通常
はアドレス生成手段で生成されたアドレスの整数部であ
る上位アドレス及び当該上位アドレスの1つ前のアドレ
スを表わすデクリメントアドレスを選択出力し、アドレ
ス生成手段で生成されたアドレスが所定のループエンド
時点から所定のループスタート時点に折り返るタイミン
グではデクリメントアドレスに代えて所定のループスタ
ート時点における波形値が記憶されたアドレスを選択出
力する選択出力手段と、選択出力手段により選択出力さ
れたデクリメントアドレスにより波形記憶手段から順次
読み出された各差分値データを順次積分することにより
積分値を演算する積分演算手段と、選択出力手段により
選択出力された所定のループスタート時点における波形
値が記憶されたアドレスにより波形値が読み出されたと
きは、積分演算手段で演算された積分値を波形値に設定
し直す波形設定手段と、選択出力手段により選択出力さ
れた上位アドレスデータ、積分演算手段からの積分値、
及びアドレス生成手段からのアドレスの小数部を表わす
下位アドレスデータに基づいて波形データを補間して出
力する補間手段と、を有する。
【0016】ここで、波形記憶手段において音響信号波
形の所定のループスタート時点における波形値が記憶さ
れるアドレスは、例えば所定のループエンド時点に対応
するアドレスである。
【0017】
【作用】選択出力手段は、サンプリングタイミング毎
に、通常はアドレス生成手段で生成されたアドレスの整
数部である上位アドレス及び当該上位アドレスの1つ前
のアドレスを表わすデクリメントアドレスを選択出力
し、アドレス生成手段で生成されたアドレスが所定のル
ープエンド時点から所定のループスタート時点に折り返
るタイミングではデクリメントアドレスに代えて所定の
ループスタート時点における波形値が記憶されたアドレ
スを選択出力する。 そして、デクリメントアドレスによ
り、順次波形記憶手段から差分値データを読み出して積
分することにより、音響信号波形を復元する。また、所
定のループエンド時点から所定のループスタート時点に
折り返るタイミングでは、所定のループスタート時点に
おける波形値が読み出され、積分値がこの波形値に設定
し直される。そしてこの積分値、上位アドレスにより読
み出された差分値及びアドレスの小数部である下位アド
レスデータにより出力波形データを生成する。
【0018】このように、積分値は、ループ動作毎に、
ループスタートアドレスにおいて本来演算される積分値
に戻されることになるため、ループの毎にバイアスが重
畳され続けてしまうという事態を避けることができる。
【0019】
【実施例】以下、本発明の実施例につき詳細に説明す
る。図1は、本発明の実施例の全体構成図である。
【0020】アドレスジェネレータ101は、特には図
示しない電子楽器の制御回路からの指示に基づいて、ア
ドレスの更新動作を行い、波形ROM102に対してア
ドレス出力104を出力すると共に、積分補間回路10
3に対して補間用小数部106、積分値ステップ信号1
07及びループ信号108を出力する。
【0021】波形ROM102は、原則として楽音の差
分値データを記憶し、アドレスジェネレータ101から
のアドレス出力104に対応する差分値を記憶データ1
05として積分補間回路103に出力する。なお、エン
ドアドレスには、差分値ではなく、ループスタートアド
レスにおける積分値が記憶されている。
【0022】積分補間回路103は、アドレスジェネレ
ータ101からの補間用小数部106及び積分値ステッ
プ信号107に基づいて、波形ROM102から出力さ
れる記憶データ105に対して積分(累算)演算及び補
間演算を実行し、更に、アドレスジェネレータ101か
らのループ信号108に基づいてループ再生処理を実行
する。その結果、積分補間回路103は、波形出力10
9を出力する。
【0023】図2は、図1のアドレスジェネレータ10
1の回路構成図である。破線から上はアドレス更新部分
であり、現在値アドレスRAM201、アドレス歩進量
RAM202、加算器203、エンドアドレスRAM2
04、比較器205、減算器206、ループスタートア
ドレスRAM207、加算器208、及びデータセレク
タ209とで構成される。
【0024】破線から下はアドレス送出部分であり、デ
クリメンタ211、アドレスセレクタ212、及びアド
レスレジスタ213とで構成される。以下に図2のアド
レスジェネレータ101の動作について説明する。
【0025】まず、現在値アドレスRAM201には、
各サンプリングタイミング毎に出力される図1の波形出
力109に対応する現在値アドレスが保持される。次
に、アドレス歩進量RAM202には、特には図示しな
い電子楽器の制御回路から設定され、ユーザによる演奏
操作などに基づいて指定される音高に対応するアドレス
歩進量が保持される。
【0026】また、エンドアドレスRAM204には、
特には図示しない電子楽器の制御回路から設定され、図
1の波形ROM102から読み出されるべき記憶データ
105のエンドアドレスが保持される。
【0027】更に、ループスタートアドレスRAM20
7には、図1の波形ROM102から読み出されるべき
記憶データ105のループスタートアドレスが保持され
る。このループスタートアドレスは、特には図示しない
電子楽器の制御回路から設定される。
【0028】そして、まず、加算器203は、各サンプ
リングタイミング毎に、現在値アドレスRAM201に
保持される現在値アドレスにアドレス歩進量RAM20
2に保持されるアドレス歩進量を順次加算する。なお、
加算器203は、通常、ローレベルの積分値ステップ信
号107を出力している。
【0029】このようにして得られた更新値アドレス
は、比較器205においてエンドアドレスRAM204
から出力されているエンドアドレスと比較される。そし
て、更新値アドレスの方がエンドアドレスより小さけれ
ば、比較器205から出力されるループ信号108はロ
ーレベルとなり、データセレクタ209は、上記更新値
アドレスを新たな現在値アドレスとして現在値アドレス
RAM201に格納する。
【0030】以上のように現在値アドレスが更新される
毎に、その現在値アドレスの小数部は補間用小数部10
6として図1の積分補間回路103に入力され、波形出
力109を得るための後述する補間演算に使用される。
【0031】また、現在値アドレスの整数部は、整数部
210としてアドレスセレクタ212及びデクリメンタ
211に入力される。今、アドレスセレクタ212及び
アドレスレジスタ213には、各サンプリングタイミン
グ毎に図3(a) に示されるようなクロックCLKが供給
される。そして、前述したループ信号108がローレベ
ルの場合には、アドレスセレクタ212は、図3(a) に
示されるように、各サンプリングタイミングにおいて上
記クロックCLKのパルスが入力する毎に、更新値アド
レス(現在値アドレス)の整数部210及びデクリメン
タ211の出力であるデクリメントアドレスを順次選択
する。
【0032】この結果、アドレスレジスタ213は、各
サンプリングタイミングの前半の期間で、更新値アドレ
スの整数部210を選択してアドレス出力104として
波形ROM102に出力し、後半の期間で上記整数部2
10の値が−1された値であるデクリメントアドレスを
選択してアドレス出力104として波形ROM102に
出力する。
【0033】そして、デクリメントアドレスであるアド
レス出力104に基づいて図1の波形ROM102から
読み出される記憶データ105(差分値)は、後述する
桁上がりが発生した場合に、積分補間回路103におい
て、後述する積分演算に使用される。また、更新値アド
レスの整数部210であるアドレス出力104に基づい
て波形ROM102から読み出される記憶データ105
は、積分補間回路103において、後述する補間演算に
使用される。
【0034】上述の現在値アドレスの更新動作におい
て、加算器203は、図4(a) に示されるように、整数
部と小数部とからなる現在値アドレスに小数部のみから
なるアドレス歩進量を加算し、更新値アドレスを出力す
る動作を行なう。この場合に、更新値アドレスにおいて
その小数部から整数部への桁上がり(Carry )が発生す
ると、加算器203は、ハイレベルの積分値ステップ信
号107を出力する。この積分値ステップ信号107
は、図1の積分補間回路103において、後述する記憶
データ105(差分値)の積分演算を指示するための制
御信号として使用される。
【0035】上述の桁上がりが発生した場合には、更新
値アドレス(現在値アドレス)の整数部210は+1さ
れるため、そのサンプリングタイミングにおいては、ア
ドレスレジスタ213からは前回のサンプリングタイミ
ングに比較してそれぞれ値が+1された更新値アドレス
の整数部210とデクリメントアドレスの組が出力され
る。
【0036】そして、積分補間回路103では、後述す
るように、ハイレベルの積分値ステップ信号107に基
づいて、デクリメントアドレスに対応する記憶データ1
05(図1)の積分演算が実行される。また、積分補間
回路103では、更新値アドレスの整数部210に対応
する記憶データ105に基づいて補間演算が実行され
る。
【0037】次に、上述の現在値アドレスの更新動作に
おいて、加算器203から出力される更新値アドレスが
エンドアドレスRAM204から出力されているエンド
アドレスより大きくなると、比較器205から出力され
るループ信号108はハイレベルとなり、データセレク
タ209は、更新値アドレスは選択せずに、加算器20
8の出力を選択する。
【0038】今、図4(b) に示されるように、減算器2
06は、加算器203より出力される更新値アドレスか
らエンドアドレスRAM204より出力されるエンドア
ドレスを減算している。そして、加算器208は、その
減算結果をループスタートアドレスRAM207より出
力されるループスタートアドレスに加算している。
【0039】そして、ループ信号108がハイレベルに
なるタイミングでは、データセレクタ209は、この加
算器208の出力を更新値アドレスとして選択し、新た
な現在値アドレスとして現在値アドレスRAM201に
格納する。すなわち、現在値アドレスにアドレス歩進量
が加算された結果得られる更新値アドレスがエンドアド
レスを越えたら、その越えた分だけループスタートアド
レスの側に折り返されることになるのである。
【0040】また、ループ信号108がハイレベルにな
るタイミングでは、アドレスセレクタ212は、図3
(b) に示されるように、各サンプリングタイミングにお
いてクロックCLKのパルスが入力する毎に、更新値ア
ドレス(現在値アドレス)の整数部210及びエンドア
ドレスRAM204から出力されるエンドアドレスを順
次選択するこの結果、アドレスレジスタ213は、ルー
プ信号108がハイレベルとなるサンプリングタイミン
グの前半の期間で、更新値アドレスの整数部210を選
択してアドレス出力104として波形ROM102に出
力し、後半の期間で、デクリメントアドレスではなく、
エンドアドレスRAM204からのエンドアドレスを選
択してアドレス出力104として波形ROM102に出
力する。
【0041】ここで、波形ROM102(図1)の上記
エンドアドレスに対応するアドレスには、差分値ではな
くループスタートアドレスにおける積分値そのものが格
納されている。そして、積分補間回路103は、上記エ
ンドアドレスであるアドレス出力104に基づいて波形
ROM102から読み出される記憶データ105(積分
値)を、新たな積分値として設定し直す。また、積分補
間回路103は、更新値アドレスの整数部210(ルー
プスタートアドレス)であるアドレス出力104に基づ
いて波形ROM102から読み出される記憶データ10
5を、補間演算に使用する。
【0042】図5は、図1の積分補間回路103の回路
構成図であり、積分値用RAM501と、各サンプリン
グタイミング毎に波形ROM102から順次出力される
各記憶データ105が格納される第1波形データレジス
タ502及び第2波形データレジスタ503と、ループ
信号108を反転しその出力をゲート回路507に供給
するインバータ505と、ループ信号108及び積分値
ステップ信号107を入力しその出力をゲート回路50
6に供給するオア回路504と、積分用加算器508
と、直線補間用乗算器509と、直線補間用加算器51
0とから構成される。
【0043】以下に図5の積分補間回路103の動作に
ついて説明する。図1、図2のアドレスジェネレータ1
01から出力される更新値アドレスの整数部210であ
るアドレス出力104に基づいて波形ROM102から
出力される記憶データ105は、第2波形データレジス
タ503に保持される。一方、アドレスジェネレータ1
01から出力されるデクリメントアドレスであるアドレ
ス出力104に基づいて波形ROM102から出力され
る記憶データ105は、第1波形データレジスタ502
に保持される。
【0044】今、図6に示されるように、或るサンプリ
ングタイミングmにおいて、図2のアドレスジェネレー
タ101の現在値アドレスRAM201に得られている
現在値アドレスがアドレスAm であるならば、サンプリ
ングタイミングmにおいて、上記現在値アドレス(更新
値アドレス)の整数部210として出力されるアドレス
出力104はSn であり、上記整数部210に対応する
デクリメントアドレスとして出力されるアドレス出力1
04はSn-1 である。ここで、波形ROM102上の各
アドレスに対応する整数アドレスSn-1 、Sn 、Sn+1
及びSn+2 において、隣接するアドレス同士のアドレス
差はそれぞれ1である。また、サンプリングタイミング
mにおいて図5の積分値用RAM501に保持されてい
る積分値をIn とする。
【0045】この状態では、第1波形データレジスタ5
02には、アドレス出力Sn-1 に対応して波形ROM1
02から出力された記憶データ105として差分値D
n-1 が保持され、第2波形データレジスタ503には、
アドレス出力Sn に対応して波形ROM102から出力
された記憶データ105として差分値Dn が保持され
る。
【0046】今、現在値アドレスAm の両側の整数アド
レスSn+1 、Sn のアドレス差は1であり、上記各整数
アドレスにおける積分値In+1 、In の差(In+1 −I
n )が差分値Dn となる。従って、現在値アドレスAm
とその整数部であるアドレスSn との差、すなわち現在
値アドレスAm の小数部をfm とし、現在値アドレスA
m における差分値をDm とすれば、直線補間の原理によ
り次式が成り立つ。 fm : 1 = Dm : Dnm = fm × Dn 即ち、現在値アドレスAm における差分値Dm は、現在
値アドレス(更新値アドレス)の整数部210であるア
ドレスSn に記憶されている差分値Dn に、現在値アド
レスAm の小数部fm が乗算されて得られる値として求
めることができる。これを計算するのが、直線補間用乗
算器509である。
【0047】すなわち、直線補間用乗算器509は、第
2波形データレジスタ503からの記憶データ105に
図2のアドレスジェネレータ101からの補間用小数部
106を乗算することによって、現在値アドレスに対応
する差分値を演算する。前述したように、第2波形デー
タレジスタ503に格納されている記憶データ105
は、図2のアドレスジェネレータ101からアドレス出
力104として出力される現在値アドレス(更新値アド
レス)の整数部210に対応して、波形ROM102か
ら読み出された差分値である。また、アドレスジェネレ
ータ101から出力されている補間用小数部106は、
更新値アドレス(現在値アドレス)の小数部である。
【0048】次に、現在値アドレスAm における差分値
m が、現在値アドレスAm の整数部であるアドレスS
n での積分値In に加算されることにより、現在値アド
レスAm における波形出力Wm が求まる。これを計算す
るのが、直線補間用加算器510である。
【0049】すなわち、直線補間用加算器510は、直
線補間用乗算器509から出力される現在値アドレスの
差分値を、積分用加算器508から出力される積分値に
加算し、その加算結果を波形出力109(図1参照)と
して出力する。
【0050】上述した或るサンプリングタイミングmに
おいて、図2のアドレスジェネレータ101の現在値ア
ドレスRAM201に得られている現在値アドレスがア
ドレスAm であるときに、アドレス歩進量RAM202
に図6に示されるアドレス歩進量P´が設定されている
とすれば、サンプリングタイミングm+1において図2
の加算器203から出力される更新値アドレスは、図6
に示されるAm+1 ´となる。
【0051】上記サンプリングタイミングm+1におい
て、上記現在値アドレス(更新値アドレス)の整数部2
10として出力されるアドレス出力104はサンプリン
グタイミングmの場合と同様にSn であり、上記整数部
210に対応するデクリメントアドレスとして出力され
るアドレス出力104もサンプリングタイミングmの場
合と同様にSn-1 である。従って、サンプリングタイミ
ングm+1においては、サンプリングタイミングmの場
合と同様に、第1波形データレジスタ502には、アド
レス出力Sn-1 に対応する差分値Dn-1 が保持され、第
2波形データレジスタ503には、アドレス出力Sn
対応する差分値Dn が保持される。
【0052】一方、図2のアドレスジェネレータ101
から図5の直線補間用乗算器509には、補間用小数部
106として、新たな現在値アドレスAm+1 ´とその整
数部であるアドレスSn との差である小数部をfm+1 ´
が入力される。従って、直線補間用乗算器509では、
上記差分値Dn と小数部fm+1 ´とに基づいて、図6に
示されるように、現在値アドレスAm+1 ´に対応する新
たな差分値Dm+1 ´が演算される。
【0053】ここで、図2のアドレスジェネレータ10
1において、現在値アドレスがAmからAm+1 ´に更新
されても、小数部から整数部への桁上がり(Carry )は
発生しないため、加算器203は、ローレベルの積分値
ステップ信号107を出力する。また、ループ信号10
8もローレベルのままである。このため、図5の積分補
間回路103において、ゲート回路507がオン、ゲー
ト回路506がオフとなる。従って、サンプリングタイ
ミングm+1において、積分値用RAM501に保持さ
れている積分値In は積分用加算器508において更新
されず、その積分値In が再び積分値用RAM501に
格納される。
【0054】この結果、直線補間用加算器510は、現
在値アドレスAm+1 ´における差分値Dm+1 ´を積分値
n に加算することにより、現在値アドレスAm+1 ´に
おける波形出力Wm+1 ´を出力する。
【0055】これに対して、前述した或るサンプリング
タイミングmにおいて、図2のアドレスジェネレータ1
01の現在値アドレスRAM201に得られている現在
値アドレスがアドレスAm であるときに、アドレス歩進
量RAM202に図6に示されるアドレス歩進量Pが設
定されているとすれば、サンプリングタイミングm+1
において図2の加算器203から出力される更新値アド
レスは、図6に示されるAm+1 となる。
【0056】上記サンプリングタイミングm+1におい
て、上記現在値アドレス(更新値アドレス)の整数部2
10として出力されるアドレス出力104は、サンプリ
ングタイミングmの場合から1アドレス進んだ値Sn+1
となり、上記整数部210に対応するデクリメントアド
レスとして出力されるアドレス出力104は、Sn とな
る。従って、サンプリングタイミングm+1において
は、第1波形データレジスタ502には、アドレス出力
n に対応する差分値Dn が保持され、第2波形データ
レジスタ503には、アドレス出力Sn+1 に対応する差
分値Dn+1 が保持される。
【0057】一方、図2のアドレスジェネレータ101
から図5の直線補間用乗算器509には、補間用小数部
106として、新たな現在値アドレスAm+1 とその整数
部であるアドレスSn+1 との差である小数部をfm+1
入力される。従って、直線補間用乗算器509では、上
記差分値Dn+1 と小数部fm+1 とに基づいて、図6に示
されるように、現在値アドレスAm+1 に対応する新たな
差分値Dm+1 が演算される。
【0058】ここで、図2のアドレスジェネレータ10
1において、現在値アドレスがAmからAm+1 に更新さ
れると、小数部から整数部への桁上がり(Carry )が発
生するため、加算器203は、ハイレベルの積分値ステ
ップ信号107を出力する。また、ループ信号108は
ローレベルのままである。このため、図5の積分補間回
路103では、ゲート回路507及びゲート回路506
が共にオンとなる。従って、サンプリングタイミングm
+1において、積分用加算器508は、積分値用RAM
501に保持されている積分値In に対して、第1波形
データレジスタ502に保持されている差分値Dn を積
分し(累算し)、新たな積分値In+1 を出力する。そし
て、積分値In+1 は、積分値用RAM501に保持され
る。
【0059】この結果、直線補間用加算器510は、現
在値アドレスAm+1 における差分値Dm+1 を新たな積分
値In+1 に加算することにより、現在値アドレスAm+1
における波形出力Wm+1 を出力する。
【0060】以上のようにして、積分補間回路103に
おいて、積分演算及び補間演算が実行されることによ
り、各サンプリングタイミング毎に波形出力109が順
次出力される。
【0061】そして、図2のアドレスジェネレータ10
1において現在値アドレスRAM201に保持される現
在値アドレスが順次更新され、加算器203から出力さ
れる更新値アドレスがエンドアドレスRAM204から
出力されているエンドアドレスより大きくなると、ルー
プ信号108がハイレベルになる。この結果、前述した
ように、データセレクタ209が加算器208の出力を
選択し、現在値アドレスRAM201には、ループスタ
ートアドレス側に折り返された更新値アドレスが得られ
る。
【0062】そして、前述したように、アドレスレジス
タ213は、ループ信号108がハイレベルとなるサン
プリングタイミングの前半の期間で、上記ループスター
トアドレス側に折り返された更新値アドレスの整数部2
10(すなわちループスタートアドレス)を選択してア
ドレス出力104として波形ROM102に出力し、後
半の期間で、デクリメントアドレスではなく、エンドア
ドレスRAM204からのエンドアドレスを選択してア
ドレス出力104として波形ROM102に出力する。
【0063】この結果、図5の積分補間回路103内の
第1波形データレジスタ502には、上述したエンドア
ドレスであるアドレス出力104に対応して波形ROM
102から出力された記憶データ105が保持され、第
2波形データレジスタ503には、上述したループスタ
ートアドレスであるアドレス出力104に対応して波形
ROM102から出力された記憶データ105が保持さ
れる。ここで、波形ROM102(図1)の上記エンド
アドレスに対応するアドレスには、図7に示されるよう
に、差分値ではなくループスタートアドレスにおける積
分値そのものが格納されている。従って、第1波形デー
タレジスタ502には、上記ループスタートアドレスに
おける積分値が保持される。また、第2波形データレジ
スタ503には、ループスタートアドレスにおける差分
値が保持される。
【0064】そして、ループ信号108がハイレベルと
なるタイミングでは、図2のアドレスジェネレータ10
1から図5の直線補間用乗算器509には、補間用小数
部106として、ループスタートアドレス側に折り返さ
れた新たな現在値アドレスとその整数部であるループス
タートアドレスとの差である小数部が入力される。従っ
て、直線補間用乗算器509では、上記ループスタート
アドレスにおける差分値と補間用小数部106とに基づ
いて、ループスタートアドレス側に折り返された現在値
アドレスに対応する新たな差分値が演算される。
【0065】また、ループ信号108がハイレベルとな
るタイミングでは、ゲート回路507がオフ、ゲート回
路506がオンとなる。従って、第1波形データレジス
タ502に保持されているループスタートアドレスにお
ける積分値が、積分用加算器508を介して積分値用R
AM501に設定し直される。
【0066】この結果、直線補間用加算器510は、ル
ープスタートアドレス側に折り返された現在値アドレス
における差分値をループスタートアドレスにおける積分
値に加算することにより、波形出力109を出力する。
【0067】以上説明したように、本実施例では、現在
値アドレスがエンドアドレス側からループスタートアド
レス側に折り返されるときに、積分補間回路103内の
積分値用RAM501に保持される積分値が、ループス
タートアドレスにおいて本来演算される積分値に設定し
直される。このため、ループ動作毎にバイアスが重畳さ
れ続けてしまうという事態を避けることができる。
【0068】また、ループスタートアドレスにおける積
分値は、波形ROM102内のエンドアドレスに格納さ
れ、それが積分補間回路103内の第1波形データレジ
スタ502を介して積分値用RAM501に読み込まれ
るため、ハードウエアの規模が増大することはない。更
に、特別な演算処理なども必要ない。
【0069】なお、ループスタートアドレスは、一般に
そこでの積分値が小さい値となるように選択されるた
め、波形ROM102上のエンドアドレスにループスタ
ートアドレスの積分値を格納するために必要なビット数
(符号長)は、他のアドレスに差分値を格納するために
必要なビット数と同じでよい。
【0070】
【発明の効果】本発明によれば、差分値データが順次積
分されて得られる波形値である積分値は、ループ動作毎
に、ループスタートアドレスにおいて本来演算される積
分値に戻されるため、ループの毎にバイアスが重畳され
続けてしまうという事態を避けることが可能となる。
【図面の簡単な説明】
【図1】本発明の実施例の全体構成図である。
【図2】アドレスジェネレータの回路構成図である。
【図3】アドレス出力動作のタイミングチャートであ
る。
【図4】アドレス更新動作の説明図である。
【図5】積分補間回路の構成図である。
【図6】補間動作の説明図である。
【図7】ループ動作の説明図である。
【符号の説明】
101 アドレスジェネレータ 102 波形ROM 103 積分補間回路 104 アドレス出力 105 記憶データ 106 補間用小数部 107 積分値ステップ信号 108 ループ信号 109 波形出力 201 現在値アドレスRAM 202 アドレス歩進量RAM 203、208 加算器 204 エンドアドレスRAM 205 比較器 206 減算器 207 ループスタートアドレスRAM 209 データセレクタ 210 整数部 211 デクリメンタ 212 アドレスセレクタ 213 アドレスレジスタ 501 積分値用RAM 502 第1波形データレジスタ 503 第2波形データレジスタ 504 オア回路 505 インバータ 506、507 ゲート回路 508 積分用加算器 509 直線補間用乗算器 510 直線補間用加算器

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 音響信号波形の隣接する波形値間の差分
    値を示す差分値データを記憶すると共に、前記音響信号
    波形の所定のループスタート時点における波形値を記憶
    する波形記憶手段と、 該波形記憶手段から差分値データを順次読み出すための
    複数のアドレスであって、前記音響信号波形の所定のル
    ープスタート時点から所定のループエンド時点までの区
    間の差分値データを繰り返読み出すためのアドレスを
    生成するアドレス生成手段と、サンプリングタイミング毎に、通常は前記アドレス生成
    手段で生成されたアドレスの整数部である上位アドレス
    及び当該上位アドレスの1つ前のアドレスを表わすデク
    リメントアドレスを選択出力し、前記アドレス生成手段
    で生成されたアドレスが前記所定のループエンド時点か
    ら前記所定のループスタート時点に折り返るタイミング
    では前記デクリメントアドレスに代えて前記所定のルー
    プスタート時点における波形値が記憶されたアドレスを
    選択出力する選択出力手段と、 前記選択出力手段により選択出力されたデクリメントア
    ドレスにより前記波形記憶手段から順次読み出された各
    差分値データを順次積分することにより積分値を演算す
    る積分演算手段と、 前記選択出力手段により選択出力された前記所定のルー
    プスタート時点における波形値が記憶されたアドレスに
    より前記波形値が読み出されたときは、前記積分演算手
    段で演算された積分値を前記波形値に設定し直す波形設
    定手段と、 前記選択出力手段により選択出力された前記上位アドレ
    スデータ、前記積分演算手段からの積分値、及び前記ア
    ドレス生成手段からのアドレスの小数部を表わす下位ア
    ドレスデータに基づいて波形データを補間して出力する
    補間手段と、 を有することを特徴とする波形読出装置。
  2. 【請求項2】 前記波形記憶手段において前記音響信号
    波形の所定のループスタート時点における波形値が記憶
    されるアドレスは、前記所定のループエンド時点に対応
    するアドレスである、 ことを特徴とする請求項1に記載の波形読出装置。
JP05361192A 1992-03-12 1992-03-12 波形読出装置 Expired - Lifetime JP3223555B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP05361192A JP3223555B2 (ja) 1992-03-12 1992-03-12 波形読出装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP05361192A JP3223555B2 (ja) 1992-03-12 1992-03-12 波形読出装置

Publications (2)

Publication Number Publication Date
JPH05257478A JPH05257478A (ja) 1993-10-08
JP3223555B2 true JP3223555B2 (ja) 2001-10-29

Family

ID=12947700

Family Applications (1)

Application Number Title Priority Date Filing Date
JP05361192A Expired - Lifetime JP3223555B2 (ja) 1992-03-12 1992-03-12 波形読出装置

Country Status (1)

Country Link
JP (1) JP3223555B2 (ja)

Also Published As

Publication number Publication date
JPH05257478A (ja) 1993-10-08

Similar Documents

Publication Publication Date Title
JP2576647B2 (ja) 波形発生装置
US5532424A (en) Tone generating apparatus incorporating tone control utliizing compression and expansion
JP3223555B2 (ja) 波形読出装置
US5522010A (en) Pitch control apparatus for setting coefficients for cross-fading operation in accordance with intervals between write address and a number of read addresses in a sampling cycle
US5559298A (en) Waveform read-out system for an electronic musical instrument
JP4179243B2 (ja) 波形発生装置及びプログラム
JP2683975B2 (ja) 楽音発生装置
JP2608938B2 (ja) 波形補間装置
JP5104522B2 (ja) 波形発生装置および波形発生処理プログラム
JP4656326B2 (ja) 波形発生装置
JP3288500B2 (ja) 電子楽器の楽音発生装置
JP2769690B2 (ja) 遅延装置
US5639978A (en) Musical tone signal generating apparatus for electronic musical instrument
JPH0243196B2 (ja)
JP2900076B2 (ja) 波形生成装置
JP2944069B2 (ja) 楽音信号発生装置
US5883324A (en) Signal generating apparatus and signal generating method
JPH0546176A (ja) データ圧縮伸張装置およびそれを用いた電子楽器
JPH07104757A (ja) 楽音信号合成装置
JP2970438B2 (ja) 波形メモリ型楽音発生装置
JP3743625B2 (ja) 可変遅延装置
JP2790093B2 (ja) 音源装置
JP3311898B2 (ja) 楽音合成回路
JPH0743597B2 (ja) 楽音発生装置
JPH09198049A (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: 20010724

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

Free format text: PAYMENT UNTIL: 20080824

Year of fee payment: 7

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

Free format text: PAYMENT UNTIL: 20090824

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20100824

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110824

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 11

EXPY Cancellation because of completion of term
FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120824

Year of fee payment: 11