JP2010039266A - 楽音信号生成装置 - Google Patents

楽音信号生成装置 Download PDF

Info

Publication number
JP2010039266A
JP2010039266A JP2008202926A JP2008202926A JP2010039266A JP 2010039266 A JP2010039266 A JP 2010039266A JP 2008202926 A JP2008202926 A JP 2008202926A JP 2008202926 A JP2008202926 A JP 2008202926A JP 2010039266 A JP2010039266 A JP 2010039266A
Authority
JP
Japan
Prior art keywords
address
waveform
memory
page
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.)
Granted
Application number
JP2008202926A
Other languages
English (en)
Other versions
JP5146188B2 (ja
Inventor
Tokio Shirakawa
登喜男 白河
Shigematsu Fujita
成松 藤田
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 JP2008202926A priority Critical patent/JP5146188B2/ja
Publication of JP2010039266A publication Critical patent/JP2010039266A/ja
Application granted granted Critical
Publication of JP5146188B2 publication Critical patent/JP5146188B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Abstract

【課題】波形メモリに対するアクセス速度を向上して、発音チャンネル数を増やす。
【解決手段】高速ページアクセス可能な波形メモリ9は、8アドレス単位のページサイズpでページ分けされ、各ページの最終アドレスに記憶されたサンプルは、その次のページの先頭アドレスに重複して記憶されている。アドレスカウンタ11は、各発音チャンネルの読み出しレートを累算して、サンプルアドレスを生成し、メモリアドレス生成部12は、サンプルアドレスの整数部SAiとInt[SAi/(p−1)]を加算して、メモリアドレスMAを生成する。メモリアドレスMAを用いて波形メモリをページアクセスしMAと(MA+1)とから2サンプルを読み出して、読み出した2サンプル間をサンプルアドレスの小数部SAfに基づいて補間して、各発音チャンネルの補間済み波形サンプルを累算して、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する。
【選択図】図3

Description

この発明は、波形メモリ方式の楽音信号生成装置に関し、特に、波形メモリからのデータ読み出し法を改良し、それに伴い波形メモリのデータの記憶法を改良することにより波形メモリのアクセス速度を向上できるようにしたものである。
従来より、波形メモリ方式の音源(波形メモリ音源)により構成される楽音信号生成装置が知られている。波形メモリ音源は、波形メモリの各アドレスに1サンプルずつ記憶された波形データに基づいて楽音信号を生成するものであって、発音チャンネルごとに時分割動作することにより、サンプリング周期毎に、所定の複数の発音チャンネル分の楽音信号を同時に生成することができた。すなわち、1サンプリング周期を均等に分割した各発音チャンネルに対応するタイムスロット毎に波形メモリに対してアクセスが行われて、波形メモリから波形サンプルが読み出され、このようにして読み出された連続する何点かの波形サンプルを用いてサンプル間補間することにより、各発音チャンネルごとに1サンプリング周期分の波形サンプルを生成し、複数の発音チャンネルごとの波形サンプルをサンプリング周期毎に累算することで、全体として複数の発音チャンネル分の楽音信号を生成する。
上記構成の波形メモリ音源において、波形メモリから波形サンプルを読み出す方式として、「単発読み出し型」方式が従来あった。「単発読み出し型」の場合は、波形メモリへの1度のアクセスごとに、1つのアドレス信号を出力して、1つのアドレスにアクセスし、該アドレス信号に特定される1つのアドレスに記憶された波形サンプルを読み出す。なお、アドレス信号により波形メモリ上の記憶位置(アドレス)を特定し、その特定したアドレスに直接アクセスする方法を、一般に、ランダムアクセスという。
また、波形メモリから波形サンプルを読み出す方式の別の例として、「連続読み出し型」方式が従来あった。「連続読み出し型」場合は、波形メモリにおいて、連続する複数アドレスを1フレームとするフレーム単位で波形サンプルを記憶しており、波形メモリに対する1度のアクセスにより、1フレームを構成する複数アドレス分の複数の波形サンプルを読み出す(例えば、下記特許文献1を参照)。このように1度のアクセスで複数の波形サンプルを読み出すことをバースト読み出しという。
また、下記特許文献2には、バースト読み出しを行うための構成として、波形メモリの各アドレス毎に、波形サンプルを複数サンプルずつ記憶しておき、波形メモリに対する1度のアクセス毎に、複数サンプル単位で読み出しを行うことが記載されている。
特開2004‐126127号公報 特開平10‐20860号公報
ところで、上述した通り波形メモリ音源は、時分割動作により複数の発音チャンネル分の楽音信号を生成することを実現している。従って、音源のサンプリング周期毎の発音チャンネル数は、音源の波形メモリに対するアクセス速度によって制限される。つまり、波形メモリに対するアクセス速度が、発音チャンネル数を制限するボトルネックとなっている要素である。従って、波形メモリに対するアクセス速度を向上すれば、結果的に発音チャンネル数を増やすことが可能となる。
しかし、上記従来の「単発読み出し型」の波形メモリ音源では、ランダムアクセスにより1度のアクセスごとに1アドレスから波形サンプルを読み出していたので、波形メモリに対するアクセス速度の向上をすることに限度があった。その結果、「単発読み出し型」の波形メモリ音源においては、発音チャンネル数を増やすことが著しく制限されていたという不都合があった。
また、上記単発読み出し型の波形メモリ音源が、サンプル間補間用のバッファを持たない構成の場合、1回の読み出しタイミング毎に補間演算に使うための複数点の波形サンプルを読み出すために、波形メモリに対して複数回アクセスしなければならない。例えば2サンプルを用いた2点補間(直線補間)を行うとすると、各サンプリング周期の各発音チャンネルの読み出しタイミング毎に、波形メモリに対して2回アクセスする必要がある。すなわち、サンプル間補間用のバッファを設けないことでコストを下げることができるが、その反面、波形サンプルの読み出し効率が悪くなり、発音チャンネル数がより一層制限される。
これに対して、上記従来の「連続読み出し型」の波形メモリ音源では、1度のアクセスごとに複数個の波形サンプルを読み出していたので、波形メモリに対するアクセス速度を向上することはできるが、1度のアクセスで波形メモリから読み出す複数個の波形サンプルに相当するデータ量(フレームサイズ)以上のデータ容量のバッファを、音源部に設けなければならない。すなわち、従来の複数サンプルをバースト読み出する方式では、バースト読み出しするデータサイズに対応するデータ容量のバッファが必要となり、構成が複雑化し回路規模が大きくなるという不都合があった。
この発明は、上記の点に鑑みてなされたもので、波形メモリに対するアクセス速度を向上して、それにより発音チャンネル数を増やすことができる楽音信号生成装置を提供することを目的とする。
この発明は、波形メモリに記憶された波形データに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成装置であって、アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリであって、各アドレスに前記波形データを1サンプルずつ記憶しており、各ページの最終アドレスに記憶されたサンプルは、その次のページの先頭アドレスにも重複して記憶した波形メモリと、各サンプリング周期毎に、各発音チャンネルの読み出しレートを累算して、整数部と小数部からなるサンプルアドレスを各発音チャンネル毎に生成するアドレスカウンタと、各サンプリング周期毎に、前記アドレスカウンタで生成したサンプルアドレスの整数部を、各ページの最終アドレスに対応する値を飛び越すメモリアドレスに変換するメモリアドレス生成部と、各サンプリング周期毎に、前記メモリアドレス生成部により生成された各発音チャンネルのメモリアドレスを用いて前記波形メモリをページアクセスし、前記メモリアドレスからの連続する2つのアドレスに記憶された2つのサンプルを読み出す読み出し部と、各サンプリング周期毎に、前記読み出し部により読み出された各発音チャンネル毎の2個のサンプル間を、前記アドレスカウンタで生成した前記サンプルアドレスの小数部に基づいてサンプル間補間して、該補間されたサンプルを各発音チャンネル毎に生成する補間部と、前記補間部により補間された各発音チャンネル毎のサンプルに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成部とを具えることを特徴とする楽音信号生成装置である。
波形メモリは、アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリであって、各アドレスに前記波形データを1サンプルずつ記憶しており、各ページの最終アドレスに記憶されたサンプルは、その次のページの先頭アドレスにも重複して記憶されている。各サンプリング周期毎に、各発音チャンネルの読み出しレートを累算して、整数部と小数部からなるサンプルアドレスを各発音チャンネル毎に生成し、該生成したサンプルアドレスの整数部を、各ページの最終アドレスに対応する値を飛び越すメモリアドレスに変換して、各発音チャンネルのメモリアドレスを用いて波形メモリをページアクセスし、該メモリアドレスからの連続する2つのアドレスに記憶された2つのサンプルを読み出して、読み出された各発音チャンネル毎の2個のサンプル間を、サンプルアドレスの小数部に基づいてサンプル間補間して、各発音チャンネル毎の補間済みサンプルに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する。よって、各サンプリング周期毎の各発音チャンネルのページアクセスで、補間に必要な2つの波形サンプルを読み出せる。また、メモリアドレスは各ページの最終アドレスに対応する値を飛び越すので、メモリアドレスからの連続する2つのアドレスは常に同一ページ内のアドレスとなる。メモリアドレスは各ページの最終アドレスを指すことがなくなるが、各ページの最終アドレスに記憶されたサンプルは、その次のページの先頭アドレスにも重複して記憶されているので、該最終アドレスのサンプルとその次のサンプル間の補間ができるようになっている。
前記メモリアドレス生成部の構成例として、前記ページサイズの所定アドレス数をpとおくと、アドレスカウンタで生成したサンプルアドレスの整数部SAiと該整数部SAiの関数である[SAi/(p−1)]の整数部とを加算した結果に基づきメモリアドレスMAを生成するよう構成することで、サンプルアドレスの整数部を、各ページの最終アドレスに対応する値を飛び越すメモリアドレスに変換できる。
また、この発明は、波形メモリに記憶された波形データに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成装置であって、アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリであって、各アドレスに前記波形データを1サンプルずつ記憶しており、各ページの最終からn−1個の各アドレスに記憶された波形データのサンプルは、その次のページの先頭からn−1個の各アドレスにも重複して記憶した波形メモリと、各サンプリング周期毎に、各発音チャンネルの読み出しレートを累算して、整数部と小数部からなるサンプルアドレスを各発音チャンネル毎に生成するアドレスカウンタと、各サンプリング周期毎に、前記アドレスカウンタで生成したサンプルアドレスの整数部を、各ページの最終からn−1個のアドレスに対応する値を飛び越すメモリアドレスに変換するメモリアドレス生成部と、各サンプリング周期毎に、前記メモリアドレス生成部により生成された各発音チャンネルのメモリアドレスを用いて前記波形メモリをページアクセスし、前記メモリアドレスからの連続するn個のアドレスに記憶されたn個のサンプルを読み出す読み出し部と、各サンプリング周期毎に、前記読み出し部により読み出された各発音チャンネル毎のn個のサンプル間を、前記アドレスカウンタで生成した前記サンプルアドレスの小数部に基づいてサンプル間補間して、該補間されたサンプルを各発音チャンネル毎に生成する補間部と、前記補間部により補間された各発音チャンネル毎のサンプルに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成部とを具えることを特徴とする楽音信号生成装置である。
ページアクセスによりページ内の所定のn個のサンプルずつ読み出す場合には、波形メモリの各ページの最終からn−1個の各アドレスに記憶された波形データのサンプルは、その次のページの先頭からn−1個の各アドレスにも重複して記憶される。メモリアドレス生成部は、アドレスカウンタで生成したサンプルアドレスの整数部を、各ページの最終からn−1個のアドレスに対応する値を飛び越すメモリアドレスに変換する。そして、各サンプリング周期毎に、各発音チャンネルのメモリアドレスを用いて、波形メモリをページアクセスし、該メモリアドレスからの連続するn個のアドレスに記憶されたn個のサンプルを読み出して、読み出された各発音チャンネル毎のn個のサンプル間を、サンプルアドレスの小数部に基づいてサンプル間補間して、補間された各発音チャンネル毎のサンプルに基づいて、複数発音チャンネルの楽音信号を生成する。
上記のページアクセスによりページ内の所定のn個のサンプルずつ読み出す場合には、メモリアドレス生成部の構成例として、前記ページサイズの所定アドレス数をpとおくと、アドレスカウンタで生成したサンプルアドレスの整数部SAiと、該整数部SAiの関数である[SAi/(p−n+1)]の整数部に(n−1)を乗算した値とを加算した結果に基づき、メモリアドレスを生成するよう構成することで、サンプルアドレスの整数部を、各ページの最終からn−1個のアドレスに対応する値を飛び越すメモリアドレスに変換できる。
この発明によれば、波形メモリとして、アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリを用いて、各ページの最終アドレス(最終からn−1個の各アドレス)に記憶されたサンプルは、その次のページの先頭アドレスにも重複して記憶しておくとともに、各発音チャンネルで各ページの最終アドレス(最終からn−1個のアドレス)を避けたメモリアドレスを生成することで、各サンプリング周期内の各発音チャンネル毎のアクセスタイミングで、ページアクセスを用いて、波形メモリの同一ページ内の連続する2アドレス(n個のアドレス)から2つのサンプル(n個のサンプル)を高速で読み出すことができる。
各発音チャンネルのサンプル間補間に用いるサンプルは、サンプリング周期毎に、波形メモリから読み出すようになっているので、発音チャンネル毎のバッファメモリが不要であり、その分だけ楽音信号生成装置の構成を簡単化することができる。
従って、この発明にかかる楽音信号生成装置によれば、簡単な構成で、波形メモリ9に対するアクセス速度を向上して、発音チャンネル数を増やすことができるという優れた効果を奏する。
以下、この発明の一実施例について図面を参照して詳細に説明する。この実施例では、この発明に係る波形メモリ音源(楽音信号生成装置)を電子楽器に適用した例について説明する。
図1は、本発明の波形メモリ音源(楽音信号生成装置)を適用した電子楽器の全体構成を示すブロック図である。図1において、電子楽器は、CPU1、フラッシュメモリ2、RAM3、演奏操作子4、操作子5、表示器6、データ入出力インターフェース(I/O)7、音源部8、波形メモリ9、およびサウンドシステム10を含んで構成される。CPU1には、データおよびアドレスバスライン1Bを介して、フラッシュメモリ2、RAM3、演奏操作子4、操作子5、表示器6、入出力I/O7、および音源部8の各デバイスが接続されており、バスライン1Bを介して接続された各デバイスとの間でアドレス信号を含む各種データを通信する。
CPU1、フラッシュメモリ2、およびRAM3は電子楽器の動作を制御する制御部である。フラッシュメモリ2には、CPU1が実行する各種プログラムを記憶されており、CPU1は、フラッシュメモリ2に記憶されたプログラムをRAM3に読み出し、該読み出したプログラムを実行する。
演奏操作子4は、ユーザが演奏操作を入力するための操作子と、該演奏操作を検出するための検出機構とを含み、例えば、複数の鍵からなる鍵盤により構成される。ユーザは、演奏操作子4を用いて、楽音の発音及び止音を指示し、また、発音すべき楽音の音高とベロシティ(音量)とを指示することができる。CPU1は、演奏操作子4の操作に応じた検出信号をバスライン1Bを介して受信して、受信した検出信号に基づき該演奏操作子4の操作に応じた演奏イベントデータを発生する。
操作子5は、ユーザが音色の選択や選択された音色の各種パラメータの値の入力等を行うための操作子と、その操作を検出するための検出機構とを含む。前記音色の各種パラメータには、例えば楽音の音量を制御する音量パラメータや、楽音に対して効果付与するための各種エフェクタを設定するパラメータなどが含まれる。ユーザは、操作子5を操作して、音色の選択、音量の調整、あるいは各種エフェクタのパラメータの値の調整等を含む各種パラメータの設定を行うことができる。CPU1は、操作子5の操作に応じた検出信号をバスライン1Bを介して受信して、該受信した検出信号に基づき操作子5の操作に応じた各種データを発生する。
表示器6は、電子楽器の操作パネルに配置され、CPU1による表示制御に基づき各種情報を表示する表示器であって、例えば液晶ディスプレイ等で構成される。また、電子楽器は、入出力I/O7を介して各種外部の装置とデータ通信可能に接続される。入出力I/O7は、例えばMIDI規格の信号を送受信するためのMIDIインターフェースや、あるいはEthernet(登録商標)規格の通信インターフェースなど、従来から知られる適宜の規格のデータ入出力インターフェースにより構成される。
波形メモリ9は、複数の音色に対応する複数の波形データを記憶したメモリであって、詳しくは後述する通り、データの読み出し方式として「高速ページモード」によるアクセス(ページアクセス)が可能なメモリによって構成される。波形メモリ9は、書き換え可能な不揮発性メモリ(フラッシュメモリ)やダイナミックRAM(DRAM)により構成されてもよいし、書き換え不可能な不揮発性メモリ(ROM)により構成されてもよい。波形データは、アナログ音響信号を、所定のサンプリングレートで標本化(サンプリング)し、サンプリング点ごとの瞬時振幅を示す標本値を、固定ビット数のデジタルデータとして記録したデータである。この明細書では、サンプリング点ごとの瞬時振幅を示す標本値(波形データのサンプル)のことを「波形サンプル」という。
音源部8は、サンプリング周期毎に波形メモリ9にアクセスし、該波形メモリ9から波形サンプルを読み出して、該読み出した波形サンプルを用いて楽音信号を生成する波形メモリ音源である。音源部8は、所定の複数の発音チャンネルを有しており、時分割動作することにより、サンプリング周期毎に、複数の発音チャンネル分の楽音信号を同時に生成することができる。音源部8で生成された楽音信号は、アンプおよびスピーカを含んで構成されるサウンドシステム10に供給され、該サウンドシステム10から発音される。
この発明によれば、詳しくは後述する通り、波形メモリ9からのデータ読み出し法を改良し、それに伴い波形メモリ9の波形サンプルの記憶法を改良することにより、波形メモリ9をアクセスする手法としてページアクセスを適用することを可能とし、もって音源部8の波形メモリ9に対するアクセス速度を向上し、その結果として、サンプリグ周期毎の発音チャンネル数を増やすことができる。
図2は、波形メモリ9の構成例を示す図である。波形メモリ9には、複数のN個の波形データ(「波形データ1」、「波形データ2」、「波形データ3」…「波形データN」)が記憶されている。電子楽器のユーザは、操作子5の操作等により、用意されている複数の音色(音色データ)の中から演奏に用いる1つのを選択することができる。各音色データは、波形データを選択するための波形選択情報、音量変化を制御する音量エンベロープパラメータ等を含む。波形選択情報に基づいて、N個の波形データの中から、演奏される楽音の音高や強度に応じて、異なる波形データが選択される。
図2おいて、1つの波形データ(「波形データ2」)の構成を詳細に示す。1つの波形データは、複数WS個の波形サンプル(「サンプル0」、「サンプル1」、「サンプル2」…「サンプル(WS−1)」)からなり、波形サンプルの1つずつが波形メモリ9のアドレス番号「0」、「1」、「2」…「(WS−1)」の1アドレス毎に記憶されている。各波形サンプルは、基本的には、アドレス番号順に読み出すことでサンプリング元となった楽音信号(波形データ)を再生できるよう、時系列順に並べて記憶されている。すなわち、アドレス番号の順序が波形データの瞬時位相の時間的進展に対応する。なお、図2において、アドレス番号「0」、「1」、「2」…「(WS−1)」は、各波形サンプルが記憶されたアドレスの番号を、当該波形データの先頭の波形サンプル「サンプル0」のアドレスを起点(「0」)とする相対的なアドレス番号により10進数で表現している。
WSは、1つの波形データのデータサイズ(波形サイズ)を表すパラメータであって、1つの波形データを構成する波形サンプルの数に対応する。波形メモリ9には、1つのアドレスに1つの波形サンプルが記憶されているので、1つの波形データの波形サイズWSは、当該波形データを記憶したアドレス数に対応する。従って、波形サイズWSがわかれば、その波形データの最終アドレスを特定することができる。図2において、波形データ2の先頭の波形サンプルのアドレス番号が「0」から始まっているので、波形データ2の最終アドレスは「(WS−1)」と表現される。ここでは、説明を簡単にするため、波形データはワンショット読み出しされるタイプとする。なお、本発明は、アタック部とループ部とを有しアタック部が一通り読み出された後、ループ部が繰り返し読み出されるタイプの波形データ等、その他のタイプの波形データにも適用可能である。
また、先頭アドレスTAは、波形データの先頭の波形サンプルが記憶されたアドレスを、波形メモリ9上で特定するポインタである。従って、或る波形データの或る波形サンプルの波形メモリ9上での絶対的な記憶位置は、当該波形データの先頭アドレスTAと、その波形サンプルのアドレスとの組み合わせにより特定できる。
波形メモリ9は、「ページアクセス」が可能なメモリであるので、そのアドレス空間は、所定アドレス数のページサイズp毎の複数のページにページ分けされている。図2に示す通り、この実施例では、波形メモリ9のアドレス空間は、1ページあたり8アドレス毎のページにページ分けされている。例えば、アドレス番号0、1、2…7までの8アドレスが第1ページp1を構成し、アドレス番号8、9、10…15までの8アドレスが第2ページp2を構成する。
「高速ページモード」によるアクセスは、波形メモリ9の何れかのアドレスに最初にアクセスした後であれば、その最初のアクセスより短いアクセス時間で、そのアドレスと同じページ内のアドレスに順次アクセスできるものである。この明細書では、その最初のアクセスとそれに続くn−1個のアクセスをまとめて「ページアクセス」と呼ぶことにする。なお、「n」は正の整数である。この実施例では、ページアクセスの一例として、1度のアクセス毎に、1つのページ内の2つのアドレスに記憶された2つの波形サンプルを読み出すものとする。なお、メモリを「ページアクセス」することによりデータを高速読み出しする技術自体は、マスクROMやフラッシュメモリなどにおけるデータ高速読み出し技術として、従来から知られている。
波形メモリ9の各ページの最終アドレスに記憶された波形サンプルは、その次のページの先頭アドレスにも重複して記憶されている。このように、各ページの最終アドレスと、その次のページの先頭アドレスとに、同じ波形サンプルを重複して記憶しておくことは、各サンプリング周期の各発音チャンネルのページアクセスで、補間に必要な2つの波形サンプルが読み出せるようにする工夫である。
例えば、第1ページp1の最終アドレスであるアドレス番号7に記憶された「サンプル7」は、その次の第2ページp2の先頭アドレスであるアドレス番号8にも記憶されており、アドレス番号8に続くアドレス番号9以降に「サンプル7」に続く「サンプル8」以降の波形サンプルが順次記憶される。同様に、ページp2の最終アドレスであるアドレス番号15に記憶された「サンプル14」は、その次のページp3の先頭アドレスであるアドレス番号16にも記憶されており、アドレス番号17以降に「サンプル14」に続く「サンプル15」以降の波形サンプルが順次記憶される。
つまり、各ページの最終アドレスに記憶された波形サンプルが、次のページの先頭アドレスに重複して記憶されていることを除けば、各波形サンプルは、アドレス番号の順に、波形データの瞬時位相の時間的進展に従って1つずつ時系列順に並べて記憶されている。
図3は、図1に示す音源部8の詳細な構成を示すブロック図である。音源部8は、アドレスカウンタ11、メモリアドレス生成部12、サンプル間補間部13、音量エンベロープ付与(音量EG)部14、ミキサ15、デジタルアナログ変換部(DAC)16、および制御レジスタ17を含んで構成されている。音源部8の各部は、図示外のクロック発生器で発生したシステムクロックを動作基準にして動作する。音源部8が波形データを処理するサンプリング周期は、システムクロックを分周して生成される。
また、音源部8は、システムクロックに基づき、サンプリング周期を、所定複数の発音チャンネルに対応するタイムスロットごとに等分割して、各タイムスロットごとの時分割チャンネルタイミングにおいて、それぞれ対応する発音チャンネルの処理を実行することで、複数の発音チャンネルの時分割動作を行う。具体的には、アドレスカウンタ11、メモリアドレス生成部12、サンプル間補間部13、および音量EG付与部14が、それぞれ、所定の複数発音チャンネルの時分割動作を行う。そして、ミキサ15がサンプリング周期毎に該所定の複数発音チャンネルのデータを累算することで、音源部8は、全体として、サンプリング周期毎に複数発音チャンネル分の楽音信号を生成する処理を行う。
制御レジスタ17は、アドレスカウンタ11、メモリアドレス生成部12、サンプル間補間部13、音量EG部14、およびミキサ15の各部の動作に用いる各種パラメータの値を格納するレジスタであって、バスライン1Bを介してCPU1に接続されている。制御レジスタ17には、前記所定複数発音チャンネル毎の記憶領域が設けられており、後述するノートオンイベント処理によりCPUIが生成する各発音チャンネル毎の各種パラメータの値が該所定複数発音チャンネル毎の記憶領域に設定される。制御レジスタ17に設定される各種パラメータは、発音すべき楽音の周波数(音高)に対応する読み出しレート(Fナンバ)、波形データのサイズWS、波形データの先頭アドレスTA、音量の時間的な変化を制御するための音量エンベロープパラメータAEGの係数などである。
アドレスカウンタ11は、各サンプリング周期毎に、制御レジスタ17に設定された各発音チャンネルの読み出しレート(Fナンバ)を累算して、その累算値を当該発音チャンネルのサンプルアドレスSAとして出力するカウンタである。Fナンバは、各発音チャンネルで生成する楽音信号の音高に対応して、波形サンプルの読み出しレート(サンプルアドレスSAの進行レート)を制御するパラメータである。アドレスカウンタ11は、各発音チャンネル毎の発音開始時にリセットされ、その後、各サンプリング周期ごとに、各発音チャンネルのFナンバを累算することで、「0」を初期値とし、各発音チャンネル毎の波形データサイズWSによって特定される最終アドレス(WS−1)をカウント上限値として、Fナンバの値に応じたレートで進行するサンプルアドレスSAを、各発音チャンネル毎に生成する。サンプルアドレスSAは、整数部SAiと小数部SAfからなり、整数部SAiはメモリアドレス生成部12に供給され、小数部SAfはサンプル間補間部13に供給される。
メモリアドレス生成部12は、各サンプリング周期毎に、前記アドレスカウンタ11で生成された各発音チャンネルのサンプルアドレス整数部SAiと、各発音チャンネルの先頭アドレスTAと、波形メモリ9のページサイズpとに基づいて、発音チャンネルメモリアドレスMAを求める演算を行い、メモリアドレスMAを波形メモリ9に出力する。メモリアドレスMAは、アクセスすべき波形メモリ9のアドレス番号を示すデータである。
メモリアドレスMAを求めるために行われる演算式は、
MA=TA+SAi+Int[SAi/(p−1)]…(式1)
である。
この演算式(1)において、「TA」は、波形データの先頭アドレスであり、何れかのページの先頭になるよう調整されている。「SAi」はアドレスカウンタ11から供給されたサンプルアドレスの整数部である。「p」はページサイズ(1ページのアドレス数)である。Int[SAi/(p−1)]はサンプルアドレス整数部SAiの関数であって、計算式[SAi/(p−1)]の整数部を求める関数である。(式1)により、サンプルアドレス整数部SAiは、先頭アドレスTAを初期値とし、且つ、Int[SAi/(p−1)]が加算されたメモリアドレスMAに変換される。
この(式1)によりサンプルアドレス整数部SAiに基づくメモリアドレスMAを生成することで、詳しくは後述する通り、各ページの最終アドレスに対応する値となるところで、次のページの先頭アドレスとなるよう後ろにシフトして、該最終アドレスに対応する値を飛び越す(避ける)よう変換して該メモリアドレスMAを生成することができる。これにより、該メモリアドレスを用いてアクセスされる2サンプルが、波形メモリ9の2つのページ境界をまたがないものとなる。この変換は、ページアクセスによる2サンプルの読み出しを実現するために必須である。
音源部8は、各サンプリング周期毎に、前記メモリアドレス生成部12において上記演算により求めた各発音チャンネルのメモリアドレスMAを用いて波形メモリ9に対して時分割でページアクセスして、メモリアドレスMAとそれに続くメモリアドレス(MA+1)との2つの連続するアドレスに記憶された2サンプル分の波形サンプル(メモリデータMD)を各発音チャンネル毎に読み出す。これにより、各サンプリング周期の時分割チャンネルタイミング毎に、各発音チャンネルの波形サンプルを2サンプルずつ読み出すことができる。各サンプリング周期毎の、当該発音チャンネルのタイムスロットでページアクセスされた当該発音チャンネルの2つの波形サンプルは、それぞれ波形メモリ9から出力されるタイミングで、符号18,19で示す第1のラッチL1及び第2のラッチL2にラッチされる。
サンプル間補間部13は、サンプリング周期毎に、アドレスカウンタ11から供給される各発音チャンネルのサンプリングアドレス小数部SAfに基づき、符号18,19で示す第1ラッチL1及び第2ラッチL2にラッチされた当該発音チャンネルの2つの波形サンプルを用いたサンプル間補間演算を行い、当該発音チャンネルのサンプルアドレスSAの示すサンプリング点に対応する補間済み波形サンプルを出力する。
音量EG部14は、各サンプリング周期毎に、制御レジスタ17に設定された各発音チャンネル毎の音量エンベロープパラメータに基づいて当該発音チャンネルの音量の時間変化を示す音量エンベロープ波形AEGを生成し、サンプル間補間部13から出力された当該発音チャンネルの補間済み波形サンプルの音量を、該音量エンベロープ波形AEGで制御する。
ミキサ15は、各サンプリング周期毎に、音量EG部14から出力される各発音チャンネルの波形サンプルを累算(ミキシング)して、そのミキシング結果として得られる複数発音チャンネル分の波形サンプルからなる楽音信号を、サンプリング周期毎に、DAC16に出力する。DAC16は、サンプリング周期毎に、ミキサ15から出力された楽音信号をアナログ音響信号に変換して、該アナログ変換したアナログ音響信号を、サンプリング周期毎にサウンドシステム10へ出力する。
上記構成からなる音源部8において、各発音チャンネルの楽音信号生成に用いる各種パラメータは、演奏データ(MIDIデータ)のイベントに応じてCPU1が実行するノートオンイベント処理によって制御レジスタ17に設定される。図4は、そのようなイベント処理の一例であり、新たな楽音の発音を指示するノートオンイベントが供給されたときに、CPU1が実行するノートオンイベント処理の手順を示すフローチャートである。CPU1は、演奏操作子4の発音操作(例えば鍵盤の押鍵)が検出されたときに、該発音操作された演奏操作子4に応じた音高(押鍵された鍵の音高)の発音を指示するノートオンイベントが生じたものとして、ノートオンイベント処理を実行する。
ステップS1において、CPU1は、発音指示された音高(押鍵された鍵の音高)をノートナンバレジスタNNに、発音指示された強度(押鍵速度)をベロシティレジスタVELにそれぞれ取り込む。
ステップS2において、CPU1は、音源部8の複数の発音チャンネルの中から、前記検出された発音指示に応じた楽音信号生成に使用する発音チャンネルを選択し(割り当て)、該選択した発音チャンネルのチャンネル番号を、割当チャンネルレジスタaに代入する。
ステップS3において、CPU1は、現在選択されている音色の波形選択情報に基づき、前記N個の波形データの中から、ノートナンバNNおよびベロシティVELに応じた波形データを選択する。これは、同じ音色の波形データであっても、音高の違いおよび音量の違いに応じて、波形の形状が異なっているためである。
ステップS4において、CPU1は、前記ステップS3で選択された波形データの原ピッチと、ノートナンバNNと音高差(セント単位)に基づき、Fナンバを生成する。原ピッチは、波形データをサンプリングしたときのオリジナルの音高(ピッチ)であり、波形選択情報内に記憶されている。Fナンバは、各発音チャンネルで、ノートナンバNNに応じた音高の楽音信号を生成するために、選択された波形データの原ピッチの音高をずらす量(セント単位)に応じて決定される読み出しレートである。このFナンバの値により、各発音チャンネル毎の波形サンプルの読み出しレート(サンプルアドレスSAの進行レート)が制御される。
ステップS5において、CPU1は、レジスタaの値に応じて、制御レジスタ17の発音チャンネルaの記憶領域に、前記ステップS4で決定したFナンバ、前記ステップS3で選択した波形データの先頭アドレスTA、該波形データの波形サイズWS、現在選択されている音色の音量エンベロープパラメータなどを含む楽音信号の生成に必要な各種パラメータの値を設定する。
そして、ステップS6において、CPU1は、レジスタaの値に従い、発音チャンネルaにおける楽音信号の生成開始(発音開始)を、音源部8に対して指示する。これにより、音源部8は、楽音信号が割り当てられた発音チャンネルaを用いて、制御レジスタ17に設定された各種パラメータに基づく楽音信号を生成する処理を開始する。
すなわち、アドレスカウンタ11の当該発音チャンネルaのカウント値SA(a)は、当該発音チャンネルaの発音開始時にリセットされ、その後、各サンプリング周期毎に、制御レジスタ17に設定された発音チャンネルaのFナンバを累積して、Fナンバに応じたレートで進行する発音チャンネルaのサンプルアドレスSA(a)を生成する。メモリアドレス生成部12は、各サンプリング周期毎に、発音チャンネルaのサンプルアドレス整数部SAi(a)を、上述した(式1)による演算によりメモリアドレスMA(a)に変換する。すなわち、メモリアドレス生成部12は、制御レジスタ17に設定された先頭アドレスTA(a)を初期値とし、且つ、サンプルアドレス整数部SAi(a)に加算値Int[SAi(a)/(p−1)]を加算したメモリアドレスMA(a)を生成する。アドレスカウンタ11が、発音チャンネルaの発音開始時にリセットされ、Fナンバに応じたレートで進行するので、発音チャンネルaのメモリアドレスMA(a)は、先頭アドレスTA(a)を初期値として、Fナンバに応じたレートで進行する。
従って、音源部8は、各サンプリング周期毎に、生成される当該発音チャンネルaのメモリアドレスMA(a)を用いて、波形メモリ9をページアクセスして、波形メモリ9からアドレス番号MA(a)とアドレス番号(MA(a)+1)との連続する2アドレス分の波形サンプルを読み出す処理を繰り返す。
各サンプリング周期毎に、前記ページアクセスにより、波形メモリ9から出力される当該発音チャンネルaの2つの波形サンプルは、各サンプリング周期の時分割チャンネルタイミング毎に、符号18,19で示す第1及び第2のラッチL1,L2にラッチされる。サンプル間補間部13は、各サンプリング周期毎に、第1及び第2のラッチL1,L2にラッチされる当該発音チャンネルaの2つの波形サンプルを用いて、アドレスカウンタ11から供給された小数部SAfに基づくサンプル間補間演算(2点補間)を行うことで、サンプルアドレスSA(a)に応じたサンプリング点の補間済みの波形サンプルを生成する。このように、音源部8は、各サンプリング周期毎に、波形メモリ9をページアクセスして、各発音チャンネルのサンプル間補間に必要な波形サンプルを読み出すように構成されているので、サンプル間補間用の発音チャンネル毎のバッファメモリを設けなくてもよい。
上記において、波形サンプルの読み出し速度(Fナンバ)は、ノートオンイベントにより発音指示された音高(ノートナンバNN)と、当該発音チャンネルに割り当てられた波形データの原ピッチの音高差に応じた値に設定されているので、波形メモリに記憶されている該波形データは、波形メモリ9から読み出されて2点補間される過程で、発音指示された音高の楽音信号となるようピッチシフトされる。なお、ここでの波形メモリの読み出し方式は、一定のサンプリング周期に同期したピッチ非同期方式であるが、本発明をピッチ同期方式に適用してもよい。
サンプリング周期毎に、サンプル間補間部13から出力される当該発音チャンネルaの波形サンプルは、音量EG部14において、制御レジスタ17に設定された当該発音チャンネルaの音量エンベロープパラメータに基づいて生成された音量エンベロープ波形AEGにより音量の時間変化が制御され、ミキサ15に出力される。ミキサ15は、各サンプリング周期毎に、音量EG部14から出力される複数発音チャンネル(当該発音チャンネルaを含む)の波形サンプルを累算して、複数発音チャンネル分の波形サンプルを累算した楽音信号をDAC16に出力する。そして、DAC16において、サンプリング周期毎に、ミキサ15から出力された複楽音信号をアナログ音響信号に変換して、サウンドシステム10に出力する。かくして、音源部8は、ユーザによって発音指示された楽音信号を、ユーザが指定した音高で再生することができる。
図5は、この実施例にかかるページアクセスによる波形サンプル読み出し動作を、サンプルアドレスSAの値に対応付けて説明するための図である。図5を参照して、1つの発音チャンネルの波形データの読み出し動作を詳細に説明する。図5において、右端の列には、波形サイズWSの1つの波形データを構成する波形サンプル0、波形サンプル1、波形サンプル2、…波形サンプル(WS−1)が縦に並べて描かれており、各波形サンプルに対応して、各波形サンプルが記憶されたアドレス番号0、アドレス番号1、アドレス番号2…アドレス番号(WS−1)が示されている。波形メモリ9は、図2を参照して説明した通り、1ページのアドレス数を8アドレスとするページ単位に区分されており、各ページの最終アドレスと後続のページの先頭アドレスには同じ波形サンプルが重複して記憶されている。
図5の左端の列には、アドレスカウンタ11から出力されるサンプルアドレス整数部SAiが縦に並べて示されており、SAi列の左隣には、各サンプルアドレス整数部SAiに対する加算値Int[SAi/(p−1)]が示されている。また、Int[SAi/(p−1)]列の左隣には、同じ行に示されたSAiとInt[SAi/(p-1)]を式(1)に代入した結果として出力されるメモリアドレスMAの値が示されている。すなわち、図5の各行には、サンプルアドレス整数部SAiの値と、それに対応するメモリアドレスMAの値、そして、そのメモリアドレスMAの値に対応する波形メモリ9のアドレス番号と、そのメモリアドレスMAを用いたページアクセスにより読み出される2サンプル分の波形サンプルの対応関係が示されている。
例えば、SAiの値が「0」のときは、SAiに対する加算値は、Int[0/(8−1)]=0であるから、メモリアドレスMAの値は「0」である。なお、実際にメモリアドレス生成部12から出力されるメモリアドレスMAの値は、現音色の波形データの先頭アドレスTAを初期値とする値、すなわち「SAi+Int[SAi/(p−1)]」に先頭アドレスTAを加算した値となるが、ここでは説明の便宜上、先頭アドレスTAの値を「0」として説明している。なお、先頭アドレスTAは、ページの先頭アドレスとなるよう調整されているので、先頭アドレスTAが「0」以外の場合であっても、メモリアドレスMAがシフトされるだけであり、ページアクセスの状況は基本的には同じである。
各サンプリング周期毎に、音源部8から波形メモリ9に対して、時分割で複数発音チャンネル分のページアクセスが行われる。当該発音チャンネルのページアクセスでは、まず最初のアクセスでアドレス信号としてメモリアドレスMAの値「0」が出力され、上位アドレス「0」(4ビット目以上)で選択されたページの、下位アドレス「0」(3ビット)で選択されたデータ、すなわち、アドレス番号「0」の「サンプル0」が読み出される。次の第2のアクセスでメモリアドレス「1」が出力されるが、最初のアクセスと同一ページ内のアドレスであるので、高速ページモードでのアクセスが可能であり、最初のアクセスより短いアクセス時間で、アドレス番号1の「サンプル1」が読み出される。図5において、楕円図像は、波形メモリ9に対する1度のページアクセスにより波形メモリ9から読み出される2アドレス分の波形サンプルを明示するものであって、メモリアドレスMAとして「0」が出力されたときに読み出される2つの波形サンプルを示す楕円図像に符号30を付与している。
当該発音チャンネルのサンプルアドレスSAは、サンプリング周期毎に、当該発音チャンネルの読み出しレート(Fナンバ)ずつ進行する。例えば、次のサンプリング周期でも、SAiの値が変わらず「0」のままであれば、上述した動作を繰り返し、ページアクセスにより「サンプル0」と「サンプル1」が読み出される。SAiの値が「1」〜「6」の何れかに進行した場合は、SAiに対する加算値はInt[SAi/(8−1)]=0であるから、メモリアドレスMAの値はSAiの値に対応する「1」〜「6」のいずれかの値となる。例えば、当該発音チャンネルのSAiが「2」となったときは、ページアクセスにより「サンプル2」と「サンプル3」が読み出される。
上記の通り、ページアクセスは、1つのページ内の2アドレスの波形サンプルを高速で読み出す方式であるから、1度のページアクセスで、2つのページ境界にまたがる2アドレスの波形サンプルを読み出すことはできない。例えば、1度のアクセスで、第1ページp1の最終アドレス(アドレス番号7)と第2ページp2の先頭アドレス(アドレス番号8)とからデータを読み出すことはできない。
このため、メモリアドレスMAを求める演算式(1)において、サンプルアドレス整数部SAiにInt[SAi/(p−1)]を加算することで、順番に進行させて行くと、各ページの最終アドレスとなってしまうMAを次のページの先頭アドレスへシフトして、メモリアドレスMAとして各ページの最終アドレスに該当する値が生成されないようになっている。
図5において、メモリアドレスMAの列に示された数字を見れば、MAの値として、ページの最終アドレスに該当する「7」、「15」…が含まれていないことがわかる。これにより、メモリアドレスMAが各ページの最終アドレスとなることはなくなり、メモリアドレスMAとMA+1は同一ページ内のアドレスとなる。つまり、1度のページアクセスで、各発音チャンネルの2サンプルの読み出しができるようになる。メモリアドレスMAは各ページの最終アドレスを指すことがなくなるが、その場合でも、該最終アドレスの波形サンプルと、その次の波形サンプルの間の補間ができるように、その次のページの先頭アドレスには、該最終アドレスの波形サンプルが重複して記憶されている。各発音チャンネルについて、同じページ内の2サンプルをページアクセスで読み出す方式では、サンプルアドレスSAiから各ページの最終アドレスを避けたメモリアドレスMAを生成しただけでは、読み出され補間される波形サンプルの連続性が損なわれてしまうが、各ページの最終アドレスの波形サンプルを、その次のページの先頭アドレスにも記憶しておくことで、そのような不都合が生じない。
例えば、SAiが「7」まで進行した場合は、SAiに対する加算値がInt[7/(8−1)]=1となるため、メモリアドレスMAの値は「8」である。波形メモリ9においては、該メモリアドレスMAの値「8」に該当するアドレス番号8を含む第2ページp2がアクセス対象に選択され、該選択されたページp2内のアドレス番号8が選択される。ここで、波形メモリ9は、第1ページp1の最終のアドレス番号7に記憶された「サンプル7」を、次の第2ページp2の先頭のアドレス番号8にも記憶しているので、音源部8は、メモリアドレスMAの値「8」を用いた波形メモリ9に対するページアクセスにより、符号31で示す通り、第2ページp2の先頭のアドレス番号8に記憶された「サンプル7」と、それに連続するアドレス番号9に記憶された「サンプル8」との2つの波形サンプルを読み出す。
その他のページの最終アドレスのアドレス番号15、23…についても、メモリアドレスMAとして、その値が生成されないようになっており、且つ、これら各ページの最終アドレスのそれぞれに記憶された波形サンプルと同じ波形サンプルが次のページの先頭アドレスにそれぞれ記憶されている。これにより、SAiを「8」以降に進行させていった場合でも、生成されるMAの値がページの最終アドレスになることはなく、波形メモリ9の1回のページアクセスによって、サンプル間補間に必要な2サンプルを読み出すことができる。
図6は、高速ページモードによるアクセスの一例を示すタイミングチャートである。1つの発音チャンネルあたりの2サンプルの読み出しは、高速ページモードを用いて行われる。図6において、アクセス時間は、音源部8のシステムクロックのクロック数で表現されている。第1タイミング40では、或るページ対する最初のアクセスであるため、メモリアドレスMAを用いたアドレス指定により、MAの上位ビット(4ビット目以上)で指定されたページの、MAの下位ビット(3ビット)で特定されるアドレスの波形サンプルが読み出される。この最初のアクセスでは、通常モードでのアクセスと同等の8クロック時間がかかる。そして、次回の第2タイミング41では、メモリアドレスMA+1を用いた第2のアクセスで、同一ページ内の、MA+1の下位ビット(3ビット)で特定されるアドレスの波形サンプルが読み出されるが、高速ページモードでの同一ページ内アクセスであるので、これには3クロック時間だけしか掛からない。以下、第3タイミング42以降のアクセスも、アドレスが同一ページ内である限り、高速ページモードでの同一ページ内アクセスとすることができ、3クロック時間での読み出しができる。
このように、ページアクセスでは、同一ページ内で読み出す波形サンプルの数を増やすほど、1波形サンプルあたりのアクセス時間を短縮することができる。各発音チャンネルについて、サンプル間補間に必要な波形サンプルを読み出す時間が短縮されるので、サンプリング周期が同じであれば、音源部8の発音チャンネル数をより多い数とすることができる。逆に、発音チャンネル数を同じとすれば、音源部8における生成楽音のサンプリング周波数をより高くすることができる。
例えば、音源部8のシステムクロックを14ナノ秒(14ns)、1サンプリング周期のシステムクロック数を1536クロック(サンプリング周波数は46.5kHz)とすると、図6の例では、最初のアクセスに8クロック、第2のアクセスに3クロック掛かるので、各発音チャンネルのページアクセスにかかるクロック数は、「8+3」=「11クロック」である。従って、この条件では、音源部8に設けられる最大発音チャンネル数は、1536/「8+3」=139チャンネルとなる。
対するに、従来の通常モードでのアクセスでは、2回のアクセスにそれぞれ8クロック掛かるので、発音チャンネルあたりでは「8+8」=「16クロック」掛かり、最大発音チャンネル数は、1536/「8+8」=96チャンネルとなる。このことから、ページアクセスで発音チャンネルあたりのアクセス時間を短縮することで、音源部8の発音チャンネル数を増加できることが理解できる。
以上説明した通り、本実施例によれば、波形メモリ9として、ページアクセスが可能なメモリを用いて、各ページ境界の2アドレスの波形サンプルは前後のページの両方に記憶しておくとともに、各発音チャンネルで各ページの最終アドレスを避けたメモリアドレスMAを生成することで、各サンプリング周期内の各発音チャンネル毎のアクセスタイミングで、ページアクセスを用いて波形メモリ9の同一ページ内の連続する2アドレスから波形サンプルを高速で読み出すことができる。
また、各発音チャンネルのサンプル間補間に用いる波形サンプルは、サンプリング周期毎に、波形メモリ9から読み出すようになっているので、発音チャンネル毎のバッファメモリが不要であり、その分だけ音源部8の構成を簡単化することができる。
従って、この実施例にかかる音源部8によれば、簡単な構成で、波形メモリ9に対するアクセス速度を向上して、発音チャンネル数を増やすことができるという優れた効果を奏する。
なお、上記実施例では、波形メモリ9に対する1度のアクセス毎に、連続する2アドレスから2つの波形サンプルを読み出す例について説明した。ページアクセスにより、1度のアクセス毎に読み出すサンプル数は、2つに限らず、1度のページアクセス毎に、連続するnアドレスからn個の連続する波形サンプルを読み出すよう構成されてよい(nは正の整数)。1度のページアクセス毎に、n個の波形サンプルずつ読み出すよう設計されている場合には、波形メモリ9は、各ページの最終から(n−1)アドレスと、次のページの先頭から(n−1)アドレスに、それぞれ同じ波形サンプルを重複して記憶しておく。そして、メモリアドレス生成部12は、下記演算式(2)によりメモリアドレスMAを生成する。
MA=TA+SAi+Int[SAi/{p−(n−1)}]×(n−1)
=TA+SAi+Int[SAi/(p−n+1)]×(n−1)…(式2)
これにより、メモリアドレスMAを用いて波形メモリ9をページアクセスし、1度のアクセス毎に、メモリアドレスMAから(MA−n+1)までの連続するn個のアドレスから、n個の連続する波形サンプルを各発音チャンネル毎に読み出すことができる。この場合、音源部8は、波形サンプルをラッチするラッチをn個具備して、各サンプリング周期毎に、各発音チャンネル毎に読み出した該n個の波形サンプルを用いて、サンプルアドレス小数部SAfに基づくサンプル間補間を行い、当該発音チャンネルのサンプルアドレスSAに応じた補間済み波形サンプルを得て、更に、当該発音チャンネルの音量エンベロープパラメータに応じた音量の時間変化を付与することで、当該発音チャンネルの波形サンプルを形成する。そして、各サンプリング周期毎に、形成される複数の発音チャンネルの波形サンプルは累算され、複数発音チャンネル分の楽音信号としてDAC16に出力される。この場合、各発音チャンネルのページアクセスに掛かるクロック数は「8+3×(n−1)」である。例えば、nを4として場合は、「8+3×3」=「17クロック」となり、最大発音チャンネル数は、1536/17=90チャンネルである。対するに、ページアクセスを用いない場合の最大発音チャンネル数は、1536/「8×4」=48チャンネルであり、本発明では、それに比べて42チャンネルも増やせることになる。
また、上記実施例では、波形メモリ9のページサイズpを1ページあたり8アドレスとする例について説明したが、波形メモリ9として、ページサイズpが、例えば1ページあたり16アドレス等、その他任意のアドレス数のメモリを用いることができる。
なお、上記の実施例においては、波形メモリ9の1アドレスに記憶された1つの波形サンプルが有意のデータとして読み書きされるので、1アドレスが1ワードに対応していた。従って、上記実施例の説明中の、例えば、「1度のページアクセス毎に、連続するnアドレスからn個の波形サンプルを読み出す」や、「ページサイズpを1ページあたり8アドレス」などという記載は、「アドレス」という文言を「ワード」という文言に置き換えれば、「1度のページアクセス毎に、連続するnワードの波形サンプルを読み出す」や、「ページサイズpを1ページあたり8ワード」と表現される。
また、上記実施例では、本発明の楽音信号生成装置(波形メモリ音源)を電子楽器に適用する例について説明したが、この発明にかかる楽音信号生成装置(波形メモリ音源)は、電子楽器に限らず、音源として楽音信号生成装置(波形メモリ音源)を登載するいかなる装置に適用することも可能である。
また、上記実施例の波形メモリでは、第2のアクセス以降でもアドレス指定を行う高速ページモードによる読み出し機能を備えたメモリを用いていた。しかしながら、本発明の第2のアクセス以降では、最初のアクセスに連続するアドレスから順次読み出すのであるから、高速ページモードを備えたメモリに代えて、最初のアクセスに続くアドレスのデータを、第2アクセス以降、アドレス信号なしで読み出すことができるバースト読み出しの機能を備えたメモリを用いることもできる。
また、上記実施例では、サンプルアドレスSAは、発音開始時に「0」リセットされるようになっていたが、「0」以外の値(−Toff)をセットして発音を始めるようにしてもよい。その場合、波形データの先頭アドレスTAは、「TA+Toff」になる。
また、上記実施例では、波形データの先頭アドレスTAを、何れかのページの先頭アドレスとしていたが、必ずしもページの先頭アドレスとしなくてもよい。
この発明に係る楽音信号生成装置を適用した電子楽器の全体構成例を示すブロック図。 図1の波形メモリの構成例を説明する図。 図1の音源部の構成例を説明するブロック図。 発音指示に応じてCPUが実行するノートオンイベント処理の手順の一例を示すフローチャート。 図3の音源部のページアクセスによる波形サンプル読み出し動作をサンプルアドレスSAの値に対応付けて説明するための図。 高速ページモードによるアクセスの一例を示すタイミングチャート。
符号の説明
1 CPU、2 ROM、3 RAM、4 演奏操作子、5 操作子、6 表示器、7 入出力I/O、8 音源部、9 波形メモリ、10 サウンドシステム、11 アドレスカウンタ、12 メモリアドレス生成部、13 サンプル間補間部、14 音量EG部、15 ミキサ、16 デジタルアナログ変換部

Claims (4)

  1. 波形メモリに記憶された波形データに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成装置であって、
    アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリであって、各アドレスに前記波形データを1サンプルずつ記憶しており、各ページの最終アドレスに記憶されたサンプルは、その次のページの先頭アドレスにも重複して記憶した波形メモリと、
    各サンプリング周期毎に、各発音チャンネルの読み出しレートを累算して、整数部と小数部からなるサンプルアドレスを各発音チャンネル毎に生成するアドレスカウンタと、
    各サンプリング周期毎に、前記アドレスカウンタで生成したサンプルアドレスの整数部を、各ページの最終アドレスに対応する値を飛び越すメモリアドレスに変換するメモリアドレス生成部と、
    各サンプリング周期毎に、前記メモリアドレス生成部により生成された各発音チャンネルのメモリアドレスを用いて前記波形メモリをページアクセスし、前記メモリアドレスからの連続する2つのアドレスに記憶された2つのサンプルを読み出す読み出し部と、
    各サンプリング周期毎に、前記読み出し部により読み出された各発音チャンネル毎の2個のサンプル間を、前記アドレスカウンタで生成した前記サンプルアドレスの小数部に基づいてサンプル間補間して、該補間されたサンプルを各発音チャンネル毎に生成する補間部と、
    前記補間部により補間された各発音チャンネル毎のサンプルに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成部と
    を具えることを特徴とする楽音信号生成装置。
  2. 前記ページサイズの所定アドレス数をpとすると、
    前記メモリアドレス生成部は、アドレスカウンタで生成したサンプルアドレスの整数部SAiと該整数部SAiの関数である[SAi/(p−1)]の整数部とを加算した結果に基づきメモリアドレスを生成するものであることを特徴とする請求項1に記載の楽音信号生成装置。
  3. 波形メモリに記憶された波形データに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成装置であって、
    アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリであって、各アドレスに前記波形データを1サンプルずつ記憶しており、各ページの最終からn−1個の各アドレスに記憶された波形データのサンプルは、その次のページの先頭からn−1個の各アドレスにも重複して記憶した波形メモリと、
    各サンプリング周期毎に、各発音チャンネルの読み出しレートを累算して、整数部と小数部からなるサンプルアドレスを各発音チャンネル毎に生成するアドレスカウンタと、
    各サンプリング周期毎に、前記アドレスカウンタで生成したサンプルアドレスの整数部を、各ページの最終からn−1個のアドレスに対応する値を飛び越すメモリアドレスに変換するメモリアドレス生成部と、
    各サンプリング周期毎に、前記メモリアドレス生成部により生成された各発音チャンネルのメモリアドレスを用いて前記波形メモリをページアクセスし、前記メモリアドレスからの連続するn個のアドレスに記憶されたn個のサンプルを読み出す読み出し部と、
    各サンプリング周期毎に、前記読み出し部により読み出された各発音チャンネル毎のn個のサンプル間を、前記アドレスカウンタで生成した前記サンプルアドレスの小数部に基づいてサンプル間補間して、該補間されたサンプルを各発音チャンネル毎に生成する補間部と、
    前記補間部により補間された各発音チャンネル毎のサンプルに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成部と
    を具えることを特徴とする楽音信号生成装置。
  4. 前記ページサイズの所定アドレス数をpとすると、
    前記メモリアドレス生成部は、アドレスカウンタで生成したサンプルアドレスの整数部SAiと、該整数部SAiの関数である[SAi/(p−n+1)]の整数部に(n−1)を乗算した値とを加算した結果に基づき、メモリアドレスを生成するものであることを特徴とする請求項3に記載の楽音信号生成装置。
JP2008202926A 2008-08-06 2008-08-06 楽音信号生成装置 Expired - Fee Related JP5146188B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008202926A JP5146188B2 (ja) 2008-08-06 2008-08-06 楽音信号生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008202926A JP5146188B2 (ja) 2008-08-06 2008-08-06 楽音信号生成装置

Publications (2)

Publication Number Publication Date
JP2010039266A true JP2010039266A (ja) 2010-02-18
JP5146188B2 JP5146188B2 (ja) 2013-02-20

Family

ID=42011884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008202926A Expired - Fee Related JP5146188B2 (ja) 2008-08-06 2008-08-06 楽音信号生成装置

Country Status (1)

Country Link
JP (1) JP5146188B2 (ja)

Also Published As

Publication number Publication date
JP5146188B2 (ja) 2013-02-20

Similar Documents

Publication Publication Date Title
JP5614420B2 (ja) 楽音発生装置、電子楽器、プログラム及び楽音発生方法
JP4998046B2 (ja) 楽音発生装置
US5625158A (en) Musical tone generating apparatus
JP2785531B2 (ja) 電子楽器
US9040800B2 (en) Musical tone signal generating apparatus
JP5915420B2 (ja) 楽音発生装置、楽音発生方法、電子楽器及びプログラム
JP5146188B2 (ja) 楽音信号生成装置
US6207885B1 (en) System and method for rendition control
JPH0563799B2 (ja)
JP2704722B2 (ja) 電子楽器
JP2861007B2 (ja) 電子楽器
US5817964A (en) Electronic musical instrument and method for storing a plurality of waveform sampling data at a single address
JP4236570B2 (ja) 波形再生装置および波形再生プログラム
JP3045130B2 (ja) 電子楽器
JP5807419B2 (ja) 信号処理装置
JP6531432B2 (ja) プログラム、音源装置及び音響信号生成装置
JP2591160B2 (ja) 波形選択合成装置
JP4254677B2 (ja) 楽音発生装置および楽音発生処理のプログラム
JP3561939B2 (ja) 波形メモリ音源
JP3044712B2 (ja) 電子楽器
JP3855710B2 (ja) 音波形データ用ディジタル信号処理装置
JPH039476B2 (ja)
JP3858905B2 (ja) メモリ使用音源装置
JP2991436B2 (ja) 楽音信号発生装置
JP3095323B2 (ja) 電子楽器

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110620

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120919

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121112

R150 Certificate of patent or registration of utility model

Ref document number: 5146188

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151207

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees