JP3567767B2 - 圧縮波形サンプルを用いたループ再生装置 - Google Patents
圧縮波形サンプルを用いたループ再生装置 Download PDFInfo
- Publication number
- JP3567767B2 JP3567767B2 JP33376298A JP33376298A JP3567767B2 JP 3567767 B2 JP3567767 B2 JP 3567767B2 JP 33376298 A JP33376298 A JP 33376298A JP 33376298 A JP33376298 A JP 33376298A JP 3567767 B2 JP3567767 B2 JP 3567767B2
- Authority
- JP
- Japan
- Prior art keywords
- sample
- block
- loop
- output
- generated
- 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
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
【発明が属する技術分野】
本発明は、記憶された差分符号化あるいは適応差分符号化された圧縮波形サンプルを読み出して再生する際に、圧縮波形サンプルの一部を繰り返し読み出すようにしてループ再生するループ再生装置に関する。
【0002】
【従来の技術】
従来、実際の楽器音をPCM化してROM(Read Only Memory)等からなる波形メモリに記憶しておき、演奏時に波形メモリにアクセスして読み出し所望の楽器音を再生するようにしたPCM音源が知られている。このPCM音源においてピッチをシフトして波形メモリから読み出す方法として、ピッチ同期タイプとピッチ非同期タイプとが知られている。ピッチ同期タイプのPCM音源では、再生するピッチに対応した周波数のクロックをカウントし、そのカウント値に対応してメモリアドレス値に対応した周期で波形メモリをアクセスし波形サンプルデータを順次に逐一読み出している。また、ピッチ非同期タイプのPCM音源では、一定の所定周期(出力レート)毎に、ピッチに対応した数値の周波数情報を累算し、その累算結果に対応したメモリアドレス値を生成して波形メモリをアクセスし波形サンプルデータを読み出している。
【0003】
ところで、PCM音源はPCM化された楽音波形サンプルをそのまま波形メモリに記憶しているため、打楽器音のような比較的短い時間の音の場合は、最初から最後までの楽音波形サンプルを波形メモリに記憶することができるが、ブラスやストリングス等の持続音の場合は、割り当てられるメモリ容量に限りがあるため最初から最後までの楽音波形サンプルの全てを波形メモリに記憶することはできない。そこで、楽音波形サンプルの全てを波形メモリに記憶することはできない楽音を発音する際には、波形メモリに記憶されている楽音波形サンプルの一部を繰り返し読み出して再生するループ再生が用いられている。
【0004】
【発明が解決しようとする課題】
しかしながら、前記ループ再生を行うようにしても音色数が増加するに従い波形メモリの記憶容量が増大することになるため、各楽音に割り当てるメモリエリアを削減しなければならないことになり、再生される楽音の品質を維持することができないおそれが生じる。
これを解決するには、1楽音波形サンプル当たりのビット数を圧縮して削減すれば、限られたメモリエリアであってもある程度長時間の楽音波形サンプルを記憶することが可能となる。楽音波形サンプルの圧縮方法としては、差分PCM(DPCM)化された圧縮波形サンプルとしたり、適応差分PCM(DPCM)化された圧縮波形サンプルとすることが考えられる。このような圧縮波形サンプルは、隣接する直前までの楽音波形サンプル値から生成した予測値を用いて圧縮符号化されるため、デコードする際には隣接する直前のデコード後の波形サンプルが予測値として必要となる。すなわち、圧縮波形サンプルを順番に逐一読み出さなければデコードすることができない。しかしながら、ループ再生を行う際には、ループエンドに達した際にループスタートの位置へループバックしなければならず、そうすると、途中の圧縮波形サンプルに戻るようになるため、デコードすることができないという問題点があった。
【0005】
そこで、本発明は、1波形サンプル当たりのビット数を削減した圧縮波形サンプルを記憶した波形サンプル記憶手段を備えていても、ループ再生することのできるループ再生装置を提供することを目的としている。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明の圧縮波形サンプルを用いたループ再生装置は、予測値に基づいて圧縮符号化された圧縮波形サンプルを記憶した波形サンプル記憶手段と、ループスタート位置情報およびループエンド位置情報を発生するループ位置情報発生手段と、所望のピッチ情報を所定周期毎に累算することにより、ループスタート位置を経由してループエンド位置まで順次増加する位相情報を発生するとともに、前記ループ位置情報発生手段から発生されるループエンド位置情報に基づいてループエンド位置に達したと検出された際に、位相情報をループスタート位置にループバックして再び順次増加する位相情報を発生する位相情報発生手段と、該位相情報発生手段から今回の周期で発生された位相情報に対応した圧縮波形サンプルが記憶されている今回アドレスが、前回の周期で発生された位相情報に対応した圧縮波形サンプルが記憶されている前回アドレスと異なる場合には1ないし複数回前記波形サンプル記憶手段にアクセスして1ないし複数個の圧縮波形サンプルを読み出すと共に、前記今回アドレスが前記前回アドレスと同じ場合には前記波形サンプル記憶手段にアクセスしない読出制御手段と、該読出制御手段により前記波形サンプル記憶手段から読み出された圧縮波形サンプルを予測値に基づいて所定周期毎に順次に逐一デコードし、その結果を伸長波形サンプルとして順次出力するデコード手段と、該デコード手段によりデコードされた最新の伸長波形サンプルを含む少なくとも1つの伸長波形サンプルを、一時記憶する第1の一時記憶手段と、前記ループ位置情報発生手段から発生されるループスタート位置情報に基づいて、前記読出制御手段で最初にループスタート位置の圧縮波形サンプルを読み出した時にデコードされた伸長波形サンプルを、以降にループバックした時の予測値として一時記憶する第2の一時記憶手段と、所定周期毎に、前記デコード手段から出力される伸長波形サンプル、前記第1の一時記憶手段から出力される伸長波形サンプル、または、前記第2の一時記憶手段から出力される伸長波形サンプルのいずれかを、前記位相情報発生手段から今回の周期で発生された位相情報と前回の周期で発生された位相情報とに基づいて発生された選択制御信号に基づき出力波形サンプルとして選択的に出力する出力手段とを備え、デコードすべき圧縮波形サンプルに隣接する直前の伸長波形サンプルが前記予測値として前記デコード手段に供給されるよう、前記デコード手段から出力される伸長波形サンプル、前記第1の一時記憶手段から出力される伸長波形サンプル、または、前記第2の一時記憶手段から出力される伸長波形サンプルのいずれかを、前記選択制御信号に基づき選択して前記デコード手段に供給するようにしている。
【0009】
また、上記圧縮波形サンプルを用いたループ再生装置において、前記波形サンプル記憶手段には、圧縮波形サンプルが1アドレスにつきn(nは2以上の整数)サンプルずつ記憶されており、前記読出制御手段は、所定周期毎に、前記波形サンプル記憶手段を1回アクセスするかまたは全くアクセスしないように動作するものであり、前記第1の一時記憶手段には少なくともn個の伸長波形サンプルが記憶され、前記第2の記憶手段にはループスタート位置を含む少なくともn個の伸長波形サンプルが記憶されるようにしてもよい。
さらに、上記圧縮波形サンプルを用いたループ再生装置において、前記位相情報発生手段で発生する位相情報は整数部と小数部とから成り、前記出力手段は、前記位相情報の整数部に基づき少なくとも2つのサンプルを選択するとともに、前記位相情報の小数部に基づき前記少なくとも2つのサンプルを用いて補間演算することにより、前記位相情報に応じた波形サンプルを生成するようにしてもよい。
さらにまた、上記圧縮波形サンプルを用いたループ再生装置において、前記所定周期時間を再生チャンネル数で分割したチャンネル時間に対応して時分割動作を行うことにより、複数チャンネルの楽音を再生するようにしてもよい。
さらにまた、上記圧縮波形サンプルを用いたループ再生装置において、前記圧縮波形サンプルが差分符号化あるいは適応差分符号化されていてもよい。
【0010】
このような本発明によれば、最初にループスタート位置の圧縮波形サンプルを読み出した時にデコードされた伸長波形サンプルを、以降にループバックした時の予測値として一時記憶するようにしたので、ループバック時にループスタートの位置に戻されても、一時記憶手段に記憶されている伸長波形サンプルを予測値としてデコードすることができる。従って、1波形サンプル当たりのビット数を削減した圧縮波形サンプルを記憶した波形サンプル記憶手段を備えていても、ループ再生による再生を可能とすることができる。
また、ピッチ非同期タイプとして所望のピッチ情報を所定周期毎に累算することにより、ループスタート位置を経由してループエンド位置まで順次増加する位相情報を発生するようにすると、時分割処理を容易に行えるようになり、低コストで複数の楽音を再生することが可能となる。
【0011】
【発明の実施の形態】
本発明の圧縮波形サンプルを用いたループ再生装置を説明する前に、圧縮符号化の一種であるADPCMの一般的なエンコーダとデコーダについて図1および図2を参照しながら簡単に説明する。
図1はADPCMエンコーダの一般的な構成を示すブロック回路図である。図1において、1サンプル当たり16ビットでPCM化されたn番目のPCMデータS(n)は減算器101に入力され、予測信号S’(n−1)との差分が演算される。減算器101から出力される差分データd(n)は、符号化部102において量子化幅演算部103から出力された量子化幅Δ(n−1)で量子化されて4ビットに圧縮符号化される。
【0012】
圧縮符号化された4ビットからなるADPCMデータD(n)はエンコーダから出力されると共に、量子化幅演算部103および予測部105に供給される。量子化幅演算部103においては、前回に量子化幅演算部103において演算されて生成された量子化幅Δ(n−1)信号と、ADPCMデータD(n)の内のサインビットを除くデータのデータ値に対応する関数との乗算が行われて新たな量子化幅Δ(n)信号が生成される。すなわち、ADPCMデータD(n)をL4(n),L3(n),L2(n),L1(n)として表すと、L4(n)がサインビットであることから量子化幅演算部103では次の演算が行われる。
Δ(n)=f{L3(n),L2(n),L1(n)}*Δ(n−1) (1)
量子化幅演算部103で生成された量子化幅Δ(n)信号は遅延回路104により1サンプリングタイミング遅延されて、次の入力サンプルS(n+1)を圧縮符号化する際の量子化幅Δ(n)として符号化部102に供給される。
【0013】
また、予測部105では、ADPCMデータD(n)と前回量子化幅演算部103で生成された量子化幅Δ(n−1)信号と前回に予測部105において演算されて生成された予測信号S’(n−1)とが演算されて、新たな予測信号S’(n)が生成される。予測信号S’(n)を生成するための演算式を次に示す。
予測部105で生成された予測信号S’(n)は遅延回路106により1サンプリングタイミング遅延されて、次の入力サンプルS(n+1)を圧縮符号化する際の予測信号として減算器101に供給される。
このようにエンコードされることにより、16ビットのPCMサンプルが圧縮されて4ビットのADPCMサンプルとなる。
【0014】
図2はADPCMデコーダの一般的な構成を示すブロック回路図である。図2において、1サンプル当たり4ビットとなるようADPCM化されたn番目のADPCMサンプルD(n)は復号部201に入力され、量子化幅Δ(n−1)信号と予測信号S’(n−1)と演算されて元の16ビットのPCMサンプルに戻るよう伸長される。伸長された16ビットのPCMサンプルS’(n)は遅延回路202により1サンプリングタイミング遅延されて、次のADPCMサンプルD(n+1)を伸長する際の予測信号として復号部201に供給される。
【0015】
また、入力されたn番目のADPCMサンプルD(n)は量子化幅演算部203に供給され、前回に量子化幅演算部203において演算されて生成された量子化幅Δ(n−1)信号と、ADPCMデータD(n)の内のサインビットを除くデータのデータ値に対応する関数との乗算が行われて新たな量子化幅Δ(n)信号が生成される。すなわち、量子化幅演算部203においても上記(1)式の演算が行われる。量子化幅演算部203で生成された量子化幅Δ(n)信号は遅延回路204により1サンプリングタイミング遅延されて、次のADPCMサンプルD(n+1)を伸長する際の量子化幅Δ(n)信号として復号部201に供給される。
このようにデコードされることにより、4ビットのADPCMサンプルが伸長されて16ビットのPCMサンプルにデコードされる。なお、ADPCMデコーダにおいては、上記説明したように隣接する直前のデコード後のサンプルを予測値としてデコードする必要があるため、ADPCMサンプルを順次に逐一デコードしなければ元の正しいPCMサンプルを得ることができない。
【0016】
本発明の圧縮波形サンプルを用いたループ再生装置に備えられるADPCMデコーダの原理的な構成は前記図2に示すデコーダに示すとおりであり、ADPCMデコーダを備える本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態の全体の構成を回路ブロック図で図3(a)に示す。
図3(a)における各部の詳細構成は後述するが、図3(a)において、1は位相情報発生部(Phase Generator あるいは Pitch Generator:PG)であり、オクターブ情報(OCT)によりシフトされた周波数情報(FN)を一定のサンプリング周期fs毎に累算し、累算値の整数部INTと、その小数部データFRAを出力している。ただし、図3に示す本発明の圧縮波形サンプルを用いたループ再生装置は、64チャンネル分の同時発音が可能とされているので、正確にはサンプリング周波数fsの64倍の64fsの周期(1/64fs)毎にチャンネル毎の累算が実行される。また、累算値は新たなキーオン信号KONPが発生した際に、発音割当されたチャンネルの累算値はリセットされる。
【0017】
2はアドレスポインタ(ADP)であり、RAM(Random Access Memory)6をアクセスするメモリアドレス(MA)と、RAM6をアクセスするタイミングを示すメモリアクセスタイミング(MAT)を発生して、メモリコントローラ5を制御している。なお、RAM6に記憶されるADPCM楽音波形サンプルは、打楽器音のような比較的短い時間の音の場合は、最初から最後までのADPCM楽音波形サンプルを記憶できるが、ブラスやストリングス等の持続音の場合は、割り当てられるメモリ容量に限りがあるため最初から最後までのADPCM楽音波形サンプルの全てを記憶することはできない。そこで、RAM6に記憶されているADPCM楽音波形サンプルの一部を繰り返し読み出して再生するループ再生が用いられている。
【0018】
RAM6に記憶されている各楽器音の最初のADPCM楽音波形サンプルが記憶されているメモリ空間のアドレスがスタートアドレスSAであり、ループ再生を行う際のループの最初のADPCM楽音波形サンプルが記憶されているメモリ空間のアドレスがループスタートアドレス(LSA)であり、また、ループの最後のADPCM楽音波形サンプルが記憶されているメモリ空間のアドレスがループエンドアドレス(LEA)である。ADP2はこれらのアドレスに基づいてアクセスすべきメモリアドレスMA及びメモリアクセスタイミングMATを生成している。なお、スタートアドレスSAは絶対値で表されたメモリアドレスとされ、ループスタートアドレスLSAとループエンドアドレスLEAは、スタートアドレスSAからの相対値アドレスとされている。なお、RAM6に1度アクセスすると16ビット読み出すことができ、1ADPCM楽音波形サンプルは、例えば4ビットとされているので、ADPCM楽音波形サンプルを4サンプル同時に読み出すことができる。すなわち、RAM6における1メモリアドレスに4サンプルのADPCM楽音波形サンプルが対応していることになる。
【0019】
CPU(Central Processing Unit)3は、本発明のループ再生装置を制御する上位装置の役割を担うものであり、発音指示に連動して各部にパラメータをセットすると共に、周辺装置4に含まれているCD−ROMからADPCM楽音波形サンプルをメモリコントローラ5を介して読み出し、RAM6に転送している。ADPCMデコーダ7は、読み出されたADPCM楽音波形サンプルを元の16ビットのPCM楽音波形サンプルに伸長するよう順次デコードする。そして、位相情報の小数部データFRAに対応する補間された楽音波形サンプルを得るために必要な隣接する2つのPCM楽音波形サンプルS0,S1が選択されてADPCMデコーダ7から出力される。隣接するPCM楽音波形サンプルS0,S1は、ADP2において生成された2種類の選択制御信号DS0〜3とSDEC1〜3,5〜7により選択されてADPCMデコーダ7から出力される。ADPCMデコーダ7から出力される2つのPCM楽音波形サンプルS0,S1は補間器(Interpolator)8に供給されて小数部データFRAに対応した補間サンプルが生成され、楽音波形サンプルSとしてアキュムレータACC9に供給される。
【0020】
アキュムレータACC9では、図3(b)に示すように例えば1/64fsの周期ごとに供給されるチャンネルCH0〜CH63の64チャンネル分の楽音波形サンプルが累算されてサンプリング周期fsごとに図示しないDAC(デジタル−アナログ変換器)へ出力される。DACでアナログ信号に変換された楽音波形信号はサウンドシステムから楽音信号として放音されるようになる。
なお、図3(a)に示す構成においてはCD−ROMドライブを含む周辺装置4が備えられており、イニシャル時においてCD−ROMからRAM6に記憶すべきADPCM楽音波形サンプルが読み出されて、RAM6に記憶される。また、後述するロングストリーム再生時の場合には、分割されたロングストリームデータが順次CD−ROMから読み出されてRAM6の所定記憶エリアに記憶される。
【0021】
ここで、RAM6に記憶されるADPCM楽音波形サンプルについて図4を参照しながら説明する。図4(a)は楽音波形を示しており、波形中のS(0),S(1),・・・S(A)は、楽音波形をサンプルしてそれぞれ16ビットに符号化されたPCM楽音波形サンプルを示している。ただし、カッコ内の数値は16進で示されている。このPCM楽音波形サンプルS(0),S(1),・・・S(A)を、図1に示すようなADPCMエンコーダにより4ビットのADPCM楽音波形サンプルD(0),D(1),・・・D(A)に圧縮符号化されてCD−ROMに記録され、CD−ROMから読み出されてRAM6に記憶される。ここでは、ADPCM楽音波形サンプルD(0),D(1),・・・D(A)をメモリアドレス100番地からRAM6に書き込むものとする。
【0022】
この場合、1メモリアドレスに対応するビット数は16ビットとされていることから、メモリアドレス100番地には、図4(b)に示すようにADPCM楽音波形サンプルD(0),D(1),D(2),D(3)の4サンプルが書き込まれる。また、次のメモリアドレス101番地には続くADPCM楽音波形サンプルD(4),D(5),D(6),D(7)の4サンプルが書き込まれ、次のメモリアドレス102番地には残るADPCM楽音波形サンプルD(8),D(9),D(A)の3サンプルが書き込まれる。
従って、図4(a)に示すPCM楽音波形サンプルS(0),S(1),・・・S(A)のスタートアドレスSAは、100番地となる。また、ループ再生する場合にはループスタートのサンプル値とループエンドのサンプル値とをほぼ等しくするのが好適なことから、例えば、ループスタートのサンプルはS(5)とされ、ループエンドのサンプルはS(A)とされる。ループスタートアドレスLSAはスタートアドレスSAからの相対値で5番地、ループエンドアドレスLEAは同様にA番地となる。なお、このアドレス番地も16進で表されている。
【0023】
次に、図5(a)にPG1の詳細構成を示す。図5(a)に示すように、整数部と小数部で表された周波数情報(FN)はシフタ(Shift)11に入力され、シフタ11にシフト信号として入力されたオクターブ情報(OCT)によりシフトされる。周知のように1ビットMSB側へシフトする毎に、FNは2倍の数値となる。シフタ11によりOCTに対応してシフトされたFNは、第1累算器(ACC1)12および第2累算器(ACC2)13に供給され、チャンネル毎のFNを一定のサンプリング周期(1/64fs)毎に累算する。累算された整数部はデータINTとして、その小数部はデータFRAとして出力されている。なお、サンプリング周波数はfsであるが、本発明の圧縮波形サンプルを用いたループ再生装置は64チャンネル分の同時発音を可能とするように、各部は時分割動作周波数64fsの周期で時分割動作されている。すなわち、PG1では図5(b)に示すように1サンプリング周期(1/fs)が64分割されて1/64fs周期毎にCH0,CH1,・・・CH63のFNの累算が実行されている。
【0024】
また、新たなキーオン信号KONPが発生した際に、ACC1およびACC2にキーオン信号KONPが供給されると、発音割当されたチャンネルの累算値がリセットされる。
図5(c)にはループ再生する際の累算値の変化態様がランプ波形で示されている。ただし、横軸は経過時間、縦軸はACC1およびACC2から出力される累算値である。すなわち、図5(c)に示すようにキーオン信号KONPが発生したタイミングにおいて、対応するチャンネルの累算値はリセットされて「0」からスタートしシフタ11から出力されるキーオンされた音のピッチに対応するFNが1/64fs周期毎に累算されていくようになる。これにより累算値は右肩上がりにリニアに上昇していく。そして、累算値がループエンドアドレスLEAを越えると、このことが検出されて累算値はループスタートアドレスLSAに戻されるようになる。この動作を実行するために、累算値がループエンドアドレスLEAを越えたタイミングを示すリターンタイミングRTNTと、リターン値RTNPがADP2からACC1およびACC2に供給されている。なお、リターン値RTNPはループスタートアドレスLSAに越えた値Aを加算した値とされ、リターンタイミングRTNTが発生した際には、累算値はLSA+Aの値に再セットされる。ループ再生時には、このような動作が繰り返し実行される。
また、ACC2から出力される整数部データINTは、CPU3がモニタしており、後述するロングストリームを再生する際に周辺装置4に装着されたCD−ROMから分割されたロングストリームデータを順次読み出すタイミングを測っている。
【0025】
次に、図6にアドレスポインタ(ADP)2の詳細構成を示す。ADP2において、供給された累算値の整数部データINTは第1加算器(AD1)において「+1」が加算され、データINT+1とされる。これは、データINTで示されるサンプルと、データINT+1で示されるサンプルとを小数部データFRAで補間してFNの累算値に対応するサンプル値を得るためである。データINT+1は第1セレクタ(SEL1)および第2加算器(AD2)に供給される。AD2ではループエンドアドレスLEAからデータINT+1が差し引かれており、その出力のMSBのレベルで、データINT+1がループエンドアドレスLEAを越えたことが検出される。すなわち、データINT+1がループエンドアドレスLEAを越えると、サインビットであるMSBがHレベルとなるので、この信号をリターンタイミングRTNTとしてPG1に供給する。また、ループエンドアドレスLEAからデータINT+1が差し引かれた値は第3加算器(AD3)においてループスタートアドレスLSAが加算されるので、AD3の出力をリターン値RTNPとしてPG1に供給する。
【0026】
AD2のMSB出力はSEL1の入力Bを選択する選択信号SBとされると共に、第1インバータ(INV1)で反転されて入力Aを選択する選択信号SAとされる。これにより、SEL1においてはデータINT+1がループエンドアドレスLEAを越えるまでは、入力Aが選択されてAD1から出力されるデータINT+1が出力され、越えるとAD3が出力するループエンドアドレスLEAからデータINT+1が差し引かれた値にループスタートアドレスLSAが加算された値が出力される。SEL1の出力は第1シフタ(SH1)で2ビットLSB側へシフトされて1/4倍されると共に、LSB側の2ビットが第1デコーダ(DEC1)に入力される。SH1において1/4とされるのは、1メモリアドレス当たり4つのADPCM楽音波形サンプルがRAM6に記憶されているからである。そして、SH1の出力にスタートアドレスSAが第4加算器(AD4)で加算されて、RAM6をアクセスする際のメモリアドレスMAが生成される。
【0027】
また、SEL1のLSB側の2ビットはDEC1において、デコードされて第1選択制御情報DS0〜DS3が発生される。この場合、2ビットが「00」の場合にDS3が発生され、2ビットが「01」の場合にDS0が発生され、2ビットが「10」の場合にDS1が発生され、2ビットが「11」の場合にDS2が発生される。第1選択制御情報DS0〜DS3の持つ意味については後述するが、RAM6を1度アクセスすることにより読み出されて伸長されたADPCMデコード後の4つのPCM楽音波形サンプルの内のいずれが、データINT+1に対応するPCM楽音波形サンプルなのかを示す情報であり、第1選択制御情報DS0〜DS3を用いてデータINT+1に対応するPCM楽音波形サンプルデータS1と、データINTに対応するPCM楽音波形サンプルS0とを選択して、補間器8に送出している。
【0028】
また、SEL1の出力は第5加算器(AD5)において「+1」だけ減算され、次いで第2シフタ(SH2)において1/4とされる。従って、SH2の出力はデータINTに対応するメモリアドレスとなる。SH1の出力のLSBとSH2の出力のLSBとは、第1エクスクルーシブオアゲート(EX−OR1)に印加され、両LSBが一致しているか不一致かが検出される。一致している場合にはEX−OR1からはLレベルが出力され、従って第1アンドゲート(AND1)出力はLレベルを維持し、不一致の場合はEX−OR1の出力がHレベルとなりAND1の一方にHレベルが印加されると共に、AND1の他方は通常Hレベルとされている(後述するSDEC5が発生される場合のみLレベルとされる)ので、AND1からHレベルのメモリアクセスタイミングMATが出力されるようになる。すなわち、EX−OR1の出力がHレベルとなるのは、データINT+1に対応するメモリアドレスがデータINTに対応するメモリアドレスより1だけインクリメントされた場合であり、この場合にメモリアクセスタイミングMATが出力されるようになる。なお、図3に示す構成の仕様では2オクターブアップまでのピッチシフトとされているので、データINT+1に対応するメモリアドレスがデータINTに対応するメモリアドレスより2以上インクリメントされることはなく、このためLSBのみ比較している。
【0029】
さらに、SH2の出力のLSBは時分割動作サンプリング周波数64fsにおける64周期分遅延する第1ディレイ(DL1)において64周期分遅延されると共に、第2エクスクルーシブオアゲート(EX−OR2)の一方に印加される。EX−OR2の他方にはDL1の出力が印加されており、EX−OR2では同チャンネルにおいてデータINTに対応する今回のメモリアドレスが前回のメモリアドレスよりインクリメントされたか否かを検出している。インクリメントされた場合には、EX−OR2の出力がHレベルとなるため、AND1からHレベルのメモリアクセスタイミングMATが出力されるようになる。このように、必要とするADPCM楽音波形サンプルに対応するメモリアドレスがインクリメントされた時に限り、AND1からHレベルのメモリアクセスタイミングMATが出力されるので、インクリメントされない場合はRAM6にアクセスせず、CPU3の負担を軽くすることができる。なお、インクリメントされない場合に必要なADPCM楽音波形サンプルは、今回までに既に読み出されてADPCMデコードされ、ADPCMデコーダ7に備えられている直前ブロックRAMに格納されている。
【0030】
EX−OR1の出力およびEX−OR2の出力は、第2デコーダ(DE2)に入力されてデコードされ、第2選択制御情報の内のSDEC1,SDEC2,SDEC3が発生されている。この場合、両出力が「00」の場合にSDEC1が発生され、EX−OR2の出力がHレベルの「01」の場合にSDEC3が発生され、EX−OR1の出力がHレベルの「10」の場合にSDEC2が発生される。なお、第1ゲートアレイ(GA1)は、通常はリターンタイミングRTNTが発生された場合だけ閉じられ、この際には第2選択制御情報SDEC1〜SDEC3の発生を抑制している。このように、第2選択制御情報SDEC1〜SDEC3はループをリターンする以外のタイミングで必要となる情報である。
【0031】
ADP2に入力されたループスタートアドレスLSAは、第3シフタ(SH3)において1/4とされる。従って、SH3の出力はアドレスLSAに対応するサンプルのメモリアドレスとなる。SH3の出力のLSBとSH2の出力のLSBとは、第3エクスクルーシブオアゲート(EX−OR3)に印加され、両LSBが不一致の場合にHレベルが出力される。なお、第2ゲートアレイ(GA2)がリターンタイミングRTNTが発生されたタイミングだけ開くこと、および、第3ゲートアレイ(GA3)は通常は開いていることから、リターンタイミングRTNTが発生された場合だけ、EX−OR3の出力は有効となる。このことから、ループのリターン時にSH2から出力されるデータINTに対応するメモリアドレスが、ループスタートアドレスLSAに対応するサンプルのメモリアドレスを越えた際に、EX−OR3からHレベルが出力されることになる。
【0032】
そして、EX−OR1の出力およびEX−OR3の出力は、第3デコーダ(DEC3)に入力されてデコードされ、第2選択制御情報の内のSDEC5,SDEC6,SDEC7が発生されている。この場合、両出力が「00」の場合にSDEC5が発生され、EX−OR3の出力がHレベルの「01」の場合にSDEC7が発生され、EX−OR1の出力がHレベルの「10」の場合にSDEC6が発生される。なお、GA2はリターンタイミングRTNTが発生されたタイミングだけ開くこと、および、GA3は通常は開いていることから、リターンタイミングRTNTでのみ第2選択制御情報SDEC5〜SDEC7が発生される。このように、第2選択制御情報SDEC5〜SDEC7はループをリターンするタイミングでのみ必要となる情報である。
【0033】
さらにまた、SH1の出力とSH3の出力とは第4ゲートアレイ(GA4)と第2アンドゲート(AND2)により、全ビットの一致が検出される。すなわち、ループスタートアドレスLSAに対応するサンプルのメモリアドレスに、データINT+1に対応するサンプルのメモリアドレスが一致した際に、Hレベルが出力される。このHレベルの信号は、リターンタイミングRTNTが発生されている場合を除いて開いている第3アンドゲート(AND3)からリターンスタートアドレス検出信号(LSADTCT)として発生される。LSADTCT信号は、ループスタートアドレスLSAに対応するサンプルのメモリアドレスにより読み出された4つのADPCM楽音波形サンプルをデコードして一時記憶する際に利用される。
【0034】
次に、第2選択制御情報SDEC1〜SDEC3,SDEC5〜SDEC7の持つ意味を図7を参照しながら説明する。
第2選択制御情報のSDEC1が発生される場合は、図7(a)に示すようにデータINT+1に対応するサンプルが直前ブロックRAMに記憶されている場合である。この直前ブロックRAMはADPCMデコーダ7に備えられており、前回RAM6にアクセスされた際に読み出された4つのADPCM楽音波形サンプルがADPCMデコーダ7でデコードされて記憶されている。以下、4つのADPCM楽音波形サンプルおよびこれをデコードした4つのPCM楽音波形サンプルを1ブロックという。すなわち、直前ブロックRAMには前回までにデコードされた内の最新の4つのPCM楽音波形サンプル(1サンプルが16ビットに伸長されている)が、それぞれサブブロックSB1〜SB4に記憶されている。この場合には、データINT+1に対応するサンプルが既に直前ブロックRAMに記憶されているので、RAM6にアクセスする必要はない。従って、SDEC1が発生される場合には、メモリアクセスタイミングMAT信号は発生されない。また、図示する例ではデータINT+1に対応するサンプルS1がSB3に記憶されており、隣接するデータINTに対応するサンプルS0がSB2に記憶されている。
【0035】
第2選択制御情報のSDEC2が発生される場合は、図7(b)に示すようにデータINT+1に対応するサンプルが今回デコードされるブロックの先頭のサブブロックSB1のサンプルとなる場合である。従って、今回デコードブロックのSB1のサンプルがS1とされ、隣接する直前ブロックRAMのSB4のサンプルがS0とされる。この場合には、データINT+1に対応するサンプルが含まれる今回デコードブロックをRAM6にアクセスしデコードして得る必要があるので、SDEC2が発生される場合には、メモリアクセスタイミングMAT信号が発生される。
第2選択制御情報のSDEC3が発生される場合は、図7(c)に示すようにデータINT+1に対応するサンプルが今回デコードされるブロック内のSB2より後のサブブロックのサンプルとなる場合である。図示する例では、今回デコードブロックのSB2のサンプルがS1とされ、隣接する今回デコードブロックのSB1のサンプルがS0とされる。この場合には、データINTおよびデータINT+1に対応するサンプルを含む今回デコードブロックをRAM6にアクセスしデコードして得る必要があるので、SDEC3が発生される場合には、メモリアクセスタイミングMAT信号が発生される。
【0036】
第2選択制御情報のSDEC5が発生される場合は、前記したようにループがリターンされる場合であり、図7(d)に示すようにデータINT+1に対応するサンプルがループエンドアドレスLEAに対応するサンプルが含まれるループエンドブロックのSB2以上のサブブロックのサンプルとなると共に、リターン値RTNPに対応するサンプルがループスタートブロックRAM内のサンプルとされている場合である。このループスタートブロックRAMは、ADPCMデコーダ7に備えられており、LSADTCT信号が発生した際に読み出されてデコードされた4つのPCM楽音波形サンプルが一時記憶されるメモリである。このループスタートブロックRAM内にはループスタートアドレスLSAに対応するサンプルが少なくとも記憶されている。図示する例では、ループエンドアドレスLEAに対応するサンプルがループエンドブロックのSB1とされ、データINT+1に対応するサンプルがループエンドブロックのSB2とされると共に、ループスタートアドレスLSAに対応するサンプルがループスタートブロックRAMのSB1とされ、リターンされた際のデータINT+1に対応するサンプルがループスタートブロックRAMのSB2とされている。この場合には、データINTおよびデータINT+1に対応するサンプルをRAM6にアクセスし、デコードして得る必要がないので、SDEC5が発生される場合には、メモリアクセスタイミングMAT信号は発生されない。
【0037】
第2選択制御情報のSDEC6が発生される場合は、ループがリターンされる場合であって、図7(e)に示すようにデータINT+1に対応するサンプルが、ループエンドアドレスLEAに対応するサンプルが含まれるループエンドブロックを越えたサンプルとなると共に、リターン値RTNPに対応するサンプルがループスタートブロックRAMに記憶されているブロックの次の今回デコードブロック内のサンプルとされている場合である。図示する例では、ループエンドアドレスLEAに対応するサンプルがループエンドブロックのSB1とされ、データINT+1に対応するサンプルがループエンドブロックを越えたサンプルとされると共に、ループスタートアドレスLSAに対応するサンプルがループスタートブロックRAMのSB1とされ、リターンされた際のデータINT+1に対応するサンプルがループスタートブロックRAMを越え、今回デコードブロックのサブブロックSB1のサンプルとされている。この場合には、データINT+1に対応するサンプルが含まれる今回デコードデータブロックをRAM6にアクセスし、デコードすることにより得る必要があるので、SDEC6が発生される場合には、メモリアクセスタイミングMAT信号が発生される。
【0038】
第2選択制御情報のSDEC7が発生される場合は、ループがリターンされる場合であって、図7(f)に示すようにデータINT+1に対応するサンプルおよびデータINTに対応するサンプルが、ループエンドアドレスLEAに対応するサンプルが含まれるループエンドブロックを越えたサンプルとなると共に、リターン値RTNPに対応するサンプルがループスタートブロックRAMに記憶されているブロックの次の今回デコードブロック内のサンプルとされている場合である。図示する例では、ループエンドアドレスLEAに対応するサンプルがループエンドブロックのSB1とされ、データINT+1,データINTに対応するサンプルがループエンドブロックを越えたサンプルとされると共に、ループスタートアドレスLSAに対応するサンプルがループスタートブロックRAMのSB1とされ、リターンされた際のデータINT+1,データINTに対応するサンプルがループスタートブロックRAMを越え、今回デコードブロックのサブブロックSB1,SB2のサンプルとされている。この場合には、データINT+1およびデータINTに対応するサンプルが含まれる今回デコードデータブロックをRAM6にアクセスし、デコードすることにより得る必要があるので、SDEC7が発生される場合には、メモリアクセスタイミングMAT信号が発生される。
【0039】
次に、第1選択制御情報DS0〜DS3の持つ意味を図8を参照しながら説明する。第1選択制御情報DS0〜DS3は、データINT+1に対応するサンプルが直前ブロックRAM(あるいはループスタートブロックRAM)および今回デコードブロックのどのサブブロックにあるかを示す情報である。第1選択制御情報のDS0が発生する場合は、データINT+1に対応するサンプルが直前ブロックRAM(あるいはループスタートブロックRAM)のサブブロックSB2のサンプルとされる場合である。第1選択制御情報のDS0は、第2選択制御情報のSDEC1,3,5,7のいずれかと共に発生する。
また、第1選択制御情報のDS1が発生する場合は、データINT+1に対応するサンプルが直前ブロックRAM(あるいはループスタートブロックRAM)のサブブロックSB3のサンプルとされる場合である。第1選択制御情報のDS1も、第2選択制御情報のSDEC1,3,5,7のいずれかと共に発生する。
【0040】
さらに、第1選択制御情報のDS2が発生する場合は、データINT+1に対応するサンプルが直前ブロックRAM(あるいはループスタートブロックRAM)のサブブロックSB4のサンプルとされる場合である。第1選択制御情報のDS2も、第2選択制御情報のSDEC1,3,5,7のいずれかと共に発生する。なお、第1選択制御情報のDS0〜2が発生する場合におけるデータINTに対応するサンプルは、同じブロックの隣接する直前のサブブロックのサンプルとされる。
さらにまた、第1選択制御情報のDS3が発生する場合は、データINT+1に対応するサンプルが今回デコードブロックのサブブロックSB1のサンプルとされる場合である。この場合は、データINTに対応するサンプルは直前ブロックRAM(あるいはループスタートブロックRAM)に含まれ、そのサブブロックSB4のサンプルとされる。第1選択制御情報のDS3は、第2選択制御情報のSDEC2,6のいずれかと共に発生する。
【0041】
次に、図10および図11に分割して示すADPCMデコーダ7の詳細構成を説明するが、説明する際に必要に応じて図9に示すデコード時における直前ブロックRAMとループスタートブロックRAMの制御態様を示す図、図12に示すタイミング図、図13に示す第2選択制御情報SDECと発生される選択信号との関係を示す図表、図14に示す第1選択制御情報DSおよび第2選択制御情報SDECと発生される選択信号との関係を示す図表を参照して説明するものとする。なお、図10および図11に示すADPCMデコーダ7は2つに分割して示されており、図中のラインに付されたイ〜ルはそれぞれ相互に同じラインを示すものとされている。
図10および図11に示すADPCMデコーダ7において、RAM6から同時に読み出された合計16ビットの4つのADPCM楽音波形サンプルは、第10セレクタ(SEL10)の4つの入力A,B,C,Dに1ADPCM楽音波形サンプル(4ビット)ずつ並列に入力される。このSEL10には、入力Aを選択する選択信号SAとして図12(h)に示すタイミング信号TIM01が印加され、入力Bを選択する選択信号SBとして図12(i)に示すタイミング信号TIM23が印加され、入力Cを選択する選択信号SCとして図12(j)に示すタイミング信号TIM45が印加され、入力Dを選択する選択信号SDとして図12(k)に示すタイミング信号TIM67が印加されている。
【0042】
タイミング信号TIM01〜TIM67は、図12(b)に示すように時分割処理用サンプリング周波数64fsの1周期である図12(c)に示す1チャンネルに割り当てられた周期(1/64fs)をさらに8分割(1/64fs*1/8)した図12(d)に示す周期の2周期分の周期を有し、図12(h)〜(k)に示すように相互に重ならないよう順次発生されている。このような、タイミング信号TIM01〜TIM67によりSEL10に並列に入力された4つのADPCM楽音波形サンプルは、入力Aから入力Dに向かって順次選択されて1ADPCM楽音波形サンプルずつ選択出力される。出力されたADPCM楽音波形サンプルD(n)は、ADPCMデコード部70に順次入力され、予測値である隣接する直前のデコード後のサンプルX(n−1)と量子化幅Δ(n−1)信号に基づいてデコードされる。デコードされることにより16ビットに伸長されたPCM楽音波形サンプルX(n)は、第10ラッチ回路(LA10)に第10オアゲート(OR10)を介して印加された図12(e)〜(g)に示すタイミング信号TIM1、TIM3,TIM5,TIM7のそれぞれのタイミングによりラッチされる。タイミング信号TIM1、TIM3,TIM5,TIM7は、タイミング信号TIM01〜TIM67の後半の半周期にそれぞれ該当しており、ADPCMデコード部70によるデコードが完了した後のそれぞれのタイミングでラッチするようにしている。LA10の出力は第12セレクタ(SEL12)の入力Aに入力される。
【0043】
また、SEL10で選択出力されたADPCM楽音波形サンプルD(n)は量子化幅演算部71にも入力され、第14セレクタ(SEL14)から選択出力された量子化幅Δ(n−1)信号と上記(1)式の演算が行われて、新たな量子化幅Δ(n)信号が生成されて出力される。生成された量子化幅Δ(n)信号は、第11ラッチ回路(LA11)に第16オアゲート(OR16)を介して印加されたタイミング信号TIM1、TIM3,TIM5,TIM7のそれぞれのタイミングによりラッチされる。タイミング信号TIM1、TIM3,TIM5,TIM7は、前記したようにタイミング信号TIM01〜TIM67の後半の半周期にそれぞれ該当しており、量子化幅演算部71による演算が完了した後のそれぞれのタイミングでラッチするようにしている。LA11の出力は第14セレクタ(SEL14)の入力Aに入力される。
【0044】
サンプルをADPCMデコードする動作をさらに説明すると、SEL12において入力Aは、第11ナンドゲート(NAND11)、第12ナンドゲート(NAND12)、第13ナンドゲート(NAND13)および第13インバータ(INV13)の作用により発生された選択信号SAで選択される。すなわち入力Aは、タイミング信号TIM01が発生されているタイミングを除いて選択されている。このSEL12から選択出力されるサンプルX(n−1)は予測値としてADPCMデコード部70に供給される。また、SEL14に印加されている選択信号SA,SB,SCは、SEL12と同じ選択信号SA,SB,SCとされているので、その入力Aは、タイミング信号TIM01が発生されているタイミングを除いて選択されている。このSEL14の選択出力は量子化幅Δ(n−1)信号としてADPCMデコード部70に供給される。
【0045】
ここで、SEL10に入力された4つのADPCM楽音波形サンプルをD(0),D(1),D(2),D(3)とすると、タイミング信号TIM23が発生した際には、ADPCMデコード部70にSEL10で選択出力された入力Bの2番目のADPCM楽音波形サンプルD(1)が入力される。同時に、LA10から出力されるADPCMデコード部70においてデコードされた1番目のADPCM楽音波形サンプルD(0)をデコードしたPCM楽音波形サンプルX(0)が予測値としてSEL12から選択出力されてADPCMデコード部70に供給される。さらに、LA11から出力される量子化幅演算部71において演算された量子化幅Δ(0)がSEL14から選択出力されてADPCMデコード部70に供給される。これによりADPCMデコード部70は、隣接する直前のデコード後のサンプル(0)と量子化幅Δ(0)信号を用いて、ADPCM楽音波形サンプルD(1)をデコードすることができる。タイミング信号TIM45,TIM67が発生した際も同様の動作が行われるので、4つのADPCM楽音波形サンプルD(0),D(1),D(2),D(3)は、順次に逐一ADPCMデコードされる。
なお、読み出された最初のサンプルであるADPCM楽音波形サンプルD(0)のデコード動作については後述する。
【0046】
ADPCMデコード部70においてデコードされたPCM楽音波形サンプルX(n)は、第11セレクタ(SEL11)の入力Aにも供給される。このSEL11の入力Bには第17セレクタ(SEL17)の選択出力が供給され、入力Aを選択する選択信号SAは第13オアゲート(OR13)および第14インバータ(INV14)の作用により第2選択制御情報のSDEC5およびSDEC6が発生しているタイミングを除いて発生され、入力Bを選択する選択信号SBはOR13の作用により第2選択制御情報のSDEC5およびSDEC6が発生しているタイミングで発生される。第2選択制御情報SDEC5,SDEC6はリターンタイミングRTNTが発生した際に発生されることから、リターンされないタイミングにおいてはSEL11からは入力Aに入力されたPCM楽音波形サンプルX(n)が選択出力される。
【0047】
SEL11の選択出力は、直前ブロックRAM(RAM10)とループスタートブロックRAM(RAM11)に並列に供給される。直前ブロックRAM10とループスタートブロックRAM11はそれぞれ4つのサブブロックSB1〜SB4に分割されており、それぞれのサブブロックSB1〜SB4には64チャンネル分のサンプルが記憶可能とされている。直前ブロックRAM10のサブブロックSB1のライトイネーブル(WE)信号は第10ゲートアレイ(GA10)の作用により、第2選択制御情報のSDEC3あるいはリターンタイミングRTNT信号が発生されている際のタイミングTIM1で発生される。また、サブブロックSB2のWE信号は、第2選択制御情報のSDEC3あるいはリターンタイミングRTNT信号が発生されている際のタイミングTIM3で発生され、サブブロックSB3のWE信号は、第2選択制御情報のSDEC3あるいはリターンタイミングRTNT信号が発生されている際のタイミングTIM5で発生され、サブブロックSB4のWE信号は、第2選択制御情報のSDEC3あるいはリターンタイミングRTNT信号が発生されている際のタイミングTIM7で発生される。
【0048】
ここで、SDEC3は図7(c)に示すようにデータINT+1に対応するサンプルが今回デコードされるブロック内のサブブロックSB2以降のサンプルとなる場合に発生され、SDEC3が発生されるとこの場合のようにRAM6に対する新たなアクセスを行いADPCM楽音波形サンプルが1ブロック分読み出される。この1ブロックのADPCM楽音波形サンプルは前記したように順次デコードされて、上記のWE信号の発生タイミングで直前ブロックRAM10に順次書き込まれるようになる。なお、直前ブロックRAM10にはチャンネル選択信号SH(0〜63)も印加されており、チャンネル毎に直前ブロックRAM10に書き込まれる。このように、SDEC3の発生とともにRAM6にアクセスした場合には、読み出されてデコードされたPCM楽音波形サンプルにより、直前ブロックRAM10の内容が更新されるようになる。
【0049】
また、リターンタイミングRTNTが発生される場合はSDEC5〜SDEC7のいずれかが発生されることになり、SDEC5が発生される場合は、図7(d)に示すようにデータINT+1に対応するサンプルがループスタートブロックRAM11のサブブロックSB2以上のサンプルとなる場合であるので、SDEC5が発生された場合は、ループスタートブロックRAM11の内容を直前ブロックRAM10に転送して更新する必要がある。さらに、SDEC6が発生される場合は、図7(e)に示すようにデータINTに対応するサンプルがループスタートブロックRAM11のサブブロックSB4のサンプルとなる場合であるので、SDEC6が発生された場合も、ループスタートブロックRAM11の内容を直前ブロックRAM10に転送して更新する必要がある。そこで、SEL11の入力Bに供給されているループスタートブロックRAM11のサンプルを、SEL17を介してSEL11から選択出力して直前ブロックRAM10に供給している。これにより、ループスタートブロックRAM11の内容で直前ブロックRAM10の内容が更新されるようになる。
【0050】
また、SEL11の選択出力が供給されるループスタートブロックRAM11のサブブロックSB1のライトイネーブル(WE)信号は第11ゲートアレイ(GA11)の作用により、ループスタートアドレス検出信号LSADTCTが発生されている際のタイミングTIM1で発生される。また、サブブロックSB2のWE信号はループスタートアドレス検出信号LSADTCTが発生されている際のタイミングTIM3で発生され、サブブロックSB3のWE信号はループスタートアドレス検出信号LSADTCTが発生されている際のタイミングTIM5で発生され、サブブロックSB4のWE信号はループスタートアドレス検出信号LSADTCTが発生されている際のタイミングTIM7で発生される。
【0051】
ここで、LSADTCTは前記したようにループスタートアドレスLSAに対応するサンプルのメモリアドレスに、データINT+1に対応するサンプルのメモリアドレスが一致した際に発生される。したがって、LSADTCT発生中にRAM6に対する新たなアクセスが行われ読み出されて順次デコードされた1ブロックのPCM楽音波形サンプルには、ループスタートアドレスLSAに対応するサンプルが含まれていることになる。そこで、ループスタートブロックRAM11のWE信号を上記の発生タイミングで発生することにより、ループスタートブロックRAM11にループスタートアドレスLSAに対応するサンプルを含む1ブロックのサンプルが書き込まれるようになる。なお、ループスタートブロックRAM11にはチャンネル選択信号SH(0〜63)も印加されており、チャンネル毎にループスタートブロックRAM11に書き込まれる。このように、LSADTCTが発生された場合には、読み出されてデコードされたPCM楽音波形サンプルがループスタートブロックRAM11に書き込まれるようになる。
【0052】
直前ブロックRAM10のサブブロックSB1〜SB4から出力される4つのサンプルは、それぞれ第16セレクタ(SEL16)の入力Aから入力Dに供給され、ループスタートブロックRAM11のサブブロックSB1〜SB4から出力される4つのサンプルは、それぞれ第17セレクタ(SEL17)の入力Aから入力Dに供給される。さらに、直前ブロックRAM10のサブブロックSB4から出力されるサンプルは、SEL12の入力Bに供給され、ループスタートブロックRAM11サブブロックSB4から出力されるサンプルは、SEL12の入力Cに供給される。SEL12の入力Bは、SDEC2あるいはSDEC3のいずれかが発生している際に、タイミング信号TIM01が発生したときに発生される選択信号SBにより選択される。すなわち、図7(b)(c)に示すように、SDEC2あるいはSDEC3が発生している場合には、RAM6にアクセスして読み出されたADPCM楽音波形サンプルをデコードする必要がある。この際のタイミングTIM01の期間において今回デコードブロックの先頭のサブブロックSB1に対応するサンプルのデコードが行われるが、デコード時には予測値としてそのサンプルに隣接する直前のデコード後のサンプルが必要である。この隣接する直前のサンプルは、直前ブロックRAM10のサブブロックSB4に記憶されているので、このサンプルをSEL12で選択し予測値のサンプルX(n−1)としてADPCMデコード部70に供給しているのである。
【0053】
また、SEL12の入力Cは、SDEC6あるいはSDEC7のいずれかが発生している際に、タイミング信号TIM01が発生したときに発生される選択信号SCにより選択される。すなわち、図7(e)(f)に示すように、SDEC6あるいはSDEC7が発生している場合には、リターン時にRAM6にアクセスして読み出されたADPCM楽音波形サンプルをデコードする場合である。この際のタイミングTIM01の期間において今回デコードブロックの先頭のサブブロックSB1に対応するサンプルのデコードが行われるが、デコード時には予測値としてそのサンプルに隣接する直前のデコード後のサンプルが必要である。この隣接する直前のサンプルは、ループスタートブロックRAM11のサブブロックSB4に記憶されているので、このサンプルをSEL12で選択し予測値のサンプルX(n−1)としてADPCMデコード部70に供給しているのである。
【0054】
直前ブロックRAM10およびループスタートブロックRAM11の出力が供給されているSEL16およびSEL17には、共通の選択信号SA,SB,SC,SDが印加されている。なお、入力Aを選択する選択信号SAはタイミング信号TIM67、入力Bを選択する選択信号SBはタイミング信号TIM45、入力Cを選択する選択信号SCはタイミング信号TIM23、入力Dを選択する選択信号SDはタイミング信号TIM01とされている。
すると、SEL16からはタイミング信号TIM01の発生タイミングにおいて直前ブロックRAM10のサブブロックSB1のサンプルが選択出力され、タイミング信号TIM23の発生タイミングにおいて直前ブロックRAM10のサブブロックSB2のサンプルが選択出力され、タイミング信号TIM45の発生タイミングにおいて直前ブロックRAM10のサブブロックSB3のサンプルが選択出力され、タイミング信号TIM67の発生タイミングにおいて直前ブロックRAM10のサブブロックSB4のサンプルが選択出力され、第15セレクタ(SEL15)の入力Bと第18セレクタ(SEL18)の入力Bに供給される。
【0055】
また、SEL17からはタイミング信号TIM01の発生タイミングにおいてループスタートブロックRAM11のサブブロックSB1のサンプルが選択出力され、タイミング信号TIM23の発生タイミングにおいてループスタートブロックRAM11のサブブロックSB2のサンプルが選択出力され、タイミング信号TIM45の発生タイミングにおいてループスタートブロックRAM11のサブブロックSB3のサンプルが選択出力され、タイミング信号TIM67の発生タイミングにおいてループスタートブロックRAM11のサブブロックSB4のサンプルが選択出力され、SEL15の入力CとSEL18の入力Cに供給される。SEL15の入力AにはADPCMデコード部70のデコード出力が直接供給され、SEL15の入力DにはSEL12の選択出力が供給されている。さらに、SEL18の入力Aおよび入力DにはADPCMデコード部70のデコード出力が直接供給されている。
【0056】
SEL15およびSEL18には、共通の選択信号SA,SB,SC,SDが印加されている。そして、この入力Aを選択する選択信号SAは第17オアゲート(OR17)の作用によりSDEC3あるいはSDEC7が発生された際に発生され、入力Bを選択する選択信号SBはSDEC1が発生された際に発生され、入力Cを選択する選択信号SCはSDEC5が発生された際に発生され、入力Dを選択する選択信号SDは第18オアゲート(OR18)の作用によりSDEC2あるいはSDEC6が発生された際に発生される。
ここで、SDEC1が発生される場合は、図9(a)に示すように前回SEL15から選択出力したサンプルS0(1)、および、前回SEL18から選択出力したサンプルS1(1)と、今回SEL15から選択出力させるサンプルS0(2)、および、今回SEL18から選択出力させるサンプルS1(2)とが、全て直前ブロックRAM10に記憶されている場合である。したがって、図13のSDEC1の欄に示すようにデータINT+1に対応するサンプルS1と、データINTに対応する隣接するサンプルS0として直前ブロックRAM10からのサンプルを選択出力するように、選択信号SBが発生されて直前ブロックRAM10からの出力が入力されているSEL15およびSEL18の入力Bが選択されるのである。
【0057】
また、SDEC2が発生される場合は、図9(b)に示すように前回選択出力したサンプルS0(1)および前回選択出力したサンプルS1(1)と、今回SEL15から選択出力させるサンプルS0(2)とが直前ブロックRAM10に記憶されており、今回SEL18から選択出力させるサンプルS1(2)が、今回デコードブロックのサブブロックSB1のサンプルとされている場合である。したがって、RAM6に対するアクセスが行われ図13のSDEC2の欄に示すようにデータINT+1に対応するサンプルS1を今回デコードブロックから選択出力するように、選択信号SDが発生されてADPCMデコード部70から出力される今回デコードブロックが入力されているSEL18の入力Dが選択される。さらに、データINTに対応する隣接するサンプルS0を直前ブロックRAM10のサブブロックSB4から読み出すように、選択信号SDが発生されて直前ブロックRAM10のサブブロックSB4からの出力がSEL12を介して入力されているSEL15の入力Dが選択されるのである。
【0058】
さらにまた、SDEC3が発生される場合は、図9(c)に示すように前回選択出力したサンプルS0(1)および前回選択出力したサンプルS1(1)とが直前ブロックRAM10に記憶されており、今回SEL15から選択出力させるサンプルS0(2)と今回SEL18から選択出力させるサンプルS1(2)とが、今回デコードブロックに含まれている場合である。したがって、RAM6に対するアクセスが行われ図13のSDEC3の欄に示すようにデータINT+1に対応するサンプルS1と、データINTに対応する隣接するサンプルS0を今回デコードブロックから選択出力するように、選択信号SAが発生されてADPCMデコード部70から出力される今回デコードブロックが入力されているSEL15およびSEL18の入力Aが選択されるのである。
【0059】
さらにまた、SDEC5が発生される場合は、リターン時であるリターンタイミングRTNT信号が発生されていると共に、図9(d)に示すように前回選択出力したサンプルS0(1)および前回選択出力したサンプルS1(1)とが直前ブロックRAM10に記憶されており、今回SEL15から選択出力させるサンプルS0(2)と今回SEL18から選択出力させるサンプルS1(2)とが、ループスタートブロックRAM11に記憶されている場合である。したがって、図13のSDEC5の欄に示すようにデータINT+1に対応するサンプルS1と、データINTに対応する隣接するサンプルS0をループスタートブロックRAM11から選択出力するように、選択信号SCが発生されてループスタートブロックRAM11からの出力がSEL17を介して入力されているSEL15およびSEL18の入力Cが選択されるのである。
【0060】
さらにまた、SDEC6が発生される場合は、リターンタイミングRTNT信号が発生されていると共に、図9(e)に示すように前回選択出力したサンプルS0(1)および前回選択出力したサンプルS1(1)とが直前ブロックRAM10に記憶されており、今回SEL15から選択出力させるサンプルS0(2)がループスタートブロックRAM11に記憶されていると共に、今回SEL18から選択出力させるサンプルS1(2)が今回デコードブロックのサブブロックSB1とされている場合である。したがって、RAM6に対するアクセスが行われ、図13のSDEC6の欄に示すようにデータINT+1に対応するサンプルS1を今回デコードブロックから選択出力するように、選択信号SDが発生されてADPCMデコード部70から出力される今回デコードブロックが入力されているSEL18の入力Dが選択される。さらに、データINTに対応する隣接するサンプルS0をループスタートブロックRAM11のサブブロックSB4から読み出すように、選択信号SDが発生されてループスタートブロックRAM11のサブブロックSB4からの出力がSEL12を介して入力されているSEL15の入力Dが選択されるのである。
【0061】
さらにまた、SDEC7が発生される場合は、リターンタイミングRTNT信号が発生されていると共に、図9(f)に示すように前回選択出力したサンプルS0(1)および前回選択出力したサンプルS1(1)とが直前ブロックRAM10に記憶されており、今回SEL15から選択出力させるサンプルS0(2)と今回SEL18から選択出力させるサンプルS1(2)とが、今回デコードブロックに含まれている場合である。したがって、RAM6に対するアクセスが行われ、図13のSDEC7の欄に示すようにデータINT+1に対応するサンプルS1と、データINTに対応する隣接するサンプルS0を今回デコードブロックから選択出力するように、選択信号SAが発生されてADPCMデコード部70から出力される今回デコードブロックが入力されているSEL15およびSEL18の入力Aが選択されるのである。
なお、SDEC5およびSDEC6が発生する場合は、ループスタートブロックRAM11の内容が直前ブロックRAM10に転送されてその内容の更新がおこなわれる。このため、ループスタートブロックRAM11の出力が供給されているSEL17の選択出力がSEL11の入力Bに供給され、SDEC5およびSDEC6が発生した際に、SEL11は入力Bを選択してループスタートブロックRAM11からのサンプルを直前ブロックRAM10に供給している。
【0062】
上記したようにSEL18からはデータINT+1に対応するサンプルS1が選択出力され、SEL15からはデータINTに対応する隣接するサンプルS0が選択出力されるが、タイミングによっては必要でないサンプルがSEL15,SEL18から出力される。そこで、SEL15の後段に第12ラッチ回路(LA12)を設けると共に、SEL18の後段に第14ラッチ(LA14)を設けて必要なサンプルだけを出力するようにしている。
LA12およびLA14の動作を第1選択制御情報DS0〜DS3および第2選択制御情報SDEC1〜SDEC3,SDEC5〜SDEC7の組み合わせで図13、図14および図15を主に参照しながら説明する。
【0063】
SDEC1とDS0が共に発生している場合は、SEL15およびSEL18からは入力Bに供給されている直前ブロックRAM10から出力される図15(c)に示す前回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC1〉に示しているように、第16インバータ(INV16)と第12ゲートアレイ(GA12)と第13ゲートアレイ(GA13)の作用により、LA12にはタイミング信号TIM1がラッチ信号として印加され、LA14には第14ゲートアレイ(GA14)の作用によりタイミング信号TIM3がラッチ信号として印加される。従って、LA12に前回デコードブロックの先頭サブブロックのサンプルS(−4)がラッチされ、LA14にサンプルS(−3)がラッチされる。すなわち、DS0が発生されているので、図8(a)に示されているように直前ブロックRAM10のサブブロックSB1のサンプルがサンプルS0とされ、隣接するサブブロックSB2のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは同期して出力されるようタイミングTIM7でラッチされる第13ラッチ(LA13)および第15ラッチ(LA15)を介して出力される。
【0064】
また、SDEC1とDS1が共に発生される場合は、SEL15およびSEL18からは同様に図15(c)に示す前回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC1〉に示しているようにGA13の作用により、LA12にはタイミング信号TIM3がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM5がラッチ信号として印加される。従って、LA12に前回デコードブロックのサンプルS(−3)がラッチされ、LA14にサンプルS(−2)がラッチされる。すなわち、DS1が発生されているので、図8(b)に示されているように直前ブロックRAM10のサブブロックSB2のサンプルがサンプルS0とされ、隣接するサブブロックSB3のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは、タイミングTIM7でLA13およびLA15から出力される。
【0065】
また、SDEC1とDS2が共に発生される場合は、SEL15およびSEL18からは同様に図15(c)に示す前回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC1〉に示しているようにGA13の作用により、LA12にはタイミング信号TIM5がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM7がラッチ信号として印加される。従って、LA12に前回デコードブロックのサンプルS(−2)がラッチされ、LA14にサンプルS(−1)がラッチされる。すなわち、DS2が発生されているので、図8(c)および図9(a)に示されているように直前ブロックRAM10のサブブロックSB3のサンプルがサンプルS0とされ、隣接するサブブロックSB4のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは、タイミングTIM7でLA13およびLA15から出力される。
【0066】
SDEC1とDS3が共に発生される場合はなく、DS3はSDEC2と共に発生される。この場合は、SEL15からは入力Dに供給されている図15(b)に示すSEL12から出力される1サンプル遅延された今回デコードブロックが図15(e)に示すタイミングで順次選択出力され、SEL18からは入力Dに供給されている図15(a)に示す今回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC2〉に示しているように、OR18とGA12とGA13の作用により、LA12にはタイミング信号TIM1がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM1がラッチ信号として印加される。従って、LA14に今回デコードブロックの先頭サブブロックのサンプルS(0)がラッチされ、LA12にサンプルS(0)に隣接する直前のサンプルS(*)がラッチされる。SDEC2はリターン時には発生しないので、S(*)は前回最終デコードサンプルとなる。すなわち、DS3が発生されているので、図8(d)および図9(b)に示されているように今回デコードブロックのサブブロックSB1のサンプルがサンプルS1とされ、直前デコードブロック(直前ブロックRAM10)のサブブロックSB4のサンプルがサンプルS0とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは同期して出力されるようタイミングTIM7でラッチされるLA13およびLA15を介して出力される。
【0067】
次に、SDEC3とDS0が共に発生された場合は、SEL15およびSEL18からは入力Aに供給されているADPCMデコード部70から出力される図15(a)に示す今回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC3〉に示しているように、INV16とGA12とGA13の作用により、LA12にはタイミング信号TIM1がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM3がラッチ信号として印加される。従って、LA12に今回デコードブロックの先頭サブブロックのサンプルS(0)がラッチされ、LA14に隣接するサンプルS(1)がラッチされる。すなわち、DS0が発生されているので、図8(a)および図9(c)に示されているように今回デコードブロックのサブブロックSB1のサンプルがサンプルS0とされ、隣接するサブブロックSB2のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは同期して出力されるようタイミングTIM7でラッチされるLA13およびLA15を介して出力される。
【0068】
また、SDEC3とDS1が共に発生される場合は、SEL15およびSEL18からは同様に図15(a)に示す今回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC3〉に示しているようにGA13の作用により、LA12にはタイミング信号TIM3がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM5がラッチ信号として印加される。従って、LA12に今回デコードブロックのサンプルS(1)がラッチされ、LA14にサンプルS(2)がラッチされる。すなわち、DS1が発生されているので、図8(b)に示されているように今回デコードブロックのサブブロックSB2のサンプルがサンプルS0とされ、隣接するサブブロックSB3のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは、タイミングTIM7でLA13およびLA15から出力される。
【0069】
また、SDEC3とDS2が共に発生される場合は、SEL15およびSEL18からは同様に図15(a)に示す前回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC3〉に示しているようにGA13の作用により、LA12にはタイミング信号TIM5がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM7がラッチ信号として印加される。従って、LA12に今回デコードブロックのサンプルS(2)がラッチされ、LA14にサンプルS(3)がラッチされる。すなわち、DS2が発生されているので、図8(c)に示されているように今回デコードブロックのサブブロックSB3のサンプルがサンプルS0とされ、隣接するサブブロックSB4のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは、タイミングTIM7でLA13およびLA15から出力される。
【0070】
次に、SDEC5とDS0が共に発生された場合は、SEL15およびSEL18からは入力Cに供給されているループスタートブロックRAM11から出力される図15(d)に示すループスタートブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC5〉に示しているように、INV16とGA12とGA13の作用により、LA12にはタイミング信号TIM1がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM3がラッチ信号として印加される。従って、LA12にループスタートブロックの先頭サブブロックのサンプルS(−4L)がラッチされ、LA14に隣接するサンプルS(1−4L)がラッチされる。すなわち、DS0が発生されているので、図8(a)に示されているようにループスタートブロックRAM11のサブブロックSB1のサンプルがサンプルS0とされ、隣接するサブブロックSB2のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは同期して出力されるようタイミングTIM7でラッチされるLA13およびLA15を介して出力される。
【0071】
また、SDEC5とDS1が共に発生される場合は、SEL15およびSEL18からは同様に図15(d)に示す今回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC5〉に示しているようにGA13の作用により、LA12にはタイミング信号TIM3がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM5がラッチ信号として印加される。従って、LA12にループスタートブロックのサンプルS(1−4L)がラッチされ、LA14にサンプルS(2−4L)がラッチされる。すなわち、DS1が発生されているので、図8(b)および図9(d)に示されているようにループスタートブロックRAM11のサブブロックSB2のサンプルがサンプルS0とされ、隣接するサブブロックSB3のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは、タイミングTIM7でLA13およびLA15から出力される。
【0072】
また、SDEC5とDS2が共に発生される場合は、SEL15およびSEL18からは同様に図15(d)に示すループスタートブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC5〉に示しているようにGA13の作用により、LA12にはタイミング信号TIM5がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM7がラッチ信号として印加される。従って、LA12にループスタートブロックのサンプルS(2−4L)がラッチされ、LA14にサンプルS(3−4L)がラッチされる。すなわち、DS2が発生されているので、図8(c)に示されているようにループスタートブロックRAM11のサブブロックSB3のサンプルがサンプルS0とされ、隣接するサブブロックSB4のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは、タイミングTIM7でLA13およびLA15から出力される。
【0073】
SDEC5とDS3が共に発生される場合はなく、DS3はSDEC6と共に発生される。この場合は、SEL15からは入力Dに供給されている図15(b)に示すSEL12から出力される1サンプル遅延された今回デコードブロックが図15(e)に示すタイミングで順次選択出力され、SEL18からは入力Dに供給されている図15(a)に示す今回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC6〉に示しているように、OR18とGA12とGA13の作用により、LA12にはタイミング信号TIM1がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM1がラッチ信号として印加される。従って、LA14に今回デコードブロックの先頭サブブロックのサンプルS(0)がラッチされ、LA12にサンプルS(0)に隣接する直前のサンプルS(*)がラッチされる。SDEC6が発生するのはリターン時なので、S(*)はループスタートブロックの最終デコードサンプルとなる。すなわち、DS3が発生されているので、図8(d)および図9(e)に示されているように今回デコードブロックのサブブロックSB1のサンプルがサンプルS1とされ、ループスタートブロック(ループスタートブロックRAM11)のサブブロックSB4のサンプルがサンプルS0とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは同期して出力されるようタイミングTIM7でラッチされるLA13およびLA15を介して出力される。
【0074】
次に、SDEC7とDS0が共に発生された場合は、SEL15およびSEL18からは入力Aに供給されているADPCMデコード部70から出力される図15(a)に示す今回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC7〉に示しているように、INV16とGA12とGA13の作用により、LA12にはタイミング信号TIM1がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM3がラッチ信号として印加される。従って、LA12に今回デコードブロックの先頭サブブロックのサンプルS(0)がラッチされ、LA14に隣接するサンプルS(1)がラッチされる。すなわち、DS0が発生されているので、図8(a)および図9(f)に示されているように今回デコードブロックのサブブロックSB1のサンプルがサンプルS0とされ、隣接するサブブロックSB2のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは同期して出力されるようタイミングTIM7でラッチされるLA13およびLA15を介して出力される。
【0075】
また、SDEC7とDS1が共に発生される場合は、SEL15およびSEL18からは同様に図15(a)に示す今回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC7〉に示しているようにGA13の作用により、LA12にはタイミング信号TIM3がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM5がラッチ信号として印加される。従って、LA12に今回デコードブロックのサンプルS(1)がラッチされ、LA14にサンプルS(2)がラッチされる。すなわち、DS1が発生されているので、図8(b)に示されているように今回デコードブロックのサブブロックSB2のサンプルがサンプルS0とされ、隣接するサブブロックSB3のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは、タイミングTIM7でLA13およびLA15から出力される。
【0076】
また、SDEC7とDS2が共に発生される場合は、SEL15およびSEL18からは同様に図15(a)に示す前回デコードブロックが図15(e)に示すタイミングで順次選択出力される。この際は図14の〈SDEC7〉に示しているようにGA13の作用により、LA12にはタイミング信号TIM5がラッチ信号として印加され、LA14にはGA14の作用によりタイミング信号TIM7がラッチ信号として印加される。従って、LA12に今回デコードブロックのサンプルS(2)がラッチされ、LA14にサンプルS(3)がラッチされる。すなわち、DS2が発生されているので、図8(c)に示されているように今回デコードブロックのサブブロックSB3のサンプルがサンプルS0とされ、隣接するサブブロックSB4のサンプルがサンプルS1とされることになる。LA12およびLA14でラッチされたサンプルS0とサンプルS1とは、タイミングTIM7でLA13およびLA15から出力される。
【0077】
このようにして第1選択制御情報DS0〜DS3および第2選択制御情報SDEC1〜3,5〜7により選択出力されたサンプルS0とサンプルS1とは、補間器(Interpolator)8に供給されて位相情報の小数部データFRAに対応した補間サンプルが生成され、楽音波形サンプルSとしてアキュムレータACC9に供給される。
【0078】
ここで、図10および図11に戻りADPCMデコーダ7の構成における量子化幅Δ(n−1)信号をADPCMデコード部70に供給するための構成の説明を行う。
前記したように、SEL10で選択出力されたADPCM楽音波形サンプルD(n)は量子化幅演算部71にも入力され、SEL14から選択出力された量子化幅Δ(n−1)信号と上記(1)式の演算が行われて、新たな量子化幅Δ(n)信号が生成されて出力される。生成された量子化幅Δ(n)信号は、LA11にOR16を介して印加されたタイミング信号TIM1,TIM3,TIM5,TIM7のそれぞれのタイミングによりラッチされる。さらに、第13セレクタ(SEL13)の入力Aに供給される。入力AはSDEC5あるいはSDEC6が発生されていない場合に選択されて、SEL13の選択出力は直前量子化幅RAM12およびループスタート量子化幅RAM13に並列に供給される。
【0079】
直前量子化幅RAM12に書き込まれるのはリターンタイミングRTNT信号あるいはSDEC3が発生されているときのタイミングTIM7である。すなわち、直前ブロックRAM10の内容が更新される際に、その最終のサンプルを用いて演算された量子化幅Δが直前量子化幅RAM12に書き込まれるようになる。この直前量子化幅RAM12の出力は、SDEC2あるいはSDEC3が発生されている際のタイミングTIM01にSEL14から選択出力されてADPCMデコード部70に量子化幅Δ(n−1)信号として供給される。この際には、直前ブロックRAM10のサブブロックSB4のサンプルがSEL12から選択出力されてADPCMデコード部70にサンプルX(n−1)として供給されている。
【0080】
また、ループスタート量子化幅RAM13に書き込まれるのはループスタートブロックスタートアドレス検出信号LSDTCTが発生されているときのタイミングTIM7である。すなわち、ループスタートブロックRAM11の内容が更新される際に、ループスタートブロックの最終のサンプルを用いて演算された量子化幅Δ信号がループスタート量子化幅RAM13に書き込まれるようになる。このループスタート量子化幅RAM13の出力は、SDEC6あるいはSDEC7が発生されている際のタイミングTIM01にSEL14から選択出力されてADPCMデコード部70に量子化幅Δ(n−1)信号として供給される。この際には、ループスタートブロックRAM11のサブブロックSB4のサンプルがSEL12から選択出力されてADPCMデコード部70にサンプルX(n−1)として供給されている。
また、ループスタート量子化幅RAM13の出力はSEL13の入力Bにも供給されており、リターンタイミングRTNT信号と共にSDEC5あるいはSDEC6が発生した際には、SEL13から選択出力されたループスタート量子化幅RAM13の出力が直前量子化幅RAM12に転送されて、直前量子化幅RAM12の内容が更新される。この動作は、前記した直前ブロックRAM10の内容がループスタートブロックRAM11の内容で更新される場合と同時に行われる。これにより、必要とする量子化幅Δ(n−1)信号をADPCMデコード部70に常に供給することができるようになる。
【0081】
以上説明した本発明の圧縮波形サンプルを用いたループ再生装置においては、図4に示すような波形のサンプルを繰り返し再生するループ再生を行うことにより楽音等を発生している。このようなループ再生のモードをノーマルループモードということにする。そして、本発明の圧縮波形サンプルを用いたループ再生装置においては、ノーマルループモードの再生だけではなく、ループ再生機能を応用してロングストリームの再生も行うことができる。この再生モードをロングストリームモードということにする。
そこで、本発明の圧縮波形サンプルを用いたループ再生装置におけるロングストリームモードにおける再生について図16を参照しながら次に説明する。なお、ロングストリームモードにおける再生は、64チャンネルのうちの少なくとも1チャンネルを用いて行われる。
【0082】
図16は、図3に示す本発明の圧縮波形サンプルを用いたループ再生装置の構成においてロングストリームモードの再生を行う概略を説明するための図である。ロングストリームモード時には周辺装置4に装着されたCD−ROMに記録されているBGM等のロングストリームが再生される。このロングストリームモード時は、最初にRAM6に用意された同じ大きさのエリアAとエリアBとからなるエリアの記憶容量に対応する大きさの図示するロングストリーム部分1が読み出されて記憶される。この記憶動作は、CPU3がメモリコントローラ5を制御して、CD−ROMから読み出したロングストリーム部分1のADPCM楽音波形サンプルをRAM6のエリアAおよびエリアBに記憶する。エリアAとエリアBとは同じ記憶容量とされ、この例では3ブロック分(12ADPCM楽音波形サンプル分)の記憶容量とされる。なお、ロングストリームモード時には、エリアAの最初のサンプルに対応する先頭アドレスであるスタートアドレスSAとループスタートアドレスLSAとを等しくし、エリアBの最終のブロックの先頭サンプルに対応するアドレスをループエンドアドレスLEAとしている。
【0083】
ついで、メモリコントローラ5はRAM6のエリアAの最初からADPCM楽音波形サンプルを読み出してADPCMデコーダ7に供給し、前記したようにADPCMデコードが行われてPCM楽音波形サンプルS0,S1が出力される。PCM楽音波形サンプルサンプルS0,S1は、補間器8に供給されて位相情報の小数部データFRAに対応した補間サンプルが生成され、楽音波形サンプルSとしてアキュムレータACC9に供給される。
ここで、再生が進んでデータINTが(LEA−LSA)/2以上となったこと、すなわちエリアAの最終のADPCM楽音波形サンプルが読み出されたことが検出されたときに、CPU3はCD−ROMから前回読み出された最終のブロック(エリアBの最終ブロック)と次の2ブロック分の3ブロック分のロングストリーム部分2Aを読み出してRAM6のエリアAに記憶させる。上記検出は、CPU3がPG1から出力される位相情報の整数部データINTが記憶されているレジスタ10の内容をモニタすることにより行う。そして、エリアBに記憶されているロングストリームのADPCM楽音波形サンプルが順次に逐一読み出されて再生が継続される。
【0084】
さらに、再生が進んでCPU3がデータINTがループエンドアドレスLEA以上となったことを検出すると、CPU3はCD−ROMから前回読み出された最終のブロックの次の3ブロック分のロングストリーム部分2Bを読み出してRAM6のエリアBに記憶させる。この場合には、ADPCMデコード部70からループエンドアドレスLEAを越えた際に発生されるリターンタイミングRTNTおよびリターン値RTNPとがPG1に供給されて、PG1から出力される位相情報はリターン値RTNPに対応した値となる。この際のPG1から出力される位相情報は、エリアAの先頭ブロックアドレスに対応するようになり、続く再生はエリアAに記憶されている次のロングストリーム部分2AのADPCM楽音波形サンプルを読み出すことにより継続されるようになる。
このように、データINTが(LEA−LSA)/2以上となった際にエリアAをすでに読み出されている最終のブロックを重複するよう更新すると共に、データINTがループエンドアドレスLEA以上となった際にエリアBを更新しながらループ再生を繰り返し行うことにより、RAM6のエリアAとエリアBとが交互に所定量毎の新たなロングストリーム部分のADPCM楽音波形サンプルにより更新されていくようになる。これにより、BGM等のRAM6にすべて記憶することのできない大量のサンプルからなるロングストリームを再生することが可能となる。
【0085】
次に、ロングストリームモード時に発生される第1選択制御情報DS0〜DS3および第2選択制御情報SDEC1〜SDEC3が発生された際のADPCMデコーダ7の動作の概略を図17を参照しながら説明する。なお、ロングストリームモード時には、図6を参照すれば明らかなようにSDEC5〜SDEC7はGA3の作用により発生されない。
図17に示す(a)から(c)の動作は、図9に示す(a)から(c)の動作と同様であるので、その説明は省略する。図17(d)に示す動作は、データINT+1がループエンドアドレスLEAを越えた場合のリターン時の動作であり、図17(d)にリターンタイミングRTNTが発生している際にSDEC3とDS0とが共に発生された場合の動作を示している。
【0086】
この場合は、前回選択出力したサンプルS0(1)および前回選択出力したサンプルS1(1)とが直前ブロックRAM10に記憶されており、今回SEL15から選択出力させるサンプルS0(2)と今回SEL18から選択出力させるサンプルS1(2)とが、次のブロックのサブブロックSB1,サブブロックSB2のサンプルとされる場合である。このサブブロックSB1のサンプルに対応するアドレスはループエンドアドレスLEAである。したがって、RAM6をアクセスしてエリアBの最終ブロックを読み出せばよいのであるが、この際にはリターンタイミングRTNTが発生されているので、この際に発生されるメモリアドレスMAはループスタートアドレスLSAに対応するエリアAの最初のブロックを指すメモリアドレスになる。すなわち、リターン時はエリアBの最終ブロックとエリアAの最初のブロックとを同一内容として連続するADPCM楽音波形サンプルを読み出す必要がある。このため、図16に示すようにエリアAが更新される際には、エリアBの最終ブロックが先頭ブロックとしてエリアAに重複して書き込まれるのである。このようにしてRAM6のエリアAの先頭のブロックが読み出されて、今回デコードブロックとしてデコードされるようになる。
【0087】
図17(e)に示す動作は、ピッチアップしてロングストリーム再生する際に、データINT+1がループエンドアドレスLEAを越えた場合のリターン時の動作を示している。この場合は、前回選択出力したサンプルS0(1)が直前ブロックRAM10に記憶されていると共に、前回選択出力したサンプルS1(1)が次のブロックのサブブロックSB1のサンプルとされ、直前ブロックRAM10に記憶されており今回SEL15から選択出力させるサンプルS0(2)が次のブロックのサブブロックSB4のサンプルとされると共に、今回SEL18から選択出力させるサンプルS1(2)が、さらに次のブロックのサブブロックSB1のサンプルとされる場合である。次のサブブロックSB1のサンプルS1(1)に対応するアドレスはループエンドアドレスLEAである。この場合も前述と同様にループスタートアドレスLSAに対応するエリアAの最初のブロックにアクセスされるようになる。この際に、次のブロックを読み出してデコードすることは可能であるが、ハードウェアの制限からその次のブロックにアクセスすることはできない。従って、図17(e)に示すようなピッチアップを伴うことはできないので、このようなピッチアップの再生は制限される。
【0088】
以上説明した本発明の圧縮波形サンプルを用いたループ再生装置においては、楽音を発生するものとして説明したが楽音に限るものではなく、ゲームにおける効果音等を発生するものであってもよい。また、上記の説明においてはピッチ非同期タイプとして説明したが、必ずしもピッチ非同期タイプとすることはなく、必要に応じて本発明の圧縮波形サンプルを用いたループ再生装置をピッチ同期タイプとしてもよい。
さらに、以上説明した本発明の圧縮波形サンプルを用いたループ再生装置においては、64音同時発音可能とされているが、この発音数に限られるものではなく128音同時発音可能にしても、逆に32音同時発音可能であってもよい。さらにまた、1オクターブ以内のピッチアップとしたが、2つ以上のブロックを読み出し可能となるようハードウェアを構成すれば、2オクターブ以上のピッチアップを可能とすることができる。
さらにまた、波形サンプルを圧縮する方式として量子化幅を適応的に制御するADPCM方式を採用したが、この方式に限ることはなくDPCM方式により圧縮するようにしてもよい。
【0089】
【発明の効果】
本発明は以上のように、最初にループスタート位置の圧縮波形サンプルを読み出した時にデコードされた伸長波形サンプルを、以降にループバックした時の予測値として一時記憶するようにしたので、ループバック時にループスタートの位置に戻されても、一時記憶手段に記憶されている伸長波形サンプルを予測値としてデコードすることができる。従って、1波形サンプル当たりのビット数を削減した圧縮波形サンプルを記憶した波形サンプル記憶手段を備えていても、ループ再生による再生を可能とすることができる。
また、ピッチ非同期タイプとして所望のピッチ情報を所定周期毎に累算することにより、ループスタート位置を経由してループエンド位置まで順次増加する位相情報を発生するようにすると、時分割処理を容易に行えるようになり、低コストで複数の楽音を再生することが可能となる。
【図面の簡単な説明】
【図1】ADPCMエンコーダの一般的な構成を示す図である。
【図2】ADPCMデコーダの一般的な構成を示す図である。
【図3】本発明の圧縮波形サンプルを用いたループ再生装置における実施の形態の構成例を示すブロック図である。
【図4】本発明の圧縮波形サンプルを用いたループ再生装置における波形サンプルを圧縮した際にその圧縮波形サンプルを記憶する態様を示す図である。
【図5】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態における位相情報発生部の構成およびその動作を示す図である。
【図6】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態におけるアドレスポインタの構成を示す回路図である。
【図7】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態における第2選択制御情報SDECが発生した際のADPCMデコーダの動作を示す図である。
【図8】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態における第1選択制御情報DSが発生した際のADPCMデコーダの動作を示す図である。
【図9】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態における第1選択制御情報DSと第2選択制御情報SDECが共に発生した際のADPCMデコーダの動作を示す図である。
【図10】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態におけるADPCMデコーダの詳細構成の一部を示す回路図である。
【図11】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態におけるADPCMデコーダの詳細構成の他の一部を示す回路図である。
【図12】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態における動作タイミングを示す図である。
【図13】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態における第2選択制御情報SDECと第15セレクタおよび第18セレクタの選択信号との関係を示す図表である。
【図14】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態における第2選択制御情報SDECと第12ラッチおよび第14ラッチのラッチ信号との関係を示す図表である。
【図15】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態における第15セレクタおよび第18セレクタの入力A〜入力Dに供給されるサンプルを示す図である。
【図16】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態におけるロングストリーム再生の動作を示す図である。
【図17】本発明の圧縮波形サンプルを用いたループ再生装置の実施の形態におけるロングストリーム再生時の第2選択制御情報SDECが発生した際のADPCMデコーダの動作を示す図である。
【符号の説明】
1 位相情報発生部,2 アドレスポインタ,3 CPU,4 周辺装置,5 メモリコントローラ,6 RAM,7 ADPCMデコーダ,8 補間器,9 アキュムレータ,10 レジスタ,11 シフタ,70 ADPCMデコード部,71 量子化幅演算部,100 メモリアドレス,101 メモリアドレス,101 減算器,102 メモリアドレス,102 符号化部,103 量子化幅演算部,104 遅延回路,105 予測部,106 遅延回路,201 復号部,202 遅延回路,203 量子化幅演算部,204 遅延回路,DS0〜DS3 第1選択制御情報,RAM10 直前ブロックRAM,RAM11 ループスタートブロックRAM,RAM12 直前量子化幅RAM,RAM13ループスタート量子化幅RAM,SB1〜SB4 サブブロック,SDEC1〜3,SDEC5〜7 第2選択制御情報
Claims (5)
- 予測値に基づいて圧縮符号化された圧縮波形サンプルを記憶した波形サンプル記憶手段と、
ループスタート位置情報およびループエンド位置情報を発生するループ位置情報発生手段と、
所望のピッチ情報を所定周期毎に累算することにより、ループスタート位置を経由してループエンド位置まで順次増加する位相情報を発生するとともに、前記ループ位置情報発生手段から発生されるループエンド位置情報に基づいてループエンド位置に達したと検出された際に、位相情報をループスタート位置にループバックして再び順次増加する位相情報を発生する位相情報発生手段と、
該位相情報発生手段から今回の周期で発生された位相情報に対応した圧縮波形サンプルが記憶されている今回アドレスが、前回の周期で発生された位相情報に対応した圧縮波形サンプルが記憶されている前回アドレスと異なる場合には1ないし複数回前記波形サンプル記憶手段にアクセスして1ないし複数個の圧縮波形サンプルを読み出すと共に、前記今回アドレスが前記前回アドレスと同じ場合には前記波形サンプル記憶手段にアクセスしない読出制御手段と、
該読出制御手段により前記波形サンプル記憶手段から読み出された圧縮波形サンプルを予測値に基づいて所定周期毎に順次に逐一デコードし、その結果を伸長波形サンプルとして順次出力するデコード手段と、
該デコード手段によりデコードされた最新の伸長波形サンプルを含む少なくとも1つの伸長波形サンプルを、一時記憶する第1の一時記憶手段と、
前記ループ位置情報発生手段から発生されるループスタート位置情報に基づいて、前記読出制御手段で最初にループスタート位置の圧縮波形サンプルを読み出した時にデコードされた伸長波形サンプルを、以降にループバックした時の予測値として一時記憶する第2の一時記憶手段と、
所定周期毎に、前記デコード手段から出力される伸長波形サンプル、前記第1の一時記憶手段から出力される伸長波形サンプル、または、前記第2の一時記憶手段から出力される伸長波形サンプルのいずれかを、前記位相情報発生手段から今回の周期で発生された位相情報と前回の周期で発生された位相情報とに基づいて発生された選択制御信号に基づき出力波形サンプルとして選択的に出力する出力手段とを備え、
デコードすべき圧縮波形サンプルに隣接する直前の伸長波形サンプルが前記予測値として前記デコード手段に供給されるよう、前記デコード手段から出力される伸長波形サンプル、前記第1の一時記憶手段から出力される伸長波形サンプル、または、前記第2の一時記憶手段から出力される伸長波形サンプルのいずれかを、前記選択制御信号に基づき選択して前記デコード手段に供給するようにしたことを特徴とする圧縮波形サンプルを用いたループ再生装置。 - 前記波形サンプル記憶手段には、圧縮波形サンプルが1アドレスにつきn(nは2以上の整数)サンプルずつ記憶されており、前記読出制御手段は、所定周期毎に、前記波形サンプル記憶手段を1回アクセスするかまたは全くアクセスしないように動作するものであり、前記第1の一時記憶手段には少なくともn個の伸長波形サンプルが記憶され、前記第2の記憶手段にはループスタート位置を含む少なくともn個の伸長波形サンプルが記憶されるようにしたことを特徴とする請求項1記載の圧縮波形サンプルを用いたループ再生装置。
- 前記位相情報発生手段で発生する位相情報は整数部と小数部とから成り、前記出力手段は、前記位相情報の整数部に基づき少なくとも2つのサンプルを選択するとともに、前記位相情報の小数部に基づき前記少なくとも2つのサンプルを用いて補間演算することにより、前記位相情報に応じた波形サンプルを生成するようにしたことを特徴とする請求項1記載の圧縮波形サンプルを用いたループ再生装置。
- 前記所定周期時間を再生チャンネル数で分割したチャンネル時間に対応して時分割動作を行うことにより、複数チャンネルの楽音を再生するようにしたことを特徴とする請求項1記載の圧縮波形サンプルを用いたループ再生装置。
- 前記圧縮波形サンプルが差分符号化あるいは適応差分符号化されていることを特徴とする請求項1記載の圧縮波形サンプルを用いたループ再生装置。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33376298A JP3567767B2 (ja) | 1998-11-25 | 1998-11-25 | 圧縮波形サンプルを用いたループ再生装置 |
TW088120167A TW457472B (en) | 1998-11-25 | 1999-11-18 | Apparatus and method for reproducing waveform |
US09/447,204 US6242681B1 (en) | 1998-11-25 | 1999-11-22 | Waveform reproduction device and method for performing pitch shift reproduction, loop reproduction and long-stream reproduction using compressed waveform samples |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP33376298A JP3567767B2 (ja) | 1998-11-25 | 1998-11-25 | 圧縮波形サンプルを用いたループ再生装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000163070A JP2000163070A (ja) | 2000-06-16 |
JP3567767B2 true JP3567767B2 (ja) | 2004-09-22 |
Family
ID=18269682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP33376298A Expired - Fee Related JP3567767B2 (ja) | 1998-11-25 | 1998-11-25 | 圧縮波形サンプルを用いたループ再生装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3567767B2 (ja) |
-
1998
- 1998-11-25 JP JP33376298A patent/JP3567767B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2000163070A (ja) | 2000-06-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7692087B2 (en) | Compressed data structure and apparatus and method related thereto | |
US4502361A (en) | Method and apparatus for dynamic reproduction of transient and steady state voices in an electronic musical instrument | |
JPS6199193A (ja) | 楽音信号発生装置 | |
US6242681B1 (en) | Waveform reproduction device and method for performing pitch shift reproduction, loop reproduction and long-stream reproduction using compressed waveform samples | |
JP3567767B2 (ja) | 圧縮波形サンプルを用いたループ再生装置 | |
JP3567768B2 (ja) | ロングストリーム再生機能を有する再生装置 | |
JP3567766B2 (ja) | 圧縮波形サンプルを用いたピッチシフト再生装置 | |
US6207885B1 (en) | System and method for rendition control | |
JP3826870B2 (ja) | 圧縮データ構造、波形生成装置および波形記憶装置 | |
JPS6227718B2 (ja) | ||
JPS6035077B2 (ja) | 電子楽器 | |
JPS6220557B2 (ja) | ||
JP2765433B2 (ja) | 記憶再生装置 | |
JP2591160B2 (ja) | 波形選択合成装置 | |
JP5359203B2 (ja) | 楽曲処理装置およびプログラム | |
JP3862839B2 (ja) | 波形圧縮伸長装置 | |
JP3918755B2 (ja) | 楽音合成装置 | |
JP5104522B2 (ja) | 波形発生装置および波形発生処理プログラム | |
JP2591159B2 (ja) | 波形選択合成装置 | |
JP3915725B2 (ja) | 楽音合成装置 | |
JP3067630B2 (ja) | 楽音情報処理装置及び楽音情報処理方法 | |
JP2705042B2 (ja) | エンベロープ波形生成方式 | |
JP2000206972A (ja) | 波形デ―タの演奏制御装置 | |
JPH02137892A (ja) | 音源装置 | |
JP2798913B2 (ja) | 楽音波形生成装置及び楽音波形生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040224 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040423 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040525 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040607 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
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: 20080625 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090625 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100625 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110625 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120625 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130625 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140625 Year of fee payment: 10 |
|
LAPS | Cancellation because of no payment of annual fees |