JP2993344B2 - 波形生成装置、波形記憶装置、波形生成方泡および波形記憶方法 - Google Patents

波形生成装置、波形記憶装置、波形生成方泡および波形記憶方法

Info

Publication number
JP2993344B2
JP2993344B2 JP5345306A JP34530693A JP2993344B2 JP 2993344 B2 JP2993344 B2 JP 2993344B2 JP 5345306 A JP5345306 A JP 5345306A JP 34530693 A JP34530693 A JP 34530693A JP 2993344 B2 JP2993344 B2 JP 2993344B2
Authority
JP
Japan
Prior art keywords
amplitude value
value data
waveform
waveform amplitude
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 - Fee Related
Application number
JP5345306A
Other languages
English (en)
Other versions
JPH07181975A (ja
Inventor
正宏 清水
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Corp
Original Assignee
Yamaha Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Corp filed Critical Yamaha Corp
Priority to JP5345306A priority Critical patent/JP2993344B2/ja
Publication of JPH07181975A publication Critical patent/JPH07181975A/ja
Application granted granted Critical
Publication of JP2993344B2 publication Critical patent/JP2993344B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は、波形サンプルデータ
を記憶した波形メモリを有する波形生成装置および波形
生成装置で用いる波形記憶装置(波形メモリ)に関す
る。
【0002】
【従来の技術】従来、電子楽器などで用いる楽音波形の
生成方式として、所定の波形の順次サンプル点の波形振
幅値をディジタル的に波形メモリに記憶しておき、この
波形メモリの記憶内容を繰返し読出して楽音波形を生成
するようにした波形生成方式が知られている。
【0003】波形メモリからの波形データの読出しは、
具体的には、以下のように行なわれる。まず、発生すべ
き楽音の音高に対応する周波数情報(いわゆるFナン
バ)Fを累算器で順次累算し、順次出力される累算値q
F(q=1,2,3,…)の整数部Iをアドレスとして
所定周期で波形メモリの波形データを読出す。また、累
算値qFの整数部Iだけをアドレスとして読出した波形
データは量子化ノイズを含むため、補間法を用いてこれ
を改善するようにしている。すなわち、隣合う複数のサ
ンプル点の波形データを読出して、累算値qFの少数部
dに基づく補間を行ない、任意の位置の振幅値を求めこ
れを波形データとして出力している。
【0004】このようにして、所望の音高の楽音波形が
出力される。波形メモリの波形データは、順次サンプル
点の波形振幅値をそのまま順番に(いわゆるリニアに)
格納している。音高が高くなるとFナンバの値も大きく
なるので、累算値qFの整数部Iも大きくなり、波形メ
モリのデータを飛ばし読みしなければならない場合があ
る。波形メモリはリニアに波形データを格納しているの
で、アドレスを飛ばしても、常に各サンプル点の正しい
波形振幅値を読出すことができる。
【0005】一方、波形メモリの容量を抑えることなど
を目的として、波形データを圧縮することが行なわれて
いる。圧縮の方式としては、例えばDPCM(差分PC
M)、LPC(線形予測符号化)、およびADPCMな
どがある。これらは、いずれも過去の波形データ(再生
値)と新たに読出したデータとを用いて現在の波形デー
タ(再生値)を得る方式である。
【0006】
【発明が解決しようとする課題】ところが、上述のよう
なデータ圧縮を行なっている場合は、常にある時点より
前のデータを用いてその時点の波形データを算出するた
め、波形メモリに格納されているデータを連続的に読み
出さなければならない。1つでもデータを読み出さない
と、その次から再生できなくなってしまう。したがっ
て、音高の高い楽音波形信号を再生するため波形メモリ
を飛ばし読みすることができず、音高の幅に制限がある
という問題があった。
【0007】この発明は、波形サンプルデータを記憶し
た波形メモリを有する波形生成装置およびそのような波
形生成装置で用いる波形記憶装置(波形メモリ)の改良
に関する。
【0008】また、この発明は、音高の幅が制限される
ようなことがなく波形メモリを飛ばし読みすることがで
き、かつ波形メモリのデータを圧縮できる波形生成装置
および波形記憶装置を提供することを目的とする。
【0009】
【課題を解決するための手段】この目的を達成するた
め、請求項1に係る発明は、所定の複数サンプル点ごと
に非圧縮波形振幅値データを設けるとともに、該非圧縮
波形振幅値データのサンプル点の間にあるサンプル点に
対しては、直前のサンプル点の非圧縮波形振幅値データ
を用いて非圧縮波形振幅値データを算出できるように、
かつ直後のサンプル点の非圧縮波形振幅値データを用い
て非圧縮波形振幅値データを算出できるように、圧縮さ
れた圧縮波形振幅値データを設けた波形記憶手段と、前
記波形記憶手段から、連続した範囲に含まれる1つの非
圧縮波形振幅値データおよび複数の圧縮波形振幅値デー
タを読出す読出し手段と、前記読出した1つの非圧縮波
形振幅値データを用いて、前記読出した圧縮波形振幅値
データから非圧縮波形振幅値データを算出する算出手段
であって、前記読出した1つの非圧縮波形振幅値データ
から見て時間的に未来の側のサンプル点に対応する圧縮
波形振幅値データについては、その非圧縮波形振幅値デ
ータから未来の側に向かう方向(正方向)に順次圧縮波
形振幅値データを算出し、前記読出した1つの非圧縮波
形振幅値データから見て時間的に過去の側のサンプル点
に対応する圧縮波形振幅値データについては、その非圧
縮波形振幅値データから過去の側に向かう方向(逆方
向)に順次圧縮波形振幅値データを算出するものと、得
られた非圧縮波形振幅値データに基づいて、波形データ
を再生する再生手段とを備えたことを特徴とする。
【0010】また、請求項2に係る発明は、所定の複数
サンプル点ごとに非圧縮波形振幅値データを設けるとと
もに、該非圧縮波形振幅値データのサンプル点の間にあ
るサンプル点に対しては、直前のサンプル点の非圧縮波
形振幅値データを用いて非圧縮波形振幅値データを算出
できるように、かつ直後のサンプル点の非圧縮波形振幅
値データを用いて非圧縮波形振幅値データを算出できる
ように、圧縮された圧縮波形振幅値データを設けた波形
記憶手段と、生成すべき楽音波形の音高に応じた周波数
情報を発生する周波数情報発生手段と、前記周波数情報
を所定速度で繰返し累算して、累算値を出力する累算手
段と、前記累算値に基づいて、前記波形記憶手段から、
連続した範囲に含まれる1つの非圧縮波形振幅値データ
および複数の圧縮波形振幅値データを読出す読出し手段
と、前記読出した1つの非圧縮波形振幅値データを用い
て、前記読出した圧縮波形振幅値データから非圧縮波形
振幅値データを算出する算出手段であって、前記読出し
た1つの非圧縮波形振幅値データから見て時間的に未来
の側のサンプル点に対応する圧縮波形振幅値データにつ
いては、その非圧縮波形振幅値データから未来の側に向
かう方向に順次圧縮波形振幅値データを算出し、前記読
出した1つの非圧縮波形振幅値データから見て時間的に
過去の側のサンプル点に対応する圧縮波形振幅値データ
については、その非圧縮波形振幅値データから過去の側
に向かう方向に順次圧縮波形振幅値データを算出するも
と、得られた非圧縮波形振幅値データから、補間に用
いる非圧縮波形振幅値データを選択する選択手段と、前
記選択手段によって選択された非圧縮波形振幅値データ
を用いて補間処理を行ない、補間結果を波形データとし
て出力する補間手段とを備えたことを特徴とする。
【0011】前記読出し手段は、前記累算値の上位の値
に基づいて波形記憶手段の読出しアドレスを決定するよ
うにするとよい。後述する実施例では、累算値qFの整
数部に基づいて波形メモリの読出しアドレスを決定して
いる。
【0012】
【0013】さらに、請求項3に係る波形記憶装置は、
音を所定のサンプリング周波数でサンプリングして得た
波形データを圧縮して記憶した波形記憶装置であって、
前記波形データのn個のサンプルを得て、所定の複数サ
ンプル点ごとにM(MはM≦n/2+1の整数)個の
圧縮波形振幅値データを設けるとともに、該非圧縮波形
振幅値データのサンプル点の間にあるサンプル点に対し
ては、直前のサンプル点の非圧縮波形振幅値データを用
いて非圧縮波形振幅値データを算出できるように、かつ
直後のサンプル点の非圧縮波形振幅値データを用いて非
圧縮波形振幅値データを算出できるように、圧縮された
(n−1)個の圧縮波形振幅値データを設けたことを特
徴とする。また、請求項4に係る発明は、請求項3にお
いて、前記所定の複数サンプル点ごとに設けられた非圧
縮波形振幅値データから任意に1つの非圧縮波形振幅値
データを選択し、該選択した非圧縮波形振幅値データを
用いて、該非圧縮波形振幅値データの直後の連続する複
数の圧縮波形振幅値データから対応する複数の非圧縮波
形振幅値データを算出した場合、前記算出された複数の
非圧縮波形振幅値データの最後の非圧縮波形振幅値デー
タが、前記選択した1つの非圧縮波形振幅値データの次
に設けられた非圧縮波形振幅値データと同じになること
を特徴とする。さらに請求項5に係る発明は、波形記憶
手段から波形データを読み出して再生する波形生成方法
であって、前記波形記憶手段は、所定の複数サンプル点
ごとに非圧縮波形振幅値データを設けるとともに、該非
圧縮波形振幅値データのサンプル点の間にあるサンプル
点に対しては、直前のサンプル点の非圧縮波形振幅値デ
ータを用いて非圧縮波形振幅値データを算出できるよう
に、かつ直後のサンプル点の非圧縮波形振幅値データを
用いて非圧縮波形振幅値データを算出できるように、圧
縮された圧縮波形振幅値データを設けたものにするとと
もに、前記波形記憶手段からの波形データの読み出し再
生は、前記波形記憶手段から、連続した範囲に含まれる
1つの非圧縮波形振幅値データおよび複数の圧縮波形振
幅値データを読出す読出しステップと、前記読出した1
つの非圧縮波形振幅値データを用いて、前記読出した圧
縮波形振幅値データから非圧縮波形振幅値データを算出
する算出ステップであって、前記読出した1つの非圧縮
波形振幅値データから見て時間的に未来の側のサンプル
点に対応する圧縮波形振幅値データについては、その非
圧縮波形振幅値データから未来の側に向かう方向に順次
圧縮波形振幅値データを算出し、前記読出した1つの非
圧縮波形振幅値データから見て時間的に過去の側のサン
プル点に対応する圧縮波形振幅値データについては、そ
の非圧縮波形振幅値データから過去の側に向かう方向に
順次圧縮波形振幅値データを算出する算出ステップと、
得られた非圧縮波形振幅値データに基づいて、波形デー
タを再生する再生ステップとを備えたことを特徴とす
る。請求項6に係る発明は、波形記憶手段から波形デー
タを読み出して再生する波形生成方法であって、前記波
形記憶手段は、所定の複数サンプル点ごとに非圧縮波形
振幅値データを設けるとともに、該非圧縮波形振幅値デ
ータのサンプル点の間にあるサンプル点に対しては、直
前のサンプル点の非圧縮波形振幅値データを用いて非圧
縮波形振幅値データを算出できるように、かつ直後のサ
ンプル点の非圧縮波形振幅値データを用いて非圧縮波形
振幅値データを算出できるように、圧縮された圧縮波形
振幅値データを設けたものにするとともに、前記波形記
憶手段からの波形データの読み出し再生は、生成すべき
楽音波形の音高に応じた周波数情報を発生する周波数情
報発生ステップと、前記周波数情報を所定速度で繰返し
累算して、累算値を出力する累算ステップと、前記累算
値に基づいて、前記波形記憶手段から、連続した範囲に
含まれる1つの非圧縮波形振幅値データおよび複数の圧
縮波形振幅値データを読出す読出しステップと、前記読
出した1つの非圧縮波形振幅値データを用いて、前記読
出した圧縮波形振幅値データから非圧縮波形振幅値デー
タを算出する算出ステップであって、前記読出した1つ
の非圧縮波形振幅値データから見て時間的に未来の側の
サンプル点に対応する圧縮波形振幅値データについて
は、その非圧縮波形振幅値データから未来の側に向かう
方向に順次圧縮波形振幅値データを算出し、前記読出し
た1つの非圧縮波形振幅値データから見て時間的に過去
の側のサンプル点に対応する圧縮波形振幅値データにつ
いては、その非圧縮波形振幅値データから過去の側に向
かう方向に順次圧縮波形振幅値データを算出する算出ス
テップと、得られた非圧縮波形振幅値データから、補間
に用いる非圧縮波形振幅値データを選択する選択ステッ
プと、前記選択ステップによって選択された非圧縮波形
振幅値データを用いて補間処理を行ない、補間結果を波
形データとして出力する補間ステップとを備えたことを
特徴とする。さらに請求項7に係る波形記憶方法は、
を所定のサンプリング周波数でサンプリングして得た波
形データを圧縮して記憶する波形記憶方法であって、前
記波形データのn個のサンプルを得て、所定の複数サン
プル点ごとにM(MはM≦n/2+1の整数)個の非圧
縮波形振幅値データを設けるとともに、該非圧縮波形振
幅値データのサンプル点の間にあるサンプル点に対して
は、直前のサンプル点の非圧縮波形振幅値データを用い
て非圧縮波形振幅値データを算出できるように、かつ直
後のサンプル点の非圧縮波形振幅値データを用いて非圧
縮波形振幅値データを算出できるように、圧縮された
(n−1)個の圧縮波形振幅値データを設けることを特
徴とする。さらに請求項8に係る発明は、請求項7にお
いて、前記所定の複数サンプル点ごとに設けられた非圧
縮波形振幅値データから任意に1つの非圧縮波形振幅値
データを選択し、該選択した非圧縮波形振幅値データを
用いて、該非圧縮波形振幅値データの直後の連続する複
数の圧縮波形振幅値データから対応する複数の非圧縮波
形振幅値データを算出した場合、前記算出された複数の
非圧縮波形振幅値データの最後の非圧縮波形振幅値デー
タが、前記選択した1つの非圧縮波形振幅値データの次
に設けられた非圧縮波形振幅値データと同じになること
を特徴とする。
【0014】
【作用】波形記憶手段は、複数の順次サンプル点の振幅
値データを記憶している。それら振幅値データは、非圧
縮波形振幅値データか圧縮波形振幅値データかのいずれ
かである。非圧縮波形振幅値データは、所定の複数サン
プル点ごとに設けられている。圧縮波形振幅値データ
は、非圧縮波形振幅値データの間に設けられている。圧
縮波形振幅値データからは、その直前にある非圧縮波形
振幅値データを用いて非圧縮波形振幅値データを算出す
ることができるし、その直後にある非圧縮波形振幅値デ
ータを用いて非圧縮波形振幅値データを算出することも
できる。
【0015】楽音波形を生成するときには、まず、生成
すべき楽音波形の音高に応じた周波数情報が発生され
る。この周波数情報は所定速度で繰返し累算され、累算
値が出力される。この累算値に基づいて、波形記憶手段
から、連続した範囲に含まれる1つの非圧縮波形振幅値
データおよび複数の圧縮波形振幅値データが読出され
る。読出された圧縮波形振幅値データは、非圧縮波形振
幅値データに変換される。
【0016】以上より得られた非圧縮波形振幅値データ
から、補間に用いるべき幾つかの非圧縮波形振幅値デー
タが選択される。選択された非圧縮波形振幅値データを
用いて補間処理を行ない、補間結果が波形データとして
出力される。
【0017】なお、波形記憶手段から読出したデータか
ら補間に用いるデータを選択し、選択したもののうち圧
縮波形振幅値データを非圧縮波形振幅値データに変換す
るようにしてもよい。
【0018】
【実施例】以下、図面を用いてこの発明の実施例を説明
する。
【0019】図1は、この発明の一実施例に係る波形生
成装置を適用した電子楽器のブロック構成を示す。この
電子楽器は、パネルスイッチ(SW)1、鍵盤2、マイ
クロコンピュータ(マイコン)3、マイクロフォン4、
アナログディジタル変換器(ADC)5、バッファRA
M(ランダム・アクセス・メモリ)6、音源部7、波形
メモリ8、ディジタルアナログ変換器(DAC)9、お
よびサウンドシステム10を備えている。
【0020】パネルスイッチ1は、発生する楽音の音色
を指定するための音色スイッチなどのパネル上に設けら
れているスイッチである。パネルスイッチ1の操作に応
じて出力される操作情報は、マイコン3に入力する。鍵
盤2は、演奏者が演奏するための複数の鍵を備えた鍵盤
である。演奏者の演奏に応じて鍵盤2から出力される演
奏情報(鍵のオン/オフを示すノートオン/オフ信号や
音高を示すノートコードなど)は、マイコン3に入力す
る。
【0021】音源部7は、マイコン3からの指示に応じ
て、波形メモリ8から波形データを読み出し、楽音信号
(ディジタル波形振幅値データ)を生成出力する。音源
部7については、後に詳述する。
【0022】波形メモリ8は、波形データを格納するR
AMおよびROM(リード・オンリ・メモリ)である。
波形メモリ8のRAM領域には、外部から入力した波形
データを格納する。波形メモリ8のROM領域には、あ
らかじめ設定されるプリセットの波形データが格納され
ている。
【0023】マイクロフォン4は、外部の音を録音する
ためのものである。マイクロフォン4で外部の音をアナ
ログ信号として入力し、ADC5で所定のサンプリング
周波数でサンプリングしてディジタル信号とする。AD
C5から出力されたディジタル信号は、マイコン3で後
述する図2のフォーマットに圧縮され、音源部7を経由
して波形メモリ8のRAM領域に格納される。バッファ
RAM6は、マイコン3が波形データの圧縮を行う際に
用いるバッファである。
【0024】DAC9は、音源部7からのディジタル楽
音信号に対しディジタルアナログ変換を行ない、アナロ
グ楽音信号を出力する。サウンドシステム10は、DA
C9から出力されるアナログ楽音信号に基づき実際に楽
音を放音する。
【0025】マイコン3は、本実施例の電子楽器全体の
動作を制御する。特に、外部の音を波形メモリ8に録音
するときは、ADC5からのディジタル信号を後述する
図2のフォーマットに圧縮する処理を行う。これについ
ては、図3を参照して後述する。また、鍵盤2の鍵の押
下があったとき、マイコン3は、その押下に応じて鍵盤
2から出力される演奏情報を入力し、その演奏情報に応
じて音源部7に発音を指示する。
【0026】図2は、図1の波形メモリ(RAM領域お
よびROM領域)8の波形データのフォーマットを示
す。波形メモリ8は、複数の記憶バンクを有し、各バン
クに音色ごとの波形デ−タが記憶されている。図2は、
ある1つの音色の波形デ−タの先頭部分を示したもので
ある。
【0027】波形データは、その音色の楽音波形の順次
サンプル点振幅値(波形振幅値)デ−タからなる。ただ
し、この実施例では、振幅値そのままの非圧縮なデータ
(以下、「リニアサンプル」と呼ぶ)と直前のサンプル
点の振幅値からの差分データ(以下、「圧縮サンプル」
と呼ぶ)とが混在しており、さらにその差分データは直
後のサンプル点の振幅値からの差分にもなっている。
【0028】図2において、下部に記載したアドレス−
2,−1,0,1,2,3,…は、スタートアドレスの
位置を基準としたオフセットアドレスを示す。音源部7
の内部で実際に波形メモリ8をアクセスする際、リニア
サンプルの位置を基準としてアクセスするので、説明の
便宜のためスタートアドレスの位置は1番始めに出現す
るリニアサンプルの位置とし、その前に2アドレス分
(アドレス−1,−2)の圧縮サンプルを格納するよう
にしている。
【0029】Lは16ビットのリニアサンプル、Dは8
ビットの圧縮サンプルを示す。1アドレスの領域に、リ
ニアサンプルであれば1データが格納でき、圧縮サンプ
ルであれば2データが格納できることになる。音源部7
から波形メモリ8の波形データを読出すときは、上述の
アドレス単位で読出す。すなわち、1アドレスを指定し
て読出すことにより、リニアサンプルであれば16ビッ
トのリニアサンプルが1データ、圧縮サンプルであれば
8ビットの圧縮サンプルが2データ読出せる。
【0030】図中、LおよびDに付された括弧付きの添
字は、当該データ(リニアサンプルまたは圧縮サンプ
ル)に対応するサンプル点(サンプリング点)の番号で
ある。すなわち、L(0),L(6),L(12),…
はそれぞれ第0サンプル点、第6サンプル点、第12サ
ンプル点、…の振幅値(リニアサンプル値)であり、D
(1),D(2),D(3),…はそれぞれ第1サンプ
ル点、第2サンプル点、第3サンプル点、…の直前サン
プル点振幅値(直前のサンプル点のリニアサンプル値)
からの差分である。
【0031】具体的には、第1サンプル点のリニアサン
プル値L(1)は、直前の第0サンプル点のリニアサン
プル値L(0)と差分D(1)とから、L(1)=L
(0)+D(1)で算出できる。また、第2サンプル点
のリニアサンプル値L(2)は、直前の第1サンプル点
のリニアサンプル値L(1)と差分D(2)とから、L
(2)=L(1)+D(2)で算出できる。以下同様に
して、圧縮サンプルD(m)と直前のリニアサンプルL
(m−1)とを用いて、リニアサンプルL(m)=L
(m−1)+D(m)が算出できる。
【0032】本実施例の波形データは、1アドレス分の
領域の1つのリニアサンプルと、3アドレス分の領域の
6つの圧縮サンプルとを、順に並べて構成されている。
特に、6つの圧縮サンプルのうちの最後の圧縮サンプル
によって算出できるリニアサンプルが、次のリニアサン
プルとして格納されている。例えば、アドレス3にある
圧縮サンプルD(6)を用いて、L(6)=L(5)+
D(6)と算出できるが、そのリニアサンプルL(6)
自体が次のアドレス4に格納されている。
【0033】したがって、圧縮サンプルDは、直前のサ
ンプル点の振幅値(リニアサンプル値)からの差分であ
るとともに、直後のサンプル点の振幅値(リニアサンプ
ル値)からの差分にもなっている。すなわち、上記では
アドレスが増加する方向(正方向)で順次リニアサンプ
ルをL(m)=L(m−1)+D(m)で算出している
が、逆方向(アドレスが減少する方向)にリニアサンプ
ルを算出することもできる。
【0034】例えば、アドレス4のリニアサンプルL
(6)とアドレス3の圧縮サンプルD(6)とを用い
て、第5サンプル点のリニアサンプルL(5)を、L
(5)=L(6)−D(6)で算出できる。また、その
リニアサンプルL(5)と圧縮サンプルD(5)とを用
いて、第4サンプル点のリニアサンプルL(4)=L
(5)−D(5)を算出できる。以下同様にして、逆方
向にL(m)=L(m+1)−D(m+1)でリニアサ
ンプルを算出できる。したがって、各圧縮サンプルD
(m)は、第m−1サンプル点の直後サンプル点振幅値
(直後のサンプル点のリニアサンプル値)からの差分で
あるということもできる。
【0035】なお、本実施例では、リニアサンプルのL
(0)の位置を基準としてサンプル点の位置を特定して
いるので、図2の波形データから再生できるサンプル点
を先頭から記載すれば、以下のようになる。説明の便宜
のため、下記の呼び方でサンプル点を特定するものとす
る。
【0036】 第−4サンプル点…リニアサンプルはL(−4) 第−3サンプル点…リニアサンプルはL(−3) 第−2サンプル点…リニアサンプルはL(−2) 第−1サンプル点…リニアサンプルはL(−1) 第0サンプル点…リニアサンプルはL(0) 第1サンプル点…リニアサンプルはL(1) 第2サンプル点…リニアサンプルはL(2) 第3サンプル点…リニアサンプルはL(3) : :
【0037】上記のうち、〜のサンプル点のリニア
サンプルは、アドレス0のリニアサンプルL(0)から
逆方向に求める。以降のサンプル点のリニアサンプル
は、波形データ中に保持されているリニアサンプルから
正方向に求めることもできるし、逆方向に求めることも
できる。
【0038】また、圧縮サンプルD(−3),D(−
1),D(1),D(3),…はそれぞれのアドレスの
16ビットの領域のうちの下位8ビットに格納され、D
(−2),D(0),D(2),D(4),…はそれぞ
れのアドレスの16ビットの領域のうちの上位8ビット
に格納されている。
【0039】図3は、波形メモリ8のRAM領域に波形
データを書込むときの書込みデータの生成の様子を示
す。
【0040】図1のマイクロフォン4により入力したア
ナログ楽音信号は、ADC5によりディジタル楽音信号
に変換される。図3のL(−4),L(−3),L(−
2),…はADC5の出力であるリニア波形データLで
あり、(図2でも説明した)各サンプル点のリニアサン
プル値(16ビット)である。リニアサンプルを示す矩
形ブロックの下に付したアドレスは、図2と同様に、ス
タートアドレスの位置を基準とした相対的なオフセット
アドレスである。
【0041】リニア波形データLは、図1のADC5か
ら順次マイコン3に入力する。マイコン3は、図3に示
すように、このリニア波形データLから差分波形データ
Dを生成する。具体的には、アドレスm(m=−3,−
2,−1,0,1,2,…)に対して、D(m)=L
(m)−L(m−1)で各差分波形データ(8ビット)
を生成する。さらに、2つの差分波形データ(例えば、
D(−3)とD(−2)、D(−1)とD(0)、D
(1)とD(2)など)を結合して16ビットの書込み
データを生成する。
【0042】図2でも説明したように、D(−3),D
(−1),D(1),D(3),…を下位8ビットに、
D(−2),D(0),D(2),D(4),…を上位
8ビットにする。マイコン3は、図1のバッファRAM
6をワークエリアとして用いて、このような波形メモリ
8への書込みデータの生成を行う。
【0043】最終的にマイコン3から音源部7を介して
波形メモリ8に書込むデータは、6つごとのリニアサン
プルL(0),L(6),L(12),…、およびその
間の差分波形データである。これにより、図2で説明し
たようなフォーマットの波形データが、波形メモリ8に
格納されることになる。
【0044】図4は、本実施例における波形データ読出
しの原理を説明するための図である。
【0045】図4(a)は図2で説明した波形メモリ8
の波形データを正方向(アドレスが増加する方向)に読
出す様子を示し、図4(b)は逆方向(アドレスが減少
する方向)に読出す様子を示す。401,402は再生
すべき楽音波形を示す。楽音波形401と402は同じ
波形である。原理説明のための図であり、基準となる縦
軸および横軸は図示していないが、縦軸が波形振幅値を
表し、横軸が時間(図の左から右方向が時間の経過する
方向)を表す。
【0046】楽音波形401,402上の黒丸および白
丸は、それぞれサンプル点(サンプリング点)を示す。
白丸または黒丸の近くに付したL(0),L(1),L
(2),…は、各サンプル点のリニアサンプルを示す。
特に、白丸は図2の波形データ中にリニアサンプルが保
持されているサンプル点を示し、黒丸はリニアサンプル
でなく圧縮サンプルが保持されているサンプル点を示
す。
【0047】図4(a)では、波形を正方向に再生する
場合に、リニアサンプルに差分データを加えていって直
後のリニアサンプルを求める様子が示してある。例え
ば、L(1)はL(0)+D(1)で算出され、L
(2)はL(1)+D(2)で算出され、…という具合
である。
【0048】逆に、図4(b)では、波形を逆方向に再
生する場合に、リニアサンプルから差分データを引いて
いって直前のリニアサンプルを求める様子が示してあ
る。例えば、L(5)はL(6)−D(6)で算出さ
れ、L(4)はL(5)−D(5)で算出され、…とい
う具合である。
【0049】本実施例では、音源部7は、時分割で複数
チャンネルの発音処理を行う。各チャンネルにおける波
形データの読出し処理は同じであるから、以下では1つ
のチャンネルに着目して説明するものとする。
【0050】本実施例の音源部7は、隣り合う4点のリ
ニアサンプルを用いて補間処理(4点補間)を行うこと
により1つの波形振幅値を算出して出力する。4点のリ
ニアサンプルを得るため、音源部7は、図2の波形デー
タから隣り合う3アドレス分のデータを1度に読出す。
リニアサンプルを含んで隣り合う3アドレス分の波形デ
ータを読出す仕方として以下の3つのタイプがある。
【0051】(タイプ1)リニアサンプルを読出した
後、そのリニアサンプルの1つ前のアドレスの2圧縮サ
ンプルを読出し、さらにその1つ前のアドレスの2圧縮
サンプルを読出す場合である。例えば、図2のアドレス
4(リニアサンプルL(6))、アドレス3(圧縮サン
プルD(5),D(6))、およびアドレス2(圧縮サ
ンプルD(3),D(4))を読出す場合である。これ
らの読出しデータからは、図2で説明したように、また
図4(b)からも分かるように、リニアサンプルL
(6)から逆方向に4つのリニアサンプルL(5),L
(4),L(3),L(2)を算出することができ、結
果としてリニアサンプルL(2)〜L(6)の5つを求
めることができる。
【0052】(タイプ2)リニアサンプルを読出した
後、そのリニアサンプルの前後の各2圧縮サンプルを読
出す場合である。例えば、図2のアドレス4(リニアサ
ンプルL(6))、アドレス3(圧縮サンプルD
(5),D(6))、およびアドレス5(圧縮サンプル
D(7),D(8))を読出す場合である。これらの読
出しデータからは、リニアサンプルL(6)から逆方向
に2つのリニアサンプルL(5),L(4)を算出する
ことができ、リニアサンプルL(6)から正方向に2つ
のリニアサンプルL(7),L(8)を算出することが
できる。結果として、リニアサンプルL(4)〜L
(8)の5つを求めることができる。
【0053】(タイプ3)リニアサンプルを読出した
後、そのリニアサンプルの次のアドレスの2圧縮サンプ
ルを読出し、さらにその次のアドレスの2圧縮サンプル
を読出す場合である。例えば、図2のアドレス4(リニ
アサンプルL(6))、アドレス5(圧縮サンプルD
(7),D(8))、およびアドレス6(圧縮サンプル
D(9),D(10))を読出す場合である。これらの
読出しデータからは、リニアサンプルL(6)から正方
向に4つのリニアサンプルL(7),L(8),L
(9),L(10)を算出することができる。結果とし
て、リニアサンプルL(6)〜L(10)の5つを求め
ることができる。
【0054】図4の矢印411,412,413は、波
形データ中のリニアサンプルを含む3アドレス分のデー
タで算出することができるリニアサンプルの範囲を示し
ている。例えば、矢印412では、リニアサンプルL
(6)を含む3アドレス分の波形データにより、リニア
サンプルL(2)からL(10)まで再生できることを
示している。
【0055】図2の波形データはアドレス0,4,8,
…のように4アドレスごとにリニアサンプルを保持して
いるから、それらの各リニアサンプルを含む3アドレス
分の波形データにより再生できるリニアサンプルの範囲
をそれぞれ考慮すると、隣り合うそれらの範囲は3つの
サンプル点の重なりを有することになる。例えば、矢印
411の範囲と矢印412の範囲ではL(2),L
(3),L(4)の3点が重なり、矢印412の範囲と
矢印413の範囲ではL(8),L(9),L(10)
の3点が重なっている。
【0056】したがって、図2の波形データ中のリニア
サンプルを含む3アドレス分を読出しさえすれば、任意
の隣り合う4点のリニアサンプルを算出できることが分
かる。例えば、4点L(1),L(2),L(3),L
(4)を得るためにはリニアサンプルL(0)を含む3
アドレス(図2のアドレス0,1,2)を読出せばよい
し、次の4点L(2),L(3),L(4),L(5)
を得るためにはリニアサンプルL(6)を含む3アドレ
ス(図2のアドレス2,3,4)を読出せばよい。
【0057】以上より、4点補間を行うために必要な4
点のリニアサンプルを求めるためには、図2の波形デー
タ中のリニアサンプルを含む3アドレス分を読出せばよ
く、これにより波形データの飛ばし読みが可能になって
いる。
【0058】次に、上述したように波形メモリを構成
し、飛ばし読みを可能とした本実施例の音源部7につき
詳しく説明する。
【0059】図5は、図1の音源部7のブロック構成を
示す。音源部7は、制御レジスタ部501、Fナンバ発
生部502、カウンタ503、乗算器504,505、
加算器506、補助アドレス発生部507、デコーダ部
508、データ選択部509、補間部510、エンベロ
ープ発生器511、乗算器512、およびチャンネル
(CH)累算器513を備えている。デコーダ部50
8、データ選択部509、および補間部510を、再生
部と呼ぶ。
【0060】この音源部7は、時分割で複数チャンネル
(16ch/DAC)の発音を行う。具体的には、各チ
ャンネルのタイムスロットでそのチャンネルの処理を行
うようになっている。各チャンネルの処理は独立してい
る。以下では、1つのチャンネルにおける処理に着目し
て説明する。
【0061】制御レジスタ501は、図1のマイコン3
から音源部7に送出される各種の制御データを格納す
る。マイコン3から制御レジスタ501に入力する制御
データについて説明する。まず、波形メモリ8へ波形デ
ータを書込む(録音時)場合は、マイコン3から図3で
説明した書込みデータが制御レジスタ501に入力す
る。この書込みデータは、制御レジスタ501を介して
波形メモリ8に書込まれる。
【0062】次に、発音指示の際(再生時)にマイコン
3から制御レジスタ501に入力する制御データについ
て説明する。図1の鍵盤2において何れかの鍵が押下さ
れると、鍵盤2から演奏情報として、鍵のオンを示すノ
ートオン信号および音高を示すノートコードが出力され
る。これらの演奏情報は、マイコン3に入力する。マイ
コン3は、この演奏に応じた楽音を発生するため、発音
チャンネルの割当てを行う。そして、割当てたチャンネ
ルを特定して、エンベロープ・ジェネレータ(EG)制
御データ、スタートアドレス、ノートコード、およびノ
ートオン信号を、音源部7の制御レジスタ501に、出
力する。制御レジスタ501は、各発音チャンネルのタ
イムスロットで、その発音チャンネルに関するこれらの
情報を、音源部内の各部に出力する。これにより、各チ
ャンネルの楽音信号生成処理が行われる。なお、EG制
御データおよびスタートアドレスは、その時点で設定さ
れている音色に応じたデータが用いられる。音色の設定
は、図1のパネルSW1による。
【0063】EG制御データとは、指定されている音色
に応じたエンベロープ波形の種類を示すデータである。
EG制御データは、制御レジスタ501を介してエンベ
ロープ発生器511に入力する。スタートアドレスと
は、指定されている音色に応じた波形データの波形メモ
リ8内先頭アドレス(図2のデータの先頭アドレス)で
ある。スタートアドレスは、加算器506に入力する。
ノートコードは、発音すべき楽音の音高を示す。ノート
コードは、Fナンバ発生部502に入力する。ノートオ
ン信号は、鍵の押下を示す。ノートオン信号は、発音開
始タイミングを示す信号として、カウンタ503および
エンベロープ発生器511に入力する。
【0064】音源部7内のFナンバ発生部502以降の
各部について説明する。
【0065】まず、Fナンバ発生部502は、各チャン
ネルのタイムスロットにおいて、そのチャンネルで発音
すべき楽音のノートコード(音高)に応じたFナンバを
発生する。カウンタ503は、制御レジスタ501から
のノートオン信号でリセットされるとともに、上記Fナ
ンバを入力し、順次累算して累算値qF(q=0,1,
2,3,…)を出力する。累算は、当該チャンネルのタ
イムスロットごとに行われる。
【0066】この実施例では、カウンタ503から出力
される累算値qFは30ビットのデータとする。累算値
qFの整数部AI(上位19ビット)は乗算器504に
入力し、小数部AF(下位11ビット)は乗算器505
に入力する。
【0067】乗算器504は、整数部AIと定数「4」
とを乗算する。乗算結果(21ビット)は、加算器50
6に入力する。整数部AIに定数「4」を乗算するの
は、その乗算結果とスタートアドレスとを加算した結果
によって、図2の波形データのリニアサンプルがアドレ
ッシングされるようにするためである。図2に示すよう
に、リニアサンプルはアドレス0,4,8,…に保持さ
れているから定数「4」を乗算した結果は4の倍数とな
り、整数部AIに定数「4」を乗算してスタートアドレ
スを加算すれば、図2の波形データのリニアサンプルが
アドレッシングされることになる。
【0068】乗算器505は、小数部AFと定数「3」
とを乗算する。乗算結果(13ビット)の上位2ビット
AF1は、補助アドレス発生部507およびデコーダ部
508に入力する。また、乗算器505の乗算結果の上
位2ビットAF1にその乗算結果の下位11ビットのう
ちの最上位ビットを合せた3ビットAF2(すなわち、
乗算器505の乗算結果の上位3ビット)は、データ選
択部509および補間部510に入力する。さらに、乗
算器505の乗算結果の下位10ビットAF3は、補間
部510に入力する。
【0069】補助アドレス発生部507は、乗算器50
5からのデータAF1に基づいて補助アドレスを発生す
る。発生した補助アドレスは、加算器506に入力す
る。加算器506は、乗算器504の出力とスタートア
ドレスと補助アドレスとを加算する。その加算結果をア
ドレスとして波形メモリ8から波形データを読出す。
【0070】上述したように、乗算器504の出力とス
タートアドレスを加算した結果で図2の波形データのリ
ニアサンプルがアドレッシングされるから、補助アドレ
スはリニアサンプルの位置からのオフセットを示すこと
になる。また、本実施例では、1つの波形振幅値を求め
るために3アドレス分の波形データを読出すから、補助
アドレス発生部507は、AF1の入力に応じて3つの
補助アドレスを順次出力するようになっている。特に、
リニアサンプルは必ず読出す必要があるから、1番始め
に出力される補助アドレスは「0」である。
【0071】補助アドレス発生部507から順次出力さ
れる3つの補助アドレスに応じて、加算器506から
は、3つの読出しアドレスが順次出力される。これによ
り、波形メモリ8の波形データが3アドレス分だけ3回
に分けて順次読出される。読出された3アドレス分の波
形データは、順次、デコーダ部508に入力する。この
3アドレス分の波形データは、1アドレス分のリニアサ
ンプルと2アドレス分の圧縮サンプル(圧縮サンプルが
合せて4つ)からなるが、そのうちリニアサンプルが最
初に読出されてデコーダ部508に入力するようになっ
ている。これは、デコーダ部508における処理を容易
にするためである。
【0072】デコーダ部508は、入力したリニアサン
プル1つと圧縮サンプル4つとから、リニアサンプルの
値を算出する。合せて5つのリニアサンプルが求められ
ることになる。デコーダ部508は、その5つのリニア
サンプルを、順次、データ選択部509に出力する。
【0073】データ選択部509は、デコーダ部508
から入力する5つのリニアサンプルから補間に用いる4
つを選択する処理を行う。選択された4つのリニアサン
プルは、順次、補間部510に入力する。補間部510
は、これらの4つのリニアサンプルを用いて4点補間を
行ない、結果を乗算器512に出力する。
【0074】一方、エンベロープ発生器511は、ノー
トオン信号の立ち上がりのタイミングからエンベロープ
波形を出力する。出力するエンベロープ波形は、EG制
御データに応じて選択されたものである。
【0075】乗算器512は、補間部510から出力さ
れる補間結果に、エンベロープ発生器511から出力さ
れるエンベロープを付与する。チャンネル累算器513
は、各チャンネルのタイムスロットで乗算器512から
出力される乗算結果(エンベロープが付与されたディジ
タル楽音信号)を累算し、図1のDAC9へと出力す
る。
【0076】以上が、音源部7における処理の概要であ
る。次に、この音源部7において、波形メモリ8から必
要な3アドレス分のデータを読出し、必要な4つのリニ
アサンプルを算出し、補間を行う処理について詳細に説
明する。
【0077】図6(a)は、図2の波形データを順次読
出して再生する場合のアドレスの進み具合とそのような
アドレスで読出した波形データから求められる隣り合う
4つのリニアサンプルを示すタイムチャートである。
【0078】この図において、「AI」,「AF1」,
「AF2」,「AF3」の欄は、それぞれ、図5で説明
した各データAI,AF1,AF2,AF3の値を示
す。「読出しアドレス」の欄は、加算器506から出力
される読出しアドレスを示す。「読出しアドレス」の下
の「(補助アドレス)」の欄は、補助アドレス発生部5
07から出力される補助アドレスの値を示す。1番下の
「必要な4サンプル」の欄は、上記のAI,AF1,A
F2,AF3および補助アドレスの値で求めるべき4つ
のリニアサンプルを示す。
【0079】いま、あるチャンネルで発音が指示され、
図5のカウンタ503から累算値qF(q=0,1,
2,3,…)が順次出力されたとする。具体的には、
0,F,2F,3F,4F,…が当該チャンネルのタイ
ムスロットごとにカウンタ503から出力される。カウ
ンタ503からの出力が0から順次増加していく際のA
I,AF1,AF2,AF3の値の変化について、図6
(a)を参照して説明する。
【0080】カウンタ503からの出力は、整数部AI
と小数部AFに分けられる。整数部AIは、始めのうち
(qが小さいうち)は「0」である。AI=0の間、小
数部AFは0から順次増加し1の近くまでくる。さらに
カウンタ503からの出力が増加すると、整数部AI=
1となり、小数部AFは再び0になる。そして、AI=
1の間、小数部AFは0から順次増加し1の近くまでく
る。以下同様にして、整数部AIと小数部AFとは変化
していく。
【0081】まず、AI=0の範囲に着目する。AI=
0の間、小数部AFは0≦AF<1の範囲で順次増加す
るから、乗算器505で小数部AFに定数「3」を乗算
した結果3・AFは0≦3・AF<3の範囲で順次増加
する。したがって、乗算器505の乗算結果の上位2ビ
ットAF1は、この2ビットを整数と見れば、始めは
0、次に1、次に2の値を取る。図6(a)のAF1の
欄は、そのようなAF1の変化を示している。
【0082】AF2は、図5で説明したように乗算器5
05の出力の13ビットのうちの上位3ビットであり、
言い替えるとAF1の2ビットにすぐ下の1ビット分を
合せた3ビットである。したがって、AF2は、その3
ビットを整数と見れば、AF1=0の間は始めは0で次
に1の値を取り、AF1=1の間は始めは2で次に3の
値を取り、AF1=2の間は始めは4で次に5の値を取
る。図6(a)のAF2の欄は、そのようなAF2の変
化を示している。
【0083】AF3は、図5で説明したように、乗算器
505の13ビットの出力のうちの下位10ビットであ
る。これは乗算器505の13ビットの出力から上位3
ビットAF2を除いたものであるから、AF3は、AF
2が0から5の値を取る各区間で0から所定値(10ビ
ットがすべて1)まで順次増加するように変化する。図
6(a)のAF3の欄は、そのようなAF3の変化を示
している。特に、AF3では、順次増加する様子を鋸歯
状波で図示してある。
【0084】上記では、AI=0の範囲に着目して説明
したが、図6(a)に示すように、AI=1,2,3,
…でもAF1,AF2,AF3は同様に変化する。
【0085】次に、このように変化するAI,AF1,
AF2,AF3に応じて波形メモリ8から必要な3アド
レス分の波形データを読出す動作について説明する。
【0086】図5で説明したように、乗算器504の出
力である4・AIとスタートアドレスを加算した結果で
図2の波形データのリニアサンプルがアドレッシングさ
れる。図6(a)のAIの欄に括弧で括って記載してあ
るのは、そのAIの値のときにアドレッシングされる図
2の波形データ中のリニアサンプルとそのアドレスを示
したものである。
【0087】例えば、AI=0の欄には「(0:L
(0))」との記載があるが、これはAI=0のとき
は、図2の波形データ中のアドレス0のリニアサンプル
L(0)を含む3アドレス分のデータを読出すことを示
している。また、AI=1の欄には「(4:L
(6))」との記載があるが、これはAI=1のとき
は、図2の波形データ中のアドレス4のリニアサンプル
L(6)を含む3アドレス分のデータを読出すことを示
している。
【0088】乗算器504の出力4・AIとスタートア
ドレスを加算した結果でアドレッシングされるリニアサ
ンプルが決まれば、補助アドレス発生部507から出力
される補助アドレスはそのリニアサンプルからのオフセ
ットであるから、当該リニアサンプルから補助アドレス
分だけ前後のデータを読出すことになる。実際には、補
助アドレス発生部507は、AF1の値別に、図6
(a)の「(補助アドレス)」の欄に示すように補助ア
ドレスを発生する。発生した補助アドレスは、加算器5
06に入力する。以下、AF1の値別に説明する。な
お、スタートアドレスは0であるものと仮定する。
【0089】AF1=0のとき このときは、補助アドレスとして0,−1,−2が順次
出力される。これは、上記のタイプ1の読出し方であ
る。すなわち、補助アドレス0でまずリニアサンプルを
読出し、次にその1つ前のアドレスの2つの圧縮サンプ
ルを読出し、さらにその1つ前のアドレスの2つの圧縮
サンプルを読出す場合である。
【0090】例えば、AI=0の場合、加算器506の
出力(すなわち、波形メモリ8の読出しアドレス)は、
スタートアドレスの0と4・AIの0と上記補助アドレ
スとの加算結果であるから、0,−1,−2である。し
たがって、加算器506から順次出力される読出しアド
レス0,−1,−2の波形データが読出されて、この順
にデコーダ部508に入力する。同様に、AI=1の場
合、読出しアドレスは、スタートアドレスの0と4・A
Iの4と上記補助アドレスとの加算結果であるから、
4,3,2である。したがって、この読出しアドレス
4,3,2の波形データが読出されて、この順にデコー
ダ部508に入力する。
【0091】AF1=1のとき このときは、補助アドレスとして0,−1,+1が順次
出力される。これは、上記のタイプ2の読出し方であ
る。すなわち、補助アドレス0でまずリニアサンプルを
読出し、次にその1つ前のアドレスの2つの圧縮サンプ
ルを読出し、さらにリニアサンプルの次のアドレスの2
つの圧縮サンプルを読出す場合である。
【0092】例えば、AI=0の場合、読出しアドレス
は、スタートアドレスの0と4・AIの0と上記補助ア
ドレスとの加算結果であるから、0,−1,1である。
したがって、加算器506から順次出力される読出しア
ドレス0,−1,1の波形データが読出されて、この順
にデコーダ部508に入力する。同様に、AI=1の場
合、読出しアドレスは、スタートアドレスの0と4・A
Iの4と上記補助アドレスとの加算結果であるから、
4,3,5である。したがって、この読出しアドレス
4,3,5の波形データが読出されて、この順にデコー
ダ部508に入力する。
【0093】AF1=2のとき このときは、補助アドレスとして0,+1,+2が順次
出力される。これは、上記のタイプ3の読出し方であ
る。すなわち、補助アドレス0でまずリニアサンプルを
読出し、次にその次のアドレスの2つの圧縮サンプルを
読出し、さらにその次のアドレスの2つの圧縮サンプル
を読出す場合である。
【0094】例えば、AI=0の場合、読出しアドレス
は、スタートアドレスの0と4・AIの0と上記補助ア
ドレスとの加算結果であるから、0,+1,+2であ
る。したがって、加算器506から順次出力される読出
しアドレス0,1,2の波形データが読出されて、この
順にデコーダ部508に入力する。同様に、AI=1の
場合、読出しアドレスは、スタートアドレスの0と4・
AIの4と上記補助アドレスとの加算結果であるから、
4,3,5である。したがって、この読出しアドレス
4,3,5の波形データが読出されて、この順にデコー
ダ部508に入力する。
【0095】図6(b)は、具体的な補助アドレスの出
力の様子を示すタイムチャートである。601は各チャ
ンネルごとのタイムスロットを示す。前チャンネルのタ
イムスロット、いま着目している当チャンネルのタイム
スロット、次チャンネルのタイムスロットの順に並んで
いる。各チャンネルのタイムスロットは、それぞれ6つ
のタイムスロットに分割されており、その各タイムスロ
ットの区間に0,1,2,…,5が記載されている。以
下、この各タイムスロットをタイムスロット0、タイム
スロット1、…と呼ぶものとする。
【0096】この図に示すように、補助アドレス発生部
507は、AF1=0のときは、タイムスロット0およ
び1で0を、タイムスロット2および3で−1を、タイ
ムスロット4および5で−2を、それぞれ出力する。A
F1=1のときは、タイムスロット0および1で0を、
タイムスロット2および3で−1を、タイムスロット4
および5で+1を、それぞれ出力する。AF1=2のと
きは、タイムスロット0および1で0を、タイムスロッ
ト2および3で+1を、タイムスロット4および5で+
2を出力する。
【0097】次に、上述したようにして読出した3アド
レス分の波形データを入力し、入力したデータから5つ
のリニアサンプルを求めて順次出力するデコーダ部50
8について、詳細に説明する。
【0098】図7は、再生部、すなわちデコーダ部50
8、データ選択部509、および補間部510の詳細な
ブロック構成を示す。図において、デコーダ部508
は、ラッチ701、セレクタ702,703、加減算器
704、ディレイ(遅延)回路705、およびデコード
制御部706を備えている。
【0099】ラッチ701は、波形メモリ8からの読出
しデータ(16ビット)をラッチする。セレクタ702
は、3つの入力端子A,B,Cを備えており、デコード
制御部706からの制御信号に基づいて入力端子A,
B,Cのいずれかを選択して出力する。セレクタ702
の入力端子Aにはディレイ回路705の出力データが入
力し、入力端子Bにはラッチ701の出力データが入力
し、入力端子Cには波形メモリ8からの読出しデータが
入力するように、それぞれ接続されている。
【0100】セレクタ703は、2つの入力端子A,B
を備えており、デコード制御部706からの制御信号に
基づいて入力端子A,Bのいずれかを選択して出力す
る。セレクタ703の入力端子Aには波形メモリ8から
の読出しデータのうち上位8ビットが入力し、入力端子
Bには下位8ビットが入力するように、それぞれ接続さ
れている。
【0101】セレクタ702および703の選択出力
は、加減算器704に入力する。加減算器704は、デ
コード制御部706からの制御信号に基づいて加算また
は減算を行う。加減算器704の出力は、ディレイ回路
705に入力する。ディレイ回路705の出力は、セレ
クタ702の入力端子Aに入力するとともに、データ選
択部509に入力する。
【0102】デコード制御部706は、データAF1に
基づいて、セレクタ702,703および加減算器70
4への制御信号を出力する。
【0103】次に、図7、および図8〜図10を参照し
て、デコーダ部508について詳しく説明する。
【0104】上述したように、AF1の値(0,1,
2)に応じて波形データの読出し方のタイプが異なるか
ら、以下ではAF1の値ごとにデコーダ部508の動作
を説明する。
【0105】AF1=0のとき 図8は、AF1=0のときのデコーダ部508の動作を
説明するためのタイムチャートである。この図におい
て、「メモリ読出しデータ」は、波形メモリ8から順次
読出されてデコーダ部508に入力するデータを示して
いる。AF1=0では、上述のタイプ1の読出しがなさ
れるから、まずリニアサンプルL(付番801)が、次
にそのリニアサンプルの1アドレス前の圧縮サンプル−
1D,0D(付番802)が、最後にさらにその1アド
レス前の圧縮サンプル−3D,−2D(付番803)
が、デコーダ部508に入力する。
【0106】なお、図8、図9、および図10では、波
形メモリ8から読出されてデコーダ部508に入力する
リニアサンプルをLで表し、そのリニアサンプルからの
オフセット値をLの前に付けて他のリニアサンプルを表
すものとする。例えば、−1LはLの1つ前のサンプル
点のリニアサンプル、+1LはLの1つ後のサンプル点
のリニアサンプルを表す。また、圧縮サンプルについて
も同様に表す。例えば、0DはLの1つ前のアドレスの
上位8ビットの圧縮サンプル、−1DはLの1つ前のア
ドレスの下位8ビットの圧縮サンプル、+2DはLの次
のアドレスの上位8ビットの圧縮サンプル、+1DはL
の次のアドレスの下位8ビットの圧縮サンプルを表す。
また、メモリ読出しデータの各ブロックの下の数字は、
そのデータが読出される際の補助アドレスを示す。
【0107】図8において、「セレクタ702」および
「セレクタ703」は、デコード制御部706からの制
御信号に基づいて決定されるセレクタ702およびセレ
クタ703の選択状態を示し、「デコード出力」はデコ
ーダ部508の出力を示す。セレクタ703の下に、実
際にセレクタ703から出力されるデータを示す。な
お、セレクタ703は、何れの入力端子も選択せず0を
出力する状態を取ることができるセレクタとする。
【0108】図7および図8を参照して、まず、波形メ
モリ8からリニアサンプルLが読出されると(80
1)、そのリニアサンプルLは、ラッチ701にラッチ
されるとともに、セレクタ702の入力端子Cに入力す
る。このとき、セレクタ702は入力端子Cを選択出力
し(811)、セレクタ703は0を出力する状態(8
21)に制御される。また、加減算器704は、セレク
タ702からの出力からセレクタ703からの出力を減
算するように制御される。したがって、リニアサンプル
Lが、加減算器705から出力されディレイ回路705
に入力することになる。ディレイ回路705で所定時間
遅延された後、デコーダ出力としてリニアサンプルL
が、データ選択部509に入力する(831)。
【0109】このディレイ回路705の出力(リニアサ
ンプルL)は、セレクタ702の入力端子Aに入力す
る。次に、波形メモリ8から圧縮サンプル0D,−1D
が読出される(802)。このうち、上位8ビットの圧
縮サンプル0Dはセレクタ703の入力端子Aに、下位
8ビットの圧縮サンプル−1Dはセレクタ703の入力
端子Bに、それぞれ入力する。このとき、セレクタ70
2は入力端子Aを選択出力し(812)、セレクタ70
3は入力端子Aを選択出力する状態(822)に制御さ
れる。また、加減算器704は、セレクタ702からの
出力からセレクタ703からの出力を減算するように制
御される。したがって、リニアサンプルLから圧縮サン
プル0Dを減算した結果(すなわち、リニアサンプル−
1L)が、加減算器705から出力されディレイ回路7
05に入力することになる。ディレイ回路705で所定
時間遅延された後、デコーダ出力としてリニアサンプル
−1Lが、データ選択部509に入力する(832)。
【0110】このディレイ回路705の出力(リニアサ
ンプル−1L)は、セレクタ702の入力端子Aに入力
する。次に、セレクタ702は入力端子Aを選択出力し
(813)、セレクタ703は入力端子Bを選択出力す
る状態(823)に制御される。加減算器704は、セ
レクタ702からの出力からセレクタ703からの出力
を減算するように制御される。したがって、リニアサン
プル−1Lから圧縮サンプル−1Dを減算した結果(す
なわち、リニアサンプル−2L)が、加減算器705か
ら出力されディレイ回路705に入力することになる。
ディレイ回路705で所定時間遅延された後、デコーダ
出力としてリニアサンプル−2Lが、データ選択部50
9に入力する(833)。
【0111】このディレイ回路705の出力(リニアサ
ンプル−2L)は、セレクタ702の入力端子Aに入力
する。次に、波形メモリ8から圧縮サンプル−2D,−
3Dが読出される(803)。このうち、上位8ビット
の圧縮サンプル−2Dはセレクタ703の入力端子A
に、下位8ビットの圧縮サンプル−3Dはセレクタ70
3の入力端子Bに、それぞれ入力する。このとき、セレ
クタ702は入力端子Aを選択出力し(814)、セレ
クタ703は入力端子Aを選択出力する状態(824)
に制御される。また、加減算器704は、セレクタ70
2からの出力からセレクタ703からの出力を減算する
ように制御される。したがって、リニアサンプル−2L
から圧縮サンプル−2Dを減算した結果(すなわち、リ
ニアサンプル−3L)が、加減算器705から出力され
ディレイ回路705に入力することになる。ディレイ回
路705で所定時間遅延された後、デコーダ出力として
リニアサンプル−3Lが、データ選択部509に入力す
る(834)。
【0112】このディレイ回路705の出力(リニアサ
ンプル−3L)は、セレクタ702の入力端子Aに入力
する。次に、セレクタ702は入力端子Aを選択出力し
(815)、セレクタ703は入力端子Bを選択出力す
る状態(825)に制御される。加減算器704は、セ
レクタ702からの出力からセレクタ703からの出力
を減算するように制御される。したがって、リニアサン
プル−3Lから圧縮サンプル−3Dを減算した結果(す
なわち、リニアサンプル−4L)が、加減算器705か
ら出力されディレイ回路705に入力することになる。
ディレイ回路705で所定時間遅延された後、デコーダ
出力としてリニアサンプル−4Lが、データ選択部50
9に入力する(835)。
【0113】以上のようにして、デコーダ部508か
ら、5つのリニアサンプルL,−1L,−2L,−3
L,−4Lが順次出力される(831〜835)。
【0114】AF1=1のとき 図9は、AF1=1のときのデコーダ部508の動作を
説明するためのタイムチャートである。この場合のデコ
ーダ部508の動作は、上記のAF1=0の場合と同
様である。ただし、AF1=1では、上述のタイプ2の
読出しがなされるから、まずリニアサンプルL(付番9
01)が、次にそのリニアサンプルの1アドレス前の圧
縮サンプル−1D,0D(付番902)が、最後にさら
にリニアサンプルの次のアドレスの圧縮サンプル+2
D,+1D(付番903)が、デコーダ部508に入力
する。
【0115】そして、セレクタ702,703および加
減算器704の制御も、そのような入力に応じてなされ
る。特に、セレクタ703からの出力がリニアサンプル
に加算すべき圧縮サンプルであるときは、加減算器70
4は、セレクタ702の出力とセレクタ703の出力と
を加算するように制御される。
【0116】例えば、波形メモリ8から圧縮サンプル+
2D,+1Dが読出されたときは(903)、その上位
8ビットの圧縮サンプル+2Dはセレクタ703の入力
端子Aに、下位8ビットの圧縮サンプル+1Dはセレク
タ703の入力端子Bに、それぞれ入力するが、このと
きセレクタ702は入力端子Bを選択出力し(91
4)、セレクタ703は入力端子Bを選択出力する状態
(924)に制御される。また、加減算器704は、セ
レクタ702からの出力とセレクタ703からの出力を
加算するように制御される。セレクタ702からはラッ
チ701のリニアサンプルLが出力されているから、リ
ニアサンプルLと圧縮サンプル+1Dを加算した結果
(すなわち、リニアサンプル+1L)が、加減算器70
5から出力されディレイ回路705に入力することにな
る。ディレイ回路705で所定時間遅延された後、デコ
ーダ出力としてリニアサンプル+1Lが、データ選択部
509に入力する(934)。
【0117】その次には、セレクタ702が入力端子A
を選択出力し(915)、セレクタ703は入力端子A
を選択出力する状態(925)に制御され、また、加減
算器704は、セレクタ702からの出力とセレクタ7
03からの出力を加算するように制御される。これによ
り、デコーダ出力としてリニアサンプル+2Lが、デー
タ選択部509に入力する(935)。
【0118】結果として、デコーダ部508から、5つ
のリニアサンプルL,−1L,−2L,+1L,+2L
が順次出力される(931〜935)。
【0119】AF1=2のとき 図10は、AF1=2のときのデコーダ部508の動作
を説明するためのタイムチャートである。この場合のデ
コーダ部508の動作は、上記およびのAF1=
0,1の場合と同様である。ただし、AF1=2では、
上述のタイプ3の読出しがなされるから、まずリニアサ
ンプルL(付番1001)が、次にそのリニアサンプル
の次の圧縮サンプル+2D,+1D(付番1002)
が、最後にさらにその次のアドレスの圧縮サンプル+4
D,+3D(付番1003)が、デコーダ部508に入
力する。
【0120】そして、セレクタ702,703および加
減算器704の制御も、そのような入力に応じてなされ
る。特に、この場合はセレクタ703からの出力はすべ
てリニアサンプルに加算すべき圧縮サンプルであるか
ら、加減算器704は、セレクタ702の出力とセレク
タ703の出力とを加算するように制御される。
【0121】結果として、デコーダ部508から、5つ
のリニアサンプルL,+1L,+2L,+3L,+4L
が順次出力される(1031〜1035)。
【0122】次に、データ選択部509について詳しく
説明する。
【0123】図7を参照して、データ選択部509は、
ディレイ回路711、セレクタ712、および選択制御
部713を備えている。デコーダ部508からの出力
は、ディレイ回路711に入力するとともに、セレクタ
712の入力端子Bに入力する。ディレイ回路711の
出力は、セレクタ712の入力端子Aに入力する。セレ
クタ712は、選択制御部713からの制御信号に基づ
いて入力端子A,Bのいずれかを選択出力する。選択制
御部713は、データAF2に基づいて、セレクタ71
1への制御信号を出力する。
【0124】図11は、再生部、すなわちデコーダ部5
08、データ選択部509、および補間部510におけ
るタイムチャートを示す。1101は各チャンネルごと
のタイムスロットを示し、1102は着目しているチャ
ンネルにおいて波形メモリ8から読出してデコーダ部5
08に入力する読出しデータを示す。R1は、図8の読
出しデータ801、図9の読出しデータ901、および
図10の読出しデータ1001に相当する。同様に、R
2,R3は、図8の読出しデータ802,803、図9
の読出しデータ902,903、および図10の読出し
データ1002,1003に相当する。
【0125】図11の1103は、これらの読出しデー
タをデコーダ部508によってデコードした結果として
出力されるデコード出力を示す。X1は、図8のデコー
ド出力831、図9のデコード出力931、および図1
0のデコード出力1031に相当する。同様に、X2,
X3,X4,X5は、図8のデコード出力832,83
3,834,835、図9のデコード出力931,93
2,933,934、および図10のデコード出力10
32,1033,1034,1035に相当する。
【0126】図7のデータ選択部509のディレイ回路
711およびセレクタ712の入力端子Bには、このよ
うなデコード出力1103が入力する。ディレイ回路7
11への入力は、所定の遅延時間の後に出力され、図1
1の1104のようになる。セレクタ712は、付番1
103,1104に示す入力端子A,Bへの入力のいず
れかを選択出力する。図11の付番1105のS1〜S
4が選択された出力を示す。
【0127】図11の(i)は、データ選択部509に
おける選択制御によって付番1103,1104のデー
タX1〜X5がどのように選択されるかを、AF2の別
に具体的に示したものである。矩形のブロックは選択出
力されるデータを示し、矩形ブロックの上の記号A,B
はセレクタ712が入力端子A,Bのどちらを選択出力
するかを示す。
【0128】AF2=1,2,4のときは、セレクタ7
12は入力端子A,A,A,Aと選択出力するように制
御される。したがって、セレクタ712からはX1,X
2,X3,X4の順に出力される。
【0129】AF2=3のときは、セレクタ712は入
力端子A,A,B,Bと選択出力するように制御され
る。したがって、セレクタ712からはX1,X2,X
4,X5の順に出力される。
【0130】AF2=0,5のときは、セレクタ712
は入力端子B,B,B,Bと選択出力するように制御さ
れる。したがって、セレクタ712からはX2,X3,
X4,X5の順に出力される。
【0131】図8〜図10で説明したデコード出力を考
慮すると、データ選択部509から順次出力され補間部
510に入力するリニアサンプルは以下のようになる。 AF2=0のとき…順に、−1L,−2L,−3L,
−4L AF2=1のとき…順に、L,−1L,−2L,−3
L AF2=2のとき…順に、L,−1L,−2L,+1
L AF2=3のとき…順に、L,−1L,+1L,+2
L AF2=4のとき…順に、L,+1L,+2L,+3
L AF2=5のとき…順に、+1L,+2L,+3L,
+4L
【0132】以上より、出力の順序はサンプル点の時間
的順序に応じたものではないが(AF2に応じて順序が
定まる)、4つの隣り合うリニアサンプルが順次補間部
510に入力することになる。
【0133】次に、補間部510について詳しく説明す
る。
【0134】図7を参照して、補間部510は、乗算器
721、係数メモリ723、上位ビット発生器722、
および補間累算器724を備えている。データ選択部5
09からの出力は、乗算器721に入力する。上位ビッ
ト発生器722は、データAF2に基づいて係数メモリ
723の読出しアドレスのうちの上位2ビットを発生す
る。係数メモリ723には、上位ビット発生器722か
らの2ビットのほか、データAF3(10ビット)が入
力し、これらを合せた12ビットのデータをアドレスと
して係数データが読出される。
【0135】4点補間は、4つの隣り合うリニアサンプ
ルLS0,LS1,LS2,LS3のそれぞれに所定の
係数を乗算して、乗算結果を累算することにより求めら
れる。すなわち、係数をA0(j),A1(j),A2(j),
A3(j)とすると、A0(j) ・LS0+A1(j) ・LS
1+A2(j) ・LS2+A3(j) ・LS3によって、補
間された振幅値を求めることができる。
【0136】ここで、リニアサンプルLS0,LS1,
LS2,LS3は、サンプル点としての時間的順序に沿
って並んでいるものとし、LS3が1番先の(古い)サ
ンプル点のリニアサンプル、逆にLS1が1番後の(新
しい)サンプル点のリニアサンプルとする。
【0137】上述したように、補間部510には4つの
隣り合うリニアサンプルが順次入力するから、各リニア
サンプルの入力の際に所定の係数が係数メモリ723か
ら出力されるようにしておけば、乗算器721で各リニ
アサンプルと係数との乗算を行い、その乗算結果が補間
累算器724で累算されるようにできる。これにより、
上記式の演算が実行され、補間結果が出力される。
【0138】係数メモリ723から出力される係数につ
いてさらに詳しく説明する。
【0139】図12は、係数メモリ723の記憶内容を
示す。横軸がアドレス、縦軸が読出される係数データを
表す。係数メモリ723に入力するアドレスは12ビッ
トであるが、上位2ビット(上位ビット発生器722か
らの入力)は整数部、下位10ビット(データAF3)
は小数部とみなす。したがって、図12の横軸は0から
4の範囲になっている。0,1,3,4の位置は整数部
で決定され、そこから矢印のように小数部だけ進んだ位
置が読出し位置になる。補間して求めるサンプル点は横
軸の1から2の範囲にある。
【0140】図12の記憶内容のうちアドレス0から1
の範囲が、上記係数A0(j)に相当する。jは小数部で
ある。また、図12のアドレス1から2が係数A1(j)
に、アドレス2から3が係数A2(j)に、アドレス3か
ら4が係数A3(j)に、それぞれ相当する。
【0141】一方、データ選択部509から出力され補
間部510に入力する4つのリニアサンプルの順序は、
AF2の値により定まるから、その値別に説明すれば、
以下の通りである。
【0142】AF2=0のとき…補間部510への入
力の順序は、−1L,−2L,−3L,−4Lであるか
ら、上記LSの記号で表すと、LS0,LS1,LS
2,LS3の順になる。これに合せて、係数はA0
(j),A1(j),A2(j),A3(j)の順で出力すればよい
ことになる。そこで、図11の(ii)に示すように、AF
2=0のときは係数メモリのアドレスの上位2ビットを
0,1,2,3の順に出力する。これにより、上記の順
序で係数が出力される。
【0143】AF2=1のとき…補間部510への入
力の順序は、L,−1L,−2L,−3Lであるから、
上記LSの記号で表すと、LS0,LS1,LS2,L
S3の順になる。これに合せて、係数はA0(j),A1
(j),A2(j),A3(j)の順で出力すればよいことにな
る。そこで、図11の(ii)に示すように、AF2=1の
ときは係数メモリのアドレスの上位2ビットを0,1,
2,3の順に出力する。これにより、上記の順序で係数
が出力される。
【0144】AF2=2のとき…補間部510への入
力の順序は、L,−1L,−2L,+1Lであるから、
上記LSの記号で表すと、LS1,LS2,LS3,L
S0の順になる。これに合せて、係数はA1(j),A2
(j),A3(j),A0(j)の順で出力すればよいことにな
る。そこで、図11の(ii)に示すように、AF2=2の
ときは係数メモリのアドレスの上位2ビットを1,2,
3,0の順に出力する。これにより、上記の順序で係数
が出力される。
【0145】AF2=3のとき…補間部510への入
力の順序は、L,−1L,+1L,+2Lであるから、
上記LSの記号で表すと、LS2,LS3,LS1,L
S0の順になる。これに合せて、係数はA2(j),A3
(j),A1(j),A0(j)の順で出力すればよいことにな
る。そこで、図11の(ii)に示すように、AF2=3の
ときは係数メモリのアドレスの上位2ビットを2,3,
1,0の順に出力する。これにより、上記の順序で係数
が出力される。
【0146】AF2=4のとき…補間部510への入
力の順序は、L,+1L,+2L,+3Lであるから、
上記LSの記号で表すと、LS3,LS2,LS1,L
S0の順になる。これに合せて、係数はA3(j),A2
(j),A1(j),A0(j)の順で出力すればよいことにな
る。そこで、図11の(ii)に示すように、AF2=4の
ときは係数メモリのアドレスの上位2ビットを3,2,
1,0の順に出力する。これにより、上記の順序で係数
が出力される。
【0147】AF2=5のとき…補間部510への入
力の順序は、+1L,+2L,+3L,+4Lであるか
ら、上記LSの記号で表すと、LS3,LS2,LS
1,LS0の順になる。これに合せて、係数はA3
(j),A2(j),A1(j),A0(j)の順で出力すればよい
ことになる。そこで、図11の(ii)に示すように、AF
2=4のときは係数メモリのアドレスの上位2ビットを
3,2,1,0の順に出力する。これにより、上記の順
序で係数が出力される。
【0148】以上のようにして、最終的に、図11の1
106のように補間結果が出力される。
【0149】なお、図12の係数メモリの記憶内容は、
通常は左右対称になっている。したがって、例えば2か
ら4の範囲のアドレスは折り返すように変換してアクセ
スするようにすれば、係数メモリを半分にすることもで
きる。
【0150】本実施例によれば、図5のカウンタ503
の出力qFの値が定まれば、上述した動作により1つの
波形振幅値を出力できる。したがって、どのサンプル点
からも再生可能であり、波形メモリの飛ばし読みを行う
ことができる。また、本実施例では、4アドレスに6点
分のデータを格納できるから、1アドレスに1リニアサ
ンプルを格納するのに比べて、4/6=66.7%の圧
縮率で、波形データを格納できる。さらに、圧縮して格
納されているので、読出し回数(メモリアクセス回数)
が少なくて済む。短い時間でより多くのサンプルを再生
できるから、発音数を拡大するなどの効果がある。
【0151】図13は、波形データのフォーマットの変
形例を示す。図13(a)は、5アドレスに8点分のデ
ータを格納した例である。データの圧縮率は、5/8=
62.5%になる。この場合、1チャンネルにおいて4
アドレス分のデータを読出せば、6点補間が可能であ
る。図4と同様の原理図を考えると、リニアサンプルを
含む4アドレスで再生可能な範囲の重なりが5点あるか
らである。
【0152】図13(b)は、圧縮サンプルDのビット
数を6ビットとし、3アドレスに8つの圧縮サンプルを
詰めて格納した例である。リニアサンプルも入れると、
4アドレスに8点分のデータを格納したことになる。デ
ータの圧縮率は、4/8=50%になる。この場合、1
チャンネルにおいて4アドレス分のデータを読出せば、
7点補間が可能である。
【0153】
【発明の効果】以上説明したように、本発明によれば、
所定の複数サンプル点ごとにリニア(非圧縮)な振幅値
データを設け、その間に圧縮データを設けており、リニ
アな振幅値データから正方向および逆方向のどちらにも
再生可能になっているので、音高の幅が制限(ピッチア
ップの制限)されるようなことがなく波形メモリを飛ば
し読みすることができる。また、波形メモリがデータ圧
縮され、容量は少なくて済む。さらに、波形メモリの読
出し回数が少なくて済む。
【図面の簡単な説明】
【図1】この発明の一実施例に係る波形生成装置を適用
した電子楽器のブロック構成図
【図2】波形データフォーマット図
【図3】録音時の書込みデータの生成の様子を示す図
【図4】波形データの再生の原理図
【図5】音源部のブロック構成図
【図6】音源部内の各位置のアドレスの変化などを示す
タイムチャートおよび補助アドレスの出力の様子を示す
タイムチャート図
【図7】音源部の再生部のブロック構成図
【図8】デコーダ部の動作を説明するためのタイムチャ
ート図(その1)
【図9】デコーダ部の動作を説明するためのタイムチャ
ート図(その2)
【図10】デコーダ部の動作を説明するためのタイムチ
ャート図(その3)
【図11】再生部の動作を説明するためのタイムチャー
ト図
【図12】係数メモリの記憶内容を示す図
【図13】波形データのフォーマットの変形例を示す図
【符号の説明】
1…パネルスイッチ(SW)、2…鍵盤、3…マイクロ
コンピュータ(マイコン)、4…マイクロフォン、5…
アナログディジタル変換器(ADC)、6…バッファR
AM、7…音源部、8…波形メモリ、9…ディジタルア
ナログ変換器(DAC)、10…サウンドシステム。

Claims (8)

    (57)【特許請求の範囲】
  1. 【請求項1】所定の複数サンプル点ごとに非圧縮波形振
    幅値データを設けるとともに、該非圧縮波形振幅値デー
    タのサンプル点の間にあるサンプル点に対しては、直前
    のサンプル点の非圧縮波形振幅値データを用いて非圧縮
    波形振幅値データを算出できるように、かつ直後のサン
    プル点の非圧縮波形振幅値データを用いて非圧縮波形振
    幅値データを算出できるように、圧縮された圧縮波形振
    幅値データを設けた波形記憶手段と、 前記波形記憶手段から、連続した範囲に含まれる1つの
    非圧縮波形振幅値データおよび複数の圧縮波形振幅値デ
    ータを読出す読出し手段と、 前記読出した1つの非圧縮波形振幅値データを用いて、
    前記読出した圧縮波形振幅値データから非圧縮波形振幅
    値データを算出する算出手段であって、前記読出した1
    つの非圧縮波形振幅値データから見て時間的に未来の側
    のサンプル点に対応する圧縮波形振幅値データについて
    は、その非圧縮波形振幅値データから未来の側に向かう
    方向に順次圧縮波形振幅値データを算出し、前記読出し
    た1つの非圧縮波形振幅値データから見て時間的に過去
    の側のサンプル点に対応する圧縮波形振幅値データにつ
    いては、その非圧縮波形振幅値データから過去の側に向
    かう方向に順次圧縮波形振幅値データを算出するもの
    と、 得られた非圧縮波形振幅値データに基づいて、波形デー
    タを再生する再生手段とを備えたことを特徴とする波形
    生成装置。
  2. 【請求項2】所定の複数サンプル点ごとに非圧縮波形振
    幅値データを設けるとともに、該非圧縮波形振幅値デー
    タのサンプル点の間にあるサンプル点に対しては、直前
    のサンプル点の非圧縮波形振幅値データを用いて非圧縮
    波形振幅値データを算出できるように、かつ直後のサン
    プル点の非圧縮波形振幅値データを用いて非圧縮波形振
    幅値データを算出できるように、圧縮された圧縮波形振
    幅値データを設けた波形記憶手段と、 生成すべき楽音波形の音高に応じた周波数情報を発生す
    る周波数情報発生手段と、 前記周波数情報を所定速度で繰返し累算して、累算値を
    出力する累算手段と、 前記累算値に基づいて、前記波形記憶手段から、連続し
    た範囲に含まれる1つの非圧縮波形振幅値データおよび
    複数の圧縮波形振幅値データを読出す読出し手段と、 前記読出した1つの非圧縮波形振幅値データを用いて、
    前記読出した圧縮波形振幅値データから非圧縮波形振幅
    値データを算出する算出手段であって、前記読出した1
    つの非圧縮波形振幅値データから見て時間的に未来の側
    のサンプル点に対応する圧縮波形振幅値データについて
    は、その非圧縮波形振幅値データから未来の側に向かう
    方向に順次圧縮波形振幅値データを算出し、前記読出し
    た1つの非圧縮波形振幅値データから見て時間的に過去
    の側のサンプル点に対応する圧縮波形振幅値データにつ
    いては、その非圧縮波形振幅値データから過去の側に向
    かう方向に順次圧縮波形振幅値データを算出するもの
    と、 得られた非圧縮波形振幅値データから、補間に用いる非
    圧縮波形振幅値データを選択する選択手段と、 前記選択手段によって選択された非圧縮波形振幅値デー
    タを用いて補間処理を行ない、補間結果を波形データと
    して出力する補間手段とを備えたことを特徴とする波形
    生成装置。
  3. 【請求項3】音を所定のサンプリング周波数でサンプリ
    ングして得た波形データを圧縮して記憶した波形記憶装
    置であって、 前記波形データのn個のサンプルを得て、 所定の複数サ
    ンプル点ごとにM(MはM≦n/2+1の整数)個の
    圧縮波形振幅値データを設けるとともに、該非圧縮波形
    振幅値データのサンプル点の間にあるサンプル点に対し
    ては、直前のサンプル点の非圧縮波形振幅値データを用
    いて非圧縮波形振幅値データを算出できるように、かつ
    直後のサンプル点の非圧縮波形振幅値データを用いて非
    圧縮波形振幅値データを算出できるように、圧縮された
    (n−1)個の圧縮波形振幅値データを設けたことを特
    徴とする波形記憶装置。
  4. 【請求項4】前記所定の複数サンプル点ごとに設けられ
    た非圧縮波形振幅値データから任意に1つの非圧縮波形
    振幅値データを選択し、該選択した非圧縮波形振幅値デ
    ータを用いて、該非圧縮波形振幅値データの直後の連続
    する複数の圧縮波形振幅値データから対応する複数の非
    圧縮波形振幅値データを算出した場合、前記算出された
    複数の非圧縮波形振幅値データの最後の非圧縮波形振幅
    値データが、前記選択した1つの非圧縮波形振幅値デー
    タの次に設けられた非圧縮波形振幅値データと同じにな
    ることを特徴とする請求項3に記載の波形記憶装置。
  5. 【請求項5】波形記憶手段から波形データを読み出して
    再生する波形生成方法であって、 前記波形記憶手段は、所定の複数サンプル点ごとに非圧
    縮波形振幅値データを設けるとともに、該非圧縮波形振
    幅値データのサンプル点の間にあるサンプル点に対して
    は、直前のサンプル点の非圧縮波形振幅値データを用い
    て非圧縮波形振幅値データを算出できるように、かつ直
    後のサンプル点の非圧縮波形振幅値データを用いて非圧
    縮波形振幅値データを算出できるように、圧縮された圧
    縮波形振幅値データを設けたものにするとともに、 前記波形記憶手段からの波形データの読み出し再生は、 前記波形記憶手段から、連続した範囲に含まれる1つの
    非圧縮波形振幅値データおよび複数の圧縮波形振幅値デ
    ータを読出す読出しステップと、 前記読出した1つの非圧縮波形振幅値データを用いて、
    前記読出した圧縮波形振幅値データから非圧縮波形振幅
    値データを算出する算出ステップであって、前記読出し
    た1つの非圧縮波形振幅値データから見て時間的に未来
    の側のサンプル点に対応する圧縮波形振幅値データにつ
    いては、その非圧縮波形振幅値データから未来の側に向
    かう方向に順次圧縮波形振幅値データを算出し、前記読
    出した1つの非圧縮波形振幅値データから見て時間的に
    過去の側のサンプル点に対応する圧縮波形振幅値データ
    については、その非圧縮波形振幅値データから過去の側
    に向かう方向に順次圧縮波形振幅値データを算出する算
    出ステップと、 得られた非圧縮波形振幅値データに基づいて、波形デー
    タを再生する再生ステップとを備えたことを特徴とする
    波形生成方法。
  6. 【請求項6】波形記憶手段から波形データを読み出して
    再生する波形生成方法であって、 前記波形記憶手段は、所定の複数サンプル点ごとに非圧
    縮波形振幅値データを設けるとともに、該非圧縮波形振
    幅値データのサンプル点の間にあるサンプル点に対して
    は、直前のサンプル点の非圧縮波形振幅値データを用い
    て非圧縮波形振幅値データを算出できるように、かつ直
    後のサンプル点の非圧縮波形振幅値データを用いて非圧
    縮波形振幅値データを算出できるように、圧縮された圧
    縮波形振幅値データを設けたものにするとともに、 前記波形記憶手段からの波形データの読み出し再生は、 生成すべき楽音波形の音高に応じた周波数情報を発生す
    る周波数情報発生ステップと、 前記周波数情報を所定速度で繰返し累算して、累算値を
    出力する累算ステップと、 前記累算値に基づいて、前記波形記憶手段から、連続し
    た範囲に含まれる1つの非圧縮波形振幅値データおよび
    複数の圧縮波形振幅値データを読出す読出しステップ
    と、 前記読出した1つの非圧縮波形振幅値データを用いて、
    前記読出した圧縮波形振幅値データから非圧縮波形振幅
    値データを算出する算出ステップであって、前記読出し
    た1つの非圧縮波形振幅値データから見て時間的に未来
    の側のサンプル点に対応する圧縮波形振幅値データにつ
    いては、その非圧縮波形振幅値データから未来の側に向
    かう方向に順次圧縮波形振幅値データを算出し、前記読
    出した1つの非圧縮波形振幅値データから見て時間的に
    過去の側のサンプル点に対応する圧縮波形振幅値データ
    については、その非圧縮波形振幅値データから過去の側
    に向かう方向に順次圧縮波形振幅値データを算出する算
    出ステップと、 得られた非圧縮波形振幅値データから、補間に用いる非
    圧縮波形振幅値データを選択する選択ステップと、 前記選択ステップによって選択された非圧縮波形振幅値
    データを用いて補間処理を行ない、補間結果を波形デー
    タとして出力する補間ステップとを備えたことを特徴と
    する波形生成方法。
  7. 【請求項7】音を所定のサンプリング周波数でサンプリ
    ングして得た波形データを圧縮して記憶する波形記憶方
    法であって、 前記波形データのn個のサンプルを得て、 所定の複数サ
    ンプル点ごとにM(MはM≦n/2+1の整数)個の
    圧縮波形振幅値データを設けるとともに、該非圧縮波形
    振幅値データのサンプル点の間にあるサンプル点に対し
    ては、直前のサンプル点の非圧縮波形振幅値データを用
    いて非圧縮波形振幅値データを算出できるように、かつ
    直後のサンプル点の非圧縮波形振幅値データを用いて非
    圧縮波形振幅値データを算出できるように、圧縮された
    (n−1)個の圧縮波形振幅値データを設けることを特
    徴とする波形記憶方法。
  8. 【請求項8】前記所定の複数サンプル点ごとに設けられ
    た非圧縮波形振幅値データから任意に1つの非圧縮波形
    振幅値データを選択し、該選択した非圧縮波形振幅値デ
    ータを用いて、該非圧縮波形振幅値データの直後の連続
    する複数の圧縮波形振幅値データから対応する複数の非
    圧縮波形振幅値データを算出した場合、前記算出された
    複数の非圧縮波形振幅値データの最後の非圧縮波形振幅
    値データが、前記選択した1つの非圧縮波形振幅値デー
    タの次に設けられた非圧縮波形振幅値データと同じにな
    ることを特徴とする請求項7に記載の波形記憶方法。
JP5345306A 1993-12-21 1993-12-21 波形生成装置、波形記憶装置、波形生成方泡および波形記憶方法 Expired - Fee Related JP2993344B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP5345306A JP2993344B2 (ja) 1993-12-21 1993-12-21 波形生成装置、波形記憶装置、波形生成方泡および波形記憶方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP5345306A JP2993344B2 (ja) 1993-12-21 1993-12-21 波形生成装置、波形記憶装置、波形生成方泡および波形記憶方法

Publications (2)

Publication Number Publication Date
JPH07181975A JPH07181975A (ja) 1995-07-21
JP2993344B2 true JP2993344B2 (ja) 1999-12-20

Family

ID=18375708

Family Applications (1)

Application Number Title Priority Date Filing Date
JP5345306A Expired - Fee Related JP2993344B2 (ja) 1993-12-21 1993-12-21 波形生成装置、波形記憶装置、波形生成方泡および波形記憶方法

Country Status (1)

Country Link
JP (1) JP2993344B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3918826B2 (ja) * 2004-03-30 2007-05-23 ヤマハ株式会社 楽音データ再生装置
JP5470893B2 (ja) * 2009-02-18 2014-04-16 カシオ計算機株式会社 効果音発生装置

Also Published As

Publication number Publication date
JPH07181975A (ja) 1995-07-21

Similar Documents

Publication Publication Date Title
EP0454047B1 (en) Tone waveform generation apparatus
JP3404794B2 (ja) 波形発生装置
US4202234A (en) Digital generator for musical notes
JPH07181974A (ja) 楽音発生装置
JP2605916B2 (ja) 波形信号発生装置
JP2785531B2 (ja) 電子楽器
JP2993344B2 (ja) 波形生成装置、波形記憶装置、波形生成方泡および波形記憶方法
US5890126A (en) Audio data decompression and interpolation apparatus and method
JP2811692B2 (ja) 複数チャンネルの信号圧縮方法
JP3081530B2 (ja) 電子楽器
JP2790160B2 (ja) 波形生成装置および波形記憶装置
JP3527396B2 (ja) 波形記録装置および波形再生装置
JP2576614B2 (ja) 処理装置
JP3945435B2 (ja) 波形データ圧縮方法、楽音信号発生方法、楽音信号処理装置およびプログラム
JPH02146599A (ja) 音源データ圧縮符号化方法
JP3543203B2 (ja) 電子楽器
US5883324A (en) Signal generating apparatus and signal generating method
JP3651675B2 (ja) 電子楽器
JP2907051B2 (ja) 波形発生装置及び方法
JP2940440B2 (ja) 電子楽器の波形データ圧縮記録方法および波形データ再生方法
JP2897377B2 (ja) 波形信号形成装置
JP2880720B2 (ja) 楽音波形読出装置
JPH039474B2 (ja)
JPH0566779A (ja) 楽音発生装置
JPS5926790A (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

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

Free format text: PAYMENT UNTIL: 20071022

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20081022

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20091022

Year of fee payment: 10

LAPS Cancellation because of no payment of annual fees