JP3223560B2 - 波形データ読出し装置 - Google Patents

波形データ読出し装置

Info

Publication number
JP3223560B2
JP3223560B2 JP07409492A JP7409492A JP3223560B2 JP 3223560 B2 JP3223560 B2 JP 3223560B2 JP 07409492 A JP07409492 A JP 07409492A JP 7409492 A JP7409492 A JP 7409492A JP 3223560 B2 JP3223560 B2 JP 3223560B2
Authority
JP
Japan
Prior art keywords
address
value
data
current
difference value
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
JP07409492A
Other languages
English (en)
Other versions
JPH05273978A (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 JP07409492A priority Critical patent/JP3223560B2/ja
Publication of JPH05273978A publication Critical patent/JPH05273978A/ja
Application granted granted Critical
Publication of JP3223560B2 publication Critical patent/JP3223560B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、差分PCM方式で記憶
された波形データを読み出して楽音を生成する電子楽器
の波形データ読出し装置に関する。
【0002】
【従来の技術】近年、電子楽器の音源における波形デー
タの記憶方式として、波形データの各標本値間の差分値
をROM(Read Only Memory)などのメモリに記憶す
る、差分PCM(DPCM:Differential Pulse Code
Moduration)方式がある(以後、DPCM方式で波形デ
ータが記憶されたROMを、DPCM−ROMと呼
ぶ)。このDPCMの復調の段階、すなわち、電子楽器
の演奏時には、このDPCM−ROMから読み出された
各差分値が累算(積分)されて、元の波形データが得ら
れる。
【0003】図11は、このような目的のために用いら
れる、一般的な波形データ読出し装置の全体構成図であ
る。図11において、アドレスジェネレータ1101か
らは、現在値アドレスの整数アドレス(以後、現整数ア
ドレスと呼ぶ)がアドレスコントローラ1102へ、キ
ャリーが積分器1103へ、現在値アドレスの小数アド
レス(以後、現小数アドレスと呼ぶ)が補間器1104
へ、それぞれ出力される。
【0004】これらのデータによって、以下に述べるよ
うに、特には図示していないDPCM−ROMの整数ア
ドレスに対応する差分値が読み出され、積分器1103
と補間器1104によって波形データが作成される。
【0005】以下、図11の波形データ読出し装置を構
成しているアドレスジェネレータ1101、アドレスコ
ントローラ1102、積分器1103、および補間器1
104のそれぞれの従来例と全体動作について、図17
及び図18に示される具体例を用いて説明する。
【0006】図17は、DPCM−ROMの各整数アド
レス(3、4、5、・・・)に記憶されている波形デー
タの累算値(積分値)である各振幅値と、各振幅値間の
差分値、および音高(ピッチ)に比例するアドレス歩進
量の例を示した図である。
【0007】今、図17において、DPCM−ROMに
記憶されている差分値データの原音高をC4 とし、原音
高に対応するDPCM−ROMの整数アドレスを(3) 、
(4)、(5) 、(6) 、・・・とする。なおアドレス歩進量
(1) は原音高に対応する。
【0008】この場合、アドレス(3) における振幅値
は、アドレス(3) までの各差分値の累算である積分値S
1 であり、アドレス(4) における振幅値は、上記積分値
1 にDPCM−ROMのアドレス(3) に格納されてい
るアドレス(3) 〜(4) 間の差分値D1 を加算した積分値
2 である。また、アドレス(5) における振幅値は、積
分値S2 にアドレス(4) に格納されているアドレス(4)
〜(5) の差分値D2 を加算した値である。同様に、アド
レス(6) における振幅値は、積分値S3 にアドレス(5)
に格納されているアドレス(5) 〜(6) 間の差分値D3
加算した値である。
【0009】いま、図17の例は、音名A3 に対応する
波形データを得る場合の例である。ここで、A3 音とC
4 音のピッチ比は0.794 である。すなわち、アドレス歩
進量は、0.794 ≦1となる。そして、現在値アドレスを
3.75、つまり、整数アドレスを(3) 、小数アドレスを
(0.75)として、その現在値アドレスにおける波形データ
の振幅値A1 が得られているものとする。
【0010】図12は、図11のアドレスジェネレータ
1101の従来例のブロック構成図である。図12にお
いて、現在値アドレス格納メモリ1201から読み出さ
れた現在値アドレス(3.75)が、図13に示すように、ア
ドレスデータの上位部であるROMアドレッシング用の
整数部(3) とアドレスデータの下位部である補間用の小
数部(0.75)に分離され、それぞれアドレス整数部レジス
タ1202とアドレス小数部レジスタ1203にセット
される。
【0011】また、アドレス歩進量格納メモリ1204
からは、演奏される楽音の音高(ピッチ)に比例するア
ドレス歩進量(0.794) が読み出され、アドレス歩進量レ
ジスタ1205にセットされる。
【0012】このアドレス歩進量と現在値アドレスと
は、図13に示すような関係にあり、アドレス歩進量
は、小数部のみから構成される。つぎに、アドレス小数
部レジスタ1203から読み出された小数アドレス(0.7
5)とアドレス歩進量レジスタ1205から読み出された
アドレス歩進量(0.794)は、バイナリ加算器1206で
加算され、現小数アドレス(0.75+0.794=1.544)の小数部
(0.544) とキャリーが出力される。
【0013】一方、インクリメンタ1207は、入力さ
れる整数アドレスに対して、バイナリ加算器1206か
らのキャリー出力が無ければ、それをそのまま現整数ア
ドレスとして出力するが、図17の例のようにキャリー
出力があれば、それをインクリメントして現整数アドレ
ス(4) として出力する。
【0014】つぎに、現整数アドレス(4) と現小数アド
レス(0.544) は、更新された現在値アドレス(4.544) と
して、現在値アドレス格納メモリ1201にセットされ
るとともに、現整数アドレス(4) は、図11のアドレス
コントローラ1102へ、また現小数アドレス(0.544)
は補間器1104へ、またキャリーは積分器1103へ
それぞれ出力される。
【0015】つぎに、図14は、図11のアドレスコン
トローラ1102のブロック構成図である。図14にお
いて、図12の構成を有する図11のアドレスジェネレ
ータ1101から入力された現整数アドレス(4) は、セ
レクタ1401からアドレス出力レジスタ1402を介
して、前述した差分値が記憶されているDPCM−RO
Mへ出力されるとともに、デクリメンタ1403へ入力
される。その後、デクリメンタ1403で値1だけ減算
された整数アドレス(3) が、セレクタ1401、アドレ
ス出力レジスタ1402を介して、DPCM−ROMへ
出力される。
【0016】図15は、図11の積分器1103の従来
例のブロック構成図である。前述したように、値1だけ
デクリメントされた整数アドレス(3) によってDPC−
ROMから読み出され積分用データ入力レジスタ150
1にセットされた入力データの差分値D1 (図17を参
照)と、積分値格納メモリ1502から読み出され積分
値出力レジスタ1503に格納された積分値S1 は、積
分演算ALU(arithmetic logic unit) 1504でつぎ
のように演算される。
【0017】すなわち、アドレスジェネレータ1101
からキャリー出力が無い場合は、積分値出力レジスタ1
503からの積分値がそのままALU1504から出力
され、またキャリーがある場合は、積分値出力レジスタ
1503からの積分値S1 に積分用データ入力レジスタ
1501からの差分値D1 が加算されて積分値S2 とさ
れ(図17参照)、その積分値が積分器1103から補
間器1104へ出力される。
【0018】図16は図11の補間器1104のブロッ
ク構成図である。図16において、現整数アドレス(4)
によって読み出されデータ入力レジスタ1601に格納
された入力データである差分値D2 は、乗算器1602
で現小数アドレス(0.544) と乗算され、その乗算出力D
h が、図15の構成を有する図11の積分器1103か
ら出力され積分値レジスタ1603に格納されている積
分値S2 に、加算器1604で加算されて、現在値アド
レス(4.544) における振幅値A2 とされる(図17参
照)。
【0019】以上のようにして、まず、図17において
現整数アドレス(4) における振幅値を得るために、アド
レス(3) の積分値S1 に、アドレス(3) に格納されたア
ドレス(3) 〜(4) 間の差分値D1 が足され、さらに補間
演算として、アドレス(4) における振幅値である積分値
2 に、現整数アドレス(4) に格納されているアドレス
(4) 〜(5) 間の差分値D2 に小数部(0.544) を乗算した
値Dh が加算されることによって、現在値アドレス(4.5
44) における波形データの振幅値A2 が得られる。
【0020】以上は、歩進量≦1の場合であるが、つぎ
に、歩進量>1の場合について図18の具体例を用いて
説明する。図18の例は、音名A4 に対応する波形デー
タを得る場合の例である。ここで、A4 音とC4 音のピ
ッチ比は約1.68>1である。そして、現在値アドレスを
3.75、つまり、整数アドレスを(3) 、小数アドレスを
(0.75)として、その現在値アドレスにおける波形データ
の振幅値A1 が得られているものとする。
【0021】この場合は、前述した歩進量≦1の場合と
同じように、図12のアドレス整数部レジスタ1202
から整数アドレス(3) が出力され、アドレス小数部レジ
スタ1203から小数アドレス(0.75)が出力される。一
方、アドレス歩進量格納メモリ1204からアドレス歩
進量(1.68)が出力され、小数部の加算動作を行うバイナ
リ加算器1206で、小数アドレス(0.75)にアドレス歩
進量(1.68)が加算される。
【0022】その結果、小数部の(0.43)が得られるとと
もに、2つのキャリーがバイナリー加算器1206から
インクリメンタ1207へ出力され、インクリメンタ1
207から現整数アドレス(5) が出力される。それとと
もに、バイナリ加算器1206から現小数アドレス(0.4
3)が出力され、新しい現在値アドレス(5.43)が現在値ア
ドレス格納メモリ1201に格納される。
【0023】
【発明が解決しようとする課題】以上の動作説明からわ
かるように、歩進量が1より大きい場合は、図12に示
されるアドレスジェネレータにおいて、図18のように
現整数アドレス(3) に歩進量(1.68)が加算された新しい
現整数アドレス(5) は、整数アドレス(4) を飛び越して
いる。
【0024】そのため、このように現在値アドレスの整
数部において飛び越しが発生してしまうと、DPCM−
ROMに記憶されている飛び越された整数アドレスの差
分値データが無視される。
【0025】その結果、各アドレスにおける差分値を順
次累算しなければならないDPCM方式においては、正
しい波形が得られず、その時点で原波形とは異なった波
形となってしまう。
【0026】このように従来のDPCM方式の波形デー
タ読出し装置では、音高に応じた歩進量で整数部アドレ
スを読み飛ばすことができないため、図13に示される
ように、アドレス歩進量を小数部以上に増やすことがで
きず、そのため原音周波数以上の周波数を有する波形デ
ータを生成することができないという問題点を有してい
た。
【0027】本発明の課題は、DPCM方式の波形デー
タ読出し装置において、原音周波数以上の周波数を有す
る楽音を生成可能とすることにある。
【0028】
【課題を解決するための手段】本発明は、まず、波形情
報の各標本値間の差分値データを記憶する差分値データ
記憶手段を有する。
【0029】つぎに、楽器からの音高情報などに基づい
て指定されるアドレスデータ歩進量に基づき、差分値デ
ータ記憶手段から差分値データを読み出すためのアドレ
スデータを更新し生成するアドレスデータ生成手段を有
する。
【0030】また、アドレスデータ生成手段により生成
されたアドレスデータの整数部を基準として、該アドレ
スデータの整数部の更新量に応じた数の連続する整数ア
ドレスデータを生成するアドレスデータ制御手段と、該
アドレスデータ制御手段から順次出力される各整数アド
レスデータに対応して差分値データ記憶手段から順次読
み出される差分値データのうち、最後に読み出される差
分値データを除く差分値データを順次積分する積分演算
手段とで構成される。
【0031】そして、積分演算手段で得られる積分値デ
ータと、差分値データ記憶手段から最後に読み出された
差分値データと、アドレスデータ生成手段により生成さ
れたアドレスデータの小数部に基づいて、補間演算を実
行することにより、波形データを生成し出力する波形デ
ータ出力手段と、を有する。
【0032】
【作用】差分値データ記憶手段から連続する差分値デー
タを順次読み出してそれを順次積分すれば、元の波形情
報が再現される。
【0033】これに対して、アドレスデータ生成手段
が、差分値データ記憶手段から差分値データを読み出す
ためのアドレスデータを、アドレスデータ歩進量に基づ
いて更新することにより、元の波形情報に対して音高が
変化した波形データを生成することができる。従って、
このような波形データを電子楽器などの音源として使用
することができる。
【0034】ここで、例えばアドレスデータ歩進量が1
より大きく、アドレスデータ生成手段におけるアドレス
データの更新によって差分値データ記憶手段上でアドレ
スが2以上進む場合、更新前のアドレスの整数部から更
新されたアドレスの整数部までの間にある各整数アドレ
スによって読み出される差分値データを差分値データ記
憶手段から順次読み出して積分する。
【0035】この結果、アドレスデータ歩進量が1より
大きい場合であっても、適切な積分値データを演算する
ことができる。そして、そのようにして得られる積分値
データに対して、更新されたアドレスデータの整数部で
読み出された差分値データと、当該アドレスデータの小
数部とに基づいて補間演算することにより、波形データ
を生成し出力することができる。
【0036】
【実施例】以下、図面を参照しながら本発明の実施例に
つき詳細に説明する。まず、本発明の実施例の全体構成
は、前述した図11の一般的な構成と同じである。ただ
し、アドレスコントローラ1101から積分器1103
へは、キャリーのほか、後述するステップ変化量が入力
される。アドレスジェネレータの構成 図1は、図11のアドレスジェネレータ1101の本発
明の実施例におけるブロック構成図である。
【0037】図1において、現在値アドレス格納メモリ
101から読み出された現在値アドレスが、前述のDP
CM−ROMアドレッシング用のアドレス上位部(整数
部下1桁目を除いた整数部)とアドレス下位部(整数部
下1桁目と小数部)に分離され、それぞれアドレス上位
部レジスタ102とアドレス下位部レジスタ103にセ
ットされる。
【0038】また、アドレス歩進量格納メモリ104か
らは、演奏される楽音の音高(ピッチ)に比例するアド
レス歩進量が読み出され、アドレス歩進量レジスタ10
5にセットされる。
【0039】このアドレス歩進量と現在値アドレスと
は、図2に示される対応関係にあり、アドレス歩進量
は、現在値アドレスの整数部の下1桁とそれに続く小数
部に対応している。
【0040】つぎに図1に戻って、アドレス下位部レジ
スタ103から読み出されたアドレス下位部と、アドレ
ス歩進量レジスタ105から読み出されたアドレス歩進
量は、バイナリ加算器106で加算される。バイナリ加
算器106は、整数部の1桁と小数部の範囲で加算動作
を行って、現アドレス下位部を出力する。この場合、小
数部の1桁目が桁上がりすると、バイナリ加算器106
は、整数部の値を+1し、整数部の1桁目が桁上がりす
ると、キャリーを出力する。
【0041】一方、インクリメンタ107は、入力され
る現在値アドレスの上位部に対して、バイナリ加算器1
06からのキャリー出力が無ければ、それをそのまま現
アドレス上位部として出力するが、キャリー出力があれ
ば、それをインクリメントして現アドレス上位部として
出力する。
【0042】つぎに、現アドレス上位部と現アドレス下
位部は、更新された現在値アドレスとして、現在値アド
レス格納メモリ101にセットされるとともに、現アド
レス上位部及び現アドレス下位部の整数部は現整数アド
レスとして本発明の実施例における図11のアドレスコ
ントローラ1102へ、また、現アドレス下位部の小数
部は現小数アドレスとして本発明の実施例における図1
1の補間器1104へそれぞれ転送される。
【0043】また、現在値アドレス格納メモリ101か
ら読み出された現在値アドレスの整数部の下位2ビット
は、前アドレスステップレジスタ108に格納され、更
新された現在値アドレスの整数部の下位2ビットととも
に、ステップ演算器109において、図3に示される演
算真理値表に従って演算され、その演算結果が、ステッ
プ変化量として本発明の実施例における図11の積分器
1103に出力される。アドレスコントローラの構成 次に、本発明の実施例における図11のアドレスコント
ローラ1102のブロック構成図は、前述した図14の
構成と同様である。
【0044】ただし、本発明の実施例では、現整数アド
レスとそれがデクリメンタ1403で値1だけ減算され
た整数アドレスのほかに、その減算された整数アドレス
がさらにデクリメンタ1403で値1だけ減算された整
数アドレスが、DPCM−ROMへ出力され得る。積分器の構成 図4は、本発明の実施例における図11の積分器110
3のブロック構成図である。
【0045】図4において、まず、積分値メモリ404
から読み出された積分値は、積分値格納レジスタ405
に格納される。一方、本発明の実施例における図11の
アドレスコントローラ1102において現整数アドレス
から値1だけ減算されたアドレスによってDPCM−R
OMから読み出された差分値データは、#2の差分値レ
ジスタ402に格納される。また、アドレスコントロー
ラ1102において現整数アドレスから値2だけ減算さ
れたアドレスによってDPCM−ROMから読み出され
た差分値データは、#1の差分値レジスタ401に格納
される。
【0046】そして、図1の構成を有する図11のアド
レスジェネレータ1101から入力されるステップ変化
量が後述するように0のときは、積分値格納レジスタ4
05に格納された積分値が積分値セレクタ406によっ
て選択され、積分値演算ALU407に入力される。積
分値演算ALU407は、その積分値を、そのまま積分
値出力レジスタ408に格納する。
【0047】また、上記ステップ変化量が後述するよう
に1のときは、#2の差分値レジスタ402に格納され
ている差分値データが差分値セレクタ403により選択
されて積分値演算ALU407に入力され、一方、積分
値格納レジスタ405に格納された積分値が積分値セレ
クタ406によって選択されて積分値演算ALU407
に入力される。積分値演算ALU407は、積分値格納
レジスタ405からの積分値に、#2の差分値レジスタ
402からの差分値データを累算する。その累算結果
は、積分値出力レジスタ408に格納される。
【0048】さらに、上記ステップ変化量が後述するよ
うに2のときは、まず、第1番目のタイミングで、#1
の差分値レジスタ401に格納されている差分値データ
が差分値セレクタ403により選択されて積分値演算A
LU407に入力され、一方、積分値格納レジスタ40
5に格納された積分値が積分値セレクタ406によって
選択されて積分値演算ALU407に入力される。積分
値演算ALU407は、積分値格納レジスタ405から
の積分値に、#1の差分値レジスタ401からの差分値
データを累算する。その累算結果は、積分値出力レジス
タ408に格納される。つぎに、第2番目のタイミング
で、#2の差分値レジスタ402に格納されている差分
値データが差分値セレクタ403により選択されて積分
値演算ALU407に入力され、一方、第1番目のタイ
ミングで積分値格納レジスタ405に格納された積分値
が積分値セレクタ406で選択されて積分値演算ALU
407に入力される。積分値演算ALU407は、上記
第1番目のタイミングで得られた積分値に上記#2の差
分値レジスタ402からの差分値データを累算する。そ
の累算結果は、ふたたび積分値出力レジスタ408に格
納される。補間器の構成 つぎに、本発明の実施例における図11の補間器110
4のブロック構成図は、前述した図16の構成と同様で
ある。具体例による波形データの生成動作 つぎに、上述した本発明の実施例の動作を、ステップ変
化量0、1、および2に対応する3つの具体例を用いて
説明する。なお、アドレスおよびアドレス歩進量はとも
に、4ビットの整数部と4ビットの小数部を有し、浮動
小数点表示に基づくデータであるとする。 (a) 現在値アドレス:3.25 アドレス歩進量:0.5 図5は、アドレス歩進量と波形データの振幅値との関係
を示す図(その1)である。この場合は、現在値アドレ
スにアドレス歩進量が加算されても、現整数アドレスが
更新されない場合である。また図6は、現在値アドレス
にアドレス歩進量が加算されて、現在値アドレスが更新
され、またステップ変化量が得られる過程を示す図(そ
の1)である。
【0049】まず、図1の構成を有する図11のアドレ
スジェネレータ1101において、現在値アドレス格納
メモリ101から読み出された現在値アドレス(3.25)
は、図6に示されるように、0011:0100で表さ
れる。ここで、“:”は、整数部と小数部の境目を示
す。
【0050】つぎに、この現在値アドレスがDPCM−
ROMアドレッシング用のアドレス上位部(001)と
アドレス下位部(1:0100)に分離され、それぞれ
アドレス上位部レジスタ102とアドレス下位部レジス
タ103にセットされる。
【0051】また、アドレス歩進量格納メモリ104か
らからアドレス歩進量(0.5) (0:1000)が読み出
され、アドレス歩進量レジスタ105にセットされる。
つぎに、アドレス下位部レジスタ103から読み出され
たアドレス下位部(1.25)(1:0100)と、アドレス
歩進量レジスタ105から読み出されたアドレス歩進量
(0.5) (0:1000)が、バイナリ加算器106で加
算され、加算結果として現アドレス下位部(1.75)(1:
1100)が得られる。この場合、バイナリー加算器1
06の整数部の桁上げはないので、キャリーは出力され
ない。
【0052】この結果、インクリメンタ107におい
て、アドレス上位部レジスタ103の出力(001)
は、そのまま現アドレス上位部(001)として出力さ
れる。この段階で現整数アドレスは、現アドレス上位部
(001)と現アドレス下位部の整数部(1)によって
(0011=3(10))となり、また現小数アドレスは、
現アドレス下位部の小数部(0.75)(:1100)に等し
くなる。ここで、X(10)はXが10進値であることを表
す。
【0053】つぎに、現アドレス上位部(001)と現
アドレス下位部(1:1100)により更新された現在
値アドレス(3.75)(0011:1100)は、現在値ア
ドレス格納メモリ101にセットされると共に、現整数
アドレス(0011=3(10))は本発明の実施例におけ
る図11のアドレスコントローラ1102へ、また現小
数アドレス(:1100)は補間器1104へそれぞれ
出力される。
【0054】一方、現在値アドレス(3.25)の整数部の下
位2桁(11)は、前ステップとして前アドレスステッ
プレジスタ108に格納される。そして、上記レジスタ
108の出力と、新ステップである更新された現在値ア
ドレス(3.75)の整数部の下位2桁(11)とに対して、
ステップ演算器109が、図3に示す演算真理値表で示
される演算を行なう。この結果、図5、図6の例では、
ステップ演算器109は、ステップ変化量0を本発明の
実施例における図11の積分器1104に出力する。
【0055】つぎに、図4の構成を有する図11の積分
器1103において、積分値メモリ404から読み出さ
れた積分値(図5のS1 )が、積分値格納レジスタ40
5に格納される。
【0056】しかしこの場合は、ステップ変化量が0で
あるため、積分値演算ALU407における加算演算は
行われず、#1の差分値レジスタ401および#2の差
分値レジスタ402の各内容は無視され、積分値S1
そのまま積分値出力レジスタ408に格納される。
【0057】つぎに、図16の構成を有する本発明の実
施例における図11の補間器1104において、現整数
アドレス(3) によって読み出されデータ入力レジスタ1
601に格納された入力データである差分値D1 は、乗
算器1602で現小数アドレス(0.75)と乗算され、その
乗算出力Dh が、図4の構成を有する図11の積分器1
103から出力され積分値レジスタ1603に格納され
ている積分値S1 に、加算器1604で加算されて、現
在値アドレス(3.75)における振幅値A2 とされる(図5
参照)。 (b) 現在値アドレス:3.75 アドレス歩進量:0.5 図7は、アドレス歩進量と波形データの振幅値との関係
を示す図(その2)である。この場合は、現在値アドレ
スにアドレス歩進量が加算されて、現整数アドレスが+
1更新される場合である。また図8は、現在値アドレス
にアドレス歩進量が加算されて、現在値アドレスが更新
され、またステップ変化量が得られる過程を示す図(そ
の2)である。
【0058】まず、図1の構成を有する図11のアドレ
スジェネレータ1101において、現在値アドレス格納
メモリ101から読み出された現在値アドレス(3.25)
は、図8に示されるように、0011:1100で表さ
れる。
【0059】つぎに、この現在値アドレスがDPCM−
ROMアドレッシング用のアドレス上位部(001)と
アドレス下位部(1:1100)に分離され、それぞれ
アドレス上位部レジスタ102とアドレス下位部レジス
タ103にセットされる。
【0060】また、アドレス歩進量格納メモリ104か
らアドレス歩進量(0.5) (0:1000)が読み出さ
れ、アドレス歩進量レジスタ105にセットされる。つ
ぎに、アドレス下位部レジスタ103から読み出された
アドレス下位部(1.75)(1:1100)と、アドレス歩
進量レジスタ105から読み出されたアドレス歩進量
(0.5) (0:1000)が、バイナリ加算器106で加
算され、加算結果として現アドレス下位部(0.25)(0:
0100)が得られるとともにキャリーが1つインクリ
メンタ107へ出力される。
【0061】この結果、インクリメンタ107におい
て、アドレス上位部レジスタ103の出力(001)が
インクリメントされ、現アドレス上位部(010)とし
て出力される。この段階で現整数アドレスは、現アドレ
ス上位部(010)と現アドレス下位部の整数部(0)
によって(0100=4(10))となり、また現小数アド
レスは、現アドレス下位部の小数部(0.25)(:010
0)に等しくなる。
【0062】つぎに、現アドレス上位部(010)と現
アドレス下位部(0:0100)により更新された現在
値アドレス(4.25)(0100:0100)は、現在値ア
ドレス格納メモリ101にセットされると共に、現整数
アドレス(0100=4(10))は本発明の実施例におけ
る図11のアドレスコントローラ1102へ、また現小
数アドレス(:0100)は補間器1104へそれぞれ
出力される。
【0063】一方、現在値アドレス(3.75)の整数部の下
位2桁(11)は、前ステップとして前アドレスステッ
プレジスタ108に格納される。そして、上記レジスタ
108の出力と、更新された現在値アドレス(4.25)の整
数部の下位2桁(00)である新ステップとに対して、
ステップ演算器109が、図3に示す演算真理値表で示
される演算を行なう。この結果、図7、図8の例では、
ステップ演算器109は、ステップ変化量1を本発明の
実施例における図11の積分器1104に出力する。
【0064】この後、アドレスジェネレータ1101か
ら出力された現整数アドレス(4) は、図11のアドレス
コントローラ1102内の図14のセレクタ1401か
らアドレス出力レジスタ1402を介して、DPCM−
ROMへ出力されるとともに、デクリメンタ1403へ
入力される。つぎに、デクリメンタ1403で値1だけ
減算された整数アドレス(3) が、同様にセレクタ140
1、アドレス出力レジスタ1402を介して、DPCM
−ROMへ出力されるとともに、ふたたびデクリメンタ
1403へ入力される。つづいて、デクリメンタ140
3でさらに値1だけ減算された整数アドレス(2) が、同
様にセレクタ1401、アドレス出力レジスタ1402
を介して、DPCM−ROMへ出力される。
【0065】つぎに、図4の構成を有する図11の積分
器1103において、積分値メモリ404から読み出さ
れた積分値(図7のS1 )が、積分値格納レジスタ40
5に格納される。
【0066】一方、本発明の実施例における図11のア
ドレスコントローラ1102において現整数アドレスか
ら値1だけ減算されたアドレス(3) によってDPCM−
ROMから読み出された差分値データ(図7のD1
は、#2の差分値レジスタ402に格納される。また、
アドレスコントローラ1102において現整数アドレス
から値2だけ減算されたアドレス(2) によりDPCM−
ROMから読み出された差分値データは、#1の差分値
レジスタ401に格納されるが、前述したステップ変化
量が1のときは#1の差分値レジスタ401に格納され
た差分値データは積分動作には使用されず無視される。
【0067】つぎに、上述のようにステップ変化量が1
のときは、#2の差分値レジスタ401に格納されてい
る差分値データ(D1 )が差分値セレクタ403により
選択されて積分値演算ALU407に入力され、一方、
積分値格納レジスタ405に格納された積分値(S1
が積分値セレクタ406によって選択されて積分値演算
ALU407に入力される。積分値演算ALU407
は、積分値格納レジスタ405からの積分値(S1
に、#2の差分値レジスタ401からの差分値データ
(D1 )を累算する。その累算結果(図7のS2 )は、
積分値出力レジスタ408に格納される。
【0068】つぎに、図16の構成を有する本発明の実
施例における図11の補間器1104において、現整数
アドレス(4) によって読み出されデータ入力レジスタ1
601に格納された入力データである差分値D2 は、乗
算器1602で現小数アドレス(0.25)と乗算され、その
乗算出力Dh が、図4の構成を有する図11の積分器1
103から出力され積分値レジスタ1603に格納され
ている積分値S2 に、加算器1604で加算されて、現
在値アドレス(4.25)における振幅値A2 とされる(図7
参照)。 (c) 現在値アドレス:3.75 アドレス歩進量:1.5 図9は、アドレス歩進量と波形データの振幅値との関係
を示す図(その3)である。この場合は、現在値アドレ
スにアドレス歩進量が加算されて、現整数アドレスが+
2更新される場合である。また、図10は現在値アドレ
スにアドレス歩進量が加算されて、現在値アドレスが更
新され、またステップ変化量が得られる過程を示す図
(その3)である。
【0069】まず、図1の構成を有する図11のアドレ
スジェネレータ1101において、現在値アドレス格納
メモリ101から読み出された現在値アドレス(3.75)
は、図10に示されるように、0011:1100で表
される。
【0070】つぎに、この現在値アドレスが、DPCM
−ROMアドレッシング用のアドレス上位部(001)
とアドレス下位部(1.75)(1:1100)に分離され、
それぞれアドレス上位部レジスタ102とアドレス下位
部レジスタ103にセットされる。また、アドレス歩進
量格納メモリ104からからアドレス歩進量(1.5)
(1:1000)が読み出され、アドレス歩進量レジス
タ105にセットされる。
【0071】つぎに、アドレス下位部レジスタ103か
ら読み出されたアドレス下位部(1.75)(1:1100)
と、アドレス歩進量レジスタ105から読み出されたア
ドレス歩進量(1.5) (1:1000)が、バイナリ加算
器106で加算され、加算結果として現アドレス下位部
(1.25)(1:0100)が得られるとともにキャリーが
1つインクリメンタ107へ出力される。
【0072】この結果、インクリメンタ107におい
て、アドレス上位部レジスタ103の出力(001)が
インクリメントされ、現アドレス上位部(010)とし
て出力される。この段階で現整数アドレスは、現アドレ
ス上位部(010)と現アドレス下位部の整数部(1)
によって(0101=5(10))となり、また現小数アド
レスは、現アドレス下位部の小数部(0.25)(:010
0)に等しくなる。
【0073】つぎに、現アドレス上位部(010)と現
アドレス下位部(1:0100)により更新された現在
値アドレス(5.25)(0101:0100)は、現在値ア
ドレス格納メモリ101にセットされると共に、現整数
アドレス(0101=5(10))は本発明の実施例におけ
る図11のアドレスコントローラ1102へ、また現小
数アドレス(:0100)は補間器1104へそれぞれ
出力される。
【0074】一方、現在値アドレス(3.75)の整数部の下
位2桁(11)は、前ステップとして前アドレスステッ
プレジスタ108に格納される。そして、上記レジスタ
108の出力と、更新された現在値アドレス(5.25)の整
数部の下位2桁(01)である新ステップとに対して、
ステップ演算器109が、図3に示す演算真理値表で示
される演算を行なう。この結果、図9、図10の例で
は、ステップ演算器109は、ステップ変化量2を本発
明の実施例における図11の積分器1104に出力す
る。
【0075】この後、アドレスジェネレータ1101か
ら出力された現整数アドレス(5) は、図11のアドレス
コントローラ1102内の図14のセレクタ1401か
らアドレス出力レジスタ1402を介して、DPCM−
ROMへ出力されるとともに、デクリメンタ1403へ
入力される。つぎに、デクリメンタ1403で値1だけ
減算された整数アドレス(4) が、同様にセレクタ140
1、アドレス出力レジスタ1402を介して、DPCM
−ROMへ出力されるとともに、ふたたびデクリメンタ
1403へ入力される。つづいて、デクリメンタ140
3でさらに値1だけ減算された整数アドレス(3) が、同
様にセレクタ1401、アドレス出力レジスタ1402
を介して、DPCM−ROMへ出力される。
【0076】つぎに、図4の構成を有する図11の積分
器1103において、積分値メモリ404から読み出さ
れた積分値(図9のS1 )が、積分値格納レジスタ40
5に格納される。
【0077】一方、本発明の実施例における図11のア
ドレスコントローラ1102において現整数アドレスか
ら値1だけ減算されたアドレス(4) によってDPCM−
ROMから読み出された差分値データ(図9のD2
は、#2の差分値レジスタ402に格納される。また、
アドレスコントローラ1102において現整数アドレス
から値2だけ減算されたアドレス(3) によりDPCM−
ROMから読み出された差分値データ(図9のD1
は、#1の差分値レジスタ401に格納される。
【0078】つぎに、上述のようにステップ変化量が2
のときは、まず、第1番目のタイミングで、#1の差分
値レジスタ401に格納されている差分値データ
(D1 )が差分値セレクタ403により選択されて積分
値演算ALU407に入力され、一方、積分値格納レジ
スタ405に格納された積分値(S1 )が積分値セレク
タ406によって選択されて積分値演算ALU407に
入力される。積分値演算ALU407は、積分値格納レ
ジスタ405からの積分値(S1 )に、#1の差分値レ
ジスタ401からの差分値データ(D1 )を累算する。
その累算結果(図9のS2 )は、積分値出力レジスタ4
08に格納される。
【0079】つづいて、第2番目のタイミングで、#2
の差分値レジスタ402に格納されている差分値データ
(D2 )が差分値セレクタ403により選択されて積分
値演算ALU407に入力され、一方、第1番目のタイ
ミングで積分値格納レジスタ405に格納された積分値
(S2 )が積分値セレクタ406で選択されて積分値演
算ALU407に入力される。積分値演算ALU407
は、上記第1番目のタイミングで得られた積分値
(S2 )に上記#2の差分値レジスタ402からの差分
値データ(D2 )を累算する。その累算結果(図9のS
3 )は、ふたたび積分値出力レジスタ408に格納され
る。
【0080】つぎに、図16の構成を有する本発明の実
施例における図11の補間器1104において、現整数
アドレス(5) によって読み出されデータ入力レジスタ1
601に格納された入力データである差分値D3 は、乗
算器1602で現小数アドレス(0.25)と乗算され、その
乗算出力Dh が、図4の構成を有する図11の積分器1
103から出力され積分値レジスタ1603に格納され
ている積分値S3 に、加算器1604で加算されて、現
在値アドレス(5.25)における振幅値A2 とされる(図9
参照)。
【0081】上述のようにして、1より大きい値のアド
レス歩進量(1.5) によって、現在値アドレスの整数部が
(3) から(5) に飛んでも、ステップ変化量(この場合は
2)を用いることによって、正しい波形データが得られ
る。
【0082】以上説明したように、本発明の実施例で
は、現在値アドレスの整数部の下位2桁である前ステッ
プと更新された現在値アドレスの整数部の下位2桁であ
る新ステップとの数値関係によって、現在値アドレスの
更新動作によって整数部がいくつ増加したか、すなわち
ステップ変化量を判別することができる。従って、その
関係を図3のようなテーブルとして保持しておき、それ
をアドレス更新時に参照することにより、ステップ変化
量を求めることができる。そして、そのステップ変化量
に応じて、サンプリングタイミング毎に、DPCM−R
OMから差分値データを読出しそれを積分する動作の繰
返し回数を制御することにより、アドレス歩進量が1よ
り大きい値であっても正しい波形データを生成できる。他の実施例 なお、以上説明した本発明の実施例では、アドレス歩進
量が2以下、またステップ変化量が2ステップ以下とし
て説明したが、本発明はこれらに限定されるものではな
い。例えば、アドレス歩進量を3以下まで許す場合に
は、以下のようにすればよい。
【0083】すなわち、現在値アドレスを、下2桁を除
いた整数部からなるアドレス上位部と、整数部下2桁と
小数部よりなるアドレス下位部に分離する。つぎに、ア
ドレス下位部に対して、整数部2桁と小数部よりなるア
ドレス歩進量を加算する。つづいて、この加算の結果、
キャリーが生じたら、アドレス上位部の値をインクリメ
ントする。さらに、元の現在値アドレスの整数部の下3
桁と、更新された現在値アドレスの整数部の下3桁とを
比較して、0〜3のステップ変化量を演算し、そのステ
ップ変化量に応じた数の差分値データを順次DPCM−
ROMから読み出して積分演算を行なう。そして、その
積分結果と、現在値アドレスの整数部に対応してDPC
M−ROMから読み出した差分値、および現在値アドレ
スの小数部とに基づいて、補間演算を実行し、所望の波
形データを得る。
【0084】
【発明の効果】本発明によれば、アドレスデータ歩進量
が1より大きい場合であっても、差分値データ記憶手段
に記憶された差分値データに基づいて適切な積分値デー
タを演算することができ、そのようにして得られる適切
な積分値データに対して、波形データを生成し出力する
ことが可能となる。
【0085】この結果、DPCM方式の波形データ読出
し装置において、元々の波形情報の原音高より高い音高
の楽音を生成することが可能となる。そのため、従来の
PCM音源に比べて、はるかに小さい記憶容量で電子楽
器の音源が作れ、製作コストの低減が大きく図られる。
【図面の簡単な説明】
【図1】アドレスジェネレータの本発明の実施例におけ
るブロック構成図である。
【図2】本発明の実施例の現在値アドレスとアドレス歩
進量との対応関係を示す図である。
【図3】ステップ演算器における演算真理値表を示す図
である。
【図4】積分器の本発明の実施例におけるブロック構成
図である。
【図5】本発明の実施例におけるアドレス歩進量と波形
データの振幅値との関係を示す図(その1)である。
【図6】現在値アドレスとアドレス歩進量からステップ
変化量が得られる過程を示す図(その1)である。
【図7】本発明の実施例におけるアドレス歩進量と波形
データの振幅値との関係を示す図(その2)である。
【図8】現在値アドレスとアドレス歩進量からステップ
変化量が得られる過程を示す図(その2)である。
【図9】本発明の実施例におけるアドレス歩進量と波形
データの振幅値との関係を示す図(その3)である。
【図10】現在値アドレスとアドレス歩進量からステッ
プ変化量が得られる過程を示す図(その3)である。
【図11】波形データ読出し装置の全体構成図である。
【図12】従来例のアドレスジェネレータの一部のブロ
ック構成図である。
【図13】従来例の現在値アドレスとアドレス歩進量と
の対応関係を示す図である。
【図14】アドレスコントローラのブロック構成図であ
る。
【図15】従来例の積分器のブロック構成図である。
【図16】補間器のブロック構成図である。
【図17】従来例におけるアドレス歩進量と波形データ
の振幅値との関係を示す図(その1)である。
【図18】従来例におけるアドレス歩進量と波形データ
の振幅値との関係を示す図(その2)である。
【符号の説明】
101 現在値アドレス格納メモリ 102 アドレス上位部レジスタ 103 アドレス下位部レジスタ 104 アドレス歩進量格納メモリ 105 アドレス歩進量レジスタ 106 バイナリ加算器 107 インクリメンタ 108 前アドレスステップレジスタ 109 ステップ演算器 401 差分値レジスタ#1 402 差分値レジスタ#2 403 差分値セレクタ 404 積分値メモリ 405 積分値格納レジスタ 406 積分値セレクタ 407 積分値演算ALU 408 積分値出力レジスタ 1101 アドレスジェネレータ 1102 アドレスコントローラ 1103 積分器 1104 補間器 1201 現在値アドレス格納メモリ 1202 アドレス整数部レジスタ 1203 アドレス小数部レジスタ 1204 アドレス歩進量格納メモリ 1205 アドレス歩進量レジスタ 1401 セレクタ 1402 アドレス出力レジスタ 1403 デクリメンタ 1501 積分用データ入力レジスタ 1502 積分値格納メモリ 1503 積分値出力レジスタ 1504 積分演算ALU 1601 データ入力レジスタ 1602 乗算器 1603 積分値レジスタ 1604 加算器

Claims (1)

    (57)【特許請求の範囲】
  1. 【請求項1】 波形情報の各標本値間の差分値データ
    を記憶する差分値データ記憶手段と、 指定されるアドレスデータ歩進量に基づき、前記差分値
    データ記憶手段から前記差分値データを読み出すための
    アドレスデータを更新し生成するアドレスデータ生成手
    段と、前記アドレスデータ生成手段により生成されたアドレス
    データの整数部を基準として、該アドレスデータの整数
    部の更新量に応じた数の連続する整数アドレスデータを
    生成するアドレスデータ制御手段と、 該アドレスデータ制御手段から順次出力される前記各整
    数アドレスデータに対応して前記差分値データ記憶手段
    から順次読み出される差分値データのうち、最後に読み
    出される差分値データを除く差分値データを順次積分す
    る積分演算手段と、 該積分演算手段で得られる積分値データと、前記差分値
    データ記憶手段から最後に読み出された差分値データ
    と、前記アドレスデータ生成手段により生成されたアド
    レスデータの小数部に基づいて、補間演算を実行するこ
    とにより、波形データを生成し出力する波形データ出力
    手段と、 を有することを特徴とする波形データ読出し装置。
JP07409492A 1992-03-30 1992-03-30 波形データ読出し装置 Expired - Lifetime JP3223560B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP07409492A JP3223560B2 (ja) 1992-03-30 1992-03-30 波形データ読出し装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07409492A JP3223560B2 (ja) 1992-03-30 1992-03-30 波形データ読出し装置

Publications (2)

Publication Number Publication Date
JPH05273978A JPH05273978A (ja) 1993-10-22
JP3223560B2 true JP3223560B2 (ja) 2001-10-29

Family

ID=13537260

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07409492A Expired - Lifetime JP3223560B2 (ja) 1992-03-30 1992-03-30 波形データ読出し装置

Country Status (1)

Country Link
JP (1) JP3223560B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4656326B2 (ja) * 2006-08-11 2011-03-23 カシオ計算機株式会社 波形発生装置
JP5104522B2 (ja) * 2008-04-30 2012-12-19 カシオ計算機株式会社 波形発生装置および波形発生処理プログラム

Also Published As

Publication number Publication date
JPH05273978A (ja) 1993-10-22

Similar Documents

Publication Publication Date Title
US4715257A (en) Waveform generating device for electronic musical instruments
JP2576647B2 (ja) 波形発生装置
JP3223560B2 (ja) 波形データ読出し装置
US5117725A (en) Device for changing and controlling the rate of generating waveform data
JPH0486795A (ja) 楽音発生装置
EP0053892B1 (en) Envelope control system for electronic musical instrument
JP3252296B2 (ja) 波形データ出力装置
JPH10320524A (ja) ルックアップテーブル装置及び画像生成装置
JP3223555B2 (ja) 波形読出装置
JP2950893B2 (ja) 楽音信号発生装置
JP2608938B2 (ja) 波形補間装置
US4936179A (en) Electronic musical instrument
JPH0210556Y2 (ja)
JP2940384B2 (ja) 電子楽器
JP2699287B2 (ja) エンベロープ発生装置
JP2575856B2 (ja) 演算回路
JP3311898B2 (ja) 楽音合成回路
JPS5846036B2 (ja) 電子楽器
JP2790093B2 (ja) 音源装置
RU96111307A (ru) Устройство для вычисления элементарных функций таблично-алгоритмическим методом
JP2510090Y2 (ja) 楽音信号発生装置
JPH11205091A (ja) ディジタルフィルタリング方法およびディジタルフィルタ
JPH06202752A (ja) 指数関数データの補間装置
JPH0334615A (ja) ディジタルフィルタ
JPH0467199B2 (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