JPH05273978A - 波形データ読出し装置 - Google Patents
波形データ読出し装置Info
- Publication number
- JPH05273978A JPH05273978A JP4074094A JP7409492A JPH05273978A JP H05273978 A JPH05273978 A JP H05273978A JP 4074094 A JP4074094 A JP 4074094A JP 7409492 A JP7409492 A JP 7409492A JP H05273978 A JPH05273978 A JP H05273978A
- Authority
- JP
- Japan
- Prior art keywords
- address
- value
- data
- difference value
- register
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
出して楽音を生成する電子楽器の波形データ読出し装置
に関し、原音周波数以上の周波数を有する楽音を生成可
能とすることを目的とする。 【構成】 現在値アドレス(3.75)にアドレス歩進量(1.
5) が加算され、更新された現在値アドレス(5.25)が得
られる。この場合、更新前後のアドレスの整数部が比較
され、その整数部の増加量(ステップ変化量)が判定さ
れる。この結果、例えば整数部が2増加したならば、D
PCM−ROMから、連続する2つの差分値データ(D
1 、D2 )が順次読み出され、元の積分値(S1 )に順
次加算される。その結果得られた新たな積分値(S3 )
と、更新された現在値アドレスの整数部(5) に対応する
差分値データ(Dh )と、更新された現在値アドレスの
小数部(0.25)とから、更新された現在値アドレス(5.25)
に対応する波形データの振幅値(A2 )が、補間演算に
より生成される。
Description
された波形データを読み出して楽音を生成する電子楽器
の波形データ読出し装置に関する。
タの記憶方式として、波形データの各標本値間の差分値
をROM(Read Only Memory)などのメモリに記憶す
る、差分PCM(DPCM:Differential Pulse Code
Moduration)方式がある(以後、DPCM方式で波形デ
ータが記憶されたROMを、DPCM−ROMと呼
ぶ)。このDPCMの復調の段階、すなわち、電子楽器
の演奏時には、このDPCM−ROMから読み出された
各差分値が累算(積分)されて、元の波形データが得ら
れる。
れる、一般的な波形データ読出し装置の全体構成図であ
る。図11において、アドレスジェネレータ1101か
らは、現在値アドレスの整数アドレス(以後、現整数ア
ドレスと呼ぶ)がアドレスコントローラ1102へ、キ
ャリーが積分器1103へ、現在値アドレスの小数アド
レス(以後、現小数アドレスと呼ぶ)が補間器1104
へ、それぞれ出力される。
うに、特には図示していないDPCM−ROMの整数ア
ドレスに対応する差分値が読み出され、積分器1103
と補間器1104によって波形データが作成される。
成しているアドレスジェネレータ1101、アドレスコ
ントローラ1102、積分器1103、および補間器1
104のそれぞれの従来例と全体動作について、図17
及び図18に示される具体例を用いて説明する。
レス(3、4、5、・・・)に記憶されている波形デー
タの累算値(積分値)である各振幅値と、各振幅値間の
差分値、および音高(ピッチ)に比例するアドレス歩進
量の例を示した図である。
記憶されている差分値データの原音高をC4 とし、原音
高に対応するDPCM−ROMの整数アドレスを(3) 、
(4)、(5) 、(6) 、・・・とする。なおアドレス歩進量
(1) は原音高に対応する。
は、アドレス(3) までの各差分値の累算である積分値S
1 であり、アドレス(4) における振幅値は、上記積分値
S1 にDPCM−ROMのアドレス(3) に格納されてい
るアドレス(3) 〜(4) 間の差分値D1 を加算した積分値
S2 である。また、アドレス(5) における振幅値は、積
分値S2 にアドレス(4) に格納されているアドレス(4)
〜(5) の差分値D2 を加算した値である。同様に、アド
レス(6) における振幅値は、積分値S3 にアドレス(5)
に格納されているアドレス(5) 〜(6) 間の差分値D3 を
加算した値である。
波形データを得る場合の例である。ここで、A3 音とC
4 音のピッチ比は0.794 である。すなわち、アドレス歩
進量は、0.794 ≦1となる。そして、現在値アドレスを
3.75、つまり、整数アドレスを(3) 、小数アドレスを
(0.75)として、その現在値アドレスにおける波形データ
の振幅値A1 が得られているものとする。
1101の従来例のブロック構成図である。図12にお
いて、現在値アドレス格納メモリ1201から読み出さ
れた現在値アドレス(3.75)が、図13に示すように、ア
ドレスデータの上位部であるROMアドレッシング用の
整数部(3) とアドレスデータの下位部である補間用の小
数部(0.75)に分離され、それぞれアドレス整数部レジス
タ1202とアドレス小数部レジスタ1203にセット
される。
からは、演奏される楽音の音高(ピッチ)に比例するア
ドレス歩進量(0.794) が読み出され、アドレス歩進量レ
ジスタ1205にセットされる。
は、図13に示すような関係にあり、アドレス歩進量
は、小数部のみから構成される。つぎに、アドレス小数
部レジスタ1203から読み出された小数アドレス(0.7
5)とアドレス歩進量レジスタ1205から読み出された
アドレス歩進量(0.794)は、バイナリ加算器1206で
加算され、現小数アドレス(0.75+0.794=1.544)の小数部
(0.544) とキャリーが出力される。
れる整数アドレスに対して、バイナリ加算器1206か
らのキャリー出力が無ければ、それをそのまま現整数ア
ドレスとして出力するが、図17の例のようにキャリー
出力があれば、それをインクリメントして現整数アドレ
ス(4) として出力する。
レス(0.544) は、更新された現在値アドレス(4.544) と
して、現在値アドレス格納メモリ1201にセットされ
るとともに、現整数アドレス(4) は、図11のアドレス
コントローラ1102へ、また現小数アドレス(0.544)
は補間器1104へ、またキャリーは積分器1103へ
それぞれ出力される。
トローラ1102のブロック構成図である。図14にお
いて、図12の構成を有する図11のアドレスジェネレ
ータ1101から入力された現整数アドレス(4) は、セ
レクタ1401からアドレス出力レジスタ1402を介
して、前述した差分値が記憶されているDPCM−RO
Mへ出力されるとともに、デクリメンタ1403へ入力
される。その後、デクリメンタ1403で値1だけ減算
された整数アドレス(3) が、セレクタ1401、アドレ
ス出力レジスタ1402を介して、DPCM−ROMへ
出力される。
例のブロック構成図である。前述したように、値1だけ
デクリメントされた整数アドレス(3) によってDPC−
ROMから読み出され積分用データ入力レジスタ150
1にセットされた入力データの差分値D1 (図17を参
照)と、積分値格納メモリ1502から読み出され積分
値出力レジスタ1503に格納された積分値S1 は、積
分演算ALU(arithmetic logic unit) 1504でつぎ
のように演算される。
からキャリー出力が無い場合は、積分値出力レジスタ1
503からの積分値がそのままALU1504から出力
され、またキャリーがある場合は、積分値出力レジスタ
1503からの積分値S1 に積分用データ入力レジスタ
1501からの差分値D1 が加算されて積分値S2 とさ
れ(図17参照)、その積分値が積分器1103から補
間器1104へ出力される。
ク構成図である。図16において、現整数アドレス(4)
によって読み出されデータ入力レジスタ1601に格納
された入力データである差分値D2 は、乗算器1602
で現小数アドレス(0.544) と乗算され、その乗算出力D
h が、図15の構成を有する図11の積分器1103か
ら出力され積分値レジスタ1603に格納されている積
分値S2 に、加算器1604で加算されて、現在値アド
レス(4.544) における振幅値A2 とされる(図17参
照)。
現整数アドレス(4) における振幅値を得るために、アド
レス(3) の積分値S1 に、アドレス(3) に格納されたア
ドレス(3) 〜(4) 間の差分値D1 が足され、さらに補間
演算として、アドレス(4) における振幅値である積分値
S2 に、現整数アドレス(4) に格納されているアドレス
(4) 〜(5) 間の差分値D2 に小数部(0.544) を乗算した
値Dh が加算されることによって、現在値アドレス(4.5
44) における波形データの振幅値A2 が得られる。
に、歩進量>1の場合について図18の具体例を用いて
説明する。図18の例は、音名A4 に対応する波形デー
タを得る場合の例である。ここで、A4 音とC4 音のピ
ッチ比は約1.68>1である。そして、現在値アドレスを
3.75、つまり、整数アドレスを(3) 、小数アドレスを
(0.75)として、その現在値アドレスにおける波形データ
の振幅値A1 が得られているものとする。
同じように、図12のアドレス整数部レジスタ1202
から整数アドレス(3) が出力され、アドレス小数部レジ
スタ1203から小数アドレス(0.75)が出力される。一
方、アドレス歩進量格納メモリ1204からアドレス歩
進量(1.68)が出力され、小数部の加算動作を行うバイナ
リ加算器1206で、小数アドレス(0.75)にアドレス歩
進量(1.68)が加算される。
もに、2つのキャリーがバイナリー加算器1206から
インクリメンタ1207へ出力され、インクリメンタ1
207から現整数アドレス(5) が出力される。それとと
もに、バイナリ加算器1206から現小数アドレス(0.4
3)が出力され、新しい現在値アドレス(5.43)が現在値ア
ドレス格納メモリ1201に格納される。
かるように、歩進量が1より大きい場合は、図12に示
されるアドレスジェネレータにおいて、図18のように
現整数アドレス(3) に歩進量(1.68)が加算された新しい
現整数アドレス(5) は、整数アドレス(4) を飛び越して
いる。
数部において飛び越しが発生してしまうと、DPCM−
ROMに記憶されている飛び越された整数アドレスの差
分値データが無視される。
次累算しなければならないDPCM方式においては、正
しい波形が得られず、その時点で原波形とは異なった波
形となってしまう。
タ読出し装置では、音高に応じた歩進量で整数部アドレ
スを読み飛ばすことができないため、図13に示される
ように、アドレス歩進量を小数部以上に増やすことがで
きず、そのため原音周波数以上の周波数を有する波形デ
ータを生成することができないという問題点を有してい
た。
タ読出し装置において、原音周波数以上の周波数を有す
る楽音を生成可能とすることにある。
報の各標本値間の差分値データを記憶する差分値データ
記憶手段を有する。
て指定されるアドレスデータ歩進量に基づき、差分値デ
ータ記憶手段から差分値データを読み出すためのアドレ
スデータを更新し生成するアドレスデータ生成手段を有
する。
新されるアドレスデータに対応して差分値データ記憶手
段上でアドレスが更新されるのに対応して、その各アド
レスに対応する差分値データを差分値データ記憶手段か
ら順次読み出し積分する積分制御手段を有する。この積
分制御手段は、例えば、アドレスデータ生成手段により
生成されたアドレスデータを基準として、そのアドレス
データの更新量に応じた数の連続するアドレスデータを
生成するアドレスデータ制御手段と、そのアドレスデー
タ制御手段から順次出力される各アドレスデータに対応
して差分値データ記憶手段から順次読み出される差分値
データを順次積分する積分演算手段とで構成される。
ータに基づいて波形データを出力する波形データ出力手
段を有する。この波形データ出力手段は、積分手段で得
られる積分値データと、差分値データ記憶手段から読み
出される差分値データと、アドレスデータ生成手段によ
り生成されたアドレスデータに基づいて、補間演算を実
行することにより、波形データを生成し出力する。
タを順次読み出してそれを順次積分すれば、元の波形情
報が再現される。
が、差分値データ記憶手段から差分値データを読み出す
ためのアドレスデータを、アドレスデータ歩進量に基づ
いて更新することにより、元の波形情報に対して音高が
変化した波形データを生成することができる。従って、
このような波形データを電子楽器などの音源として使用
することができる。
より大きい場合に、アドレスデータ生成手段におけるア
ドレスデータの更新によって差分値データ記憶手段上で
アドレスが2以上進む場合、積分制御手段は、その各ア
ドレスの差分値データを差分値データ記憶手段から順次
読み出して積分する。
大きい場合であっても、適切な積分値データを演算する
ことができる。そして、そのようにして得られる積分値
データに対して、波形データ出力手段が例えば補間演算
により、波形データを生成し出力することができる。
つき詳細に説明する。まず、本発明の実施例の全体構成
は、前述した図11の一般的な構成と同じである。ただ
し、アドレスコントローラ1101から積分器1103
へは、キャリーのほか、後述するステップ変化量が入力
される。アドレスジェネレータの構成 図1は、図11のアドレスジェネレータ1101の本発
明の実施例におけるブロック構成図である。
101から読み出された現在値アドレスが、前述のDP
CM−ROMアドレッシング用のアドレス上位部(整数
部下1桁目を除いた整数部)とアドレス下位部(整数部
下1桁目と小数部)に分離され、それぞれアドレス上位
部レジスタ102とアドレス下位部レジスタ103にセ
ットされる。
らは、演奏される楽音の音高(ピッチ)に比例するアド
レス歩進量が読み出され、アドレス歩進量レジスタ10
5にセットされる。
は、図2に示される対応関係にあり、アドレス歩進量
は、現在値アドレスの整数部の下1桁とそれに続く小数
部に対応している。
スタ103から読み出されたアドレス下位部と、アドレ
ス歩進量レジスタ105から読み出されたアドレス歩進
量は、バイナリ加算器106で加算される。バイナリ加
算器106は、整数部の1桁と小数部の範囲で加算動作
を行って、現アドレス下位部を出力する。この場合、小
数部の1桁目が桁上がりすると、バイナリ加算器106
は、整数部の値を+1し、整数部の1桁目が桁上がりす
ると、キャリーを出力する。
る現在値アドレスの上位部に対して、バイナリ加算器1
06からのキャリー出力が無ければ、それをそのまま現
アドレス上位部として出力するが、キャリー出力があれ
ば、それをインクリメントして現アドレス上位部として
出力する。
位部は、更新された現在値アドレスとして、現在値アド
レス格納メモリ101にセットされるとともに、現アド
レス上位部及び現アドレス下位部の整数部は現整数アド
レスとして本発明の実施例における図11のアドレスコ
ントローラ1102へ、また、現アドレス下位部の小数
部は現小数アドレスとして本発明の実施例における図1
1の補間器1104へそれぞれ転送される。
ら読み出された現在値アドレスの整数部の下位2ビット
は、前アドレスステップレジスタ108に格納され、更
新された現在値アドレスの整数部の下位2ビットととも
に、ステップ演算器109において、図3に示される演
算真理値表に従って演算され、その演算結果が、ステッ
プ変化量として本発明の実施例における図11の積分器
1103に出力される。アドレスコントローラの構成 次に、本発明の実施例における図11のアドレスコント
ローラ1102のブロック構成図は、前述した図14の
構成と同様である。
レスとそれがデクリメンタ1403で値1だけ減算され
た整数アドレスのほかに、その減算された整数アドレス
がさらにデクリメンタ1403で値1だけ減算された整
数アドレスが、DPCM−ROMへ出力され得る。積分器の構成 図4は、本発明の実施例における図11の積分器110
3のブロック構成図である。
から読み出された積分値は、積分値格納レジスタ405
に格納される。一方、本発明の実施例における図11の
アドレスコントローラ1102において現整数アドレス
から値1だけ減算されたアドレスによってDPCM−R
OMから読み出された差分値データは、#2の差分値レ
ジスタ402に格納される。また、アドレスコントロー
ラ1102において現整数アドレスから値2だけ減算さ
れたアドレスによってDPCM−ROMから読み出され
た差分値データは、#1の差分値レジスタ401に格納
される。
レスジェネレータ1101から入力されるステップ変化
量が後述するように0のときは、積分値格納レジスタ4
05に格納された積分値が積分値セレクタ406によっ
て選択され、積分値演算ALU407に入力される。積
分値演算ALU407は、その積分値を、そのまま積分
値出力レジスタ408に格納する。
に1のときは、#2の差分値レジスタ402に格納され
ている差分値データが差分値セレクタ403により選択
されて積分値演算ALU407に入力され、一方、積分
値格納レジスタ405に格納された積分値が積分値セレ
クタ406によって選択されて積分値演算ALU407
に入力される。積分値演算ALU407は、積分値格納
レジスタ405からの積分値に、#2の差分値レジスタ
402からの差分値データを累算する。その累算結果
は、積分値出力レジスタ408に格納される。
うに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)である。
スジェネレータ1101において、現在値アドレス格納
メモリ101から読み出された現在値アドレス(3.25)
は、図6に示されるように、0011:0100で表さ
れる。ここで、“:”は、整数部と小数部の境目を示
す。
ROMアドレッシング用のアドレス上位部(001)と
アドレス下位部(1:0100)に分離され、それぞれ
アドレス上位部レジスタ102とアドレス下位部レジス
タ103にセットされる。
らからアドレス歩進量(0.5) (0:1000)が読み出
され、アドレス歩進量レジスタ105にセットされる。
つぎに、アドレス下位部レジスタ103から読み出され
たアドレス下位部(1.25)(1:0100)と、アドレス
歩進量レジスタ105から読み出されたアドレス歩進量
(0.5) (0:1000)が、バイナリ加算器106で加
算され、加算結果として現アドレス下位部(1.75)(1:
1100)が得られる。この場合、バイナリー加算器1
06の整数部の桁上げはないので、キャリーは出力され
ない。
て、アドレス上位部レジスタ103の出力(001)
は、そのまま現アドレス上位部(001)として出力さ
れる。この段階で現整数アドレスは、現アドレス上位部
(001)と現アドレス下位部の整数部(1)によって
(0011=3(10))となり、また現小数アドレスは、
現アドレス下位部の小数部(0.75)(:1100)に等し
くなる。ここで、X(10)はXが10進値であることを表
す。
アドレス下位部(1:1100)により更新された現在
値アドレス(3.75)(0011:1100)は、現在値ア
ドレス格納メモリ101にセットされると共に、現整数
アドレス(0011=3(10))は本発明の実施例におけ
る図11のアドレスコントローラ1102へ、また現小
数アドレス(:1100)は補間器1104へそれぞれ
出力される。
位2桁(11)は、前ステップとして前アドレスステッ
プレジスタ108に格納される。そして、上記レジスタ
108の出力と、新ステップである更新された現在値ア
ドレス(3.75)の整数部の下位2桁(11)とに対して、
ステップ演算器109が、図3に示す演算真理値表で示
される演算を行なう。この結果、図5、図6の例では、
ステップ演算器109は、ステップ変化量0を本発明の
実施例における図11の積分器1104に出力する。
器1103において、積分値メモリ404から読み出さ
れた積分値(図5のS1 )が、積分値格納レジスタ40
5に格納される。
あるため、積分値演算ALU407における加算演算は
行われず、#1の差分値レジスタ401および#2の差
分値レジスタ402の各内容は無視され、積分値S1 は
そのまま積分値出力レジスタ408に格納される。
施例における図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)である。
スジェネレータ1101において、現在値アドレス格納
メモリ101から読み出された現在値アドレス(3.25)
は、図8に示されるように、0011:1100で表さ
れる。
ROMアドレッシング用のアドレス上位部(001)と
アドレス下位部(1:1100)に分離され、それぞれ
アドレス上位部レジスタ102とアドレス下位部レジス
タ103にセットされる。
らアドレス歩進量(0.5) (0:1000)が読み出さ
れ、アドレス歩進量レジスタ105にセットされる。つ
ぎに、アドレス下位部レジスタ103から読み出された
アドレス下位部(1.75)(1:1100)と、アドレス歩
進量レジスタ105から読み出されたアドレス歩進量
(0.5) (0:1000)が、バイナリ加算器106で加
算され、加算結果として現アドレス下位部(0.25)(0:
0100)が得られるとともにキャリーが1つインクリ
メンタ107へ出力される。
て、アドレス上位部レジスタ103の出力(001)が
インクリメントされ、現アドレス上位部(010)とし
て出力される。この段階で現整数アドレスは、現アドレ
ス上位部(010)と現アドレス下位部の整数部(0)
によって(0100=4(10))となり、また現小数アド
レスは、現アドレス下位部の小数部(0.25)(:010
0)に等しくなる。
アドレス下位部(0:0100)により更新された現在
値アドレス(4.25)(0100:0100)は、現在値ア
ドレス格納メモリ101にセットされると共に、現整数
アドレス(0100=4(10))は本発明の実施例におけ
る図11のアドレスコントローラ1102へ、また現小
数アドレス(:0100)は補間器1104へそれぞれ
出力される。
位2桁(11)は、前ステップとして前アドレスステッ
プレジスタ108に格納される。そして、上記レジスタ
108の出力と、更新された現在値アドレス(4.25)の整
数部の下位2桁(00)である新ステップとに対して、
ステップ演算器109が、図3に示す演算真理値表で示
される演算を行なう。この結果、図7、図8の例では、
ステップ演算器109は、ステップ変化量1を本発明の
実施例における図11の積分器1104に出力する。
ら出力された現整数アドレス(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へ出力される。
器1103において、積分値メモリ404から読み出さ
れた積分値(図7のS1 )が、積分値格納レジスタ40
5に格納される。
ドレスコントローラ1102において現整数アドレスか
ら値1だけ減算されたアドレス(3) によってDPCM−
ROMから読み出された差分値データ(図7のD1 )
は、#2の差分値レジスタ402に格納される。また、
アドレスコントローラ1102において現整数アドレス
から値2だけ減算されたアドレス(2) によりDPCM−
ROMから読み出された差分値データは、#1の差分値
レジスタ401に格納されるが、前述したステップ変化
量が1のときは#1の差分値レジスタ401に格納され
た差分値データは積分動作には使用されず無視される。
のときは、#2の差分値レジスタ401に格納されてい
る差分値データ(D1 )が差分値セレクタ403により
選択されて積分値演算ALU407に入力され、一方、
積分値格納レジスタ405に格納された積分値(S1 )
が積分値セレクタ406によって選択されて積分値演算
ALU407に入力される。積分値演算ALU407
は、積分値格納レジスタ405からの積分値(S1 )
に、#2の差分値レジスタ401からの差分値データ
(D1 )を累算する。その累算結果(図7のS2 )は、
積分値出力レジスタ408に格納される。
施例における図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)である。
スジェネレータ1101において、現在値アドレス格納
メモリ101から読み出された現在値アドレス(3.75)
は、図10に示されるように、0011:1100で表
される。
−ROMアドレッシング用のアドレス上位部(001)
とアドレス下位部(1.75)(1:1100)に分離され、
それぞれアドレス上位部レジスタ102とアドレス下位
部レジスタ103にセットされる。また、アドレス歩進
量格納メモリ104からからアドレス歩進量(1.5)
(1:1000)が読み出され、アドレス歩進量レジス
タ105にセットされる。
ら読み出されたアドレス下位部(1.75)(1:1100)
と、アドレス歩進量レジスタ105から読み出されたア
ドレス歩進量(1.5) (1:1000)が、バイナリ加算
器106で加算され、加算結果として現アドレス下位部
(1.25)(1:0100)が得られるとともにキャリーが
1つインクリメンタ107へ出力される。
て、アドレス上位部レジスタ103の出力(001)が
インクリメントされ、現アドレス上位部(010)とし
て出力される。この段階で現整数アドレスは、現アドレ
ス上位部(010)と現アドレス下位部の整数部(1)
によって(0101=5(10))となり、また現小数アド
レスは、現アドレス下位部の小数部(0.25)(:010
0)に等しくなる。
アドレス下位部(1:0100)により更新された現在
値アドレス(5.25)(0101:0100)は、現在値ア
ドレス格納メモリ101にセットされると共に、現整数
アドレス(0101=5(10))は本発明の実施例におけ
る図11のアドレスコントローラ1102へ、また現小
数アドレス(:0100)は補間器1104へそれぞれ
出力される。
位2桁(11)は、前ステップとして前アドレスステッ
プレジスタ108に格納される。そして、上記レジスタ
108の出力と、更新された現在値アドレス(5.25)の整
数部の下位2桁(01)である新ステップとに対して、
ステップ演算器109が、図3に示す演算真理値表で示
される演算を行なう。この結果、図9、図10の例で
は、ステップ演算器109は、ステップ変化量2を本発
明の実施例における図11の積分器1104に出力す
る。
ら出力された現整数アドレス(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へ出力される。
器1103において、積分値メモリ404から読み出さ
れた積分値(図9のS1 )が、積分値格納レジスタ40
5に格納される。
ドレスコントローラ1102において現整数アドレスか
ら値1だけ減算されたアドレス(4) によってDPCM−
ROMから読み出された差分値データ(図9のD2 )
は、#2の差分値レジスタ402に格納される。また、
アドレスコントローラ1102において現整数アドレス
から値2だけ減算されたアドレス(3) によりDPCM−
ROMから読み出された差分値データ(図9のD1 )
は、#1の差分値レジスタ401に格納される。
のときは、まず、第1番目のタイミングで、#1の差分
値レジスタ401に格納されている差分値データ
(D1 )が差分値セレクタ403により選択されて積分
値演算ALU407に入力され、一方、積分値格納レジ
スタ405に格納された積分値(S1 )が積分値セレク
タ406によって選択されて積分値演算ALU407に
入力される。積分値演算ALU407は、積分値格納レ
ジスタ405からの積分値(S1 )に、#1の差分値レ
ジスタ401からの差分値データ(D1 )を累算する。
その累算結果(図9のS2 )は、積分値出力レジスタ4
08に格納される。
の差分値レジスタ402に格納されている差分値データ
(D2 )が差分値セレクタ403により選択されて積分
値演算ALU407に入力され、一方、第1番目のタイ
ミングで積分値格納レジスタ405に格納された積分値
(S2 )が積分値セレクタ406で選択されて積分値演
算ALU407に入力される。積分値演算ALU407
は、上記第1番目のタイミングで得られた積分値
(S2 )に上記#2の差分値レジスタ402からの差分
値データ(D2 )を累算する。その累算結果(図9のS
3 )は、ふたたび積分値出力レジスタ408に格納され
る。
施例における図11の補間器1104において、現整数
アドレス(5) によって読み出されデータ入力レジスタ1
601に格納された入力データである差分値D3 は、乗
算器1602で現小数アドレス(0.25)と乗算され、その
乗算出力Dh が、図4の構成を有する図11の積分器1
103から出力され積分値レジスタ1603に格納され
ている積分値S3 に、加算器1604で加算されて、現
在値アドレス(5.25)における振幅値A2 とされる(図9
参照)。
レス歩進量(1.5) によって、現在値アドレスの整数部が
(3) から(5) に飛んでも、ステップ変化量(この場合は
2)を用いることによって、正しい波形データが得られ
る。
は、現在値アドレスの整数部の下位2桁である前ステッ
プと更新された現在値アドレスの整数部の下位2桁であ
る新ステップとの数値関係によって、現在値アドレスの
更新動作によって整数部がいくつ増加したか、すなわち
ステップ変化量を判別することができる。従って、その
関係を図3のようなテーブルとして保持しておき、それ
をアドレス更新時に参照することにより、ステップ変化
量を求めることができる。そして、そのステップ変化量
に応じて、サンプリングタイミング毎に、DPCM−R
OMから差分値データを読出しそれを積分する動作の繰
返し回数を制御することにより、アドレス歩進量が1よ
り大きい値であっても正しい波形データを生成できる。他の実施例 なお、以上説明した本発明の実施例では、アドレス歩進
量が2以下、またステップ変化量が2ステップ以下とし
て説明したが、本発明はこれらに限定されるものではな
い。例えば、アドレス歩進量を3以下まで許す場合に
は、以下のようにすればよい。
いた整数部からなるアドレス上位部と、整数部下2桁と
小数部よりなるアドレス下位部に分離する。つぎに、ア
ドレス下位部に対して、整数部2桁と小数部よりなるア
ドレス歩進量を加算する。つづいて、この加算の結果、
キャリーが生じたら、アドレス上位部の値をインクリメ
ントする。さらに、元の現在値アドレスの整数部の下3
桁と、更新された現在値アドレスの整数部の下3桁とを
比較して、0〜3のステップ変化量を演算し、そのステ
ップ変化量に応じた数の差分値データを順次DPCM−
ROMから読み出して積分演算を行なう。そして、その
積分結果と、現在値アドレスの整数部に対応してDPC
M−ROMから読み出した差分値、および現在値アドレ
スの小数部とに基づいて、補間演算を実行し、所望の波
形データを得る。
が1より大きい場合であっても、差分値データ記憶手段
に記憶された差分値データに基づいて適切な積分値デー
タを演算することができ、そのようにして得られる適切
な積分値データに対して、波形データを生成し出力する
ことが可能となる。
し装置において、元々の波形情報の原音高より高い音高
の楽音を生成することが可能となる。そのため、従来の
PCM音源に比べて、はるかに小さい記憶容量で電子楽
器の音源が作れ、製作コストの低減が大きく図られる。
るブロック構成図である。
進量との対応関係を示す図である。
である。
図である。
データの振幅値との関係を示す図(その1)である。
変化量が得られる過程を示す図(その1)である。
データの振幅値との関係を示す図(その2)である。
変化量が得られる過程を示す図(その2)である。
データの振幅値との関係を示す図(その3)である。
プ変化量が得られる過程を示す図(その3)である。
ック構成図である。
の対応関係を示す図である。
る。
の振幅値との関係を示す図(その1)である。
の振幅値との関係を示す図(その2)である。
Claims (3)
- 【請求項1】 波形情報の各標本値間の差分値データを
記憶する差分値データ記憶手段と、 指定されるアドレスデータ歩進量に基づき、前記差分値
データ記憶手段から前記差分値データを読み出すための
アドレスデータを更新し生成するアドレスデータ生成手
段と、 該アドレスデータ生成手段において更新される前記アド
レスデータに対応して前記差分値データ記憶手段上でア
ドレスが更新されるのに対応して、該各アドレスに対応
する差分値データを前記差分値データ記憶手段から順次
読み出し積分する積分制御手段と、 該積分制御手段で得られる積分値データに基づいて波形
データを出力する波形データ出力手段と、 を有することを特徴とする波形データ読出し装置。 - 【請求項2】 前記積分制御手段は、 前記アドレスデータ生成手段により生成されたアドレス
データを基準として、該アドレスデータの更新量に応じ
た数の連続するアドレスデータを生成するアドレスデー
タ制御手段と、 該アドレスデータ制御手段から順次出力される前記各ア
ドレスデータに対応して前記差分値データ記憶手段から
順次読み出される前記差分値データを順次積分する積分
演算手段と、 を有することを特徴とする請求項1に記載の波形データ
読出し装置。 - 【請求項3】 前記波形データ出力手段は、前記積分手
段で得られる積分値データと、前記差分値データ記憶手
段から読み出される差分値データと、前記アドレスデー
タ生成手段により生成されたアドレスデータに基づい
て、補間演算を実行することにより、前記波形データを
生成し出力する、 ことを特徴とする請求項1又は2の何れか1項に記載の
波形データ読出し装置。
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 true JPH05273978A (ja) | 1993-10-22 |
JP3223560B2 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) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046175A (ja) * | 2006-08-11 | 2008-02-28 | Casio Comput Co Ltd | 波形発生装置および波形発生処理プログラム |
JP2009265546A (ja) * | 2008-04-30 | 2009-11-12 | Casio Comput Co Ltd | 波形発生装置および波形発生処理プログラム |
-
1992
- 1992-03-30 JP JP07409492A patent/JP3223560B2/ja not_active Expired - Lifetime
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008046175A (ja) * | 2006-08-11 | 2008-02-28 | Casio Comput Co Ltd | 波形発生装置および波形発生処理プログラム |
JP2009265546A (ja) * | 2008-04-30 | 2009-11-12 | Casio Comput Co Ltd | 波形発生装置および波形発生処理プログラム |
Also Published As
Publication number | Publication date |
---|---|
JP3223560B2 (ja) | 2001-10-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4715257A (en) | Waveform generating device for electronic musical instruments | |
JP2576647B2 (ja) | 波形発生装置 | |
US5637821A (en) | Storing and interpolating means for a musical sound generating device | |
US5117725A (en) | Device for changing and controlling the rate of generating waveform data | |
JP3223560B2 (ja) | 波形データ読出し装置 | |
EP0053892B1 (en) | Envelope control system for electronic musical instrument | |
JP2950461B2 (ja) | 楽音発生装置 | |
JP3223555B2 (ja) | 波形読出装置 | |
JPH10320524A (ja) | ルックアップテーブル装置及び画像生成装置 | |
JP3252296B2 (ja) | 波形データ出力装置 | |
JP2608938B2 (ja) | 波形補間装置 | |
JP3435702B2 (ja) | 楽音発生装置 | |
JP2950893B2 (ja) | 楽音信号発生装置 | |
JP2736550B2 (ja) | 電子楽器の補間回路 | |
JP3288500B2 (ja) | 電子楽器の楽音発生装置 | |
JPH02179693A (ja) | 処理装置 | |
JP3651675B2 (ja) | 電子楽器 | |
JP3311898B2 (ja) | 楽音合成回路 | |
JPH06202752A (ja) | 指数関数データの補間装置 | |
JP3104281B2 (ja) | 楽音発生装置 | |
JPH0566779A (ja) | 楽音発生装置 | |
JPH05265462A (ja) | 楽音合成装置 | |
RU96111307A (ru) | Устройство для вычисления элементарных функций таблично-алгоритмическим методом | |
JPH06195085A (ja) | 波形データ出力装置 | |
JPH11205091A (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 |