JP2790160B2 - 波形生成装置および波形記憶装置 - Google Patents
波形生成装置および波形記憶装置Info
- Publication number
- JP2790160B2 JP2790160B2 JP4359637A JP35963792A JP2790160B2 JP 2790160 B2 JP2790160 B2 JP 2790160B2 JP 4359637 A JP4359637 A JP 4359637A JP 35963792 A JP35963792 A JP 35963792A JP 2790160 B2 JP2790160 B2 JP 2790160B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- waveform
- amplitude value
- compressed
- sample
- 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
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【0001】
【産業上の利用分野】この発明は、波形サンプルデータ
を記憶した波形メモリを有する波形生成装置および波形
生成装置で用いる波形記憶装置(波形メモリ)に関す
る。
を記憶した波形メモリを有する波形生成装置および波形
生成装置で用いる波形記憶装置(波形メモリ)に関す
る。
【0002】
【従来の技術】従来、電子楽器などで用いる楽音波形の
生成方式として、所定の波形の順次サンプル点の波形振
幅値をディジタル的に波形メモリに記憶しておき、この
波形メモリの記憶内容を繰返し読出して楽音波形を生成
するようにした波形生成方式が知られている。
生成方式として、所定の波形の順次サンプル点の波形振
幅値をディジタル的に波形メモリに記憶しておき、この
波形メモリの記憶内容を繰返し読出して楽音波形を生成
するようにした波形生成方式が知られている。
【0003】波形メモリからの読出しは、具体的には、
以下のように行なわれる。まず、発生すべき楽音の音高
に対応する周波数情報(いわゆるFナンバ)Fを累算器
で順次累算し、順次出力される累算値qF(q=1,
2,3,…)の整数部Iをアドレスとして所定周期で波
形メモリを読出す。また、累算値qFの整数部Iだけを
アドレスとして読出した波形データは量子化ノイズを含
むため、補間法を用いてこれを改善するようにしてい
る。すなわち、隣合う複数のサンプル点の波形データを
読出して、累算値qFの少数部dに基づく補間を行な
い、任意の位置の振幅値を求めこれを波形データとして
出力している。
以下のように行なわれる。まず、発生すべき楽音の音高
に対応する周波数情報(いわゆるFナンバ)Fを累算器
で順次累算し、順次出力される累算値qF(q=1,
2,3,…)の整数部Iをアドレスとして所定周期で波
形メモリを読出す。また、累算値qFの整数部Iだけを
アドレスとして読出した波形データは量子化ノイズを含
むため、補間法を用いてこれを改善するようにしてい
る。すなわち、隣合う複数のサンプル点の波形データを
読出して、累算値qFの少数部dに基づく補間を行な
い、任意の位置の振幅値を求めこれを波形データとして
出力している。
【0004】このようにして、所望の音高の楽音波形が
出力される。波形メモリの波形データは、順次サンプル
点の波形振幅値をそのまま(いわゆるリニアに)格納し
ている。音高が高くなるとFナンバの値も大きくなるの
で、累算値qFの整数部Iも大きくなり、波形メモリの
データを飛ばし読みしなければならない場合がある。波
形メモリはリニアに波形データを格納しているので、ア
ドレスを飛ばしても、常に各サンプル点の正しい波形振
幅値を読出すことができる。
出力される。波形メモリの波形データは、順次サンプル
点の波形振幅値をそのまま(いわゆるリニアに)格納し
ている。音高が高くなるとFナンバの値も大きくなるの
で、累算値qFの整数部Iも大きくなり、波形メモリの
データを飛ばし読みしなければならない場合がある。波
形メモリはリニアに波形データを格納しているので、ア
ドレスを飛ばしても、常に各サンプル点の正しい波形振
幅値を読出すことができる。
【0005】一方、波形メモリの容量を抑えることなど
を目的として、波形データを圧縮することが行なわれて
いる。圧縮の方式としては、例えばDPCM(差分PC
M)、LPC(線形予測符号化)、およびADPCMな
どがある。これらは、いずれも過去の波形データ(再生
値)と新たに読出したデータとを用いて現在の波形デー
タ(再生値)を得る方式である。
を目的として、波形データを圧縮することが行なわれて
いる。圧縮の方式としては、例えばDPCM(差分PC
M)、LPC(線形予測符号化)、およびADPCMな
どがある。これらは、いずれも過去の波形データ(再生
値)と新たに読出したデータとを用いて現在の波形デー
タ(再生値)を得る方式である。
【0006】
【発明が解決しようとする課題】ところが、上述のよう
なデータ圧縮を行なっている場合は、常にある時点より
前のデータを用いてその時点の波形データを算出するた
め、波形メモリに格納されているデータを連続的に読み
出さなければならない。1つでもデータを読み出さない
と、その次から再生できなくなってしまう。したがっ
て、音高の高い楽音波形信号を再生するため波形メモリ
を飛ばし読みすることができず、音高の幅に制限がある
という問題があった。
なデータ圧縮を行なっている場合は、常にある時点より
前のデータを用いてその時点の波形データを算出するた
め、波形メモリに格納されているデータを連続的に読み
出さなければならない。1つでもデータを読み出さない
と、その次から再生できなくなってしまう。したがっ
て、音高の高い楽音波形信号を再生するため波形メモリ
を飛ばし読みすることができず、音高の幅に制限がある
という問題があった。
【0007】この発明は、上述の従来例における問題点
に鑑み、音高の幅が制限されるようなことがなく波形メ
モリを飛ばし読みすることができ、かつ波形メモリのデ
ータを圧縮できる波形生成装置を提供することを目的と
する。
に鑑み、音高の幅が制限されるようなことがなく波形メ
モリを飛ばし読みすることができ、かつ波形メモリのデ
ータを圧縮できる波形生成装置を提供することを目的と
する。
【0008】
【課題を解決するための手段】この目的を達成するた
め、この発明は、所定の複数サンプル点ごとに非圧縮波
形振幅値データを設けるとともに、該非圧縮波形振幅値
データのサンプル点の間にあるサンプル点に対しては、
直前の非圧縮波形振幅値データを用いて非圧縮波形振幅
値データに変換できるように圧縮された圧縮波形振幅値
データを設けた波形記憶手段と、生成すべき楽音波形の
音高に応じた周波数情報を発生する周波数情報発生手段
と、前記周波数情報を所定速度で繰返し累算して、累算
値を出力する累算手段と、前記累算値に基づいて、前記
波形記憶手段から、2以上の非圧縮波形振幅値データを
含む連続した範囲の複数の非圧縮波形振幅値データおよ
び圧縮波形振幅値データを読出す読出し手段と、前記読
出し手段によって読出された圧縮波形振幅値データを非
圧縮波形振幅値データに変換する変換手段と、前記累算
値に基づいて、前記読出し手段によって読出した非圧縮
波形振幅値データおよび前記変換手段によって得られた
非圧縮波形振幅値データから、補間に用いるべき非圧縮
波形振幅値データを選択する選択手段と、前記選択手段
によって選択された非圧縮波形振幅値データを用いて、
前記累算値に基づく補間処理を行ない、補間結果を波形
データとして出力する補間手段とを備えたことを特徴と
する。
め、この発明は、所定の複数サンプル点ごとに非圧縮波
形振幅値データを設けるとともに、該非圧縮波形振幅値
データのサンプル点の間にあるサンプル点に対しては、
直前の非圧縮波形振幅値データを用いて非圧縮波形振幅
値データに変換できるように圧縮された圧縮波形振幅値
データを設けた波形記憶手段と、生成すべき楽音波形の
音高に応じた周波数情報を発生する周波数情報発生手段
と、前記周波数情報を所定速度で繰返し累算して、累算
値を出力する累算手段と、前記累算値に基づいて、前記
波形記憶手段から、2以上の非圧縮波形振幅値データを
含む連続した範囲の複数の非圧縮波形振幅値データおよ
び圧縮波形振幅値データを読出す読出し手段と、前記読
出し手段によって読出された圧縮波形振幅値データを非
圧縮波形振幅値データに変換する変換手段と、前記累算
値に基づいて、前記読出し手段によって読出した非圧縮
波形振幅値データおよび前記変換手段によって得られた
非圧縮波形振幅値データから、補間に用いるべき非圧縮
波形振幅値データを選択する選択手段と、前記選択手段
によって選択された非圧縮波形振幅値データを用いて、
前記累算値に基づく補間処理を行ない、補間結果を波形
データとして出力する補間手段とを備えたことを特徴と
する。
【0009】前記読出し手段は、前記累算値の上位の値
に基づいて波形記憶手段の読出しアドレスを決定するよ
うにするとよい。後述する実施例では、累算値qFの整
数部Iにより波形メモリの読出しアドレスを決定してい
る。また、前記選択手段は、前記累算値の中位の値に基
づいて補間に用いるべきデータを選択するようにすると
よい。後述する実施例では、累算値qFの少数部Jに定
数Bを乗算した結果BJの整数部iに基づいて、補間に
用いるべきデータを選択するようにしている。さらに、
前記補間手段における補間処理は、前記累算値の下位の
値に基づいて行なうとよい。後述する実施例では、累算
値qFの少数部Jに定数Bを乗算した結果BJの少数部
jに基づいて、補間処理を行なっている。
に基づいて波形記憶手段の読出しアドレスを決定するよ
うにするとよい。後述する実施例では、累算値qFの整
数部Iにより波形メモリの読出しアドレスを決定してい
る。また、前記選択手段は、前記累算値の中位の値に基
づいて補間に用いるべきデータを選択するようにすると
よい。後述する実施例では、累算値qFの少数部Jに定
数Bを乗算した結果BJの整数部iに基づいて、補間に
用いるべきデータを選択するようにしている。さらに、
前記補間手段における補間処理は、前記累算値の下位の
値に基づいて行なうとよい。後述する実施例では、累算
値qFの少数部Jに定数Bを乗算した結果BJの少数部
jに基づいて、補間処理を行なっている。
【0010】また、所定の複数サンプル点ごとに非圧縮
波形振幅値データを設けるとともに、該非圧縮波形振幅
値データのサンプル点の間にあるサンプル点に対して
は、直前の非圧縮波形振幅値データを用いて非圧縮波形
振幅値データに変換できるように圧縮された圧縮波形振
幅値データを設けた波形記憶手段と、生成すべき楽音波
形の音高に応じた周波数情報を発生する周波数情報発生
手段と、前記周波数情報を所定速度で繰返し累算して、
累算値を出力する累算手段と、前記累算値に基づいて、
前記波形記憶手段から、2以上の非圧縮波形振幅値デー
タを含む連続した範囲の複数の非圧縮波形振幅値データ
および圧縮波形振幅値データを読出す読出し手段と、前
記累算値に基づいて、前記読出し手段によって読出した
複数の非圧縮波形振幅値データおよび圧縮波形振幅値デ
ータから、補間に用いるべき非圧縮波形振幅値データお
よび圧縮波形振幅値データを選択する選択手段と、前記
選択手段によって選択された圧縮波形振幅値データを非
圧縮波形振幅値データに変換する変換手段と、前記選択
手段によって選択された非圧縮波形振幅値データと前記
変換手段によって得られた非圧縮波形振幅値データを用
いて、前記累算値に基づく補間処理を行ない、補間結果
を波形データとして出力する補間手段とを備えたことを
特徴とする。
波形振幅値データを設けるとともに、該非圧縮波形振幅
値データのサンプル点の間にあるサンプル点に対して
は、直前の非圧縮波形振幅値データを用いて非圧縮波形
振幅値データに変換できるように圧縮された圧縮波形振
幅値データを設けた波形記憶手段と、生成すべき楽音波
形の音高に応じた周波数情報を発生する周波数情報発生
手段と、前記周波数情報を所定速度で繰返し累算して、
累算値を出力する累算手段と、前記累算値に基づいて、
前記波形記憶手段から、2以上の非圧縮波形振幅値デー
タを含む連続した範囲の複数の非圧縮波形振幅値データ
および圧縮波形振幅値データを読出す読出し手段と、前
記累算値に基づいて、前記読出し手段によって読出した
複数の非圧縮波形振幅値データおよび圧縮波形振幅値デ
ータから、補間に用いるべき非圧縮波形振幅値データお
よび圧縮波形振幅値データを選択する選択手段と、前記
選択手段によって選択された圧縮波形振幅値データを非
圧縮波形振幅値データに変換する変換手段と、前記選択
手段によって選択された非圧縮波形振幅値データと前記
変換手段によって得られた非圧縮波形振幅値データを用
いて、前記累算値に基づく補間処理を行ない、補間結果
を波形データとして出力する補間手段とを備えたことを
特徴とする。
【0011】
【0012】
【作用】波形記憶手段は、複数の順次サンプル点の振幅
値データを記憶している。それら振幅値データは、非圧
縮波形振幅値データか圧縮波形振幅値データかのいずれ
かである。非圧縮波形振幅値データは、所定の複数サン
プル点ごとに設けられている。圧縮波形振幅値データ
は、非圧縮波形振幅値データの間に設けられている。圧
縮波形振幅値データは、その直前にある非圧縮波形振幅
値データを用いて非圧縮波形振幅値データに変換するこ
とができる。
値データを記憶している。それら振幅値データは、非圧
縮波形振幅値データか圧縮波形振幅値データかのいずれ
かである。非圧縮波形振幅値データは、所定の複数サン
プル点ごとに設けられている。圧縮波形振幅値データ
は、非圧縮波形振幅値データの間に設けられている。圧
縮波形振幅値データは、その直前にある非圧縮波形振幅
値データを用いて非圧縮波形振幅値データに変換するこ
とができる。
【0013】楽音波形を生成するときには、まず、生成
すべき楽音波形の音高に応じた周波数情報が発生され
る。この周波数情報は所定速度で繰返し累算され、累算
値が出力される。この累算値に基づいて、波形記憶手段
から、2以上の非圧縮波形振幅値データを含む連続した
範囲の複数の非圧縮波形振幅値データおよび圧縮波形振
幅値データが読出される。読出された圧縮波形振幅値デ
ータは、非圧縮波形振幅値データに変換される。
すべき楽音波形の音高に応じた周波数情報が発生され
る。この周波数情報は所定速度で繰返し累算され、累算
値が出力される。この累算値に基づいて、波形記憶手段
から、2以上の非圧縮波形振幅値データを含む連続した
範囲の複数の非圧縮波形振幅値データおよび圧縮波形振
幅値データが読出される。読出された圧縮波形振幅値デ
ータは、非圧縮波形振幅値データに変換される。
【0014】一方、波形記憶手段から読出された非圧縮
波形振幅値データおよび変換することにより得られた非
圧縮波形振幅値データから、累算値に基づいて、補間に
用いるべき非圧縮波形振幅値データが選択される。選択
された非圧縮波形振幅値データを用いて、累算値に基づ
く補間処理を行ない、補間結果が波形データとして出力
される。
波形振幅値データおよび変換することにより得られた非
圧縮波形振幅値データから、累算値に基づいて、補間に
用いるべき非圧縮波形振幅値データが選択される。選択
された非圧縮波形振幅値データを用いて、累算値に基づ
く補間処理を行ない、補間結果が波形データとして出力
される。
【0015】なお、波形記憶手段から読出したデータか
ら補間に用いるデータを選択し、選択したもののうち圧
縮波形振幅値データを非圧縮波形振幅値データに変換す
るようにしてもよい。
ら補間に用いるデータを選択し、選択したもののうち圧
縮波形振幅値データを非圧縮波形振幅値データに変換す
るようにしてもよい。
【0016】
【実施例】以下、図面を用いてこの発明の実施例を説明
する。
する。
【0017】図1は、この発明の一実施例に係る波形生
成装置を適用した電子楽器のブロック構成を示す。この
電子楽器は、音色スイッチ1、検出器2、鍵盤3、検出
器4、音源部5、ディジタルアナログ変換器(DAC)
6、およびサウンドシステム7を備えている。
成装置を適用した電子楽器のブロック構成を示す。この
電子楽器は、音色スイッチ1、検出器2、鍵盤3、検出
器4、音源部5、ディジタルアナログ変換器(DAC)
6、およびサウンドシステム7を備えている。
【0018】音色スイッチ1は、発生する楽音の音色を
指定するためのスイッチである。検出器2は、音色スイ
ッチ1の操作を検出して、指定された音色の音色番号T
Cを音源部5に向けて出力する。鍵盤3は、演奏者が演
奏するための複数の鍵を備えた鍵盤である。検出器4
は、鍵盤3の演奏を検出し、演奏データKDを音源部5
に向けて出力する。演奏データKDは、鍵のオン/オフ
を示すキーオン/オフ信号および音高を示すノードコー
ドを含む。
指定するためのスイッチである。検出器2は、音色スイ
ッチ1の操作を検出して、指定された音色の音色番号T
Cを音源部5に向けて出力する。鍵盤3は、演奏者が演
奏するための複数の鍵を備えた鍵盤である。検出器4
は、鍵盤3の演奏を検出し、演奏データKDを音源部5
に向けて出力する。演奏データKDは、鍵のオン/オフ
を示すキーオン/オフ信号および音高を示すノードコー
ドを含む。
【0019】音源部5は、検出器2,4からの音色番号
TCおよび演奏データKDに基づいて楽音信号(ディジ
タル波形振幅値データ)を生成出力する。音源部5は、
内部に波形メモリを備えている。DAC6は、音源部5
からの楽音信号に対しディジタルアナログ変換を行な
い、アナログ楽音信号を出力する。サウンドシステム7
は、DAC6から出力されるアナログ楽音信号に基づき
実際に楽音を放音する。
TCおよび演奏データKDに基づいて楽音信号(ディジ
タル波形振幅値データ)を生成出力する。音源部5は、
内部に波形メモリを備えている。DAC6は、音源部5
からの楽音信号に対しディジタルアナログ変換を行な
い、アナログ楽音信号を出力する。サウンドシステム7
は、DAC6から出力されるアナログ楽音信号に基づき
実際に楽音を放音する。
【0020】図2は、図1の音源部5の内部に設けられ
ている波形メモリの波形データフォーマットを示す。波
形メモリは、複数の記憶バンクを有し、各バンクに音色
ごとの波形デ−タが記憶されている。図2は、ある1つ
の音色の波形デ−タを示したものである。
ている波形メモリの波形データフォーマットを示す。波
形メモリは、複数の記憶バンクを有し、各バンクに音色
ごとの波形デ−タが記憶されている。図2は、ある1つ
の音色の波形デ−タを示したものである。
【0021】波形データは、その音色の楽音波形の順次
サンプル点振幅値(波形振幅値)デ−タからなる。ただ
し、この実施例では、振幅値そのままの非圧縮なデータ
(以下、「リニアサンプル」と呼ぶ)と直前のサンプル
点の振幅値からの差分データ(以下、「圧縮サンプル」
と呼ぶ)とが混在している。具体的には、16ビットの
リニアサンプル、8ビットの圧縮サンプル、および8ビ
ットの圧縮サンプルが、この順で並んだブロックの繰返
しである。
サンプル点振幅値(波形振幅値)デ−タからなる。ただ
し、この実施例では、振幅値そのままの非圧縮なデータ
(以下、「リニアサンプル」と呼ぶ)と直前のサンプル
点の振幅値からの差分データ(以下、「圧縮サンプル」
と呼ぶ)とが混在している。具体的には、16ビットの
リニアサンプル、8ビットの圧縮サンプル、および8ビ
ットの圧縮サンプルが、この順で並んだブロックの繰返
しである。
【0022】図2において、D0 は読出し開始位置であ
るアドレス(先頭からのオフセットアドレス)0に格納
された16ビットのリニアサンプル、D1 は次のアドレ
ス1の前半に格納された8ビットの圧縮サンプル、D2
はアドレス1の後半に格納された8ビットの圧縮サンプ
ルを示す。以下同様に、D3 ,D6 ,D9 ,…,Dm
は、それぞれアドレス2,4,6,…,(2/3)mに
格納された16ビットのリニアサンプルを示す。D4 ,
D7 ,D10,…,Dm+1 は、それぞれアドレス3,5,
7,…,(2/3)m+1の前半に格納された8ビット
の圧縮サンプルを示す。D5 ,D8 ,D11,…,Dm+2
は、それぞれアドレス3,5,7,…,(2/3)m+
1の後半に格納された8ビットの圧縮サンプルを示す。
るアドレス(先頭からのオフセットアドレス)0に格納
された16ビットのリニアサンプル、D1 は次のアドレ
ス1の前半に格納された8ビットの圧縮サンプル、D2
はアドレス1の後半に格納された8ビットの圧縮サンプ
ルを示す。以下同様に、D3 ,D6 ,D9 ,…,Dm
は、それぞれアドレス2,4,6,…,(2/3)mに
格納された16ビットのリニアサンプルを示す。D4 ,
D7 ,D10,…,Dm+1 は、それぞれアドレス3,5,
7,…,(2/3)m+1の前半に格納された8ビット
の圧縮サンプルを示す。D5 ,D8 ,D11,…,Dm+2
は、それぞれアドレス3,5,7,…,(2/3)m+
1の後半に格納された8ビットの圧縮サンプルを示す。
【0023】リニアサンプルとそれに続く2つの圧縮サ
ンプルの組をブロックと呼ぶ。例えば、データD0 ,D
1 ,D2 は1つのブロック、データD3 ,D4 ,D5 は
1つのブロック、…である。
ンプルの組をブロックと呼ぶ。例えば、データD0 ,D
1 ,D2 は1つのブロック、データD3 ,D4 ,D5 は
1つのブロック、…である。
【0024】図3は、波形メモリに格納する図2のよう
な波形データと元の楽音波形との関連を示す図である。
300はサンプリングする楽音波形、301〜306は
それぞれサンプリング点を示す。黒丸で示したサンプリ
ング点301,304ではリニアサンプルをとり、白丸
で示したサンプリング点302,303,305,30
6では圧縮サンプルをとる。
な波形データと元の楽音波形との関連を示す図である。
300はサンプリングする楽音波形、301〜306は
それぞれサンプリング点を示す。黒丸で示したサンプリ
ング点301,304ではリニアサンプルをとり、白丸
で示したサンプリング点302,303,305,30
6では圧縮サンプルをとる。
【0025】例えば、サンプリング点301でサンプリ
ングしたリニアサンプルを図2のD3 とすると、次のサ
ンプリング点302のデータD4 は、サンプリング点3
02における振幅値とサンプリング点301における振
幅値との差分311となる。同様に、サンプリング点3
03のデータD5 は、サンプリング点303における振
幅値とサンプリング点302における振幅値との差分3
12となる。
ングしたリニアサンプルを図2のD3 とすると、次のサ
ンプリング点302のデータD4 は、サンプリング点3
02における振幅値とサンプリング点301における振
幅値との差分311となる。同様に、サンプリング点3
03のデータD5 は、サンプリング点303における振
幅値とサンプリング点302における振幅値との差分3
12となる。
【0026】この実施例の電子楽器では、隣合う4つの
サンプルポイントに対応する波形データから補間を行な
う。上述の図2のように波形データを構成すれば、隣合
う4点の波形データを得るためには、以下の3つの組合
わせがある。
サンプルポイントに対応する波形データから補間を行な
う。上述の図2のように波形データを構成すれば、隣合
う4点の波形データを得るためには、以下の3つの組合
わせがある。
【0027】(1−)リニアサンプル、圧縮サンプ
ル、圧縮サンプル、リニアサンプルの順に4点をとる。
例えば、図2のデータD0 ,D1 ,D2 ,D3 の4点で
ある。圧縮サンプルD1 に対応するサンプル点のリニア
な振幅値を得るためには、リニアサンプルD0 を用い
て、D0 +D1 =D1 ′で算出する。また、圧縮サンプ
ルD2 に対応するサンプル点のリニアな振幅値を得るた
めには、算出したリニアサンプルD1 ′を用いて、D1
′+D2 =D2 ′で算出する。以下、簡単のため、圧
縮サンプルから求めたリニアな振幅値(例えば、上記D
1 ′やD2 ′)を算出リニアサンプルと呼ぶこととす
る。得られたデータD0 ,D1 ′,D2 ′,D3 に基づ
いて補間を行ない、データD0 のサンプル点とデータD
1 ′のサンプル点との間にある目的サンプル点の波形振
幅値を得る。
ル、圧縮サンプル、リニアサンプルの順に4点をとる。
例えば、図2のデータD0 ,D1 ,D2 ,D3 の4点で
ある。圧縮サンプルD1 に対応するサンプル点のリニア
な振幅値を得るためには、リニアサンプルD0 を用い
て、D0 +D1 =D1 ′で算出する。また、圧縮サンプ
ルD2 に対応するサンプル点のリニアな振幅値を得るた
めには、算出したリニアサンプルD1 ′を用いて、D1
′+D2 =D2 ′で算出する。以下、簡単のため、圧
縮サンプルから求めたリニアな振幅値(例えば、上記D
1 ′やD2 ′)を算出リニアサンプルと呼ぶこととす
る。得られたデータD0 ,D1 ′,D2 ′,D3 に基づ
いて補間を行ない、データD0 のサンプル点とデータD
1 ′のサンプル点との間にある目的サンプル点の波形振
幅値を得る。
【0028】(1−)圧縮サンプル、圧縮サンプル、
リニアサンプル、圧縮サンプルの順に4点をとる。例え
ば、図2のデータD1 ,D2 ,D3 ,D4 の4点であ
る。圧縮サンプルD1 ,D2 に対応する算出リニアサン
プルD1 ′,D2 ′を得るためには、リニアサンプルD
0 が必要である。算出リニアサンプルD4 ′は、リニア
サンプルD3 を用いて算出する。得られたデータD1
′,D2 ′,D3 ,D4 ′に基づいて補間を行ない、
データD1 ′のサンプル点とデータD2 ′のサンプル点
との間にある目的サンプル点の波形振幅値を得る。
リニアサンプル、圧縮サンプルの順に4点をとる。例え
ば、図2のデータD1 ,D2 ,D3 ,D4 の4点であ
る。圧縮サンプルD1 ,D2 に対応する算出リニアサン
プルD1 ′,D2 ′を得るためには、リニアサンプルD
0 が必要である。算出リニアサンプルD4 ′は、リニア
サンプルD3 を用いて算出する。得られたデータD1
′,D2 ′,D3 ,D4 ′に基づいて補間を行ない、
データD1 ′のサンプル点とデータD2 ′のサンプル点
との間にある目的サンプル点の波形振幅値を得る。
【0029】(1−)圧縮サンプル、リニアサンプ
ル、圧縮サンプル、圧縮サンプルの順に4点をとる。例
えば、図2のデータD2 ,D3 ,D4 ,D5 の4点であ
る。圧縮サンプルD2 に対応する算出リニアサンプルD
2 ′を得るためには、リニアサンプルD0 と圧縮サンプ
ルD1 が必要である。算出リニアサンプルD4 ′,D5
′は、リニアサンプルD3 を用いて算出する。得られ
たデータD2 ′,D3 ,D4′,D5 ′に基づいて補間
を行ない、データD2 ′のサンプル点とデータD3 ′の
サンプル点との間にある目的サンプル点の波形振幅値を
得る。
ル、圧縮サンプル、圧縮サンプルの順に4点をとる。例
えば、図2のデータD2 ,D3 ,D4 ,D5 の4点であ
る。圧縮サンプルD2 に対応する算出リニアサンプルD
2 ′を得るためには、リニアサンプルD0 と圧縮サンプ
ルD1 が必要である。算出リニアサンプルD4 ′,D5
′は、リニアサンプルD3 を用いて算出する。得られ
たデータD2 ′,D3 ,D4′,D5 ′に基づいて補間
を行ない、データD2 ′のサンプル点とデータD3 ′の
サンプル点との間にある目的サンプル点の波形振幅値を
得る。
【0030】以上より、リニアサンプルから始めて4回
のアドレッシングを行なえば(例えば上記の例では図2
のアドレス0,1,2,3の16ビット×4データを読
み出せば)、隣合う4点の振幅値を必ず得ることができ
ることになる。言い換えると、波形メモリのどの位置か
ら読出しを開始する場合でも、2ブロック分を読み出し
さえすれば、隣合う4点の振幅値を必ず得ることができ
る。
のアドレッシングを行なえば(例えば上記の例では図2
のアドレス0,1,2,3の16ビット×4データを読
み出せば)、隣合う4点の振幅値を必ず得ることができ
ることになる。言い換えると、波形メモリのどの位置か
ら読出しを開始する場合でも、2ブロック分を読み出し
さえすれば、隣合う4点の振幅値を必ず得ることができ
る。
【0031】次に、上述したように波形メモリを構成
し、飛ばし読みを可能とした本実施例の音源部につき詳
しく説明する。
し、飛ばし読みを可能とした本実施例の音源部につき詳
しく説明する。
【0032】図4は、図1の音源部5のブロック構成を
示す。音源部5は、発音チャンネル割当て部401、音
色データ供給部402、Fナンバ発生部403、カウン
タ404、乗算器405,406、加算器407,40
8、補助カウンタ409、波形メモリ410、デコーダ
411、補間部412、エンベロープ発生器413、乗
算器414、およびチャンネル累算器415を備えてい
る。
示す。音源部5は、発音チャンネル割当て部401、音
色データ供給部402、Fナンバ発生部403、カウン
タ404、乗算器405,406、加算器407,40
8、補助カウンタ409、波形メモリ410、デコーダ
411、補間部412、エンベロープ発生器413、乗
算器414、およびチャンネル累算器415を備えてい
る。
【0033】音色番号TCは、音色データ供給部402
に入力する。演奏データKDは、発音チャンネル割当て
部401に入力する。発音チャンネル割当て部401
は、入力演奏データKDに基づいて、時分割でチャンネ
ルの割当てを行ない、各チャンネルのタイムスロット
で、キーオン/オフ信号を音色データ供給部402に、
音高を示すキーコードをFナンバ発生部403に、それ
ぞれ出力する。
に入力する。演奏データKDは、発音チャンネル割当て
部401に入力する。発音チャンネル割当て部401
は、入力演奏データKDに基づいて、時分割でチャンネ
ルの割当てを行ない、各チャンネルのタイムスロット
で、キーオン/オフ信号を音色データ供給部402に、
音高を示すキーコードをFナンバ発生部403に、それ
ぞれ出力する。
【0034】音色データ供給部402は、各チャンネル
のタイムスロットで、音色番号TCに応じた音色データ
を、Fナンバ発生部403およびエンベロープ発生部4
13に供給する。また、音色データ供給部402は、音
色に応じたスタートアドレス(波形メモリ410の該音
色のデータ格納スタートアドレス)SAを加算器407
に向けて出力する。
のタイムスロットで、音色番号TCに応じた音色データ
を、Fナンバ発生部403およびエンベロープ発生部4
13に供給する。また、音色データ供給部402は、音
色に応じたスタートアドレス(波形メモリ410の該音
色のデータ格納スタートアドレス)SAを加算器407
に向けて出力する。
【0035】Fナンバ発生部403は、各タイムスロッ
トにおいて、発生すべき楽音の音色データとキーコード
に応じたFナンバを発生する。カウンタ404は、この
Fナンバを順次累算し、累算値qF(q=1、2、3、
…)を出力する。累算値qFの整数部I(所定ビット位
置(小数点位置)より上位の値)は、乗算器405で所
定の定数Aと乗算される。この乗算結果AIは、波形デ
ータのスタートアドレスからのオフセット(図2のアド
レス0,1,2,…)となる。この乗算結果AIは、加
算器407でスタートアドレスSAと加算され、その加
算結果SA+AIは加算器408に入力する。
トにおいて、発生すべき楽音の音色データとキーコード
に応じたFナンバを発生する。カウンタ404は、この
Fナンバを順次累算し、累算値qF(q=1、2、3、
…)を出力する。累算値qFの整数部I(所定ビット位
置(小数点位置)より上位の値)は、乗算器405で所
定の定数Aと乗算される。この乗算結果AIは、波形デ
ータのスタートアドレスからのオフセット(図2のアド
レス0,1,2,…)となる。この乗算結果AIは、加
算器407でスタートアドレスSAと加算され、その加
算結果SA+AIは加算器408に入力する。
【0036】ここで乗算器405の定数Aは、上記加算
結果SA+AIによって波形メモリのリニアサンプルが
アドレッシングされるように選択されている。図2から
分かるように、この実施例ではアドレス0,2,4,…
にリニアサンプルが記憶されているから、上記定数Aの
値は「2」である。これにより、加算器407の加算結
果は常にリニアサンプルをアドレッシングするアドレス
となる。
結果SA+AIによって波形メモリのリニアサンプルが
アドレッシングされるように選択されている。図2から
分かるように、この実施例ではアドレス0,2,4,…
にリニアサンプルが記憶されているから、上記定数Aの
値は「2」である。これにより、加算器407の加算結
果は常にリニアサンプルをアドレッシングするアドレス
となる。
【0037】補助カウンタ409は、何サンプルを用い
て補間を行なうか、その数に応じてカウント値を繰返し
出力する。この実施例では、上述したように、4つの連
続するアドレスのデータ(16ビット×4)さえ読み出
せば、隣合う4点の振幅値を必ず得ることができるか
ら、補助カウンタ409は「0」「1」「2」「3」を
この順で順次出力する。
て補間を行なうか、その数に応じてカウント値を繰返し
出力する。この実施例では、上述したように、4つの連
続するアドレスのデータ(16ビット×4)さえ読み出
せば、隣合う4点の振幅値を必ず得ることができるか
ら、補助カウンタ409は「0」「1」「2」「3」を
この順で順次出力する。
【0038】加算器408は、加算器407の加算結果
(リニアサンプルのアドレス)に補助カウンタ409か
らの出力を加算して、順次出力する。これにより、加算
器408からは、連続する4つのアドレスが順次出力さ
れることとなる。
(リニアサンプルのアドレス)に補助カウンタ409か
らの出力を加算して、順次出力する。これにより、加算
器408からは、連続する4つのアドレスが順次出力さ
れることとなる。
【0039】波形メモリ410は、加算器408から順
次出力される4つの連続するアドレスによってデータが
読出される。第1番目のデータはリニアサンプル、第2
番目は圧縮サンプルが2つ分、第3番目はリニアサンプ
ル、第4番目は圧縮サンプルが2つ分である。読み出さ
れた4つのデータは、順次デコーダ411に入力する。
次出力される4つの連続するアドレスによってデータが
読出される。第1番目のデータはリニアサンプル、第2
番目は圧縮サンプルが2つ分、第3番目はリニアサンプ
ル、第4番目は圧縮サンプルが2つ分である。読み出さ
れた4つのデータは、順次デコーダ411に入力する。
【0040】一方、カウンタ404の少数部J(所定ビ
ット位置(小数点位置)より下位の値)は、乗算器40
6で所定の定数Bと乗算される。本実施例では定数Bの
値は「3」である。この値は、図2,3から分かるよう
に、リニアサンプルから次のリニアサンプルまでに3区
間あり、補間して求めるべき目的サンプル点がどの区間
に含まれるかを区別できるように選ばれている。乗算結
果BJの整数部i(「0」「1」「2」または「3」)
はデコーダ411に入力し、デコーダ411はこの整数
部iの値に基づいて4つの隣合うサンプル点のリニアな
振幅値データを順次出力する。
ット位置(小数点位置)より下位の値)は、乗算器40
6で所定の定数Bと乗算される。本実施例では定数Bの
値は「3」である。この値は、図2,3から分かるよう
に、リニアサンプルから次のリニアサンプルまでに3区
間あり、補間して求めるべき目的サンプル点がどの区間
に含まれるかを区別できるように選ばれている。乗算結
果BJの整数部i(「0」「1」「2」または「3」)
はデコーダ411に入力し、デコーダ411はこの整数
部iの値に基づいて4つの隣合うサンプル点のリニアな
振幅値データを順次出力する。
【0041】以下、整数部iの意味およびデコーダ41
1が整数部iの値に基づいてどのように4点を選択する
かなどについて概略を説明する。
1が整数部iの値に基づいてどのように4点を選択する
かなどについて概略を説明する。
【0042】例えば、波形メモリ410から図2のアド
レス4,5,6,7の4データがデコーダ411に入力
したとする。サンプルでいえば、リニアサンプルD6 ,
D9および圧縮サンプルD7 ,D8 ,D10,D11がデコ
ーダ411に入力したことになる。
レス4,5,6,7の4データがデコーダ411に入力
したとする。サンプルでいえば、リニアサンプルD6 ,
D9および圧縮サンプルD7 ,D8 ,D10,D11がデコ
ーダ411に入力したことになる。
【0043】図3のサンプル点301をD6 に、サンプ
ル点302をD7 に、サンプル点303をD8 に、サン
プル点304をD9 に、サンプル点305をD10に、サ
ンプル点306をD11に、それぞれ対応させると、いま
補間によって求めたい目的サンプル点がどこにあるかに
よって、以下のような場合分けをする必要がある。
ル点302をD7 に、サンプル点303をD8 に、サン
プル点304をD9 に、サンプル点305をD10に、サ
ンプル点306をD11に、それぞれ対応させると、いま
補間によって求めたい目的サンプル点がどこにあるかに
よって、以下のような場合分けをする必要がある。
【0044】(2−)目的サンプル点が、サンプル点
301と302の間にあるとき このとき図4のカウンタ404から出力される少数部J
は、0≦J<(1/3)であるから、定数B(=3)を
乗算した結果BJは、0≦BJ<1であり、乗算結果B
Jの整数部iは「0」となる。デコーダ411は、整数
部i=0を入力すると、上記の入力サンプルデータD6
〜D11に基づいて、サンプル点301,302,30
3,304の各振幅値(すべてリニアな値)を求めて順
次出力する。すなわち、リニアサンプルD6 、算出リニ
アサンプルD7 ′(=D6 +D7 )、算出リニアサンプ
ルD8 ′(=D7 ′+D8 )、およびリニアサンプルD
9 の4つの振幅値を順次出力する。
301と302の間にあるとき このとき図4のカウンタ404から出力される少数部J
は、0≦J<(1/3)であるから、定数B(=3)を
乗算した結果BJは、0≦BJ<1であり、乗算結果B
Jの整数部iは「0」となる。デコーダ411は、整数
部i=0を入力すると、上記の入力サンプルデータD6
〜D11に基づいて、サンプル点301,302,30
3,304の各振幅値(すべてリニアな値)を求めて順
次出力する。すなわち、リニアサンプルD6 、算出リニ
アサンプルD7 ′(=D6 +D7 )、算出リニアサンプ
ルD8 ′(=D7 ′+D8 )、およびリニアサンプルD
9 の4つの振幅値を順次出力する。
【0045】(2−)目的サンプル点が、サンプル点
302と303の間にあるとき このとき図1のカウンタ404から出力される少数部J
は、(1/3)≦J<(2/3)であるから、定数B
(=3)を乗算した結果BJは、1≦BJ<2であり、
乗算結果BJの整数部iは「1」となる。デコーダ41
1は、整数部i=1を入力すると、上記の入力サンプル
データD6 〜D11に基づいて、サンプル点302,30
3,304,305の各振幅値(すべてリニアな値)を
求めて順次出力する。すなわち、算出リニアサンプルD
7 ′(=D6 +D7 )、算出リニアサンプルD8 ′(=
D7 ′+D8 )、リニアサンプルD9 、および算出リニ
アサンプルD10′(=D9 +D10)の4つの振幅値を順
次出力する。
302と303の間にあるとき このとき図1のカウンタ404から出力される少数部J
は、(1/3)≦J<(2/3)であるから、定数B
(=3)を乗算した結果BJは、1≦BJ<2であり、
乗算結果BJの整数部iは「1」となる。デコーダ41
1は、整数部i=1を入力すると、上記の入力サンプル
データD6 〜D11に基づいて、サンプル点302,30
3,304,305の各振幅値(すべてリニアな値)を
求めて順次出力する。すなわち、算出リニアサンプルD
7 ′(=D6 +D7 )、算出リニアサンプルD8 ′(=
D7 ′+D8 )、リニアサンプルD9 、および算出リニ
アサンプルD10′(=D9 +D10)の4つの振幅値を順
次出力する。
【0046】(2−)目的サンプル点が、サンプル点
303と304の間にあるとき このとき図1のカウンタ404から出力される少数部J
は、(2/3)≦J<1であるから、定数B(=3)を
乗算した結果BJは、2≦BJ<3であり、乗算結果B
Jの整数部iは「2」となる。デコーダ411は、整数
部i=2を入力すると、上記の入力サンプルデータD6
〜D11に基づいて、サンプル点303,304,30
5,306の各振幅値(すべてリニアな値)を求めて順
次出力する。すなわち、算出リニアサンプルD8 ′(=
D7 ′+D8 )、リニアサンプルD9 、算出リニアサン
プルD10′(=D9 +D10)、および算出リニアサンプ
ルD11′(=D10′+D11)の4つの振幅値を順次出力
する。
303と304の間にあるとき このとき図1のカウンタ404から出力される少数部J
は、(2/3)≦J<1であるから、定数B(=3)を
乗算した結果BJは、2≦BJ<3であり、乗算結果B
Jの整数部iは「2」となる。デコーダ411は、整数
部i=2を入力すると、上記の入力サンプルデータD6
〜D11に基づいて、サンプル点303,304,30
5,306の各振幅値(すべてリニアな値)を求めて順
次出力する。すなわち、算出リニアサンプルD8 ′(=
D7 ′+D8 )、リニアサンプルD9 、算出リニアサン
プルD10′(=D9 +D10)、および算出リニアサンプ
ルD11′(=D10′+D11)の4つの振幅値を順次出力
する。
【0047】次に、図5,6を参照して、デコーダ41
1の構成と動作を詳しく説明する。図5において、デコ
ーダ411は、ラッチ501、セレクタ502、データ
伸張部503、加算器504、セレクタ505、ディレ
イ部506、ロードパルス発生部507、および出力レ
ジスタ部508を備えている。
1の構成と動作を詳しく説明する。図5において、デコ
ーダ411は、ラッチ501、セレクタ502、データ
伸張部503、加算器504、セレクタ505、ディレ
イ部506、ロードパルス発生部507、および出力レ
ジスタ部508を備えている。
【0048】波形メモリ410からの出力は、ラッチ5
01およびセレクタ502に入力する。ラッチ501
は、入力データのうち特にリニアサンプルをラッチする
ためのものである。ラッチ501の出力(16ビット)
は、セレクタ505の入力端子Aに入力する。
01およびセレクタ502に入力する。ラッチ501
は、入力データのうち特にリニアサンプルをラッチする
ためのものである。ラッチ501の出力(16ビット)
は、セレクタ505の入力端子Aに入力する。
【0049】セレクタ502は、波形メモリ410から
の出力データが圧縮サンプル2つ分(8ビット×2=1
6ビット)であった場合に、2つの圧縮サンプルを分離
するためのものである。セレクタ502の入力端子Aに
は、波形メモリ410からの16ビットの入力のうち上
位8ビットが入力する。セレクタ502の入力端子Bに
は、波形メモリ410からの16ビットの入力のうち下
位8ビットが入力する。
の出力データが圧縮サンプル2つ分(8ビット×2=1
6ビット)であった場合に、2つの圧縮サンプルを分離
するためのものである。セレクタ502の入力端子Aに
は、波形メモリ410からの16ビットの入力のうち上
位8ビットが入力する。セレクタ502の入力端子Bに
は、波形メモリ410からの16ビットの入力のうち下
位8ビットが入力する。
【0050】データ伸張部503は、セレクタ502か
ら出力される圧縮サンプル(8ビット)を16ビットに
伸張(上位に8ビットの「0」を付加)する。データ伸
張部503からの出力は、加算器504に入力する。ま
た、加算器504には、ディレイ部506からの出力デ
ータが入力する。加算器504は、これらを加算し、加
算結果(16ビット)をセレクタ505の入力端子Bに
出力する。
ら出力される圧縮サンプル(8ビット)を16ビットに
伸張(上位に8ビットの「0」を付加)する。データ伸
張部503からの出力は、加算器504に入力する。ま
た、加算器504には、ディレイ部506からの出力デ
ータが入力する。加算器504は、これらを加算し、加
算結果(16ビット)をセレクタ505の入力端子Bに
出力する。
【0051】加算器504は、圧縮サンプルとリニアサ
ンプル(算出リニアサンプルの場合もある)とを加算し
て、その圧縮サンプルに対応する算出リニアサンプルを
求めるためのものである。
ンプル(算出リニアサンプルの場合もある)とを加算し
て、その圧縮サンプルに対応する算出リニアサンプルを
求めるためのものである。
【0052】すなわち、まず波形メモリ410からリニ
アサンプルが入力したときには、ラッチ501およびセ
レクタ505を介してディレイ部506で、そのリニア
サンプルを保持する。一方、リニアサンプルに続いて圧
縮サンプル2つ分のデータがデコーダに入力する。
アサンプルが入力したときには、ラッチ501およびセ
レクタ505を介してディレイ部506で、そのリニア
サンプルを保持する。一方、リニアサンプルに続いて圧
縮サンプル2つ分のデータがデコーダに入力する。
【0053】始めの圧縮サンプルが、セレクタ502で
分離され、さらにデータ伸張部503で16ビットに伸
張されて出力される。このとき、ディレイ部506から
は、直前のリニアサンプルが出力されるようになってお
り、加算器504でリニアサンプルと圧縮サンプルとを
加算する。これにより、加算器504から圧縮サンプル
に対応するサンプル点の算出リニアサンプルが出力さ
れ、セレクタ505およびディレイ部506を介して出
力される。次の圧縮サンプルについても同様に処理さ
れ、その圧縮サンプルに対応する算出リニアサンプルが
出力される。
分離され、さらにデータ伸張部503で16ビットに伸
張されて出力される。このとき、ディレイ部506から
は、直前のリニアサンプルが出力されるようになってお
り、加算器504でリニアサンプルと圧縮サンプルとを
加算する。これにより、加算器504から圧縮サンプル
に対応するサンプル点の算出リニアサンプルが出力さ
れ、セレクタ505およびディレイ部506を介して出
力される。次の圧縮サンプルについても同様に処理さ
れ、その圧縮サンプルに対応する算出リニアサンプルが
出力される。
【0054】結果として、ディレイ部506からは、入
力した4アドレス分のデータに含まれる6つのサンプル
点のリニアな振幅値データが順次出力されることとな
る。
力した4アドレス分のデータに含まれる6つのサンプル
点のリニアな振幅値データが順次出力されることとな
る。
【0055】ディレイ部506から出力されたリニアな
振幅値データは、出力レジスタ508にロードされる。
ロードは、ロードパルス発生部507から出力されるロ
ードパルスに基づいて行なわれる。
振幅値データは、出力レジスタ508にロードされる。
ロードは、ロードパルス発生部507から出力されるロ
ードパルスに基づいて行なわれる。
【0056】ロードパルス発生部507は、図4の乗算
器406から出力された整数部iに基づいて、ディレイ
部506から順次出力される6つのリニアな振幅値デー
タのうちロードすべき4つのデータのみをロードするよ
うにロードパルスを出力する。出力レジスタ508は、
FIFO(First−In First−Out)の
レジスタであり、ロードされた振幅値データは所定周期
のパルスφSPに基づいて読出される。出力レジスタから
読み出された振幅値データは、補間部412に入力す
る。
器406から出力された整数部iに基づいて、ディレイ
部506から順次出力される6つのリニアな振幅値デー
タのうちロードすべき4つのデータのみをロードするよ
うにロードパルスを出力する。出力レジスタ508は、
FIFO(First−In First−Out)の
レジスタであり、ロードされた振幅値データは所定周期
のパルスφSPに基づいて読出される。出力レジスタから
読み出された振幅値データは、補間部412に入力す
る。
【0057】次に、具体例を用いてデコーダ411の動
作をさらに詳しく説明する。
作をさらに詳しく説明する。
【0058】図6は、デコーダ411の動作を説明する
ためのタイムチャートを示す。図6のPA〜PEは、図
5の同じPA〜PEで示す位置におけるタイムチャート
を示す。ここでは、図2のアドレス4,5,6,7のデ
ータ(すなわち、サンプルデータD6 〜D11)が順次入
力する場合を例として説明する。
ためのタイムチャートを示す。図6のPA〜PEは、図
5の同じPA〜PEで示す位置におけるタイムチャート
を示す。ここでは、図2のアドレス4,5,6,7のデ
ータ(すなわち、サンプルデータD6 〜D11)が順次入
力する場合を例として説明する。
【0059】図6のPAに示すように、波形メモリ41
0から、図2のアドレス4のリニアサンプルデータD6
、アドレス5の圧縮サンプルデータD7 とD8 、アド
レス6のリニアサンプルデータD9 、およびアドレス7
の圧縮サンプルデータD10とD11が、順次、デコーダ4
11に入力したとする。PBは、ラッチ501の出力を
示す。ラッチ501は、リニアサンプルD6 およびD9
をラッチし出力する。
0から、図2のアドレス4のリニアサンプルデータD6
、アドレス5の圧縮サンプルデータD7 とD8 、アド
レス6のリニアサンプルデータD9 、およびアドレス7
の圧縮サンプルデータD10とD11が、順次、デコーダ4
11に入力したとする。PBは、ラッチ501の出力を
示す。ラッチ501は、リニアサンプルD6 およびD9
をラッチし出力する。
【0060】PCは、セレクタ502の出力のタイミン
グチャートを示す。セレクタ502は、波形メモリ41
0から圧縮サンプルデータD7 とD8 が出力されるタイ
ムスロットの前半で圧縮サンプルデータD7 を選択出力
し、そのタイムスロットの後半で圧縮サンプルデータD
8 を選択出力する。
グチャートを示す。セレクタ502は、波形メモリ41
0から圧縮サンプルデータD7 とD8 が出力されるタイ
ムスロットの前半で圧縮サンプルデータD7 を選択出力
し、そのタイムスロットの後半で圧縮サンプルデータD
8 を選択出力する。
【0061】PDは、ディレイ部506の出力のタイミ
ングチャートを示す。ディレイ部506では、まずラッ
チ501およびセレクタ505を介して入力したリニア
サンプルD6 が保持され出力される。
ングチャートを示す。ディレイ部506では、まずラッ
チ501およびセレクタ505を介して入力したリニア
サンプルD6 が保持され出力される。
【0062】リニアサンプルD6 が出力されている間
に、PCに示すように圧縮サンプルD7 がデータ伸張部
503を介して加算器504に入力する。加算器504
で、リニアサンプルD6 と圧縮サンプルD7 との加算が
行なわれ、圧縮サンプルD7 に対応するサンプル点のリ
ニアな振幅値である算出リニアサンプルD7 ′=D6 +
D7 が出力される。この算出リニアサンプルD7 ′は、
セレクタ505を介してディレイ部506で保持され、
PDのようにリニアサンプルD6 に引き続いてディレイ
部506から出力される。
に、PCに示すように圧縮サンプルD7 がデータ伸張部
503を介して加算器504に入力する。加算器504
で、リニアサンプルD6 と圧縮サンプルD7 との加算が
行なわれ、圧縮サンプルD7 に対応するサンプル点のリ
ニアな振幅値である算出リニアサンプルD7 ′=D6 +
D7 が出力される。この算出リニアサンプルD7 ′は、
セレクタ505を介してディレイ部506で保持され、
PDのようにリニアサンプルD6 に引き続いてディレイ
部506から出力される。
【0063】ディレイ部506から算出リニアサンプル
D7 ′が出力されているとき、PCに示すように、セレ
クタ502からは次の圧縮サンプルD8 が出力される。
圧縮サンプルD8 はデータ伸張部503を介して加算器
504に入力する。加算器504で、算出リニアサンプ
ルD7 ′と圧縮サンプルD8 との加算が行なわれ、圧縮
サンプルD8 に対応するサンプル点のリニアな振幅値で
ある算出リニアサンプルD8 ′=D7 ′+D8 が出力さ
れる。この算出リニアサンプルD8 ′は、セレクタ50
5およびディレイ部506を介して、PDのように引き
続いて出力される。
D7 ′が出力されているとき、PCに示すように、セレ
クタ502からは次の圧縮サンプルD8 が出力される。
圧縮サンプルD8 はデータ伸張部503を介して加算器
504に入力する。加算器504で、算出リニアサンプ
ルD7 ′と圧縮サンプルD8 との加算が行なわれ、圧縮
サンプルD8 に対応するサンプル点のリニアな振幅値で
ある算出リニアサンプルD8 ′=D7 ′+D8 が出力さ
れる。この算出リニアサンプルD8 ′は、セレクタ50
5およびディレイ部506を介して、PDのように引き
続いて出力される。
【0064】結果として図6のPDのように、リニアサ
ンプル(もともとリニアな振幅値)D6 、算出リニアサ
ンプル(圧縮サンプルD7 に対応するサンプル点のリニ
アな振幅値)D7 ′=D6 +D7 、および算出リニアサ
ンプル(圧縮サンプルD8 に対応するサンプル点のリニ
アな振幅値)D8 ′=D7 ′+D8 が、出力レジスタ5
08に向けて順次出力される。次のサンプルD9 〜D11
についても同様に処理され、リニアサンプルD9 、算出
リニアサンプルD10′、および算出リニアサンプルD1
1′が、出力レジスタ508に向けて順次出力される。
ンプル(もともとリニアな振幅値)D6 、算出リニアサ
ンプル(圧縮サンプルD7 に対応するサンプル点のリニ
アな振幅値)D7 ′=D6 +D7 、および算出リニアサ
ンプル(圧縮サンプルD8 に対応するサンプル点のリニ
アな振幅値)D8 ′=D7 ′+D8 が、出力レジスタ5
08に向けて順次出力される。次のサンプルD9 〜D11
についても同様に処理され、リニアサンプルD9 、算出
リニアサンプルD10′、および算出リニアサンプルD1
1′が、出力レジスタ508に向けて順次出力される。
【0065】PDのように順次出力される6つのリニア
な振幅値データは、出力レジスタ508にロードされる
が、そのロードのタイミングを示すロードパルスは、図
6のようなタイミングで発生される。
な振幅値データは、出力レジスタ508にロードされる
が、そのロードのタイミングを示すロードパルスは、図
6のようなタイミングで発生される。
【0066】まず、図4の乗算器406から出力された
整数部iの値が「0」のときは、上記の(2−)の場
合であるから、振幅値データD6 ,D7 ′,D8 ′,D
9 が出力レジスタ508にロードされるように、ロード
パルスが発生される。整数部iの値が「1」のときは、
上記の(2−)の場合であるから、振幅値データD7
′,D8 ′,D9 ,D10′が出力レジスタ508にロ
ードされるように、ロードパルスが発生される。整数部
iの値が「2」のときは、上記の(2−)の場合であ
るから、振幅値データD8 ′,D9 ,D10′,D11′が
出力レジスタ508にロードされるように、ロードパル
スが発生される。
整数部iの値が「0」のときは、上記の(2−)の場
合であるから、振幅値データD6 ,D7 ′,D8 ′,D
9 が出力レジスタ508にロードされるように、ロード
パルスが発生される。整数部iの値が「1」のときは、
上記の(2−)の場合であるから、振幅値データD7
′,D8 ′,D9 ,D10′が出力レジスタ508にロ
ードされるように、ロードパルスが発生される。整数部
iの値が「2」のときは、上記の(2−)の場合であ
るから、振幅値データD8 ′,D9 ,D10′,D11′が
出力レジスタ508にロードされるように、ロードパル
スが発生される。
【0067】図6のPEは、出力レジスタ508から読
出されるデータ列を示す。上述したようにロードされた
4つの振幅値データは、所定周期のパルスφSPに基づい
て順次S0,S1,S2,S3のように読出され、補間
部412に向けて出力される。
出されるデータ列を示す。上述したようにロードされた
4つの振幅値データは、所定周期のパルスφSPに基づい
て順次S0,S1,S2,S3のように読出され、補間
部412に向けて出力される。
【0068】以上のように、デコーダ411は、整数部
iの値(「0」「1」または「2」)に基づいて、4つ
の隣合うサンプル点のリニアな振幅値データを順次出力
する。なお、上述したような動作を行なうために、各部
にタイミング信号を送出するタイミング発生器(不図
示)が設けられている。
iの値(「0」「1」または「2」)に基づいて、4つ
の隣合うサンプル点のリニアな振幅値データを順次出力
する。なお、上述したような動作を行なうために、各部
にタイミング信号を送出するタイミング発生器(不図
示)が設けられている。
【0069】再び図4を参照して、乗算結果BJの少数
部jは、補間部412に入力する。補間部412は、デ
コーダ411からの4点の振幅値データと少数部jの値
に基づいて補間処理を行ない、補間後波形データを出力
する。
部jは、補間部412に入力する。補間部412は、デ
コーダ411からの4点の振幅値データと少数部jの値
に基づいて補間処理を行ない、補間後波形データを出力
する。
【0070】図7は、補間部412のブロック構成を示
す。補間部412は、補助カウンタ701、係数発生部
702、乗算器703、加算器704、ゲート705、
ディレイ部706、およびラッチ707を備えている。
この実施例では、4つの隣合うサンプル点を通る3次曲
線を想定して補間を行なう3次補間法を用いた。3次補
間法は、従来より知られている技術であるので、以下で
は簡単に説明する。
す。補間部412は、補助カウンタ701、係数発生部
702、乗算器703、加算器704、ゲート705、
ディレイ部706、およびラッチ707を備えている。
この実施例では、4つの隣合うサンプル点を通る3次曲
線を想定して補間を行なう3次補間法を用いた。3次補
間法は、従来より知られている技術であるので、以下で
は簡単に説明する。
【0071】補助カウンタ701は、デコーダ411か
ら順次入力する4つの振幅値データ(S0,S1,S
2,S3)に合わせて、「0」「1」「2」および
「3」のカウント値cを順次出力する。係数発生部70
2は、補助カウンタ701からのカウント値cに応じた
関数Acに乗算器406からの少数部jを代入して求め
た係数Ac(j)を出力する。
ら順次入力する4つの振幅値データ(S0,S1,S
2,S3)に合わせて、「0」「1」「2」および
「3」のカウント値cを順次出力する。係数発生部70
2は、補助カウンタ701からのカウント値cに応じた
関数Acに乗算器406からの少数部jを代入して求め
た係数Ac(j)を出力する。
【0072】従来より知られている3次補間法によれ
ば、 A0(j)・S0+A1(j)・S1+A2(j)・S
2+A3(j)・S3 によって、補間された振幅値を求めることができる。
ば、 A0(j)・S0+A1(j)・S1+A2(j)・S
2+A3(j)・S3 によって、補間された振幅値を求めることができる。
【0073】そこで、乗算器703で、c=0,1,
2,3のそれぞれの場合に、Ac(j)とScとを乗算
し、乗算結果を加算器704に入力する。加算器704
の加算結果は、ディレイ部706に保持された後、所定
のタイミングでゲート705が開き、加算器704に入
力するようになっており、このループ回路でAc(j)
・Scを累算して、上記式の結果すなわち補間された振
幅値を求める。補間された振幅値データは、ラッチ70
7にラッチされ、次のエンベロープ付与乗算器414に
出力される。
2,3のそれぞれの場合に、Ac(j)とScとを乗算
し、乗算結果を加算器704に入力する。加算器704
の加算結果は、ディレイ部706に保持された後、所定
のタイミングでゲート705が開き、加算器704に入
力するようになっており、このループ回路でAc(j)
・Scを累算して、上記式の結果すなわち補間された振
幅値を求める。補間された振幅値データは、ラッチ70
7にラッチされ、次のエンベロープ付与乗算器414に
出力される。
【0074】再び図4を参照して、エンベロープ発生器
413は、音色データに応じてエンベロープ信号を発生
する。乗算器414は、補間後振幅値データにエンベロ
ープ信号を乗算する。エンベロープを付与された振幅値
データは、チャンネル累算器415で累算され、最終的
な波形データとして出力される。
413は、音色データに応じてエンベロープ信号を発生
する。乗算器414は、補間後振幅値データにエンベロ
ープ信号を乗算する。エンベロープを付与された振幅値
データは、チャンネル累算器415で累算され、最終的
な波形データとして出力される。
【0075】以上のようにすれば、波形メモリのどの位
置からでも波形データを得ることができ、波形メモリの
データを飛ばし読みすることができる。また、データ圧
縮の効果もある。
置からでも波形データを得ることができ、波形メモリの
データを飛ばし読みすることができる。また、データ圧
縮の効果もある。
【0076】なお、上記実施例では、リニアサンプルを
16ビット、圧縮サンプルを8ビットとしているが、リ
ニアサンプルのビット数を減らして余ったビットを用い
て圧縮サンプルのレンジを広げるようにしてもよい。図
8は、上記第1の実施例の変形例であり、リニアサンプ
ルを14ビットで表して余った2ビット(上位)を圧縮
サンプルのシフトアップ量に用いた例である。この2ビ
ットをEXPで示す。
16ビット、圧縮サンプルを8ビットとしているが、リ
ニアサンプルのビット数を減らして余ったビットを用い
て圧縮サンプルのレンジを広げるようにしてもよい。図
8は、上記第1の実施例の変形例であり、リニアサンプ
ルを14ビットで表して余った2ビット(上位)を圧縮
サンプルのシフトアップ量に用いた例である。この2ビ
ットをEXPで示す。
【0077】EXP=0のときは、次の2つの8ビット
の圧縮サンプルに対してシフトアップせず、圧縮サンプ
ルは−128から+127までの範囲をとる。EXP=
1のときは、次の2つの8ビットの圧縮サンプルに対し
て1ビットシフトアップを行ない、圧縮サンプルは−2
56から+255までの範囲をとる。ただし、分解能は
2となる。EXP=2のときは、次の2つの8ビットの
圧縮サンプルに対して2ビットシフトアップを行ない、
圧縮サンプルは−512から+511までの範囲をと
る。ただし、分解能は4となる。EXP=3のときは、
次の2つの8ビットの圧縮サンプルに対して3ビットシ
フトアップを行ない、圧縮サンプルは−1024から+
1023までの範囲をとる。ただし、分解能は8とな
る。
の圧縮サンプルに対してシフトアップせず、圧縮サンプ
ルは−128から+127までの範囲をとる。EXP=
1のときは、次の2つの8ビットの圧縮サンプルに対し
て1ビットシフトアップを行ない、圧縮サンプルは−2
56から+255までの範囲をとる。ただし、分解能は
2となる。EXP=2のときは、次の2つの8ビットの
圧縮サンプルに対して2ビットシフトアップを行ない、
圧縮サンプルは−512から+511までの範囲をと
る。ただし、分解能は4となる。EXP=3のときは、
次の2つの8ビットの圧縮サンプルに対して3ビットシ
フトアップを行ない、圧縮サンプルは−1024から+
1023までの範囲をとる。ただし、分解能は8とな
る。
【0078】このようにするためには、上述の実施例の
図5において、ラッチ501からの出力のうち上位2ビ
ットEXPはデータ伸張部503に、他の14ビットは
上位に「0」を付加してセレクタ505に、それぞれ入
力するようにし、データ伸張部503ではEXPの値に
応じて、上記のように圧縮サンプルのシフトアップを行
なうようにすればよい。
図5において、ラッチ501からの出力のうち上位2ビ
ットEXPはデータ伸張部503に、他の14ビットは
上位に「0」を付加してセレクタ505に、それぞれ入
力するようにし、データ伸張部503ではEXPの値に
応じて、上記のように圧縮サンプルのシフトアップを行
なうようにすればよい。
【0079】上記実施例では、3サンプル点ごとにリニ
アサンプルを持ち、4サンプル点を用いて補間を行なっ
ているが、これらは適宜変更することができる。例え
ば、5サンプル点ごとにリニアサンプルを持ち、2サン
プル点を用いて補間を行なうようにしてもよい。
アサンプルを持ち、4サンプル点を用いて補間を行なっ
ているが、これらは適宜変更することができる。例え
ば、5サンプル点ごとにリニアサンプルを持ち、2サン
プル点を用いて補間を行なうようにしてもよい。
【0080】以下、このような第2の実施例を説明す
る。
る。
【0081】図9は、第2の実施例において用いた、5
サンプル点ごとにリニアサンプルを持つようにした波形
データのフォーマットを示す。D0 は16ビットのリニ
アサンプル、D1 ,D2 ,D3 ,D4 は8ビットの圧縮
サンプルを示す。同様に、引き続くD5 は16ビットの
リニアサンプル、D6 ,D7 ,D8 ,D9 は8ビットの
圧縮サンプル、…である。
サンプル点ごとにリニアサンプルを持つようにした波形
データのフォーマットを示す。D0 は16ビットのリニ
アサンプル、D1 ,D2 ,D3 ,D4 は8ビットの圧縮
サンプルを示す。同様に、引き続くD5 は16ビットの
リニアサンプル、D6 ,D7 ,D8 ,D9 は8ビットの
圧縮サンプル、…である。
【0082】図10は、図9の波形データと元の楽音波
形との関連を示す図である。1000はサンプリングす
る楽音波形、1001〜1006はそれぞれサンプリン
グ点を示す。黒丸で示したサンプリング点1001,1
006ではリニアサンプルをとり、白丸で示したサンプ
リング点1002〜1005では圧縮サンプルをとる。
形との関連を示す図である。1000はサンプリングす
る楽音波形、1001〜1006はそれぞれサンプリン
グ点を示す。黒丸で示したサンプリング点1001,1
006ではリニアサンプルをとり、白丸で示したサンプ
リング点1002〜1005では圧縮サンプルをとる。
【0083】例えば、サンプリング点1001でサンプ
リングしたリニアサンプルを図9のD5 とすると、次の
サンプリング点1002のデータD6 は、サンプリング
点1002における振幅値とサンプリング点1001に
おける振幅値との差分1011となる。同様に、サンプ
リング点1003のデータD7 は、サンプリング点10
03における振幅値とサンプリング点1002における
振幅値との差分1012となる。
リングしたリニアサンプルを図9のD5 とすると、次の
サンプリング点1002のデータD6 は、サンプリング
点1002における振幅値とサンプリング点1001に
おける振幅値との差分1011となる。同様に、サンプ
リング点1003のデータD7 は、サンプリング点10
03における振幅値とサンプリング点1002における
振幅値との差分1012となる。
【0084】第2の実施例では、隣合う2つのサンプル
ポイントから補間を行なう。図9のように波形データを
構成すれば、隣合う2点の波形データを得るためには、
以下の5つの組合わせがある。
ポイントから補間を行なう。図9のように波形データを
構成すれば、隣合う2点の波形データを得るためには、
以下の5つの組合わせがある。
【0085】(3−)図9のデータD5 ,D6 のよう
な2点(図10のサンプル点1001と1002)を用
いる。 (3−)データD6 ,D7 のような2点(サンプル点
1002と1003)を用いる。 (3−)データD7 ,D8 のような2点(サンプル点
1003と1004)を用いる。 (3−)データD8 ,D9 のような2点(サンプル点
1004と1005)を用いる。 (3−)データD9 ,D10のような2点(サンプル点
1005と1006)を用いる。
な2点(図10のサンプル点1001と1002)を用
いる。 (3−)データD6 ,D7 のような2点(サンプル点
1002と1003)を用いる。 (3−)データD7 ,D8 のような2点(サンプル点
1003と1004)を用いる。 (3−)データD8 ,D9 のような2点(サンプル点
1004と1005)を用いる。 (3−)データD9 ,D10のような2点(サンプル点
1005と1006)を用いる。
【0086】したがって、リニアサンプルから始めて4
回のアドレッシングを行なえば、上記のどの場合でも、
隣合う2点の振幅値を必ず得ることができることにな
る。
回のアドレッシングを行なえば、上記のどの場合でも、
隣合う2点の振幅値を必ず得ることができることにな
る。
【0087】このように、5サンプル点ごとにリニアサ
ンプルを持って、2サンプル点を用いて補間を行なう第
2の実施例も、図1,4,5,7とほとんど同様の構成
とすればよい。ただし、図4において、乗算器405で
乗算する定数Aは「3」、乗算器406で乗算する定数
Bは「5」とし、補助カウンタ409は「0」および
「1」を出力するようにする。
ンプルを持って、2サンプル点を用いて補間を行なう第
2の実施例も、図1,4,5,7とほとんど同様の構成
とすればよい。ただし、図4において、乗算器405で
乗算する定数Aは「3」、乗算器406で乗算する定数
Bは「5」とし、補助カウンタ409は「0」および
「1」を出力するようにする。
【0088】乗算器405の定数Aは、加算器407か
ら出力される波形メモリ読出しアドレスでリニアサンプ
ルがアドレッシングされるようにするための乗数であ
る。ここでは、図9のようにアドレス0,3,6,…に
リニアサンプルが記憶されているから、上記定数Aの値
は「3」としなければならない。
ら出力される波形メモリ読出しアドレスでリニアサンプ
ルがアドレッシングされるようにするための乗数であ
る。ここでは、図9のようにアドレス0,3,6,…に
リニアサンプルが記憶されているから、上記定数Aの値
は「3」としなければならない。
【0089】また、乗算器406の定数Bは、カウンタ
404からの少数部Jと乗算し、乗算結果BJの整数部
iにより、目的とするサンプルが上記(3−)〜(3
−)のどの区間に含まれるかを区別できるようにする
ためのものであるから、整数部iが0〜4を取るように
定数Bを「5」に設定しなければならない。
404からの少数部Jと乗算し、乗算結果BJの整数部
iにより、目的とするサンプルが上記(3−)〜(3
−)のどの区間に含まれるかを区別できるようにする
ためのものであるから、整数部iが0〜4を取るように
定数Bを「5」に設定しなければならない。
【0090】補助カウンタ409は、何サンプルを用い
て補間を行なうか、その数に応じてカウント値を繰返し
出力するが、ここでは2点補間であるから「0」および
「1」を繰返し出力するようにする必要がある。図7の
補間部においても、同様に補助カウンタ701は「0」
および「1」を繰返し出力するようにする必要がある。
て補間を行なうか、その数に応じてカウント値を繰返し
出力するが、ここでは2点補間であるから「0」および
「1」を繰返し出力するようにする必要がある。図7の
補間部においても、同様に補助カウンタ701は「0」
および「1」を繰返し出力するようにする必要がある。
【0091】さらに、図5のデコーダも同様の構成でよ
いが、本第2の実施例では5サンプルごとにリニアサン
プルを設け、2点補間するため、ラッチ501のタイミ
ングやロードパルス発生部507からのロードパルスな
どは異なるタイミングとなる。以下、これを説明する。
いが、本第2の実施例では5サンプルごとにリニアサン
プルを設け、2点補間するため、ラッチ501のタイミ
ングやロードパルス発生部507からのロードパルスな
どは異なるタイミングとなる。以下、これを説明する。
【0092】図11は、第2の実施例におけるデコーダ
411の動作を説明するためのタイムチャートを示す。
図11のPA〜PEは、図5の同じPA〜PEで示す位
置におけるタイムチャートを示す。ここでは、図9のア
ドレス3,4,5,6のデータ(すなわち、サンプルデ
ータD5 〜D10)が順次入力する場合を例として説明す
る。
411の動作を説明するためのタイムチャートを示す。
図11のPA〜PEは、図5の同じPA〜PEで示す位
置におけるタイムチャートを示す。ここでは、図9のア
ドレス3,4,5,6のデータ(すなわち、サンプルデ
ータD5 〜D10)が順次入力する場合を例として説明す
る。
【0093】図11のPAに示すように、波形メモリ4
10から、図9のアドレス3のリニアサンプルデータD
5 、アドレス4の圧縮サンプルデータD6 とD7 、アド
レス5の圧縮サンプルデータD8 とD9 、およびアドレ
ス6のリニアサンプルデータD10が、順次、デコーダ4
11に入力したとする。PBは、ラッチ501の出力を
示す。ラッチ501は、リニアサンプルD5 およびD10
をラッチし出力する。
10から、図9のアドレス3のリニアサンプルデータD
5 、アドレス4の圧縮サンプルデータD6 とD7 、アド
レス5の圧縮サンプルデータD8 とD9 、およびアドレ
ス6のリニアサンプルデータD10が、順次、デコーダ4
11に入力したとする。PBは、ラッチ501の出力を
示す。ラッチ501は、リニアサンプルD5 およびD10
をラッチし出力する。
【0094】PCは、セレクタ502の出力のタイミン
グチャートを示す。セレクタ502は、波形メモリ41
0から圧縮サンプルデータD6 とD7 が出力されるタイ
ムスロットの前半で圧縮サンプルデータD6 を選択出力
し、そのタイムスロットの後半で圧縮サンプルデータD
7 を選択出力する。同様に、圧縮サンプルデータD8と
D9 が出力されるタイムスロットの前半で圧縮サンプル
データD8 を選択出力し、そのタイムスロットの後半で
圧縮サンプルデータD9 を選択出力する。
グチャートを示す。セレクタ502は、波形メモリ41
0から圧縮サンプルデータD6 とD7 が出力されるタイ
ムスロットの前半で圧縮サンプルデータD6 を選択出力
し、そのタイムスロットの後半で圧縮サンプルデータD
7 を選択出力する。同様に、圧縮サンプルデータD8と
D9 が出力されるタイムスロットの前半で圧縮サンプル
データD8 を選択出力し、そのタイムスロットの後半で
圧縮サンプルデータD9 を選択出力する。
【0095】PDは、ディレイ部506の出力のタイミ
ングチャートを示す。ディレイ部506では、まずラッ
チ501およびセレクタ505を介して入力したリニア
サンプルD5 が保持され出力される。
ングチャートを示す。ディレイ部506では、まずラッ
チ501およびセレクタ505を介して入力したリニア
サンプルD5 が保持され出力される。
【0096】リニアサンプルD5 が出力されている間
に、PCに示すように圧縮サンプルD6 がデータ伸張部
503を介して加算器504に入力する。加算器504
で、リニアサンプルD5 と圧縮サンプルD6 との加算が
行なわれ、圧縮サンプルD6 に対応するサンプル点のリ
ニアな振幅値である算出リニアサンプルD6 ′=D5 +
D6 が出力される。この算出リニアサンプルD6 ′は、
セレクタ505を介してディレイ部506で保持され、
PDのようにリニアサンプルD5 に引き続いてディレイ
部506から出力される。
に、PCに示すように圧縮サンプルD6 がデータ伸張部
503を介して加算器504に入力する。加算器504
で、リニアサンプルD5 と圧縮サンプルD6 との加算が
行なわれ、圧縮サンプルD6 に対応するサンプル点のリ
ニアな振幅値である算出リニアサンプルD6 ′=D5 +
D6 が出力される。この算出リニアサンプルD6 ′は、
セレクタ505を介してディレイ部506で保持され、
PDのようにリニアサンプルD5 に引き続いてディレイ
部506から出力される。
【0097】ディレイ部506から算出リニアサンプル
D6 ′が出力されているとき、PCに示すように、セレ
クタ502からは次の圧縮サンプルD7 が出力される。
圧縮サンプルD7 はデータ伸張部503を介して加算器
504に入力する。加算器504で、算出リニアサンプ
ルD6 ′と圧縮サンプルD7 との加算が行なわれ、圧縮
サンプルD7 に対応するサンプル点のリニアな振幅値で
ある算出リニアサンプルD7 ′=D6 ′+D7 が出力さ
れる。この算出リニアサンプルD7 ′は、セレクタ50
5およびディレイ部506を介して、PDのように引き
続いて出力される。
D6 ′が出力されているとき、PCに示すように、セレ
クタ502からは次の圧縮サンプルD7 が出力される。
圧縮サンプルD7 はデータ伸張部503を介して加算器
504に入力する。加算器504で、算出リニアサンプ
ルD6 ′と圧縮サンプルD7 との加算が行なわれ、圧縮
サンプルD7 に対応するサンプル点のリニアな振幅値で
ある算出リニアサンプルD7 ′=D6 ′+D7 が出力さ
れる。この算出リニアサンプルD7 ′は、セレクタ50
5およびディレイ部506を介して、PDのように引き
続いて出力される。
【0098】以下、同様にして算出リニアサンプルD8
′,D9 ′が出力される。また、引き続いて次のリニ
アサンプルD10が出力される。結果として図11のPD
のように、リニアサンプルまたは算出リニアサンプルD
5 ,D6 ′,D7 ′,D8 ′,D9 ′,D10が、出力レ
ジスタ508に向けて順次出力される。
′,D9 ′が出力される。また、引き続いて次のリニ
アサンプルD10が出力される。結果として図11のPD
のように、リニアサンプルまたは算出リニアサンプルD
5 ,D6 ′,D7 ′,D8 ′,D9 ′,D10が、出力レ
ジスタ508に向けて順次出力される。
【0099】PDのように順次出力される6つのリニア
な振幅値データは、出力レジスタ508にロードされる
が、そのロードのタイミングを示すロードパルスは、図
11のように発生される。
な振幅値データは、出力レジスタ508にロードされる
が、そのロードのタイミングを示すロードパルスは、図
11のように発生される。
【0100】まず、図4の乗算器406から出力された
整数部iの値が「0」のときは、上記の(3−)の場
合であるから、振幅値データD5 ,D6 ′が出力レジス
タ508にロードされるように、ロードパルスが発生さ
れる。整数部iの値が「1」のときは、上記の(3−
)の場合であるから、振幅値データD6 ′,D7 ′が
出力レジスタ508にロードされるように、ロードパル
スが発生される。整数部iの値が「2」のときは、上記
の(3−)の場合であるから、振幅値データD7 ′,
D8 ′が出力レジスタ508にロードされるように、ロ
ードパルスが発生される。整数部iの値が「3」のとき
は、上記の(3−)の場合であるから、振幅値データ
D8 ′,D9 ′が出力レジスタ508にロードされるよ
うに、ロードパルスが発生される。整数部iの値が
「4」のときは、上記の(3−)の場合であるから、
振幅値データD9 ′,D10が出力レジスタ508にロー
ドされるように、ロードパルスが発生される。
整数部iの値が「0」のときは、上記の(3−)の場
合であるから、振幅値データD5 ,D6 ′が出力レジス
タ508にロードされるように、ロードパルスが発生さ
れる。整数部iの値が「1」のときは、上記の(3−
)の場合であるから、振幅値データD6 ′,D7 ′が
出力レジスタ508にロードされるように、ロードパル
スが発生される。整数部iの値が「2」のときは、上記
の(3−)の場合であるから、振幅値データD7 ′,
D8 ′が出力レジスタ508にロードされるように、ロ
ードパルスが発生される。整数部iの値が「3」のとき
は、上記の(3−)の場合であるから、振幅値データ
D8 ′,D9 ′が出力レジスタ508にロードされるよ
うに、ロードパルスが発生される。整数部iの値が
「4」のときは、上記の(3−)の場合であるから、
振幅値データD9 ′,D10が出力レジスタ508にロー
ドされるように、ロードパルスが発生される。
【0101】図11のPEは、出力レジスタ508から
読出されるデータ列を示す。ロードされた2つの振幅値
データは、所定周期のパルスφSPに基づいて順次S0,
S1のように読出され、補間部412に向けて出力され
る。
読出されるデータ列を示す。ロードされた2つの振幅値
データは、所定周期のパルスφSPに基づいて順次S0,
S1のように読出され、補間部412に向けて出力され
る。
【0102】以上のように、デコーダ411は、整数部
iの値(「0」「1」「2」「3」または「4」)に基
づいて、2つの隣合うサンプル点のリニアな振幅値デー
タを順次出力する。
iの値(「0」「1」「2」「3」または「4」)に基
づいて、2つの隣合うサンプル点のリニアな振幅値デー
タを順次出力する。
【0103】この第2の実施例では5サンプルごとにリ
ニアサンプルを設けているので、データ圧縮率は、第1
の実施例より高い。
ニアサンプルを設けているので、データ圧縮率は、第1
の実施例より高い。
【0104】なお、第2の実施例においても、第1の実
施例で説明したようにリニアサンプルのビット数を減ら
して余ったビットを用いて圧縮サンプルのレンジを広げ
るようにしてもよい。図8の構成をそのまま適用すれば
よい。
施例で説明したようにリニアサンプルのビット数を減ら
して余ったビットを用いて圧縮サンプルのレンジを広げ
るようにしてもよい。図8の構成をそのまま適用すれば
よい。
【0105】
【発明の効果】以上説明したように、本発明によれば、
所定の複数サンプル点ごとにリニア(非圧縮)な振幅値
データを設け、その間に圧縮データを設けており、読出
しは2以上のリニア振幅値データを含む連続した範囲を
読出して、それら読出しデータから目的とするサンプル
点の振幅値を求めているので、音高の幅が制限(ピッチ
アップの制限)されるようなことがなく波形メモリを飛
ばし読みすることができる。また、波形メモリがデータ
圧縮され、容量は少なくて済む。
所定の複数サンプル点ごとにリニア(非圧縮)な振幅値
データを設け、その間に圧縮データを設けており、読出
しは2以上のリニア振幅値データを含む連続した範囲を
読出して、それら読出しデータから目的とするサンプル
点の振幅値を求めているので、音高の幅が制限(ピッチ
アップの制限)されるようなことがなく波形メモリを飛
ばし読みすることができる。また、波形メモリがデータ
圧縮され、容量は少なくて済む。
【図1】 この発明の一実施例に係る波形生成装置を適
用した電子楽器のブロック構成図
用した電子楽器のブロック構成図
【図2】 波形データフォーマット図
【図3】 波形データと元の楽音波形との関連を示す図
【図4】 実施例の電子楽器の音源部のブロック構成図
【図5】 音源部のデコーダのブロック構成図
【図6】 デコーダの動作を説明するためのタイムチャ
ート
ート
【図7】 音源部の補間部のブロック構成図
【図8】 実施例の変形例における波形データフォーマ
ット図
ット図
【図9】 第2の実施例の波形データフォーマット図
【図10】 第2の実施例における波形データと元の楽
音波形との関連を示す図
音波形との関連を示す図
【図11】 第2の実施例におけるデコーダの動作を説
明するためのタイムチャート
明するためのタイムチャート
1…音色スイッチ、2…検出器、3…鍵盤、4…検出
器、5…音源部、6…ディジタルアナログ変換器(DA
C)、7…サウンドシステム、403…Fナンバ発生
部、404…カウンタ、405,406…乗算器、41
0…波形メモリ、411…デコーダ、412…補間部、
413…エンベロープ発生器。
器、5…音源部、6…ディジタルアナログ変換器(DA
C)、7…サウンドシステム、403…Fナンバ発生
部、404…カウンタ、405,406…乗算器、41
0…波形メモリ、411…デコーダ、412…補間部、
413…エンベロープ発生器。
Claims (2)
- 【請求項1】所定の複数サンプル点ごとに非圧縮波形振
幅値データを設けるとともに、該非圧縮波形振幅値デー
タのサンプル点の間にあるサンプル点に対しては、直前
の非圧縮波形振幅値データを用いて非圧縮波形振幅値デ
ータに変換できるように圧縮された圧縮波形振幅値デー
タを設けた波形記憶手段と、 生成すべき楽音波形の音高に応じた周波数情報を発生す
る周波数情報発生手段と、 前記周波数情報を所定速度で繰返し累算して、累算値を
出力する累算手段と、 前記累算値に基づいて、前記波形記憶手段から、2以上
の非圧縮波形振幅値データを含む連続した範囲の複数の
非圧縮波形振幅値データおよび圧縮波形振幅値データを
読出す読出し手段と、 前記読出し手段によって読出された圧縮波形振幅値デー
タを非圧縮波形振幅値データに変換する変換手段と、 前記累算値に基づいて、前記読出し手段によって読出し
た非圧縮波形振幅値データおよび前記変換手段によって
得られた非圧縮波形振幅値データから、補間に用いるべ
き非圧縮波形振幅値データを選択する選択手段と、 前記選択手段によって選択された非圧縮波形振幅値デー
タを用いて、前記累算値に基づく補間処理を行ない、補
間結果を波形データとして出力する補間手段とを備えた
ことを特徴とする波形生成装置。 - 【請求項2】所定の複数サンプル点ごとに非圧縮波形振
幅値データを設けるとともに、該非圧縮波形振幅値デー
タのサンプル点の間にあるサンプル点に対しては、直前
の非圧縮波形振幅値データを用いて非圧縮波形振幅値デ
ータに変換できるように圧縮された圧縮波形振幅値デー
タを設けた波形記憶手段と、 生成すべき楽音波形の音高に応じた周波数情報を発生す
る周波数情報発生手段と、 前記周波数情報を所定速度で繰返し累算して、累算値を
出力する累算手段と、 前記累算値に基づいて、前記波形記憶手段から、2以上
の非圧縮波形振幅値データを含む連続した範囲の複数の
非圧縮波形振幅値データおよび圧縮波形振幅値データを
読出す読出し手段と、 前記累算値に基づいて、前記読出し手段によって読出し
た複数の非圧縮波形振幅値データおよび圧縮波形振幅値
データから、補間に用いるべき非圧縮波形振幅値データ
および圧縮波形振幅値データを選択する選択手段と、 前記選択手段によって選択された圧縮波形振幅値データ
を非圧縮波形振幅値データに変換する変換手段と、 前記選択手段によって選択された非圧縮波形振幅値デー
タと前記変換手段によって得られた非圧縮波形振幅値デ
ータを用いて、前記累算値に基づく補間処理を行ない、
補間結果を波形データとして出力する補間手段とを備え
たことを特徴とする波形生成装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4359637A JP2790160B2 (ja) | 1992-12-26 | 1992-12-26 | 波形生成装置および波形記憶装置 |
US08/097,163 US5416264A (en) | 1992-07-27 | 1993-07-23 | Waveform-forming device having memory storing non-compressed/compressed waveform samples |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4359637A JP2790160B2 (ja) | 1992-12-26 | 1992-12-26 | 波形生成装置および波形記憶装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH06202666A JPH06202666A (ja) | 1994-07-22 |
JP2790160B2 true JP2790160B2 (ja) | 1998-08-27 |
Family
ID=18465523
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4359637A Expired - Fee Related JP2790160B2 (ja) | 1992-07-27 | 1992-12-26 | 波形生成装置および波形記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2790160B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4656326B2 (ja) * | 2006-08-11 | 2011-03-23 | カシオ計算機株式会社 | 波形発生装置 |
JP5104522B2 (ja) * | 2008-04-30 | 2012-12-19 | カシオ計算機株式会社 | 波形発生装置および波形発生処理プログラム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS59153596U (ja) * | 1983-03-31 | 1984-10-15 | 株式会社ケンウッド | 記憶装置 |
JPH0769700B2 (ja) * | 1988-11-07 | 1995-07-31 | 株式会社河合楽器製作所 | 波形生成方式 |
JP2674155B2 (ja) * | 1988-11-19 | 1997-11-12 | ソニー株式会社 | データ圧縮符号化方法 |
-
1992
- 1992-12-26 JP JP4359637A patent/JP2790160B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPH06202666A (ja) | 1994-07-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3404794B2 (ja) | 波形発生装置 | |
EP0177934B1 (en) | Musical tone generating apparatus | |
JPH03282498A (ja) | 楽音発生装置 | |
US8706506B2 (en) | Waveform compressing apparatus, waveform decompressing apparatus, and method of producing compressed data | |
US5416264A (en) | Waveform-forming device having memory storing non-compressed/compressed waveform samples | |
US5290965A (en) | Asynchronous waveform generating device for use in an electronic musical instrument | |
JP2790160B2 (ja) | 波形生成装置および波形記憶装置 | |
JP3081530B2 (ja) | 電子楽器 | |
JPH0422275B2 (ja) | ||
JP2993344B2 (ja) | 波形生成装置、波形記憶装置、波形生成方泡および波形記憶方法 | |
JPS61124994A (ja) | 楽音信号発生装置 | |
GB2294799A (en) | Sound generating apparatus having small capacity wave form memories | |
JP3945435B2 (ja) | 波形データ圧縮方法、楽音信号発生方法、楽音信号処理装置およびプログラム | |
JP2784399B2 (ja) | 楽音発生装置 | |
US5817964A (en) | Electronic musical instrument and method for storing a plurality of waveform sampling data at a single address | |
JP3651675B2 (ja) | 電子楽器 | |
JP3603343B2 (ja) | 波形読出装置 | |
JPH039476B2 (ja) | ||
JPH045692A (ja) | 電子楽器 | |
KR920006183B1 (ko) | 전자 악기의 엔벨로프 데이터 발생회로 | |
JP2897377B2 (ja) | 波形信号形成装置 | |
JPH039474B2 (ja) | ||
JPH06175664A (ja) | 楽音波形記憶方法及び楽音波形発生装置 | |
JPH09212170A (ja) | 楽音合成装置 | |
JPS60214396A (ja) | 楽音信号発生装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313532 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |