JP3152197B2 - 楽音発生方法 - Google Patents

楽音発生方法

Info

Publication number
JP3152197B2
JP3152197B2 JP01195598A JP1195598A JP3152197B2 JP 3152197 B2 JP3152197 B2 JP 3152197B2 JP 01195598 A JP01195598 A JP 01195598A JP 1195598 A JP1195598 A JP 1195598A JP 3152197 B2 JP3152197 B2 JP 3152197B2
Authority
JP
Japan
Prior art keywords
memory
sample data
waveform
read
waveform 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
Application number
JP01195598A
Other languages
English (en)
Other versions
JPH11202865A (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 JP01195598A priority Critical patent/JP3152197B2/ja
Publication of JPH11202865A publication Critical patent/JPH11202865A/ja
Application granted granted Critical
Publication of JP3152197B2 publication Critical patent/JP3152197B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

【発明の詳細な説明】
【0001】
【発明が属する技術分野】本発明は、メモリに記憶され
た波形サンプルデータを読み出すことにより楽音を生成
する波形メモリ音源を有する楽音発生方法に関する。
【0002】
【従来の技術】従来の波形メモリ音源を有する楽音発生
装置においては、演奏情報が入力された際に演算処理手
段(CPU)においてプログラムメモリから音源ドライ
バ処理のプログラムが読み出されて実行される。これに
よりCPUからパラメータ情報が送出され、このパラメ
ータ情報は音源レジスタに格納される。波形メモリ音源
においては、楽音生成タイミングとなった際に音源レジ
スタに格納されたパラメータ情報に基づいて波形サンプ
ルデータが格納された波形メモリから波形サンプルデー
タを読み出し、読み出された波形サンプルデータにエン
ベロープを付加し、さらにエフェクトを付与することに
より楽音波形を生成するようにしている。
【0003】
【発明が解決しようとする課題】ここで、プログラムメ
モリと波形メモリとは、CPUと波形メモリ音源とでメ
モリバス上で共有されるメモリとされている場合があ
る。このため、波形メモリ音源がメモリにアクセスして
いる最中に、CPUがメモリにアクセスした場合には、
波形メモリ音源のアクセスが優先されていることから、
CPUのアクセスにはウェイトサイクルが挿入されるよ
うになる。このため、CPUのパフォーマンスが低下す
るようになるという問題点があった。
【0004】そこで、本発明は波形メモリ音源がメモリ
から波形サンプルデータを読み出すアクセス回数をでき
るだけ少なくすることにより、CPUのパフォーマンス
の低下を防止するようにした楽音発生方法および装置を
提供することを目的としている。
【0005】
【課題を解決するための手段】上記目的を達成するため
に、本発明の楽音発生方法は、プログラムと波形サンプ
ルデータを記憶したメモリがメモリバス上に接続され、
演算処理部が前記メモリから前記バスを通じてプログラ
ムを読み出して実行すると共に、波形メモリ音源部が前
記メモリから前記バスを通じて波形サンプルデータを読
み出して楽音波形を生成するようになされており、前記
メモリには、前記波形サンプルデータの連続するサンプ
ルが各メモリアドレスにn(ただし、nは正の整数)サ
ンプルずつ記憶され、前記波形メモリ音源部は、サンプ
リング周期毎に、生成する楽音の音高に応じた速度で変
化する読み出しアドレスを発生し、該読み出しアドレス
を中心とするm(ただし、m≦n)サンプルを前記メモ
リから読み出し、該読み出しアドレスの小数部に応じて
補間して楽音波形を生成する際に、該読み出しアドレス
を中心とするmサンプルが前記メモリの1メモリアドレ
スに記憶されている場合には、該mサンプルを読み出し
て該読み出しアドレスに従って補間を行い、該読み出し
アドレスを中心とするmサンプルが前記メモリの1メモ
リアドレスに記憶されていない場合には、前記メモリの
アクセス回数を1回として該読み出しアドレスに近いm
サンプルを読み出して該読み出しアドレスに従って補間
を行うことにより、前記波形メモリ音源部の前記メモリ
のアクセス回数を低減するようにしている。
【0006】また、上記目的を達成することのできる本
発明の他の楽音発生方法は、プログラムと波形サンプル
データを記憶したメモリがメモリバス上に接続され、演
算処理部が前記メモリから前記バスを通じてプログラム
を読み出して実行すると共に、波形メモリ音源部が前記
メモリから前記バスを通じて波形サンプルデータを読み
出して複数チャンネルの楽音波形を生成するようにされ
ており、前記メモリには、前記波形サンプルデータの連
続するサンプルが各メモリアドレスにn(ただし、nは
正の整数)サンプルずつ記憶され、前記波形メモリ音源
部は、各チャンネルにおいて、サンプリング周期毎に、
生成する楽音の音高に応じた速度で変化する読み出しア
ドレスを発生し、該読み出しアドレスの整数部を中心と
するm(ただし、m≦n)サンプルを前記メモリから読
み出し、該読み出しアドレスの小数部に応じて補間して
楽音波形を生成する際に、前記メモリへの1サンプリン
グ周期内における全アクセス回数が制限回数を超える場
合には、読み出すmサンプルが2メモリアドレスにまた
がっているチャンネルについて、該読み出しアドレスを
中心とするmサンプルを読み出して該読み出しアドレス
に従って補間を行う代わりに、前記メモリのアクセス回
数を1回として該読み出しアドレスに近いmサンプルを
前記メモリの1つのメモリアドレスから読み出して該読
み出しアドレスに従って補間を行うことにより、前記波
形メモリ音源部の前記メモリへの全アクセス回数を低減
するようにしている。
【0007】このような本発明によれば、メモリにおけ
る1メモリアドレスに複数の波形サンプルデータが記憶
されており、読み出しアドレスの整数部に応じてメモリ
から読み出された波形サンプルデータを、読み出しアド
レスの小数部に従って補間することにより楽音を生成す
る際に、読み出しアドレスを中心とするmサンプルが1
メモリアドレスに記憶されている場合には、1回だけメ
モリにアクセスすることにより読み出したmサンプルを
使用して補間を行うようにしている。そして、読み出し
アドレスを中心とするmサンプルが1メモリアドレスに
記憶されていない場合には、メモリへのアクセス回数を
1回として読み出しアドレスに近いmサンプルを読み出
し、当該mサンプルを使用して読み出しアドレスの小数
部に従い補間を行うようにしている。このため、本発明
は、波形メモリ音源部がCPUとメモリバス上で共有す
るメモリにアクセスするアクセス回数を低減することが
できる。
【0008】さらに、複数チャンネルの楽音を生成する
際のように波形メモリ音源部からのメモリへのアクセス
回数が多い場合において、アクセス回数が制限を越えた
際には、アクセス回数を低減することができるようにな
る。これにより、CPUのパフォーマンスの低下を防止
することができ、CPUは高速に演算処理することがで
きるようになる。なお、メモリへのアクセス回数を低減
して読み出した波形サンプルデータを使用して行う補間
態様、例えば外挿補間としたことによる補間精度の劣化
はわずかであり発生される楽音にはほとんど影響を与え
ない。
【0009】
【発明の実施の形態】本発明の楽音発生方法の実施の形
態である楽音発生装置の構成例のブロック図を図1に示
し、本発明の楽音発生方法を該楽音発生装置を参照しな
がら説明する。図1において、1は演算処理装置(Cent
ral Processing Unit:CPU)11や波形メモリ音源
部と、その周辺回路やメモリが1チップ上に形成されて
いる音源LSIであり、2は音源LSI1によりアクセ
スされる波形サンプルデータとCPU11により実行さ
れるプログラムとが格納されているWAVE&PROG
RAM ROM(Read Only Memory)である。また、3
は音源LSI1から出力されるディジタル楽音データを
アナログ楽音信号に変換するDAC(Digital Analog C
onverter)であり、4はDAC3により変換されたアナ
ログ楽音信号を増幅して発音するサウンドシステムであ
る。さらに、5は外部MIDI機器からMIDI信号が
入出力されるMIDI端子、6はユーザが演奏操作を行
う複数の鍵を備えた鍵盤、7は楽音発生装置における各
種情報が表示されるパネル表示器と、ユーザが操作する
ことにより楽音発生装置に各種の指示を与えるパネル操
作子である。
【0010】さらにまた、11は楽音発生装置の全体の
動作を制御するCPUであり、12は動作時の経過時間
を示したり、特定の間隔でタイマ割込を発生するタイマ
であり、自動演奏や自動伴奏の時間管理やエンベロープ
制御や効果制御等に使用される。また、13はCPU1
1のワークエリア等として使用されるRAM(RandomAc
cess Memory)、14は生成する複数のチャンネルの楽
音を制御するための発音制御データ、ミキサ&エフェク
タ23におけるミキサを制御するためのミキサ制御デー
タおよびエフェクタを制御するためのエフェクタ制御デ
ータ等の音源パラメータが格納される音源レジスタであ
る。15は外部MIDI機器からMIDI端子5を介し
て入力されるMIDIメッセージを音源LSI1内に取
り込んだり、音源LSI1内で生成されたMIDIメッ
セージをMIDI端子5を介して外部MIDI機器へ出
力するためのMIDIインターフェース、16は鍵盤6
のノートオン,ノーオフの押鍵信号およびアフタタッチ
等のデータを直列データとして受信するシリアル入出力
ポート(シリアルI/O)、17は表示データを並列デ
ータとしてパネル表示器に出力すると共に、パネル操作
子をスキャンしてその操作信号を並列信号として取り込
むパラレル入出力ポート(パラレルI/O)である。
【0011】さらにまた、18はCPU11と読出回路
21からのWAVE&PROGRAM ROM2(以
下、WP−ROM2という)に対するアクセスの管理を
行うアクセス管理部であり、読出回路21からのアクセ
スを優先するセレクタとして動作する。21は音源レジ
スタ14にセットされている各チャンネルの周波数ナン
バパラメータや音色パラメータに基づいて複数の発音チ
ャンネル(例えば、32チャンネル)のチャンネル毎の
読み出しアドレスを生成し、読み出しアドレスに基づい
て補間処理に必要な数の各発音チャンネルの波形サンプ
ルデータをWP−ROM2から読み出し、読み出された
各発音チャンネルの波形サンプルデータの補間処理を行
う読出回路である。22は読出回路21から出力された
各発音チャンネルの波形サンプルデータにエンベロープ
パラメータに基づく音量エンベロープ等を付与するEG
付与部であり、23は各発音チャンネルの波形サンプル
データを複数通りにミキシングして、ミキシング出力の
一部にコーラス、リバーブ、バリエーション等のエフェ
クトを付与するミキサ&エフェクタである。なお、ミキ
サ&エフェクタ23はDSPにより構成するのが好適で
ある。なお、波形メモリ音源部は音源レジスタ14,読
み出し回路21,EG付与部22,ミキサ&エフェクタ
23により構成される。
【0012】このように構成されている本発明の楽音発
生装置の動作を説明する。CPU11は鍵盤6のノート
オン、ノートオフ、アフタタッチ等の情報をシリアルI
/O16を介して取り込む。そして、CPU11がWP
−ROM2から音源ドライバ処理プログラムを読み出し
て実行することにより、押鍵情報に基づいた楽音パラメ
ータが音源レジスタ14にセットされる。たとえば、押
鍵情報がノートオンの場合には、まず、チャンネル割り
当てを行い、ノートナンバ、音色情報(波形アドレ
ス)、ベロシティ(エンベロープパラメータ)、変調パ
ラメータ等のパラメータが音源レジスタ14の割り当て
たチャンネル位置にセットされる。
【0013】波形メモリ音源部では、アドレス読出回路
21が1サンプリング周期を等分した時分割チャンネル
タイミングに従って音源レジスタ14にセットされてい
る各チャンネルのノートナンバの累算値と波形アドレス
とに基づいてWP−ROM2に対する読み出しアドレス
を作成する。次いで、作成された読み出しアドレスの整
数部に従って、前記時分割チャンネルタイミングと異な
る独自のタイミングでWP−ROM2にアクセスするこ
とにより、各チャンネルに必要な波形サンプルデータが
1サンプリング周期毎に読み出されバッファに格納され
る。アドレス読出回路21のアドレス生成と波形メモリ
読み出しのタイミングに関しては、本出願人の出願にか
かる特開平9−146551号公報ないし特開平9−1
46555号公報記載の発明(以下、先願という)と同
様であるので、詳細な説明は省略する。なお、作成され
た読み出しアドレスの小数部に従って波形サンプルデー
タを補間して算出するために必要な数の波形サンプルデ
ータがバッファに用意される。そして、バッファに用意
されている各チャンネルの波形サンプルデータから、作
成された読み出しアドレスの小数部に従って補間された
波形サンプルデータが算出される。
【0014】なお、補間処理は前記時分割チャンネルタ
イミングでチャンネル毎に行われる。アドレス読出回路
21では、先願と同様に時分割チャンネルタイミングと
は独立したタイミングで必要なアクセスをまとめて連続
的に行うことが可能である。その場合、CPU11は、
アクセス管理部18の制御により、アドレス読出回路2
1のアクセスが行われていない期間にWP−ROM2の
アクセスを行う。また、先願に示された構成では波形メ
モリのアクセスタイミングを時分割チャンネルに関係な
く自由にずらすことができるので、CPU11からWP
−ROM2に対するアクセスを優先させて、その空き時
間にアドレス読出回路21のWP−ROM2のアクセス
を行うように変更することも容易である。
【0015】なお、バッファに読み出しアドレスの小数
部に従って波形サンプルデータを補間して算出するため
に必要な数の波形サンプルデータを用意するために、各
チャンネルにおいてWP−ROM2から新たに読み出す
波形サンプルデータ数、すなわち、読出回路21におい
て1サンプリング周期においてWP−ROM2にアクセ
スするアクセス回数が各チャンネル毎に算出される。こ
の各チャンネル毎に必要なアクセス回数が全チャンネル
分累算されて、1サンプリング周期においてWP−RO
M2にアクセスする全アクセス回数が算出される。この
全アクセス回数が多くなると波形読み出し処理の優先度
が高くされているため、CPU11によるWP−ROM
2へのアクセス時にウェイトサイクルが挿入される場合
が多くなり、その分だけCPU11のパフォーマンスが
低下する。そこで、これを防止するために1サンプリン
グ周期における読出回路21によるWP−ROM2への
全アクセス回数に上限を設定し、算出した全アクセス回
数が上限のアクセス回数を超える場合には、補間処理の
態様を変更することにより全アクセス回数を減少させる
処理が読出回路21において実行される。この処理の詳
細については後述する。なお、上限のアクセス回数はユ
ーザが設定することができ、そのデータは音源レジスタ
14にセットされる。
【0016】読み出し回路21から出力された補間処理
後の各チャンネルの波形サンプルデータは、EG付与部
22において音源レジスタ14にセットされている当該
チャンネルの音量情報および音色情報に応じたエンベロ
ープが付与され、このエンベロープが付与された各チャ
ンネルの波形サンプルデータはミキサ&エフェクタ23
に入力される。そして、各チャンネルの波形サンプルデ
ータはミキサ&エフェクタ23において、音源レジスタ
14内のミキサ制御データに応じたミキシング態様で各
チャンネルの波形サンプルデータが複数通りにミキシン
グされると共に、音源レジスタ14内のエフェクタ制御
データに応じてミキシング出力の一部にコーラス、リバ
ーブ、バリエーション等のエフェクト処理が施される。
これにより、サンプリング周期毎の楽音データが生成さ
れる。このミキサ&エフェクタ23はDSP(Digial S
ignal Processor)等により構成される。エフェクト処
理時に遅延が必要な場合は、RAM13を遅延手段とし
て使用している。そして、ミキサ&エフェクタ23から
サンプリング周期毎に出力される楽音データはDAC3
においてアナログ楽音信号に変換され、DAC3により
変換されたアナログ楽音信号はサウンドシステム4にお
いて増幅されて発音される。
【0017】ここで読出回路21のより詳細な説明を行
うために、読出回路21の詳細構成を図2に示す。図2
に示すように読出回路21は、処理部A31、処理部B
33、およびアドレスRAM(ARAM)とアキュムレ
ータ(ACC)と制御RAM(CRAM)からなるRA
M部32を備え、この処理部A31,RAM部32によ
りWP−ROM2から各チャンネルに必要な波形サンプ
ルデータを読み出すための読み出しアドレスが作成され
る。さらに、処理部B33により読み出しアドレスの
アドレス整数部に従って各チャンネルの波形サンプルデ
ータがWP−ROM2から読み出され、読み出された各
チャンネルの波形サンプルデータをアクセス管理部18
を介して取込回路34において取り込んでいる。この場
合の読み出された波形サンプルデータの取り込みタイミ
ングは、処理部B33から指示される。取り込まれた各
チャンネルの波形サンプルデータはバッファ35に一次
格納される。
【0018】そして、補間回路36において処理部B3
3から指示される補間態様でバッファ35に格納された
各チャンネルの波形サンプルデータを、処理部B33か
ら供給される各チャンネルの読み出しアドレスのアドレ
ス小数部に従って補間することにより、各チャンネルの
1サンプリング周期毎の波形サンプルデータを生成して
いる。なお、WP−ROMへ読出回路21がアクセス
中にCPU11からアクセスされた場合は、アクセス管
理部18は読出回路21からのアクセスが終了するまで
はCPU11からのアクセスを受け付けないので、CP
U11のアクセスにはウェイトサイクルが挿入されるよ
うになる。
【0019】ここで、処理部A31は1サンプリング周
期を等分割した時分割チャンネルタイミング毎に、音源
レジスタ14にセットされている当該チャンネルで発音
すべきノートナンバを累算することにより読み出しアド
レスを算出し、その読み出しアドレスをRAM部32の
ARAMに格納する。さらに、処理部A31においては
各チャンネルのアドレス作成と平行して、各チャンネル
において補間回路36において新たに必要とする波形サ
ンプルデータ数、すなわちWP−ROM2へのアクセス
回数が算出されてRAM部32のCRAMに格納され
る。この場合、CRAMにはチャンネル毎にチャンネル
番号とそのチャンネルにおいて必要なアクセス回数を格
納する領域が用意される。さらに、このチャンネル毎の
アクセス回数が、RAM部32のACCにおいて処理部
B33の働きにより累算され、1サンプリング周期の半
分の期間毎にWP−ROM2にアクセスする全アクセス
回数が算出される。そして、前述したように読出回路2
1によるWP−ROM2への全アクセス回数には上限が
設定されており、この全アクセス回数の上限のデータを
音源レジスタ14から読み出して、算出された全アクセ
ス回数が設定された上限以内か否かを判定する。ここ
で、全アクセス回数が上限以内であればそのまま読み出
し処理は続行される。また、全アクセス回数が上限を越
えていれば、次に説明するようにアクセス回数の削減が
図られることになる。
【0020】ここで、読み出し幅が16ビットとされて
いるWP−ROM2の各アドレスに8ビットの波形サン
プルを記憶している場合の、内装補間を外挿補間に変更
することによりアクセス回数を削減する手法を図3およ
び図4に示す補間態様を説明する図を参照しながら説明
する。図3(a)はあるチャンネルにおける内挿補間の
原理を示しており、この例では一次補間による2点補間
の例が示されている。なお、図中のWSn−1,WSn
はそれぞれ整数とされたアドレスADnの上位8ビッ
ト、下位8ビットに記憶されている波形サンプルデータ
であり、WSn+1はアドレスADnの一つ先の整数と
されたアドレスADn+1の上位8ビットに記憶されて
いる波形サンプルデータである。前述したように読み出
しアドレスは当該チャンネルにおいて発音すべき楽音の
ノートナンバを累算することにより算出されるが、8ビ
ットの波形サンプルの場合、算出されてARAMに格納
された読み出しアドレスの整数部のアドレス(アドレス
整数部)を1ビットシフトダウンしたデータが、アドレ
スADn,ADn+1に対応することになる。例えば、
アドレス整数部がアドレスADnとされている場合は、
WP−ROM2から波形サンプルデータWSn−1,W
Snが読み出され、アドレス整数部がアドレスADn+
1とされている場合は、WP−ROM2から波形サンプ
ルデータWSn+1,WSn+2が読み出されるように
なる。
【0021】そして、読み出しアドレスの小数部のアド
レス(アドレス小数部frac)に従って補間された波
形サンプルデータWSintが補間回路36において算
出されることにより、当該チャンネルにおける読み出し
アドレスに対応する波形サンプルデータが生成される。
図3(a)に示す例における補間処理は直線補間による
内挿補間とされ、補間回路36において内挿補間処理す
る際には、アドレスADnにおける波形サンプルデータ
WSnとアドレスADn+1における波形サンプルデー
タWSn+1から、アドレス小数部fracの値に相当
する直線補間された波形サンプルデータWSintを算
出している。この場合、補間回路36で補間処理する際
には波形サンプルデータWSnと波形サンプルデータW
Sn+1とがバッファ35の当該チャンネルのエリアに
格納されている必要がある。
【0022】そこで、処理部A31において、この2つ
の波形サンプルデータWSn,WSn+1がバッファ3
5の当該チャンネルのエリアに格納されているか否かを
判断することにより、WP−ROM2から新たに読み出
す波形サンプル数、すなわちWP−ROM2への当該チ
ャンネルにおけるアクセス回数を算出してACCに供給
する。ここでは、バッファ35に波形サンプルデータW
Sn,WSn+1が格納されていないものとすると、波
形サンプルWSn,WSn+1を読み出すためのアクセ
ス回数は2回となる。このアクセス回数を算出する処理
は各チャンネル毎に行われ、算出された各チャンネルの
アクセス回数のデータはACCにおいて加算される。こ
れにより、1サンプリング周期におけるWP−ROM2
への全アクセス回数が算出される。さらに、処理部A3
1において算出された全アクセス回数が上限を越えてい
るか否かが判断され、上限を越えている際には2点補間
する際に必要なアクセス回数が2回とされているチャン
ネルにおける補間態様を内挿補間から図3(b)に示す
外挿補間に変更するようにする。このように外挿補間を
行うことにより、当該チャンネルのアクセス回数を1回
に減少させて、全アクセス回数を低減するようにする。
【0023】すなわち、図3(a)に示す内挿補間にお
いては波形サンプルデータWSn−2までの波形サンプ
ルデータしか格納されていない場合に、補間された波形
サンプルデータWSintを得るためにはWP−ROM
2を2回アクセスして波形サンプルデータWSn,WS
n+1を新たに読み出してバッファ35に格納する必要
がある。しかしながら、図3(b)に示す外挿補間にお
いては波形サンプルデータWSn−1と波形サンプルデ
ータWSnとから補間した波形サンプルデータWSin
tを直線補間により算出しているため、WP−ROM2
のアドレスADnを1回アクセスして波形サンプルデー
タWSn−1および波形サンプルデータWSnを新たに
読み出してバッファ35に格納すればよいことになる。
これにより、アクセス回数を1/2とすることができ
る。また、外挿補間を使用する場合に、アドレス小数部
fracが0.5未満なら補間サンプルの前方のアドレ
スADnの波形サンプルWSn−1を使用し、0.5以
上ならば後方のアドレスADn+1を使用するようにす
れば、その補間精度は内挿補間に比べてわずかに劣化す
るだけであり、発生される楽音に悪影響を与えることは
ほとんどない。
【0024】ここで、内挿補間および外挿補間による補
間された波形サンプルデータWSintを得るための算
出式を次に示す。 内挿補間:WSint=WSn×(1−frac)+WS
n+1 ×frac 外挿補間:WSint=WSn×(1+frac)−WS
n-1 ×frac
【0025】次に、補間回路36で内挿補間するに必要
なアクセス回数の算出手法を説明する。WP−ROM2
に格納されている波形サンプルデータは、8ビットで量
子化された波形サンプルデータと16ビットで量子化さ
れた波形サンプルデータとが混在しており、バッファ3
5における各チャンネルの記憶容量が16ビット×2と
されていることから、バッファ35には16ビットで量
子化された波形サンプルデータは各チャンネルで2サン
プル格納することができ、8ビットで量子化された波形
サンプルデータは各チャンネルで4サンプル格納するこ
とができる。ただし、メモリバス幅は16ビットとされ
ており、WP−ROM2に1回アクセスすることにより
16ビットのデータが読み出されてバッファ35に格納
されるようになる。
【0026】すなわち、8ビットで量子化された波形サ
ンプルデータの読み出し時に、そのアドレス整数部のL
SBが無視されてWP−ROM2にアクセスされ、連続
している8ビットの2サンプルが同時に読み出されるよ
うになる。また、16ビットで量子化された波形サンプ
ルデータは2サンプルしか格納することができないこと
から、アクセス回数低減時にアクセス回数を1回とする
と、後述するように外挿補間を行えない場合が生じる。
そこで、波形サンプルデータが16ビットで量子化され
ている場合に、2回のアクセス回数を1回に低減する場
合は図4に示すように補間を行わないようにしている。
このように、16ビットで量子化された波形サンプルデ
ータと8ビットで量子化された波形サンプルデータとで
は、補間する際に必要なアクセス回数、およびアクセス
回数を低減する際の低減手法が異なるようになる。
【0027】以下、図5を参照しながら16ビットで量
子化された波形サンプルデータの補間に必要なアクセス
回数、およびアクセス回数を低減する際の低減手法につ
いて説明する。図5(a)はWP−ROM2に格納され
ている16ビットで量子化された波形サンプルデータを
示しており、#1は1番目の波形サンプルデータ、#2
は2番目の波形サンプルデータ、・・・・、#12は1
2番目の波形サンプルデータ・・・を示している。ま
た、図5(b)は、処理部A31において読み出しアド
レスを作成した際に前回の読み出しアドレスの整数部よ
り増分される整数部が+0,+1,+2,+3,+7の
場合に内挿補間を行う際に必要な波形サンプルデータの
内容を示している。なお、現在のバッファ35には図5
(a)の左端に示すように1番目の波形サンプルデータ
#1と2番目の波形サンプルデータ#2が格納されてお
り、ノーマルチャンネル(ノーマルch)とは内挿補間
が行われるチャンネルのことである。さらに、図5
(c)は2回のアクセス回数を1回に低減した際にWP
−ROM2から読み出される波形サンプルデータを示し
ている。この場合は、図4に示すように補間は省略され
る。このように補間が省略されるチャンネルが補間無し
チャンネルである。
【0028】ここで、処理部A31において読み出しア
ドレスを作成した際に前回の読み出しアドレスの整数部
より増分される整数部が+0,+1,+2,+3,+7
の場合に、内挿補間を行う際に必要な図5(b)に示さ
れているノーマルchにおける波形サンプルデータの内
容について説明する。作成された読み出しアドレスの整
数部の増分が+0の場合は、内挿補間に必要な波形サン
プルデータは現在のバッファ35の内容と同様であり、
1番目の波形サンプルデータ#1と2番目の波形サンプ
ルデータ#2とされる。従って、WP−ROM2へのア
クセス回数は「0」となる。また、作成された読み出し
アドレスの整数部の増分が+1の場合は、内挿補間に必
要な波形サンプルデータは「整数部+1」の欄に示すよ
うに、2番目の波形サンプルデータ#2と3番目の波形
サンプルデータ#3とされる。この場合は、WP−RO
M2へ1回アクセスして太枠で示される3番目の波形サ
ンプルデータ#3を読み出すことが必要となる。ここ
で、太枠内のデータは新たにWP−ROM2から読み出
してきたデータであることを示している。
【0029】さらに、作成された読み出しアドレスの整
数部の増分が+2の場合は、内挿補間に必要な波形サン
プルデータは「整数部+2」の欄に示すように、3番目
の波形サンプルデータ#3と4番目の波形サンプルデー
タ#4とされる。この場合は、WP−ROM2へ2回ア
クセスして太枠で示される3番目の波形サンプルデータ
#3と4番目の波形サンプルデータ#4とを読み出すこ
とが必要となる。さらにまた、作成された読み出しアド
レスの整数部の増分が+3の場合は、内挿補間に必要な
波形サンプルデータは「整数部+3」の欄に示すよう
に、4番目の波形サンプルデータ#4と5番目の波形サ
ンプルデータ#5とされる。この場合は、WP−ROM
2へ2回アクセスして太枠で示される4番目の波形サン
プルデータ#4と5番目の波形サンプルデータ#5とを
読み出すことが必要となる。さらにまた、作成された読
み出しアドレスの整数部の増分が+7の場合は、内挿補
間に必要な波形サンプルデータは「整数部+7」の欄に
示すように、8番目の波形サンプルデータ#8と9番目
の波形サンプルデータ#9とされる。この場合は、WP
−ROM2へ2回アクセスして太枠で示される8番目の
波形サンプルデータ#8と9番目の波形サンプルデータ
#9とを読み出すことが必要となる。
【0030】ここで、全アクセス回数が上限を越えてお
り、アクセス回数を低減させる場合は、WP−ROM2
へ2回アクセスするチャンネルが対象とされる。この対
象チャンネルは上記の例に示すように作成された読み出
しアドレスの整数部の増分が+2以上のチャンネルとさ
れ、対象チャンネルの内でアクセス回数が1回に低減さ
れたチャンネルが補間無しchとなる。補間無しchに
おいては、図5(c)に示すように作成された読み出し
アドレスの整数部の増分が+2の場合は、小数部fra
cを見て、3番目の波形サンプルデータ#3と4番目の
波形サンプルデータ#4とのいずれか一方の該小数部f
racの示す補間すべきポイントに近い方を1回のアク
セスによりWP−ROM2から読み出して補間すること
なく補間回路36から出力する。また、作成された読み
出しアドレスの整数部の増分が+3の場合は、小数部f
racを見て、4番目の波形サンプルデータ#4と5番
目の波形サンプルデータ#5とのいずれか一方の該小数
部fracの示す補間ポイントに近い方を1回のアクセ
スによりWP−ROM2から読み出して補間することな
く補間回路36から出力する。さらに、作成された読み
出しアドレスの整数部の増分が+7の場合は、小数部f
racを見て、8番目の波形サンプルデータ#8と9番
目の波形サンプルデータ#9とのいずれか一方の該小数
部fracの示す補間ポイントに近い方を1回のアクセ
スによりWP−ROM2から読み出して補間することな
く補間回路36から出力する。なお、補間回路21にお
いて行う補間態様は処理部B33により各チャンネル毎
に指示される。
【0031】次に、図6を参照しながら8ビットで量子
化された波形サンプルデータの補間に必要なアクセス回
数、およびアクセス回数を低減する際の低減手法につい
て説明する。図6(a)はWP−ROM2に格納されて
いる8ビットで量子化された波形サンプルデータを示し
ており、#1は1番目の波形サンプルデータ、#2は2
番目の波形サンプルデータ、・・・・、#20は20番
目の波形サンプルデータ・・・を示しており、16ビッ
トとされたバッファ35のエリア毎に連続する2つの波
形サンプルデータが格納されている。波形サンプルデー
タの読み出し時には、このエリア毎の2つの波形サンプ
ルデータが同時に読み出される。また、図6(b)は、
処理部A31において読み出しアドレスを作成した際に
前回の読み出しアドレスの整数部より増分される整数部
が+0,+1,+2,+3,+7,+8の場合に内挿補
間を行う際に必要なノーマルChにおける波形サンプル
データの内容を示している。なお、現在のバッファ35
には図6(a)の左端に示すように1番目の波形サンプ
ルデータ#1と2番目の波形サンプルデータ#2が格納
されている。さらに、図6(c)は2回のアクセス回数
を1回に低減した際にWP−ROM2から読み出される
波形サンプルデータを示している。この場合は、前述し
たように外挿補間が行われることになる。この外挿補間
が行われるチャンネルが外挿chである。
【0032】ここで、処理部A31において読み出しア
ドレスを作成した際に前回の読み出しアドレスの整数部
より増分される整数部が+0,+1,+2,+3,+
7,+8の場合に内挿補間を行う際に必要な図6(b)
に示されているノーマルchにおける波形サンプルデー
タの内容について説明する。作成された読み出しアドレ
スの整数部の増分が+0の場合は、内挿補間に必要な波
形サンプルデータは現在のバッファ35の内容と同様で
あり、1番目の波形サンプルデータ#1と2番目の波形
サンプルデータ#2とされる。従って、WP−ROM2
へのアクセス回数は「0」となる。また、作成された読
み出しアドレスの整数部の増分が+1の場合は、内挿補
間に必要な波形サンプルデータは「整数部+1」の欄に
色を濃くして示すように、2番目の波形サンプルデータ
#2と3番目の波形サンプルデータ#3とされる。この
場合は、WP−ROM2へ1回アクセスして3番目の波
形サンプルデータ#3を読み出すことが必要となる。た
だし、アドレスが同じとされた4番目の波形サンプルデ
ータ#4も同時に読み出される。
【0033】さらに、作成された読み出しアドレスの整
数部の増分が+2の場合は、内挿補間に必要な波形サン
プルデータは「整数部+2」の欄に色を濃くして示すよ
うに、3番目の波形サンプルデータ#3と4番目の波形
サンプルデータ#4とされる。この場合は、WP−RO
M2へ1回アクセスしてアドレスが同じとされた3番目
の波形サンプルデータ#3と4番目の波形サンプルデー
タ#4とを読み出すことが必要となる。さらにまた、作
成された読み出しアドレスの整数部の増分が+3の場合
は、内挿補間に必要な波形サンプルデータは「整数部+
3」の欄に示すように、4番目の波形サンプルデータ#
4と5番目の波形サンプルデータ#5とされる。この場
合は、WP−ROM2へ2回アクセスして4番目の波形
サンプルデータ#4と5番目の波形サンプルデータ#5
とを読み出すことが必要となる。ただし、アドレスが同
じとされた3番目の波形サンプルデータ#3と6番目の
波形サンプルデータ#6もそれぞれ読み出されることに
なる。
【0034】さらにまた、作成された読み出しアドレス
の整数部の増分が+7の場合は、内挿補間に必要な波形
サンプルデータは「整数部+7」の欄に示すように、8
番目の波形サンプルデータ#8と9番目の波形サンプル
データ#9とされる。この場合は、WP−ROM2へ2
回アクセスして8番目の波形サンプルデータ#8と9番
目の波形サンプルデータ#9とを読み出すことが必要と
なる。ただし、アドレスが同じとされた7番目の波形サ
ンプルデータ#7と10番目の波形サンプルデータ#1
0もそれぞれ読み出される。さらにまた、作成された読
み出しアドレスの整数部の増分が+8の場合は、内挿補
間に必要な波形サンプルデータは「整数部+8」の欄に
示すように、9番目の波形サンプルデータ#9と10番
目の波形サンプルデータ#10とされる。この場合は、
WP−ROM2へ1回アクセスしてアドレスが同じとさ
れた9番目の波形サンプルデータ#9と10番目の波形
サンプルデータ#10とを同時に読み出すことが必要と
なる。
【0035】ここで、全アクセス回数が上限を越えてお
り、アクセス回数を低減させる場合は、WP−ROM2
へ2回アクセスするチャンネルが対象とされる。この対
象チャンネルは上記の例に示すように作成された読み出
しアドレスの整数部の増分が+3以上の奇数増分(+
3,+5,+7,・・・)のチャンネルとされ、対象チ
ャンネルの内でアクセス回数が1回に低減されたチャン
ネルが外挿chとなる。外挿chにおいては、作成され
た読み出しアドレスの整数部の増分が+3の場合は、小
数部fracを見て、3番目の波形サンプルデータ#3
と4番目の波形サンプルデータ#4、ないし、5番目の
波形サンプルデータ#5と6番目の波形サンプルデータ
#6のいずれか一方の該小数部fracの示す補間ポイ
ントに近い方を1回のアクセスによりWP−ROM2か
ら同時に読み出して、図3(b)に示す外挿補間を補間
回路36において行う。また、作成された読み出しアド
レスの整数部の増分が+7の場合は、小数部fracを
見て、7番目の波形サンプルデータ#7と8番目の波形
サンプルデータ#8、ないし、9番目の波形サンプルデ
ータ#9と10番目の波形サンプルデータ#10のいず
れか一方の該小数部fracの示す補間ポイントに近い
方を1回のアクセスによりWP−ROM2から同時に読
み出して外挿補間を補間回路36において行う。
【0036】なお、補間回路36において内挿補間を行
う際に必要な波形サンプルデータは現在のバッファ35
に格納されている波形サンプルデータの内容に応じて変
化する。そこで、現在のバッファ35に格納されている
波形サンプルデータの内容が図6(d)の左端に示す状
態とされている場合に、前回の読み出しアドレスの整数
部より増分される整数部が+0,+1,+2,+3,+
7,+8の際に内挿補間に必要なノーマルchにおける
波形サンプルデータを図6(d)を参照しながら説明す
る。作成された読み出しアドレスの整数部の増分が+0
の場合は、内挿補間に必要な波形サンプルデータは現在
のバッファ35の内容と同様であり、2番目の波形サン
プルデータ#2と3番目の波形サンプルデータ#3とさ
れる。従って、WP−ROM2へのアクセス回数は
「0」となる。また、作成された読み出しアドレスの整
数部の増分が+1の場合は、内挿補間に必要な波形サン
プルデータは「整数部+1」の欄に色を濃くして示すよ
うに、3番目の波形サンプルデータ#3と4番目の波形
サンプルデータ#4とされる。これらの波形サンプルデ
ータは、既にバッファ35に格納されている波形サンプ
ルデータであるので、この場合はWP−ROM2へアク
セスする必要はなく、アクセス回数は「0」となる。
【0037】さらに、作成された読み出しアドレスの整
数部の増分が+2の場合は、内挿補間に必要な波形サン
プルデータは「整数部+2」の欄に色を濃くして示すよ
うに、4番目の波形サンプルデータ#4と5番目の波形
サンプルデータ#5とされる。この場合は、WP−RO
M2へ1回アクセスして5番目の波形サンプルデータ#
5を読み出すことが必要となる。ただし、アドレスが同
じとされた6番目の波形サンプルデータ#6も読み出さ
れる。さらにまた、作成された読み出しアドレスの整数
部の増分が+3の場合は、内挿補間に必要な波形サンプ
ルデータは「整数部+3」の欄に示すように、5番目の
波形サンプルデータ#5と6番目の波形サンプルデータ
#6とされる。この場合は、WP−ROM2へ1回アク
セスして5番目の波形サンプルデータ#5と6番目の波
形サンプルデータ#6とを読み出すようにすることが必
要となる。
【0038】さらにまた、作成された読み出しアドレス
の整数部の増分が+7の場合は、内挿補間に必要な波形
サンプルデータは「整数部+7」の欄に示すように、9
番目の波形サンプルデータ#9と10番目の波形サンプ
ルデータ#10とされる。この場合は、WP−ROM2
へ1回アクセスしてアドレスが同じとされた9番目の波
形サンプルデータ#9と10番目の波形サンプルデータ
#10とを読み出すことが必要となる。さらにまた、作
成された読み出しアドレスの整数部の増分が+8の場合
は、内挿補間に必要な波形サンプルデータは「整数部+
8」の欄に示すように、10番目の波形サンプルデータ
#10と11番目の波形サンプルデータ#11とされ
る。この場合は、WP−ROM2へ2回アクセスして1
0番目の波形サンプルデータ#10と11番目の波形サ
ンプルデータ#11とを読み出すことが必要となる。た
だし、アドレスが同じとされた9番目の波形サンプルデ
ータ#9と12番目の波形サンプルデータ#12も同時
に読み出される。
【0039】この場合に、全アクセス回数が上限を越え
ている際には、アクセス回数を低減させることになる
が、対象とされるのはWP−ROM2へ2回アクセスす
るチャンネルとされる。この対象チャンネルは上記の例
に示すように作成された読み出しアドレスの整数部の増
分が+4以上の偶数増分(+4,+6,+8,・・・)
のチャンネルとされ、対象チャンネルの内でアクセス回
数が1回に低減されたチャンネルが外挿chとなる。外
挿chの一例を挙げると、作成された読み出しアドレス
の整数部の増分が+8の場合は、小数部fracを見
て、9番目の波形サンプルデータ#9と10番目の波形
サンプルデータ#10、ないし、11番目の波形サンプ
ルデータ#11と12番目の波形サンプルデータ#12
のいずれか一方の該小数部fracの示す補間ポイント
に近い方を1回のアクセスによりWP−ROM2から読
み出して、図3(b)に示す外挿補間を補間回路36に
おいて行うようにすればよい。なお、補間回路21にお
いて行う補間態様は処理部B33により各チャンネル毎
に指示される。
【0040】以上説明したように読み出し回路21が全
アクセス数を監視して、全アクセス数が上限を越えた際
に全アクセス回数を低減できるよう、各チャンネルの補
間態様を変更することにより各チャンネルにおけるアク
セス回数を低減して、CPU11のパフォーマンスを向
上している。この処理は処理部B33で実行され、処理
部B33において読出準備処理と読出実行処理とが実行
される。そこで、処理部A31が各チャンネルのアドレ
スを更新している間に処理部B33において実行される
読出準備処理を図7に示すフローチャートを参照しなが
ら説明する。読出準備処理がスタートされると、ステッ
プS11にてRAM部32のアキュムレータ(ACC)
32がゼロクリアされることにより初期設定され、次い
でステップS12にでは、処理部A31で順次算出され
RAM部32のCRAMに登録される各チャンネルに必
要なWP−ROM2へのアクセス回数を、RAM部32
のACCの上で順次累算して、1サンプリング周期の半
分の期間毎にWP−ROM2にアクセスする全アクセス
回数が算出される。
【0041】そして、ステップS13にて算出された全
アクセス回数と音源レジスタ14にセットされた上限の
アクセス回数とが対比されて、算出された全アクセス回
数が制限回数以内か否かが判定され、上限を越えていな
い場合はYESと判定されて読出準備処理は終了する。
この場合は全てのチャンネルがノーマルchとなる。ま
た、算出された全アクセス回数が設定された上限を越え
ている場合は、ステップS14に進んで8ビットで量子
化された波形サンプルデータを2回アクセスして読み出
すチャンネルがあるか否かが判定される。この場合、8
ビットの波形サンプルデータを2回アクセスして読み出
すチャンネルがあった場合は、ステップS15に進んで
上述したように補間回路36において当該チャンネルに
おいては外挿補間を行うように指示することにより、当
該チャンネルにおけるアクセス回数を1回に低減する。
このステップS15においてアクセス回数が1回とされ
たチャンネルが外挿chであり、CRAMにチャンネル
番号と低減されたアクセス回数と外挿chであることが
登録し直される。
【0042】また、8ビットの波形サンプルデータを2
回アクセスして読み出すチャンネルがない場合は、ステ
ップS16に進んで2回アクセスするチャンネルの中で
最も減衰の進んだチャンネルの補間を省略するように指
示することにより、当該チャンネルにおけるアクセス回
数を1回に低減する。この際のチャンネルは16ビット
の波形サンプルデータを扱うチャンネルとなる。このス
テップS16においてアクセス回数が1回とされたチャ
ンネルが補間なしchであり、CRAMにチャンネル番
号と低減されたアクセス回数と補間無しchであること
が登録し直される。
【0043】そして、ステップS15あるいはステップ
S16の処理が終了すると、ステップS13に戻り、ス
テップS15あるいはステップS16の処理により全ア
クセス回数が制限回数内となったか否かが判定され、制
限回数内と判定された場合は読出準備処理は終了し、ま
だ、制限回数を超えていると判定された場合は再度ステ
ップS14ないしステップS16の処理が行われてアク
セス回数の低減が図られるようになる。これにより、全
アクセス回数は制限回数内となり、この際の各チャンネ
ルのアクセス回数はチャンネル番号および補間態様と共
にCRAMに登録し直されるようになる。なお、ステッ
プS15あるいはステップS16の処理が行われないチ
ャンネルはノーマルチャンネルとなる。以上の、各チャ
ンネルのアクセス回数の累算や、それに基づく外挿補
間、補間無しの判定は、それぞれ1サンプリング周期の
半分の周期毎に行われる。
【0044】次に、処理部B33で実行される読出実行
処理を図8に示すフローチャートを参照しながら説明す
る。読出実行処理は読出準備処理より、例えば1/2サ
ンプリング周期遅れて開始され、ステップS21にてA
CCに格納されているWP−ROM2への全アクセス回
数のアクセスが終了したか否かが判定される。そして、
全アクセスが終了していない場合はステップS22に進
み、次にアクセスするチャンネルが準備される。次い
で、準備されたチャンネルが内挿補間を行うノーマルチ
ャンネルか否かが当該チャンネルのCRAMに登録され
た情報を見て判定される。
【0045】ここで、ノーマルチャンネルと判定された
場合はステップS24にて当該チャンネルについて必要
なアクセス回数分の読み出しが実行される。この場合の
ノーマルチャンネルにおけるアクセスは、CRAMに登
録されている当該チャンネルのアクセス回数だけARA
Mに登録されている当該チャンネルの読み出しアドレス
におけるアドレス整数部に基づいて行われる。また、ス
テップS23にて外挿チャンネルあるいは補間無しチャ
ンネルと判定された場合は、ステップS25にて当該チ
ャンネルについて1アクセス分の読み出しが実行され
る。この場合の外挿チャンネルあるいは補間無しチャン
ネルにおけるアクセスは、ARAMに登録されている当
該チャンネルの読み出しアドレスにおけるアドレス整数
部に基づいて1回だけアクセスが行われる。
【0046】そして、ステップS24あるいはステップ
S25の処理が終了すると、ステップS21に戻り再度
全アクセス回数のアクセスが終了したか否かが判定さ
れ、全アクセスが終了するまでステップS21ないしス
テップS25の処理が繰り返し実行される。また、全ア
クセスが終了したとステップS21にて判定された場合
は、ステップS26にてその他処理が行われて読出実行
処理は終了する。なお、この読出実行処理が1ループす
る時間は、WP−ROM2のアクセスタイムに略等しく
なる。このアクセスタイムは、WP−ROM2へアドレ
スを供給した後、確定された読み出しデータが得られる
までの時間であり、読出回路21は読み出しアドレスを
供給してから略アクセスタイム経過した際に取込回路3
4に取り込みを指示している。
【0047】また、WP−ROM2における波形サンプ
ルデータを格納するメモリをダイナミックRAM(DR
AM)として構成することもできる。このように波形メ
モリをDRAMで構成する場合には、外部記憶装置に波
形サンプルデータを記録しておき、楽音発生装置を動作
させる際に波形サンプルデータを外部記憶装置からDR
AMにコピーすればよい。さらに、波形メモリをDRA
Mとした際にはリフレッシュ処理が必要となるので、読
出実行処理におけるステップS26においてDRAMの
リフレッシュ処理を行うようにすればよい。なお、上限
のアクセス回数は演奏音の状態を聴きながらユーザが任
意に設定することができ、その設定値は音源レジスタ1
4に格納される。すなわち、CPU11のパフォーマン
スが低下しているような演奏音とされている場合には、
上限のアクセス回数を低減するようにし、補間態様を外
挿補間から内挿補間に替えたい際には上限のアクセス回
数を増加するようにすればよい。また、上限のアクセス
回数をユーザが設定する代わりにCPU11の判定によ
り自動設定するようにしてもよい。
【0048】ところで、上記説明した楽音発生方法の一
例においては、WP−ROM2の読み出し幅が16ビッ
トとされ、1メモリアドレスに1サンプルあるいは2サ
ンプル記憶されていたが、本発明はこれに限るものでは
なく、読み出し幅が16ビットを超えていてもよく、ま
た、1メモリアドレスに3サンプル以上のn(ただし、
nは正の整数)サンプルが記憶されていてもよいもので
ある。この場合に、nサンプル以下のmサンプルを使用
して補間することにより、補間精度の良好な楽音を生成
することができる。以下、その説明を簡単に行う。楽音
を生成する際には、まず、ノートナンバを累算すること
により作成された読み出しアドレスに応じてmサンプル
の波形サンプルデータをWP−ROM2から読み出す。
そして、mサンプルを使用して読み出しアドレスの小数
部fracに従って補間を行う。mサンプルを用いる場
合の補間法としては、直線補間法に限らず、ラグランジ
ュ補間多項式を用いるラグランジュ補間や差分商に基づ
く補間法であるニュートン補間等の精度の良好な補間法
を採用することができる。
【0049】この場合、作成された読み出しアドレスを
中心とするmサンプルが1メモリアドレスに記憶されて
いる場合は、そのメモリアドレスによりWP−ROM2
へのメモリアクセスを1回行うことによりnサンプルを
読み出し、その内の該mサンプルを使用して中心部の補
間を行うための補間係数を使用して前記した補間を行う
ことにより、mサンプルの中心部の精度のよい補間値を
算出することができる。また、作成された読み出しアド
レスを中心とするmサンプルが1メモリアドレスに記憶
されていない場合があるが、この場合には読み出しアド
レスに近いmサンプルがnサンプルに含まれるメモリア
ドレスによりWP−ROM2へ1回だけメモリアクセス
して該nサンプルを読み出すようにする。そして、この
nサンプルの内の読み出しアドレスに近いmサンプルを
用いて中心部からはずれた位置での補間を行うための補
間係数を用いて前記した補間を行うことにより、mサン
プルの中心部からはずれた位置での精度の良好な補間値
を算出するようにする。この場合は2点補間により補間
することもあるが、3サンプル以上のmサンプルを用い
て中心部の補間を行う補間係数や中心部からはずれた位
置での補間を行う補間係数を使用してラグランジュ補間
やニュートン補間等により補間をすることができるの
で、上記図3(b)に示す直線補間より精度を向上させ
た補間を行うことができる。
【0050】このように、WP−ROM2へのアクセス
回数を1回だけ行ってmサンプルの中心からずれた位置
での補間を行っても、精度の良好な補間を行えるため楽
音波形にはそれほど悪影響を与えないようになる。従っ
て、生成される楽音波形に影響を与えることなく読出回
路21によるWP−ROM2へのアクセス回数を低減す
ることができ、これにより、CPU11のパフォーマン
スを向上することができる。特に、複数の発音チャンネ
ルの楽音波形を生成する際のように、読出回路21のW
P−ROM2へのアクセス回数が多くなる場合には、そ
のアクセス回数に制限が設けられることがある。この場
合に、アクセス回数が制限を越えた際には、上記したア
クセス回数を低減する手法を実行することによりアクセ
ス回数を制限回数内とすることができる。
【0051】以上説明したように本発明は、プログラム
と波形サンプルデータとが記憶されているメモリにおい
て、その1メモリアドレスにnサンプルの波形サンプル
データが記憶されており、読み出しアドレスに応じてメ
モリから読み出したnサンプル以下のmサンプルを用い
て補間することにより、楽音波形を生成するようにした
楽音発生方法にかかるものであって、波形サンプルデー
タを読み出すためのアクセス回数を低減することができ
るものである。
【0052】
【発明の効果】本発明は以上のように構成されているの
で、メモリにおける1メモリアドレスに複数の波形サン
プルデータが記憶されており、読み出しアドレスの整数
部に応じてメモリから読み出された波形サンプルデータ
を、読み出しアドレスの小数部に従って補間することに
より楽音を生成する際に、読み出しアドレスを中心とす
るmサンプルが1メモリアドレスに記憶されている場合
には、1回だけメモリにアクセスすることにより読み出
したmサンプルを使用して補間を行うようにしている。
そして、読み出しアドレスを中心とするmサンプルが1
メモリアドレスに記憶されていない場合には、メモリへ
のアクセス回数を1回として読み出しアドレスに近いm
サンプルを読み出し、当該mサンプルを使用して読み出
しアドレスの小数部に従い補間を行うようにしている。
このため、波形メモリ音源部がCPUとメモリバス上で
共有するメモリにアクセスするアクセス回数を低減する
ことができる。
【0053】さらに、複数チャンネルの楽音を生成する
際のように波形メモリ音源部からのメモリへのアクセス
回数が多い場合において、アクセス回数が制限を越えた
際に、アクセス回数を低減することができるようにな
る。これにより、CPUのパフォーマンスの低下を防止
することができ、CPUは高速に演算処理することがで
きるようになる。なお、メモリへのアクセス回数を低減
して読み出した波形サンプルデータを使用して行う補間
態様、例えば外挿補間としたことによる補間精度の劣化
はわずかであり発生される楽音にはほとんど影響を与え
ない。
【図面の簡単な説明】
【図1】 本発明の楽音発生方法の実施の形態における
楽音発生装置の構成例を示すブロック図である。
【図2】 本発明の楽音発生方法における楽音発生装置
の波形メモリ音源部の読出回路の詳細構成を示すブロッ
ク図である。
【図3】 本発明の楽音発生方法における内挿補間と外
挿補間を示す図である。
【図4】 本発明の楽音発生方法における補間無しを示
す図である。
【図5】 本発明の楽音発生方法における16ビットの
波形サンプルデータを扱う際の補間を説明するための図
である。
【図6】 本発明の楽音発生方法における8ビットの波
形サンプルデータを扱う際の補間を説明するための図で
ある。
【図7】 本発明の楽音発生方法における楽音発生装置
の処理部Aが実行する読出準備処理のフローチャートを
示す図である。
【図8】 本発明の楽音発生方法における楽音発生装置
の処理部Bが実行する読出実行処理のフローチャートを
示す図である。
【符号の説明】
1 音源LSI、2 WAVE&PROGRAM RO
M、3 DAC、4 サウンドシステム、5 MIDI
端子、6 鍵盤、7 パネル表示器&パネル操作子、1
1 CPU、12 タイマ、13 RAM、14 音源
レジスタ、15MIDIインタフェース、16 シリア
ルI/O、17 パラレルI/O、18アクセス管理、
19 バスライン、31 処理部A、32 RAM部、
33処理部B、34 取込回路、35 バッファ、36
補間回路

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】 プログラムと波形サンプルデータを記憶
    したメモリがメモリバス上に接続され、演算処理部が前
    記メモリから前記バスを通じてプログラムを読み出して
    実行すると共に、波形メモリ音源部が前記メモリから前
    記バスを通じて波形サンプルデータを読み出して楽音波
    形を生成するようになされており、 前記メモリには、前記波形サンプルデータの連続するサ
    ンプルが各メモリアドレスにn(ただし、nは正の整
    数)サンプルずつ記憶され、 前記波形メモリ音源部は、サンプリング周期毎に、生成
    する楽音の音高に応じた速度で変化する読み出しアドレ
    スを発生し、該読み出しアドレスを中心とするm(ただ
    し、m≦n)サンプルを前記メモリから読み出し、該読
    み出しアドレスの小数部に応じて補間して楽音波形を生
    成する際に、該読み出しアドレスを中心とするmサンプ
    ルが前記メモリの1メモリアドレスに記憶されている場
    合には、該mサンプルを読み出して該読み出しアドレス
    に従って補間を行い、該読み出しアドレスを中心とする
    mサンプルが前記メモリの1メモリアドレスに記憶され
    ていない場合には、前記メモリのアクセス回数を1回と
    して該読み出しアドレスに近いmサンプルを読み出して
    該読み出しアドレスに従って補間を行うことにより、前
    記波形メモリ音源部の前記メモリのアクセス回数を低減
    するようにしたことを特徴とする楽音発生方法。
  2. 【請求項2】 プログラムと波形サンプルデータを記憶
    したメモリがメモリバス上に接続され、演算処理部が前
    記メモリから前記バスを通じてプログラムを読み出して
    実行すると共に、波形メモリ音源部が前記メモリから前
    記バスを通じて波形サンプルデータを読み出して複数チ
    ャンネルの楽音波形を生成するようにされており、 前記メモリには、前記波形サンプルデータの連続するサ
    ンプルが各メモリアドレスにn(ただし、nは正の整
    数)サンプルずつ記憶され、 前記波形メモリ音源部は、各チャンネルにおいて、サン
    プリング周期毎に、生成する楽音の音高に応じた速度で
    変化する読み出しアドレスを発生し、該読み出しアドレ
    スの整数部を中心とするm(ただし、m≦n)サンプル
    を前記メモリから読み出し、該読み出しアドレスの小数
    部に応じて補間して楽音波形を生成する際に、前記メモ
    リへの1サンプリング周期内における全アクセス回数が
    制限回数を超える場合には、読み出すmサンプルが2メ
    モリアドレスにまたがっているチャンネルについて、該
    読み出しアドレスを中心とするmサンプルを読み出して
    該読み出しアドレスに従って補間を行う代わりに、前記
    メモリのアクセス回数を1回として該読み出しアドレス
    に近いmサンプルを前記メモリの1つのメモリアドレス
    から読み出して該読み出しアドレスに従って補間を行う
    ことにより、前記波形メモリ音源部の前記メモリへの全
    アクセス回数を低減するようにしたことを特徴とする楽
    音発生方法。
JP01195598A 1998-01-07 1998-01-07 楽音発生方法 Expired - Fee Related JP3152197B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP01195598A JP3152197B2 (ja) 1998-01-07 1998-01-07 楽音発生方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01195598A JP3152197B2 (ja) 1998-01-07 1998-01-07 楽音発生方法

Publications (2)

Publication Number Publication Date
JPH11202865A JPH11202865A (ja) 1999-07-30
JP3152197B2 true JP3152197B2 (ja) 2001-04-03

Family

ID=11792052

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01195598A Expired - Fee Related JP3152197B2 (ja) 1998-01-07 1998-01-07 楽音発生方法

Country Status (1)

Country Link
JP (1) JP3152197B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1663257A (zh) * 2002-04-19 2005-08-31 德国普莱特科技公司 小波变换系统,方法和计算机程序产品
US7169996B2 (en) * 2002-11-12 2007-01-30 Medialab Solutions Llc Systems and methods for generating music using data/music data file transmitted/received via a network

Also Published As

Publication number Publication date
JPH11202865A (ja) 1999-07-30

Similar Documents

Publication Publication Date Title
US5691493A (en) Multi-channel tone generation apparatus with multiple CPU's executing programs in parallel
US6326537B1 (en) Method and apparatus for generating musical tone waveforms by user input of sample waveform frequency
US5625158A (en) Musical tone generating apparatus
US5584034A (en) Apparatus for executing respective portions of a process by main and sub CPUS
US9040800B2 (en) Musical tone signal generating apparatus
JPH03282498A (ja) 楽音発生装置
JP3152197B2 (ja) 楽音発生方法
JPH0922287A (ja) 楽音波形生成方法
JP2882311B2 (ja) ミュージックシステム、音源および楽音合成方法
JPH0486795A (ja) 楽音発生装置
US5710386A (en) Method and apparatus for efficiently controlling access to stored operation control data and tone forming data
JPH07121181A (ja) 音声情報処理装置
US6085309A (en) Signal processing apparatus
JP2003108122A (ja) 音波形データ用ディジタル信号処理装置
JP2671690B2 (ja) 電子楽器
US5939655A (en) Apparatus and method for generating musical tones with reduced load on processing device, and storage medium storing program for executing the method
JP2797142B2 (ja) 電子楽器用処理装置
JP2576614B2 (ja) 処理装置
JPH09179561A (ja) 楽音生成方法
JP3230449B2 (ja) 信号処理装置
JP3651675B2 (ja) 電子楽器
JPH0997067A (ja) 楽音発生方法および楽音発生装置
JP3543203B2 (ja) 電子楽器
JP2546464B2 (ja) 電子楽器
JP3832382B2 (ja) 楽音生成装置及びプログラム

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20001226

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: 20090126

Year of fee payment: 8

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

Free format text: PAYMENT UNTIL: 20100126

Year of fee payment: 9

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

Free format text: PAYMENT UNTIL: 20110126

Year of fee payment: 10

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

Free format text: PAYMENT UNTIL: 20120126

Year of fee payment: 11

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

Free format text: PAYMENT UNTIL: 20130126

Year of fee payment: 12

LAPS Cancellation because of no payment of annual fees