JP5146188B2 - Music signal generator - Google Patents

Music signal generator Download PDF

Info

Publication number
JP5146188B2
JP5146188B2 JP2008202926A JP2008202926A JP5146188B2 JP 5146188 B2 JP5146188 B2 JP 5146188B2 JP 2008202926 A JP2008202926 A JP 2008202926A JP 2008202926 A JP2008202926 A JP 2008202926A JP 5146188 B2 JP5146188 B2 JP 5146188B2
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.)
Expired - Fee Related
Application number
JP2008202926A
Other languages
Japanese (ja)
Other versions
JP2010039266A (en
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 JP2008202926A priority Critical patent/JP5146188B2/en
Publication of JP2010039266A publication Critical patent/JP2010039266A/en
Application granted granted Critical
Publication of JP5146188B2 publication Critical patent/JP5146188B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Electrophonic Musical Instruments (AREA)

Description

この発明は、波形メモリ方式の楽音信号生成装置に関し、特に、波形メモリからのデータ読み出し法を改良し、それに伴い波形メモリのデータの記憶法を改良することにより波形メモリのアクセス速度を向上できるようにしたものである。   The present invention relates to a waveform memory type musical tone signal generation apparatus, and in particular, it is possible to improve the access speed of the waveform memory by improving the method of reading data from the waveform memory and improving the data storage method of the waveform memory accordingly. It is a thing.

従来より、波形メモリ方式の音源(波形メモリ音源)により構成される楽音信号生成装置が知られている。波形メモリ音源は、波形メモリの各アドレスに1サンプルずつ記憶された波形データに基づいて楽音信号を生成するものであって、発音チャンネルごとに時分割動作することにより、サンプリング周期毎に、所定の複数の発音チャンネル分の楽音信号を同時に生成することができた。すなわち、1サンプリング周期を均等に分割した各発音チャンネルに対応するタイムスロット毎に波形メモリに対してアクセスが行われて、波形メモリから波形サンプルが読み出され、このようにして読み出された連続する何点かの波形サンプルを用いてサンプル間補間することにより、各発音チャンネルごとに1サンプリング周期分の波形サンプルを生成し、複数の発音チャンネルごとの波形サンプルをサンプリング周期毎に累算することで、全体として複数の発音チャンネル分の楽音信号を生成する。   2. Description of the Related Art Conventionally, a musical sound signal generating apparatus configured by a waveform memory type sound source (waveform memory sound source) is known. The waveform memory sound source generates a musical tone signal based on waveform data stored one sample at each address of the waveform memory, and performs a time-sharing operation for each sound generation channel, so that a predetermined frequency is obtained every sampling cycle. Musical sound signals for multiple sound channels could be generated simultaneously. That is, the waveform memory is accessed for each time slot corresponding to each sound generation channel obtained by equally dividing one sampling period, and waveform samples are read from the waveform memory. Interpolate between samples using several waveform samples to generate waveform samples for one sampling period for each sounding channel, and accumulate waveform samples for multiple sounding channels for each sampling period Thus, musical tone signals for a plurality of tone generation channels are generated as a whole.

上記構成の波形メモリ音源において、波形メモリから波形サンプルを読み出す方式として、「単発読み出し型」方式が従来あった。「単発読み出し型」の場合は、波形メモリへの1度のアクセスごとに、1つのアドレス信号を出力して、1つのアドレスにアクセスし、該アドレス信号に特定される1つのアドレスに記憶された波形サンプルを読み出す。なお、アドレス信号により波形メモリ上の記憶位置(アドレス)を特定し、その特定したアドレスに直接アクセスする方法を、一般に、ランダムアクセスという。   In the waveform memory sound source having the above configuration, a “single readout type” method has been conventionally used as a method for reading a waveform sample from the waveform memory. In the case of the “single readout type”, one address signal is output for each access to the waveform memory, one address is accessed, and the address signal is stored in one address specified by the address signal. Read waveform samples. A method of specifying a storage position (address) on the waveform memory by an address signal and directly accessing the specified address is generally referred to as random access.

また、波形メモリから波形サンプルを読み出す方式の別の例として、「連続読み出し型」方式が従来あった。「連続読み出し型」場合は、波形メモリにおいて、連続する複数アドレスを1フレームとするフレーム単位で波形サンプルを記憶しており、波形メモリに対する1度のアクセスにより、1フレームを構成する複数アドレス分の複数の波形サンプルを読み出す(例えば、下記特許文献1を参照)。このように1度のアクセスで複数の波形サンプルを読み出すことをバースト読み出しという。   As another example of a method of reading waveform samples from the waveform memory, there has been a “continuous reading type” method. In the “continuous readout type”, waveform samples are stored in the waveform memory in units of frames in which a plurality of consecutive addresses are one frame, and by one access to the waveform memory, a plurality of addresses corresponding to a plurality of addresses constituting one frame are stored. A plurality of waveform samples are read (see, for example, Patent Document 1 below). Reading a plurality of waveform samples in one access in this way is called burst reading.

また、下記特許文献2には、バースト読み出しを行うための構成として、波形メモリの各アドレス毎に、波形サンプルを複数サンプルずつ記憶しておき、波形メモリに対する1度のアクセス毎に、複数サンプル単位で読み出しを行うことが記載されている。
特開2004‐126127号公報 特開平10‐20860号公報
Further, in Patent Document 2 below, as a configuration for performing burst reading, a plurality of waveform samples are stored for each address of the waveform memory, and a plurality of samples are stored for each access to the waveform memory. It is described that reading is performed in
JP 2004-126127 A Japanese Patent Laid-Open No. 10-20860

ところで、上述した通り波形メモリ音源は、時分割動作により複数の発音チャンネル分の楽音信号を生成することを実現している。従って、音源のサンプリング周期毎の発音チャンネル数は、音源の波形メモリに対するアクセス速度によって制限される。つまり、波形メモリに対するアクセス速度が、発音チャンネル数を制限するボトルネックとなっている要素である。従って、波形メモリに対するアクセス速度を向上すれば、結果的に発音チャンネル数を増やすことが可能となる。   By the way, as described above, the waveform memory sound source realizes generation of tone signals for a plurality of sound generation channels by time division operation. Therefore, the number of tone generation channels for each sampling period of the sound source is limited by the access speed of the sound source waveform memory. That is, the access speed to the waveform memory is an element that is a bottleneck that limits the number of sound generation channels. Therefore, if the access speed to the waveform memory is improved, the number of sound generation channels can be increased as a result.

しかし、上記従来の「単発読み出し型」の波形メモリ音源では、ランダムアクセスにより1度のアクセスごとに1アドレスから波形サンプルを読み出していたので、波形メモリに対するアクセス速度の向上をすることに限度があった。その結果、「単発読み出し型」の波形メモリ音源においては、発音チャンネル数を増やすことが著しく制限されていたという不都合があった。   However, the conventional “single-reading type” waveform memory sound source reads waveform samples from one address for each access by random access, so there is a limit to improving the access speed to the waveform memory. It was. As a result, the “single readout type” waveform memory sound source has a disadvantage that the number of sound generation channels is significantly limited.

また、上記単発読み出し型の波形メモリ音源が、サンプル間補間用のバッファを持たない構成の場合、1回の読み出しタイミング毎に補間演算に使うための複数点の波形サンプルを読み出すために、波形メモリに対して複数回アクセスしなければならない。例えば2サンプルを用いた2点補間(直線補間)を行うとすると、各サンプリング周期の各発音チャンネルの読み出しタイミング毎に、波形メモリに対して2回アクセスする必要がある。すなわち、サンプル間補間用のバッファを設けないことでコストを下げることができるが、その反面、波形サンプルの読み出し効率が悪くなり、発音チャンネル数がより一層制限される。   Further, when the single readout type waveform memory sound source does not have a buffer for inter-sample interpolation, a waveform memory is used to read out a plurality of waveform samples to be used for interpolation calculation at each readout timing. Must be accessed multiple times. For example, when two-point interpolation (linear interpolation) using two samples is performed, it is necessary to access the waveform memory twice for each reading timing of each sound generation channel in each sampling period. That is, the cost can be reduced by not providing a buffer for inter-sample interpolation, but on the other hand, the waveform sample reading efficiency is deteriorated and the number of sound generation channels is further limited.

これに対して、上記従来の「連続読み出し型」の波形メモリ音源では、1度のアクセスごとに複数個の波形サンプルを読み出していたので、波形メモリに対するアクセス速度を向上することはできるが、1度のアクセスで波形メモリから読み出す複数個の波形サンプルに相当するデータ量(フレームサイズ)以上のデータ容量のバッファを、音源部に設けなければならない。すなわち、従来の複数サンプルをバースト読み出する方式では、バースト読み出しするデータサイズに対応するデータ容量のバッファが必要となり、構成が複雑化し回路規模が大きくなるという不都合があった。   On the other hand, since the conventional “continuous readout type” waveform memory sound source reads a plurality of waveform samples for each access, the access speed to the waveform memory can be improved. A buffer having a data capacity equal to or larger than the data amount (frame size) corresponding to a plurality of waveform samples read out from the waveform memory at every access must be provided in the sound source unit. That is, the conventional method of reading out a plurality of samples in burst requires a buffer having a data capacity corresponding to the data size to be read out in burst, which has the disadvantage that the configuration is complicated and the circuit scale is increased.

この発明は、上記の点に鑑みてなされたもので、波形メモリに対するアクセス速度を向上して、それにより発音チャンネル数を増やすことができる楽音信号生成装置を提供することを目的とする。   The present invention has been made in view of the above points, and an object of the present invention is to provide a musical tone signal generating apparatus capable of improving the access speed to the waveform memory and thereby increasing the number of sound generation channels.

この発明は、波形メモリに記憶された波形データに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成装置であって、アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリであって、各アドレスに前記波形データを1サンプルずつ記憶しており、各ページの最終アドレスに記憶されたサンプルは、その次のページの先頭アドレスにも重複して記憶した波形メモリと、各サンプリング周期毎に、各発音チャンネルの読み出しレートを累算して、整数部と小数部からなるサンプルアドレスを各発音チャンネル毎に生成するアドレスカウンタと、各サンプリング周期毎に、前記アドレスカウンタで生成したサンプルアドレスの整数部を、各ページの最終アドレスに対応する値を飛び越すメモリアドレスに変換するメモリアドレス生成部と、各サンプリング周期毎に、前記メモリアドレス生成部により生成された各発音チャンネルのメモリアドレスを用いて前記波形メモリをページアクセスし、前記メモリアドレスからの連続する2つのアドレスに記憶された2つのサンプルを読み出す読み出し部と、各サンプリング周期毎に、前記読み出し部により読み出された各発音チャンネル毎の2個のサンプル間を、前記アドレスカウンタで生成した前記サンプルアドレスの小数部に基づいてサンプル間補間して、該補間されたサンプルを各発音チャンネル毎に生成する補間部と、前記補間部により補間された各発音チャンネル毎のサンプルに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成部とを具えることを特徴とする楽音信号生成装置である。   The present invention is a musical tone signal generating apparatus for generating musical tone signals of a plurality of sound generation channels for each sampling period based on waveform data stored in a waveform memory, wherein the address space is divided into pages by page size p, and each page The waveform memory is capable of high-speed page access to the data stored in the address, and the waveform data is stored one sample at each address, and the sample stored at the last address of each page is the next The waveform memory that is also stored in duplicate at the top address of the page and the read rate of each sound channel are accumulated for each sampling period, and a sample address consisting of an integer part and a decimal part is generated for each sound channel. Address counter and integer of sample address generated by the address counter for each sampling period The waveform using a memory address of each tone generation channel generated by the memory address generator generated by the memory address generator for each sampling period, and a memory address generator that converts a value corresponding to the final address of each page A page access to the memory, a read unit for reading two samples stored at two consecutive addresses from the memory address, and two for each tone generation channel read by the read unit for each sampling period Are interpolated between samples based on the fractional part of the sample address generated by the address counter, and an interpolator that generates the interpolated sample for each sound generation channel, and the interpolated by the interpolator Multiple samples per sampling period based on samples for each sound channel A musical tone signal generating apparatus characterized by comprising a tone signal generator for generating a musical tone signal of the sound channels.

波形メモリは、アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリであって、各アドレスに前記波形データを1サンプルずつ記憶しており、各ページの最終アドレスに記憶されたサンプルは、その次のページの先頭アドレスにも重複して記憶されている。各サンプリング周期毎に、各発音チャンネルの読み出しレートを累算して、整数部と小数部からなるサンプルアドレスを各発音チャンネル毎に生成し、該生成したサンプルアドレスの整数部を、各ページの最終アドレスに対応する値を飛び越すメモリアドレスに変換して、各発音チャンネルのメモリアドレスを用いて波形メモリをページアクセスし、該メモリアドレスからの連続する2つのアドレスに記憶された2つのサンプルを読み出して、読み出された各発音チャンネル毎の2個のサンプル間を、サンプルアドレスの小数部に基づいてサンプル間補間して、各発音チャンネル毎の補間済みサンプルに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する。よって、各サンプリング周期毎の各発音チャンネルのページアクセスで、補間に必要な2つの波形サンプルを読み出せる。また、メモリアドレスは各ページの最終アドレスに対応する値を飛び越すので、メモリアドレスからの連続する2つのアドレスは常に同一ページ内のアドレスとなる。メモリアドレスは各ページの最終アドレスを指すことがなくなるが、各ページの最終アドレスに記憶されたサンプルは、その次のページの先頭アドレスにも重複して記憶されているので、該最終アドレスのサンプルとその次のサンプル間の補間ができるようになっている。   The waveform memory is a waveform memory in which the address space is divided into pages by the page size p, and the data stored in the address in each page can be accessed at high speed page, and the waveform data is stored in each address one sample at a time. The sample stored at the last address of each page is also stored redundantly at the top address of the next page. For each sampling period, the readout rate of each sound channel is accumulated to generate a sample address consisting of an integer part and a decimal part for each sound channel, and the integer part of the generated sample address is used as the final part of each page. The value corresponding to the address is converted into a jumping memory address, the waveform memory is page accessed using the memory address of each tone generation channel, and two samples stored at two consecutive addresses from the memory address are read out. Interpolate between the two samples for each read sound channel based on the fractional part of the sample address, and multiple sound channels for each sampling period based on the interpolated samples for each sound channel A musical tone signal is generated. Therefore, two waveform samples required for interpolation can be read by page access of each sound generation channel for each sampling period. Further, since the memory address skips the value corresponding to the final address of each page, two consecutive addresses from the memory address are always addresses in the same page. The memory address no longer points to the final address of each page, but the sample stored at the final address of each page is also stored redundantly at the top address of the next page. And the next sample can be interpolated.

前記メモリアドレス生成部の構成例として、前記ページサイズの所定アドレス数をpとおくと、アドレスカウンタで生成したサンプルアドレスの整数部SAiと該整数部SAiの関数である[SAi/(p−1)]の整数部とを加算した結果に基づきメモリアドレスMAを生成するよう構成することで、サンプルアドレスの整数部を、各ページの最終アドレスに対応する値を飛び越すメモリアドレスに変換できる。   As an example of the configuration of the memory address generation unit, if the predetermined number of addresses of the page size is p, the integer part SAi of the sample address generated by the address counter and the function of the integer part SAi [SAi / (p−1 )] To generate the memory address MA based on the result of addition of the integer part, the integer part of the sample address can be converted into a memory address that jumps over the value corresponding to the final address of each page.

また、この発明は、波形メモリに記憶された波形データに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成装置であって、アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリであって、各アドレスに前記波形データを1サンプルずつ記憶しており、各ページの最終からn−1個の各アドレスに記憶された波形データのサンプルは、その次のページの先頭からn−1個の各アドレスにも重複して記憶した波形メモリと、各サンプリング周期毎に、各発音チャンネルの読み出しレートを累算して、整数部と小数部からなるサンプルアドレスを各発音チャンネル毎に生成するアドレスカウンタと、各サンプリング周期毎に、前記アドレスカウンタで生成したサンプルアドレスの整数部を、各ページの最終からn−1個のアドレスに対応する値を飛び越すメモリアドレスに変換するメモリアドレス生成部と、各サンプリング周期毎に、前記メモリアドレス生成部により生成された各発音チャンネルのメモリアドレスを用いて前記波形メモリをページアクセスし、前記メモリアドレスからの連続するn個のアドレスに記憶されたn個のサンプルを読み出す読み出し部と、各サンプリング周期毎に、前記読み出し部により読み出された各発音チャンネル毎のn個のサンプル間を、前記アドレスカウンタで生成した前記サンプルアドレスの小数部に基づいてサンプル間補間して、該補間されたサンプルを各発音チャンネル毎に生成する補間部と、前記補間部により補間された各発音チャンネル毎のサンプルに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成部とを具えることを特徴とする楽音信号生成装置である。   The present invention is also a musical sound signal generating device for generating a musical sound signal of a plurality of tone generation channels for each sampling period based on waveform data stored in a waveform memory, wherein the address space is paged by page size p, A waveform memory capable of high-speed page access to data stored at addresses in each page, storing the waveform data one sample at each address, and n-1 addresses from the last of each page The stored waveform data samples are accumulated in the n-1 address from the beginning of the next page, and the readout rate of each sound channel is accumulated for each sampling period. An address counter that generates a sample address consisting of an integer part and a decimal part for each tone generation channel, and for each sampling period, A memory address generator for converting the integer part of the sample address generated by the address counter into a memory address that jumps over a value corresponding to n-1 addresses from the end of each page; and the memory address generator for each sampling period A read unit that performs page access to the waveform memory using the memory address of each tone generation channel generated by the unit, and reads out n samples stored in consecutive n addresses from the memory address; and each sampling period Each time, n samples for each tone generation channel read by the reading unit are interpolated between samples based on the fractional part of the sample address generated by the address counter, and the interpolated samples are obtained. Interpolated for each tone generation channel and interpolated by the interpolator Based on samples of each sound channel, a musical tone signal generating apparatus characterized by comprising a tone signal generator for generating a musical tone signals of plural tone generation channels in each sampling period.

ページアクセスによりページ内の所定のn個のサンプルずつ読み出す場合には、波形メモリの各ページの最終からn−1個の各アドレスに記憶された波形データのサンプルは、その次のページの先頭からn−1個の各アドレスにも重複して記憶される。メモリアドレス生成部は、アドレスカウンタで生成したサンプルアドレスの整数部を、各ページの最終からn−1個のアドレスに対応する値を飛び越すメモリアドレスに変換する。そして、各サンプリング周期毎に、各発音チャンネルのメモリアドレスを用いて、波形メモリをページアクセスし、該メモリアドレスからの連続するn個のアドレスに記憶されたn個のサンプルを読み出して、読み出された各発音チャンネル毎のn個のサンプル間を、サンプルアドレスの小数部に基づいてサンプル間補間して、補間された各発音チャンネル毎のサンプルに基づいて、複数発音チャンネルの楽音信号を生成する。   When reading a predetermined n number of samples in the page by page access, the waveform data samples stored in the n-1 addresses from the end of each page of the waveform memory are read from the top of the next page. The n-1 addresses are also stored redundantly. The memory address generation unit converts the integer part of the sample address generated by the address counter into a memory address that skips values corresponding to n-1 addresses from the end of each page. Then, at each sampling period, the waveform memory is page-accessed using the memory address of each tone generation channel, and n samples stored in consecutive n addresses from the memory address are read and read. The n samples for each sounding channel are interpolated between samples based on the fractional part of the sample address, and a musical sound signal of a plurality of sounding channels is generated based on the interpolated samples for each sounding channel. .

上記のページアクセスによりページ内の所定のn個のサンプルずつ読み出す場合には、メモリアドレス生成部の構成例として、前記ページサイズの所定アドレス数をpとおくと、アドレスカウンタで生成したサンプルアドレスの整数部SAiと、該整数部SAiの関数である[SAi/(p−n+1)]の整数部に(n−1)を乗算した値とを加算した結果に基づき、メモリアドレスを生成するよう構成することで、サンプルアドレスの整数部を、各ページの最終からn−1個のアドレスに対応する値を飛び越すメモリアドレスに変換できる。   When reading a predetermined n number of samples in a page by the above page access, as a configuration example of the memory address generation unit, if the predetermined number of addresses of the page size is set to p, the sample address generated by the address counter A memory address is generated based on a result of adding the integer part SAi and a value obtained by multiplying the integer part of [SAi / (p−n + 1)], which is a function of the integer part SAi, by (n−1). By doing so, the integer part of the sample address can be converted into a memory address that jumps over the values corresponding to n-1 addresses from the end of each page.

この発明によれば、波形メモリとして、アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリを用いて、各ページの最終アドレス(最終からn−1個の各アドレス)に記憶されたサンプルは、その次のページの先頭アドレスにも重複して記憶しておくとともに、各発音チャンネルで各ページの最終アドレス(最終からn−1個のアドレス)を避けたメモリアドレスを生成することで、各サンプリング周期内の各発音チャンネル毎のアクセスタイミングで、ページアクセスを用いて、波形メモリの同一ページ内の連続する2アドレス(n個のアドレス)から2つのサンプル(n個のサンプル)を高速で読み出すことができる。
各発音チャンネルのサンプル間補間に用いるサンプルは、サンプリング周期毎に、波形メモリから読み出すようになっているので、発音チャンネル毎のバッファメモリが不要であり、その分だけ楽音信号生成装置の構成を簡単化することができる。
従って、この発明にかかる楽音信号生成装置によれば、簡単な構成で、波形メモリ9に対するアクセス速度を向上して、発音チャンネル数を増やすことができるという優れた効果を奏する。
According to the present invention, as the waveform memory, the address space is divided into pages by the page size p, and the waveform memory capable of high-speed page access to the data stored in the address in each page is used. Samples stored at n-1 addresses from the first page are also stored redundantly at the top address of the next page, and at the end of each page (n-1 from the last) in each tone generation channel. 2 addresses (n addresses) in the same page of the waveform memory by using page access at the access timing for each sound generation channel within each sampling period. ) To two samples (n samples) can be read out at high speed.
The samples used for inter-sample interpolation of each sound channel are read from the waveform memory at each sampling period, so there is no need for a buffer memory for each sound channel, and the configuration of the tone signal generator is simplified accordingly. Can be
Therefore, according to the musical tone signal generating apparatus of the present invention, there is an excellent effect that the access speed to the waveform memory 9 can be improved and the number of sound generation channels can be increased with a simple configuration.

以下、この発明の一実施例について図面を参照して詳細に説明する。この実施例では、この発明に係る波形メモリ音源(楽音信号生成装置)を電子楽器に適用した例について説明する。   Hereinafter, an embodiment of the present invention will be described in detail with reference to the drawings. In this embodiment, an example in which the waveform memory sound source (musical sound signal generator) according to the present invention is applied to an electronic musical instrument will be described.

図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を介して接続された各デバイスとの間でアドレス信号を含む各種データを通信する。   FIG. 1 is a block diagram showing an overall configuration of an electronic musical instrument to which a waveform memory sound source (musical sound signal generating device) of the present invention is applied. In FIG. 1, an electronic musical instrument includes a CPU 1, a flash memory 2, a RAM 3, a performance operator 4, an operator 5, a display 6, a data input / output interface (I / O) 7, a sound source unit 8, a waveform memory 9, and a sound. The system 10 is configured. The CPU 1 is connected to the flash memory 2, RAM 3, performance operator 4, operator 5, display 6, input / output I / O 7, and tone generator unit 8 via the data and address bus line 1 B. Various data including address signals are communicated with the devices connected via the bus line 1B.

CPU1、フラッシュメモリ2、およびRAM3は電子楽器の動作を制御する制御部である。フラッシュメモリ2には、CPU1が実行する各種プログラムを記憶されており、CPU1は、フラッシュメモリ2に記憶されたプログラムをRAM3に読み出し、該読み出したプログラムを実行する。   The CPU 1, the flash memory 2, and the RAM 3 are control units that control the operation of the electronic musical instrument. Various programs executed by the CPU 1 are stored in the flash memory 2, and the CPU 1 reads the program stored in the flash memory 2 into the RAM 3 and executes the read program.

演奏操作子4は、ユーザが演奏操作を入力するための操作子と、該演奏操作を検出するための検出機構とを含み、例えば、複数の鍵からなる鍵盤により構成される。ユーザは、演奏操作子4を用いて、楽音の発音及び止音を指示し、また、発音すべき楽音の音高とベロシティ(音量)とを指示することができる。CPU1は、演奏操作子4の操作に応じた検出信号をバスライン1Bを介して受信して、受信した検出信号に基づき該演奏操作子4の操作に応じた演奏イベントデータを発生する。   The performance operation element 4 includes an operation element for a user to input a performance operation and a detection mechanism for detecting the performance operation, and is configured by a keyboard composed of a plurality of keys, for example. The user can instruct the musical sound to be generated and stopped by using the performance operator 4 and can instruct the pitch and velocity (volume) of the musical sound to be generated. The CPU 1 receives a detection signal corresponding to the operation of the performance operator 4 via the bus line 1B, and generates performance event data corresponding to the operation of the performance operator 4 based on the received detection signal.

操作子5は、ユーザが音色の選択や選択された音色の各種パラメータの値の入力等を行うための操作子と、その操作を検出するための検出機構とを含む。前記音色の各種パラメータには、例えば楽音の音量を制御する音量パラメータや、楽音に対して効果付与するための各種エフェクタを設定するパラメータなどが含まれる。ユーザは、操作子5を操作して、音色の選択、音量の調整、あるいは各種エフェクタのパラメータの値の調整等を含む各種パラメータの設定を行うことができる。CPU1は、操作子5の操作に応じた検出信号をバスライン1Bを介して受信して、該受信した検出信号に基づき操作子5の操作に応じた各種データを発生する。   The operation element 5 includes an operation element for the user to select a tone color, input values of various parameters of the selected tone color, and a detection mechanism for detecting the operation. The various parameters of the timbre include, for example, a volume parameter for controlling the volume of the musical tone, a parameter for setting various effectors for applying an effect to the musical tone, and the like. The user can operate the operator 5 to set various parameters including selection of timbre, adjustment of volume, adjustment of parameter values of various effectors, and the like. The CPU 1 receives a detection signal corresponding to the operation of the operation element 5 via the bus line 1B, and generates various data corresponding to the operation of the operation element 5 based on the received detection signal.

表示器6は、電子楽器の操作パネルに配置され、CPU1による表示制御に基づき各種情報を表示する表示器であって、例えば液晶ディスプレイ等で構成される。また、電子楽器は、入出力I/O7を介して各種外部の装置とデータ通信可能に接続される。入出力I/O7は、例えばMIDI規格の信号を送受信するためのMIDIインターフェースや、あるいはEthernet(登録商標)規格の通信インターフェースなど、従来から知られる適宜の規格のデータ入出力インターフェースにより構成される。   The display device 6 is a display device that is arranged on the operation panel of the electronic musical instrument and displays various types of information based on display control by the CPU 1. The electronic musical instrument is connected to various external devices via the input / output I / O 7 so as to be able to perform data communication. The input / output I / O 7 is configured by a data input / output interface of an appropriate standard known conventionally, such as a MIDI interface for transmitting / receiving a signal of the MIDI standard or a communication interface of the Ethernet (registered trademark) standard.

波形メモリ9は、複数の音色に対応する複数の波形データを記憶したメモリであって、詳しくは後述する通り、データの読み出し方式として「高速ページモード」によるアクセス(ページアクセス)が可能なメモリによって構成される。波形メモリ9は、書き換え可能な不揮発性メモリ(フラッシュメモリ)やダイナミックRAM(DRAM)により構成されてもよいし、書き換え不可能な不揮発性メモリ(ROM)により構成されてもよい。波形データは、アナログ音響信号を、所定のサンプリングレートで標本化(サンプリング)し、サンプリング点ごとの瞬時振幅を示す標本値を、固定ビット数のデジタルデータとして記録したデータである。この明細書では、サンプリング点ごとの瞬時振幅を示す標本値(波形データのサンプル)のことを「波形サンプル」という。   The waveform memory 9 is a memory that stores a plurality of waveform data corresponding to a plurality of timbres. As will be described in detail later, the waveform memory 9 is a memory that can be accessed in “high-speed page mode” (page access) as a data reading method. Composed. The waveform memory 9 may be configured by a rewritable nonvolatile memory (flash memory) or dynamic RAM (DRAM), or may be configured by a non-rewritable nonvolatile memory (ROM). The waveform data is data obtained by sampling (sampling) an analog sound signal at a predetermined sampling rate and recording a sample value indicating the instantaneous amplitude at each sampling point as digital data having a fixed number of bits. In this specification, a sample value (a sample of waveform data) indicating an instantaneous amplitude at each sampling point is referred to as a “waveform sample”.

音源部8は、サンプリング周期毎に波形メモリ9にアクセスし、該波形メモリ9から波形サンプルを読み出して、該読み出した波形サンプルを用いて楽音信号を生成する波形メモリ音源である。音源部8は、所定の複数の発音チャンネルを有しており、時分割動作することにより、サンプリング周期毎に、複数の発音チャンネル分の楽音信号を同時に生成することができる。音源部8で生成された楽音信号は、アンプおよびスピーカを含んで構成されるサウンドシステム10に供給され、該サウンドシステム10から発音される。   The sound source unit 8 is a waveform memory sound source that accesses the waveform memory 9 every sampling period, reads out waveform samples from the waveform memory 9, and generates a musical sound signal using the read waveform samples. The sound source unit 8 has a plurality of predetermined sound generation channels, and can generate music signals for a plurality of sound generation channels at the same time for each sampling period by performing a time division operation. The musical sound signal generated by the sound source unit 8 is supplied to a sound system 10 including an amplifier and a speaker and is generated by the sound system 10.

この発明によれば、詳しくは後述する通り、波形メモリ9からのデータ読み出し法を改良し、それに伴い波形メモリ9の波形サンプルの記憶法を改良することにより、波形メモリ9をアクセスする手法としてページアクセスを適用することを可能とし、もって音源部8の波形メモリ9に対するアクセス速度を向上し、その結果として、サンプリグ周期毎の発音チャンネル数を増やすことができる。   According to the present invention, as will be described in detail later, the method for accessing the waveform memory 9 is improved by improving the method for reading data from the waveform memory 9 and improving the method for storing waveform samples in the waveform memory 9 accordingly. This makes it possible to apply access, thereby improving the access speed of the sound source unit 8 to the waveform memory 9 and, as a result, increasing the number of sound generation channels for each sampling period.

図2は、波形メモリ9の構成例を示す図である。波形メモリ9には、複数のN個の波形データ(「波形データ1」、「波形データ2」、「波形データ3」…「波形データN」)が記憶されている。電子楽器のユーザは、操作子5の操作等により、用意されている複数の音色(音色データ)の中から演奏に用いる1つのを選択することができる。各音色データは、波形データを選択するための波形選択情報、音量変化を制御する音量エンベロープパラメータ等を含む。波形選択情報に基づいて、N個の波形データの中から、演奏される楽音の音高や強度に応じて、異なる波形データが選択される。   FIG. 2 is a diagram illustrating a configuration example of the waveform memory 9. The waveform memory 9 stores a plurality of N waveform data (“waveform data 1”, “waveform data 2”, “waveform data 3”... “Waveform data N”). The user of the electronic musical instrument can select one to be used for performance from a plurality of prepared timbres (tone color data) by operating the operation element 5 or the like. Each tone color data includes waveform selection information for selecting waveform data, a volume envelope parameter for controlling volume change, and the like. Based on the waveform selection information, different waveform data is selected from the N waveform data according to the pitch and intensity of the musical tone to be played.

図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進数で表現している。   In FIG. 2, the configuration of one waveform data (“waveform data 2”) is shown in detail. One waveform data is composed of a plurality of WS waveform samples (“sample 0”, “sample 1”, “sample 2”... “Sample (WS-1)”), and each waveform sample is stored in the waveform memory 9. Address numbers “0”, “1”, “2”... “(WS-1)” are stored for each address. Each waveform sample is basically stored in chronological order so that a musical sound signal (waveform data) as a sampling source can be reproduced by reading it in the order of address numbers. That is, the order of the address numbers corresponds to the temporal evolution of the instantaneous phase of the waveform data. In FIG. 2, address numbers “0”, “1”, “2”... ((WS-1)) indicate the address number at which each waveform sample is stored, and the first waveform sample “ It is expressed in decimal notation by a relative address number starting from the address of sample 0 ”(“ 0 ”).

WSは、1つの波形データのデータサイズ(波形サイズ)を表すパラメータであって、1つの波形データを構成する波形サンプルの数に対応する。波形メモリ9には、1つのアドレスに1つの波形サンプルが記憶されているので、1つの波形データの波形サイズWSは、当該波形データを記憶したアドレス数に対応する。従って、波形サイズWSがわかれば、その波形データの最終アドレスを特定することができる。図2において、波形データ2の先頭の波形サンプルのアドレス番号が「0」から始まっているので、波形データ2の最終アドレスは「(WS−1)」と表現される。ここでは、説明を簡単にするため、波形データはワンショット読み出しされるタイプとする。なお、本発明は、アタック部とループ部とを有しアタック部が一通り読み出された後、ループ部が繰り返し読み出されるタイプの波形データ等、その他のタイプの波形データにも適用可能である。   WS is a parameter indicating the data size (waveform size) of one waveform data, and corresponds to the number of waveform samples constituting one waveform data. Since one waveform sample is stored in one address in the waveform memory 9, the waveform size WS of one waveform data corresponds to the number of addresses storing the waveform data. Therefore, if the waveform size WS is known, the final address of the waveform data can be specified. In FIG. 2, since the address number of the first waveform sample of the waveform data 2 starts from “0”, the final address of the waveform data 2 is expressed as “(WS-1)”. Here, in order to simplify the explanation, the waveform data is assumed to be of a type that is read one shot. The present invention can also be applied to other types of waveform data, such as waveform data that includes an attack portion and a loop portion, and the loop portion is repeatedly read after the attack portion is read out. .

また、先頭アドレスTAは、波形データの先頭の波形サンプルが記憶されたアドレスを、波形メモリ9上で特定するポインタである。従って、或る波形データの或る波形サンプルの波形メモリ9上での絶対的な記憶位置は、当該波形データの先頭アドレスTAと、その波形サンプルのアドレスとの組み合わせにより特定できる。   The head address TA is a pointer that specifies on the waveform memory 9 the address at which the top waveform sample of the waveform data is stored. Accordingly, an absolute storage position of a certain waveform sample of a certain waveform data on the waveform memory 9 can be specified by a combination of the start address TA of the waveform data and the address of the waveform sample.

波形メモリ9は、「ページアクセス」が可能なメモリであるので、そのアドレス空間は、所定アドレス数のページサイズp毎の複数のページにページ分けされている。図2に示す通り、この実施例では、波形メモリ9のアドレス空間は、1ページあたり8アドレス毎のページにページ分けされている。例えば、アドレス番号0、1、2…7までの8アドレスが第1ページp1を構成し、アドレス番号8、9、10…15までの8アドレスが第2ページp2を構成する。   Since the waveform memory 9 is a memory capable of “page access”, its address space is divided into a plurality of pages for each page size p of a predetermined number of addresses. As shown in FIG. 2, in this embodiment, the address space of the waveform memory 9 is divided into pages every 8 addresses per page. For example, eight addresses up to address numbers 0, 1, 2,... 7 constitute a first page p1, and eight addresses up to address numbers 8, 9, 10,.

「高速ページモード」によるアクセスは、波形メモリ9の何れかのアドレスに最初にアクセスした後であれば、その最初のアクセスより短いアクセス時間で、そのアドレスと同じページ内のアドレスに順次アクセスできるものである。この明細書では、その最初のアクセスとそれに続くn−1個のアクセスをまとめて「ページアクセス」と呼ぶことにする。なお、「n」は正の整数である。この実施例では、ページアクセスの一例として、1度のアクセス毎に、1つのページ内の2つのアドレスに記憶された2つの波形サンプルを読み出すものとする。なお、メモリを「ページアクセス」することによりデータを高速読み出しする技術自体は、マスクROMやフラッシュメモリなどにおけるデータ高速読み出し技術として、従来から知られている。   In the “high-speed page mode” access, after accessing any address in the waveform memory 9 for the first time, an address in the same page as that address can be accessed sequentially in a shorter access time than the first access. It is. In this specification, the first access and the subsequent n-1 accesses are collectively referred to as “page access”. “N” is a positive integer. In this embodiment, as an example of page access, two waveform samples stored at two addresses in one page are read for each access. A technique for reading data at high speed by “page accessing” the memory has been conventionally known as a data high-speed reading technique in a mask ROM, a flash memory, or the like.

波形メモリ9の各ページの最終アドレスに記憶された波形サンプルは、その次のページの先頭アドレスにも重複して記憶されている。このように、各ページの最終アドレスと、その次のページの先頭アドレスとに、同じ波形サンプルを重複して記憶しておくことは、各サンプリング周期の各発音チャンネルのページアクセスで、補間に必要な2つの波形サンプルが読み出せるようにする工夫である。
例えば、第1ページp1の最終アドレスであるアドレス番号7に記憶された「サンプル7」は、その次の第2ページp2の先頭アドレスであるアドレス番号8にも記憶されており、アドレス番号8に続くアドレス番号9以降に「サンプル7」に続く「サンプル8」以降の波形サンプルが順次記憶される。同様に、ページp2の最終アドレスであるアドレス番号15に記憶された「サンプル14」は、その次のページp3の先頭アドレスであるアドレス番号16にも記憶されており、アドレス番号17以降に「サンプル14」に続く「サンプル15」以降の波形サンプルが順次記憶される。
つまり、各ページの最終アドレスに記憶された波形サンプルが、次のページの先頭アドレスに重複して記憶されていることを除けば、各波形サンプルは、アドレス番号の順に、波形データの瞬時位相の時間的進展に従って1つずつ時系列順に並べて記憶されている。
The waveform sample stored at the final address of each page of the waveform memory 9 is also stored redundantly at the top address of the next page. In this way, storing the same waveform sample at the last address of each page and the top address of the next page is necessary for interpolation in page access of each sounding channel in each sampling period. It is a device that makes it possible to read two waveform samples.
For example, “sample 7” stored in the address number 7 that is the final address of the first page p1 is also stored in the address number 8 that is the start address of the next second page p2, and The waveform samples after “sample 8” following “sample 7” are sequentially stored after the subsequent address number 9. Similarly, “sample 14” stored in the address number 15 which is the final address of the page p2 is also stored in the address number 16 which is the head address of the next page p3. Waveform samples after “sample 15” following “14” are sequentially stored.
In other words, except that the waveform sample stored at the last address of each page is stored redundantly at the top address of the next page, each waveform sample has the instantaneous phase of the waveform data in the order of the address number. They are stored side by side in chronological order as time progresses.

図3は、図1に示す音源部8の詳細な構成を示すブロック図である。音源部8は、アドレスカウンタ11、メモリアドレス生成部12、サンプル間補間部13、音量エンベロープ付与(音量EG)部14、ミキサ15、デジタルアナログ変換部(DAC)16、および制御レジスタ17を含んで構成されている。音源部8の各部は、図示外のクロック発生器で発生したシステムクロックを動作基準にして動作する。音源部8が波形データを処理するサンプリング周期は、システムクロックを分周して生成される。
また、音源部8は、システムクロックに基づき、サンプリング周期を、所定複数の発音チャンネルに対応するタイムスロットごとに等分割して、各タイムスロットごとの時分割チャンネルタイミングにおいて、それぞれ対応する発音チャンネルの処理を実行することで、複数の発音チャンネルの時分割動作を行う。具体的には、アドレスカウンタ11、メモリアドレス生成部12、サンプル間補間部13、および音量EG付与部14が、それぞれ、所定の複数発音チャンネルの時分割動作を行う。そして、ミキサ15がサンプリング周期毎に該所定の複数発音チャンネルのデータを累算することで、音源部8は、全体として、サンプリング周期毎に複数発音チャンネル分の楽音信号を生成する処理を行う。
FIG. 3 is a block diagram showing a detailed configuration of the sound source unit 8 shown in FIG. The sound source unit 8 includes an address counter 11, a memory address generation unit 12, an inter-sample interpolation unit 13, a volume envelope addition (volume EG) unit 14, a mixer 15, a digital / analog conversion unit (DAC) 16, and a control register 17. It is configured. Each unit of the sound source unit 8 operates with a system clock generated by a clock generator (not shown) as an operation reference. The sampling period in which the sound source unit 8 processes the waveform data is generated by dividing the system clock.
Further, the sound source unit 8 divides the sampling period equally for each time slot corresponding to a plurality of sound generation channels based on the system clock, and at each time slot channel timing for each time slot, By executing the process, a time division operation of a plurality of sound generation channels is performed. Specifically, the address counter 11, the memory address generation unit 12, the inter-sample interpolation unit 13, and the sound volume EG application unit 14 each perform a time division operation for a predetermined plurality of sound generation channels. Then, the mixer 15 accumulates the data of the predetermined plural sound generation channels for each sampling period, so that the sound source unit 8 performs a process of generating musical sound signals for the plural sound generation channels for each sampling period as a whole.

制御レジスタ17は、アドレスカウンタ11、メモリアドレス生成部12、サンプル間補間部13、音量EG部14、およびミキサ15の各部の動作に用いる各種パラメータの値を格納するレジスタであって、バスライン1Bを介してCPU1に接続されている。制御レジスタ17には、前記所定複数発音チャンネル毎の記憶領域が設けられており、後述するノートオンイベント処理によりCPUIが生成する各発音チャンネル毎の各種パラメータの値が該所定複数発音チャンネル毎の記憶領域に設定される。制御レジスタ17に設定される各種パラメータは、発音すべき楽音の周波数(音高)に対応する読み出しレート(Fナンバ)、波形データのサイズWS、波形データの先頭アドレスTA、音量の時間的な変化を制御するための音量エンベロープパラメータAEGの係数などである。   The control register 17 is a register that stores values of various parameters used for the operations of the address counter 11, the memory address generation unit 12, the inter-sample interpolation unit 13, the volume EG unit 14, and the mixer 15, and is a bus line 1B. It is connected to the CPU 1 via The control register 17 is provided with a storage area for each of the predetermined plural sound generation channels, and various parameter values for each sound generation channel generated by the CPUI by note-on event processing described later are stored for each predetermined plural sound generation channel. Set to area. Various parameters set in the control register 17 are a read rate (F number) corresponding to the frequency (pitch) of a musical tone to be generated, a waveform data size WS, a waveform data start address TA, and a temporal change in volume. For example, a coefficient of a volume envelope parameter AEG for controlling the sound volume.

アドレスカウンタ11は、各サンプリング周期毎に、制御レジスタ17に設定された各発音チャンネルの読み出しレート(Fナンバ)を累算して、その累算値を当該発音チャンネルのサンプルアドレスSAとして出力するカウンタである。Fナンバは、各発音チャンネルで生成する楽音信号の音高に対応して、波形サンプルの読み出しレート(サンプルアドレスSAの進行レート)を制御するパラメータである。アドレスカウンタ11は、各発音チャンネル毎の発音開始時にリセットされ、その後、各サンプリング周期ごとに、各発音チャンネルのFナンバを累算することで、「0」を初期値とし、各発音チャンネル毎の波形データサイズWSによって特定される最終アドレス(WS−1)をカウント上限値として、Fナンバの値に応じたレートで進行するサンプルアドレスSAを、各発音チャンネル毎に生成する。サンプルアドレスSAは、整数部SAiと小数部SAfからなり、整数部SAiはメモリアドレス生成部12に供給され、小数部SAfはサンプル間補間部13に供給される。   The address counter 11 accumulates the read rate (F number) of each tone generation channel set in the control register 17 for each sampling period, and outputs the accumulated value as the sample address SA of the tone generation channel. It is. The F number is a parameter that controls the waveform sample readout rate (advancing rate of the sample address SA) in accordance with the pitch of the musical tone signal generated in each tone generation channel. The address counter 11 is reset at the start of sound generation for each sound generation channel, and thereafter, by accumulating the F number of each sound generation channel for each sampling period, “0” is set as the initial value, and each sound generation channel is set. Using the final address (WS-1) specified by the waveform data size WS as a count upper limit value, a sample address SA that progresses at a rate corresponding to the value of the F number is generated for each tone generation channel. The sample address SA includes an integer part SAi and a decimal part SAf. The integer part SAi is supplied to the memory address generation unit 12 and the decimal part SAf is supplied to the inter-sample interpolation unit 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サンプルの読み出しを実現するために必須である。
The memory address generator 12 sets the sample address integer part SAi of each tone generation channel generated by the address counter 11, the start address TA of each tone generation channel, and the page size p of the waveform memory 9 for each sampling period. Based on this, an operation for obtaining the tone generation channel memory address MA is performed, and the memory address MA is output to the waveform memory 9. The memory address MA is data indicating the address number of the waveform memory 9 to be accessed.
The arithmetic expression performed to obtain the memory address MA is
MA = TA + SAi + Int [SAi / (p−1)] (Formula 1)
It is.
In this arithmetic expression (1), “TA” is the top address of the waveform data, and is adjusted to be the top of any page. “SAi” is an integer part of the sample address supplied from the address counter 11. “P” is the page size (the number of addresses per page). Int [SAi / (p-1)] is a function of the sample address integer part SAi, and is a function for obtaining the integer part of the calculation formula [SAi / (p-1)]. According to (Expression 1), the sample address integer part SAi is converted into a memory address MA with the start address TA as an initial value and Int [SAi / (p−1)] added.
By generating the memory address MA based on the sample address integer part SAi by this (Equation 1), as will be described in detail later, it becomes a value corresponding to the final address of each page so that it becomes the head address of the next page. The memory address MA can be generated by shifting backward and converting it so as to skip (avoid) the value corresponding to the final address. As a result, the two samples accessed using the memory address do not cross the two page boundaries of the waveform memory 9. This conversion is essential for realizing reading of two samples by page access.

音源部8は、各サンプリング周期毎に、前記メモリアドレス生成部12において上記演算により求めた各発音チャンネルのメモリアドレスMAを用いて波形メモリ9に対して時分割でページアクセスして、メモリアドレスMAとそれに続くメモリアドレス(MA+1)との2つの連続するアドレスに記憶された2サンプル分の波形サンプル(メモリデータMD)を各発音チャンネル毎に読み出す。これにより、各サンプリング周期の時分割チャンネルタイミング毎に、各発音チャンネルの波形サンプルを2サンプルずつ読み出すことができる。各サンプリング周期毎の、当該発音チャンネルのタイムスロットでページアクセスされた当該発音チャンネルの2つの波形サンプルは、それぞれ波形メモリ9から出力されるタイミングで、符号18,19で示す第1のラッチL1及び第2のラッチL2にラッチされる。   The sound source unit 8 performs page access to the waveform memory 9 in a time-sharing manner using the memory address MA of each tone generation channel obtained by the above calculation in the memory address generation unit 12 for each sampling period. And waveform samples (memory data MD) corresponding to two samples stored in two consecutive addresses of the memory address (MA + 1) and the subsequent memory address (MA + 1) are read out for each sound generation channel. Thereby, two waveform samples of each sound generation channel can be read out for each time division channel timing of each sampling period. The two waveform samples of the sound generation channel that are page-accessed in the time slot of the sound generation channel for each sampling period are output from the waveform memory 9 at the first latch L1 indicated by reference numerals 18 and 19, respectively. It is latched by the second latch L2.

サンプル間補間部13は、サンプリング周期毎に、アドレスカウンタ11から供給される各発音チャンネルのサンプリングアドレス小数部SAfに基づき、符号18,19で示す第1ラッチL1及び第2ラッチL2にラッチされた当該発音チャンネルの2つの波形サンプルを用いたサンプル間補間演算を行い、当該発音チャンネルのサンプルアドレスSAの示すサンプリング点に対応する補間済み波形サンプルを出力する。
音量EG部14は、各サンプリング周期毎に、制御レジスタ17に設定された各発音チャンネル毎の音量エンベロープパラメータに基づいて当該発音チャンネルの音量の時間変化を示す音量エンベロープ波形AEGを生成し、サンプル間補間部13から出力された当該発音チャンネルの補間済み波形サンプルの音量を、該音量エンベロープ波形AEGで制御する。
The inter-sample interpolation unit 13 is latched by the first latch L1 and the second latch L2 indicated by reference numerals 18 and 19 on the basis of the sampling address decimal part SAf of each tone generation channel supplied from the address counter 11 for each sampling period. Inter-sample interpolation is performed using the two waveform samples of the sounding channel, and an interpolated waveform sample corresponding to the sampling point indicated by the sample address SA of the sounding channel is output.
The sound volume EG unit 14 generates a sound volume envelope waveform AEG indicating the time change of the sound volume of the sound generation channel based on the sound volume envelope parameter for each sound generation channel set in the control register 17 for each sampling period. The volume of the interpolated waveform sample of the tone generation channel output from the interpolation unit 13 is controlled by the volume envelope waveform AEG.

ミキサ15は、各サンプリング周期毎に、音量EG部14から出力される各発音チャンネルの波形サンプルを累算(ミキシング)して、そのミキシング結果として得られる複数発音チャンネル分の波形サンプルからなる楽音信号を、サンプリング周期毎に、DAC16に出力する。DAC16は、サンプリング周期毎に、ミキサ15から出力された楽音信号をアナログ音響信号に変換して、該アナログ変換したアナログ音響信号を、サンプリング周期毎にサウンドシステム10へ出力する。   The mixer 15 accumulates (mixes) the waveform samples of each tone generation channel output from the volume EG unit 14 at each sampling period, and a musical tone signal including waveform samples for a plurality of tone generation channels obtained as a result of the mixing. Are output to the DAC 16 at every sampling period. The DAC 16 converts the musical sound signal output from the mixer 15 into an analog acoustic signal for each sampling period, and outputs the analog converted analog acoustic signal to the sound system 10 for each sampling period.

上記構成からなる音源部8において、各発音チャンネルの楽音信号生成に用いる各種パラメータは、演奏データ(MIDIデータ)のイベントに応じてCPU1が実行するノートオンイベント処理によって制御レジスタ17に設定される。図4は、そのようなイベント処理の一例であり、新たな楽音の発音を指示するノートオンイベントが供給されたときに、CPU1が実行するノートオンイベント処理の手順を示すフローチャートである。CPU1は、演奏操作子4の発音操作(例えば鍵盤の押鍵)が検出されたときに、該発音操作された演奏操作子4に応じた音高(押鍵された鍵の音高)の発音を指示するノートオンイベントが生じたものとして、ノートオンイベント処理を実行する。   In the tone generator unit 8 having the above-described configuration, various parameters used for generating a tone signal for each tone generation channel are set in the control register 17 by note-on event processing executed by the CPU 1 in response to an event of performance data (MIDI data). FIG. 4 is an example of such event processing, and is a flowchart showing a procedure of note-on event processing executed by the CPU 1 when a note-on event instructing pronunciation of a new musical tone is supplied. When the CPU 1 detects a sounding operation of the performance operator 4 (for example, pressing a key on the keyboard), the CPU 1 generates a sound corresponding to the pitch (pitch of the pressed key) corresponding to the performance operator 4 that has been sounded. Note-on event processing is executed on the assumption that a note-on event has occurred.

ステップS1において、CPU1は、発音指示された音高(押鍵された鍵の音高)をノートナンバレジスタNNに、発音指示された強度(押鍵速度)をベロシティレジスタVELにそれぞれ取り込む。   In step S1, the CPU 1 captures the pitch instructed to generate sound (the pitch of the key pressed) into the note number register NN and the intensity instructed to generate sound (key pressing speed) into the velocity register VEL.

ステップS2において、CPU1は、音源部8の複数の発音チャンネルの中から、前記検出された発音指示に応じた楽音信号生成に使用する発音チャンネルを選択し(割り当て)、該選択した発音チャンネルのチャンネル番号を、割当チャンネルレジスタaに代入する。   In step S2, the CPU 1 selects (assigns) a sound generation channel to be used for generating a musical sound signal according to the detected sound generation instruction from the plurality of sound generation channels of the sound source unit 8, and the channel of the selected sound generation channel. The number is assigned to the assigned channel register a.

ステップS3において、CPU1は、現在選択されている音色の波形選択情報に基づき、前記N個の波形データの中から、ノートナンバNNおよびベロシティVELに応じた波形データを選択する。これは、同じ音色の波形データであっても、音高の違いおよび音量の違いに応じて、波形の形状が異なっているためである。   In step S3, the CPU 1 selects waveform data corresponding to the note number NN and the velocity VEL from the N pieces of waveform data based on the waveform selection information of the currently selected tone color. This is because even if the waveform data has the same tone color, the shape of the waveform differs depending on the difference in pitch and volume.

ステップS4において、CPU1は、前記ステップS3で選択された波形データの原ピッチと、ノートナンバNNと音高差(セント単位)に基づき、Fナンバを生成する。原ピッチは、波形データをサンプリングしたときのオリジナルの音高(ピッチ)であり、波形選択情報内に記憶されている。Fナンバは、各発音チャンネルで、ノートナンバNNに応じた音高の楽音信号を生成するために、選択された波形データの原ピッチの音高をずらす量(セント単位)に応じて決定される読み出しレートである。このFナンバの値により、各発音チャンネル毎の波形サンプルの読み出しレート(サンプルアドレスSAの進行レート)が制御される。   In step S4, the CPU 1 generates an F number based on the original pitch of the waveform data selected in step S3, the note number NN, and the pitch difference (cent unit). The original pitch is an original pitch (pitch) when waveform data is sampled, and is stored in the waveform selection information. The F number is determined according to the amount (cent unit) of shifting the pitch of the original pitch of the selected waveform data in order to generate a tone signal having a pitch corresponding to the note number NN in each tone generation channel. Read rate. The F number value controls the waveform sample readout rate (advancing rate of the sample address SA) for each tone generation channel.

ステップS5において、CPU1は、レジスタaの値に応じて、制御レジスタ17の発音チャンネルaの記憶領域に、前記ステップS4で決定したFナンバ、前記ステップS3で選択した波形データの先頭アドレスTA、該波形データの波形サイズWS、現在選択されている音色の音量エンベロープパラメータなどを含む楽音信号の生成に必要な各種パラメータの値を設定する。   In step S5, the CPU 1 stores the F number determined in step S4, the start address TA of the waveform data selected in step S3, the storage area of the tone generation channel a of the control register 17 according to the value of the register a, The values of various parameters necessary for generating a musical tone signal including the waveform size WS of the waveform data and the volume envelope parameter of the currently selected tone are set.

そして、ステップS6において、CPU1は、レジスタaの値に従い、発音チャンネルaにおける楽音信号の生成開始(発音開始)を、音源部8に対して指示する。これにより、音源部8は、楽音信号が割り当てられた発音チャンネルaを用いて、制御レジスタ17に設定された各種パラメータに基づく楽音信号を生成する処理を開始する。   In step S6, the CPU 1 instructs the tone generator unit 8 to start generating a tone signal (sound generation start) in the sound generation channel a according to the value of the register a. As a result, the sound source unit 8 starts processing for generating a musical sound signal based on various parameters set in the control register 17 using the tone generation channel a to which the musical sound signal is assigned.

すなわち、アドレスカウンタ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ナンバに応じたレートで進行する。   That is, the count value SA (a) of the sound generation channel a of the address counter 11 is reset at the start of sound generation of the sound generation channel a, and thereafter, the F of the sound generation channel a set in the control register 17 for each sampling period. The number is accumulated to generate a sample address SA (a) of the sound generation channel a that proceeds at a rate corresponding to the F number. The memory address generation unit 12 converts the sample address integer part SAi (a) of the sound generation channel a into the memory address MA (a) by the calculation according to the above (Equation 1) for each sampling period. That is, the memory address generation unit 12 sets the start address TA (a) set in the control register 17 as an initial value, and adds the added value Int [SAi (a) / (p−) to the sample address integer unit SAi (a). 1)] is added to generate a memory address MA (a). Since the address counter 11 is reset at the start of sound generation of the sound generation channel a and proceeds at a rate corresponding to the F number, the memory address MA (a) of the sound generation channel a is set to F with the head address TA (a) as an initial value. Progress at a rate according to the number.

従って、音源部8は、各サンプリング周期毎に、生成される当該発音チャンネルaのメモリアドレスMA(a)を用いて、波形メモリ9をページアクセスして、波形メモリ9からアドレス番号MA(a)とアドレス番号(MA(a)+1)との連続する2アドレス分の波形サンプルを読み出す処理を繰り返す。   Therefore, the tone generator 8 uses the memory address MA (a) of the sound generation channel a generated at each sampling period to page access the waveform memory 9, and the address number MA (a) from the waveform memory 9. And the process of reading waveform samples for two consecutive addresses of address number (MA (a) +1).

各サンプリング周期毎に、前記ページアクセスにより、波形メモリ9から出力される当該発音チャンネルaの2つの波形サンプルは、各サンプリング周期の時分割チャンネルタイミング毎に、符号18,19で示す第1及び第2のラッチL1,L2にラッチされる。サンプル間補間部13は、各サンプリング周期毎に、第1及び第2のラッチL1,L2にラッチされる当該発音チャンネルaの2つの波形サンプルを用いて、アドレスカウンタ11から供給された小数部SAfに基づくサンプル間補間演算(2点補間)を行うことで、サンプルアドレスSA(a)に応じたサンプリング点の補間済みの波形サンプルを生成する。このように、音源部8は、各サンプリング周期毎に、波形メモリ9をページアクセスして、各発音チャンネルのサンプル間補間に必要な波形サンプルを読み出すように構成されているので、サンプル間補間用の発音チャンネル毎のバッファメモリを設けなくてもよい。   At each sampling period, the two waveform samples of the sound generation channel a output from the waveform memory 9 by the page access are first and 19th indicated by reference numerals 18 and 19 for each time division channel timing of each sampling period. 2 latches L1 and L2. The inter-sample interpolation unit 13 uses the two waveform samples of the sound generation channel a latched in the first and second latches L1 and L2 for each sampling period, and uses the fractional unit SAf supplied from the address counter 11. By performing the inter-sample interpolation calculation (two-point interpolation) based on the above, a waveform sample that has been interpolated at the sampling point corresponding to the sample address SA (a) is generated. As described above, the sound source unit 8 is configured to access the waveform memory 9 for each sampling period and read out waveform samples necessary for inter-sample interpolation of each sound generation channel. It is not necessary to provide a buffer memory for each tone generation channel.

上記において、波形サンプルの読み出し速度(Fナンバ)は、ノートオンイベントにより発音指示された音高(ノートナンバNN)と、当該発音チャンネルに割り当てられた波形データの原ピッチの音高差に応じた値に設定されているので、波形メモリに記憶されている該波形データは、波形メモリ9から読み出されて2点補間される過程で、発音指示された音高の楽音信号となるようピッチシフトされる。なお、ここでの波形メモリの読み出し方式は、一定のサンプリング周期に同期したピッチ非同期方式であるが、本発明をピッチ同期方式に適用してもよい。   In the above, the waveform sample readout speed (F number) corresponds to the pitch difference between the pitch (note number NN) instructed by the note-on event and the original pitch of the waveform data assigned to the sound channel. Since the waveform data stored in the waveform memory is read out from the waveform memory 9 and is interpolated at two points, the pitch shift is performed so that a tone signal having a pitch instructed to be generated is generated. Is done. The waveform memory reading method here is a pitch asynchronous method synchronized with a certain sampling period, but the present invention may be applied to a pitch synchronous method.

サンプリング周期毎に、サンプル間補間部13から出力される当該発音チャンネルaの波形サンプルは、音量EG部14において、制御レジスタ17に設定された当該発音チャンネルaの音量エンベロープパラメータに基づいて生成された音量エンベロープ波形AEGにより音量の時間変化が制御され、ミキサ15に出力される。ミキサ15は、各サンプリング周期毎に、音量EG部14から出力される複数発音チャンネル(当該発音チャンネルaを含む)の波形サンプルを累算して、複数発音チャンネル分の波形サンプルを累算した楽音信号をDAC16に出力する。そして、DAC16において、サンプリング周期毎に、ミキサ15から出力された複楽音信号をアナログ音響信号に変換して、サウンドシステム10に出力する。かくして、音源部8は、ユーザによって発音指示された楽音信号を、ユーザが指定した音高で再生することができる。   For each sampling period, the waveform sample of the sound channel a output from the inter-sample interpolation unit 13 is generated in the sound volume EG unit 14 based on the sound volume envelope parameter of the sound channel a set in the control register 17. The temporal change in volume is controlled by the volume envelope waveform AEG and is output to the mixer 15. The mixer 15 accumulates waveform samples of a plurality of sound generation channels (including the sound generation channel a) output from the volume EG unit 14 for each sampling period, and accumulates waveform samples for the plurality of sound generation channels. The signal is output to the DAC 16. The DAC 16 converts the multi-tone signal output from the mixer 15 into an analog sound signal for each sampling period, and outputs the analog sound signal to the sound system 10. Thus, the sound source unit 8 can reproduce the musical sound signal instructed to be generated by the user at a pitch specified by the user.

図5は、この実施例にかかるページアクセスによる波形サンプル読み出し動作を、サンプルアドレスSAの値に対応付けて説明するための図である。図5を参照して、1つの発音チャンネルの波形データの読み出し動作を詳細に説明する。図5において、右端の列には、波形サイズWSの1つの波形データを構成する波形サンプル0、波形サンプル1、波形サンプル2、…波形サンプル(WS−1)が縦に並べて描かれており、各波形サンプルに対応して、各波形サンプルが記憶されたアドレス番号0、アドレス番号1、アドレス番号2…アドレス番号(WS−1)が示されている。波形メモリ9は、図2を参照して説明した通り、1ページのアドレス数を8アドレスとするページ単位に区分されており、各ページの最終アドレスと後続のページの先頭アドレスには同じ波形サンプルが重複して記憶されている。   FIG. 5 is a diagram for explaining the waveform sample read operation by page access according to this embodiment in association with the value of the sample address SA. With reference to FIG. 5, the operation of reading the waveform data of one sounding channel will be described in detail. In FIG. 5, in the rightmost column, waveform sample 0, waveform sample 1, waveform sample 2,... Waveform sample (WS-1) constituting one waveform data of waveform size WS are drawn vertically. Corresponding to each waveform sample, address number 0, address number 1, address number 2... Address number (WS-1) where each waveform sample is stored are shown. As described with reference to FIG. 2, the waveform memory 9 is divided into page units in which the number of addresses of one page is eight, and the same waveform sample is used for the last address of each page and the head address of the subsequent page. Are stored in duplicate.

図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サンプル分の波形サンプルの対応関係が示されている。   In the leftmost column of FIG. 5, the sample address integer part SAi output from the address counter 11 is vertically arranged, and on the left side of the SAi column is an addition value Int [SAi for each sample address integer part SAi. / (P-1)]. Also, the left side of the Int [SAi / (p-1)] column is output as a result of substituting SAi and Int [SAi / (p-1)] shown in the same row into equation (1). The value of the memory address MA is shown. That is, each row in FIG. 5 includes the value of the sample address integer part SAi, the value of the memory address MA corresponding to the value, the address number of the waveform memory 9 corresponding to the value of the memory address MA, and the memory address MA. Correspondence between waveform samples for two samples read out by page access using.

例えば、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を付与している。
For example, when the value of SAi is “0”, since the addition value for SAi is Int [0 / (8-1)] = 0, the value of the memory address MA is “0”. Note that the value of the memory address MA actually output from the memory address generation unit 12 is a value having the initial address TA of the waveform data of the current tone color as an initial value, that is, “SAi + Int [SAi / (p−1)]”. The value is obtained by adding the head address TA, but here, for convenience of explanation, the value of the head address TA is described as “0”. Since the start address TA is adjusted to be the start address of the page, even if the start address TA is other than “0”, only the memory address MA is shifted. Is basically the same.
For each sampling period, the sound source unit 8 accesses the waveform memory 9 in a time-sharing manner for a plurality of tone generation channels. In the page access of the sound generation channel, first, the value “0” of the memory address MA is output as an address signal in the first access, and the lower address “0” of the page selected by the upper address “0” (fourth bit or more). ”(3 bits), that is,“ sample 0 ”of the address number“ 0 ”is read out. The memory address “1” is output in the next second access, but since it is an address in the same page as the first access, access in the high-speed page mode is possible, and the access time is shorter than the first access. “Sample 1” with address number 1 is read out. In FIG. 5, the ellipse image clearly shows waveform samples for two addresses read from the waveform memory 9 by one page access to the waveform memory 9, and when “0” is output as the memory address MA. Reference numeral 30 is given to the ellipsoidal image showing the two waveform samples read out.

当該発音チャンネルのサンプルアドレスSAは、サンプリング周期毎に、当該発音チャンネルの読み出しレート(Fナンバ)ずつ進行する。例えば、次のサンプリング周期でも、SAiの値が変わらず「0」のままであれば、上述した動作を繰り返し、ページアクセスにより「サンプル0」と「サンプル1」が読み出される。SAiの値が「1」〜「6」の何れかに進行した場合は、SAiに対する加算値はInt[SAi/(8−1)]=0であるから、メモリアドレスMAの値はSAiの値に対応する「1」〜「6」のいずれかの値となる。例えば、当該発音チャンネルのSAiが「2」となったときは、ページアクセスにより「サンプル2」と「サンプル3」が読み出される。   The sample address SA of the sounding channel advances by the reading rate (F number) of the sounding channel every sampling cycle. For example, if the SAi value remains unchanged at “0” even in the next sampling period, the above-described operation is repeated, and “sample 0” and “sample 1” are read by page access. When the value of SAi proceeds to any one of “1” to “6”, the addition value for SAi is Int [SAi / (8-1)] = 0, so the value of the memory address MA is the value of SAi. Any one of values “1” to “6” corresponding to. For example, when the SAi of the sound generation channel is “2”, “sample 2” and “sample 3” are read by page access.

上記の通り、ページアクセスは、1つのページ内の2アドレスの波形サンプルを高速で読み出す方式であるから、1度のページアクセスで、2つのページ境界にまたがる2アドレスの波形サンプルを読み出すことはできない。例えば、1度のアクセスで、第1ページp1の最終アドレス(アドレス番号7)と第2ページp2の先頭アドレス(アドレス番号8)とからデータを読み出すことはできない。
このため、メモリアドレスMAを求める演算式(1)において、サンプルアドレス整数部SAiにInt[SAi/(p−1)]を加算することで、順番に進行させて行くと、各ページの最終アドレスとなってしまうMAを次のページの先頭アドレスへシフトして、メモリアドレスMAとして各ページの最終アドレスに該当する値が生成されないようになっている。
As described above, since page access is a method of reading waveform samples at two addresses in one page at a high speed, waveform samples at two addresses across two page boundaries cannot be read by one page access. . For example, data cannot be read from the last address (address number 7) of the first page p1 and the start address (address number 8) of the second page p2 in one access.
For this reason, in the arithmetic expression (1) for obtaining the memory address MA, by adding Int [SAi / (p−1)] to the sample address integer part SAi and proceeding in order, the final address of each page As a result, the value corresponding to the last address of each page is not generated as the memory address MA.

図5において、メモリアドレスMAの列に示された数字を見れば、MAの値として、ページの最終アドレスに該当する「7」、「15」…が含まれていないことがわかる。これにより、メモリアドレスMAが各ページの最終アドレスとなることはなくなり、メモリアドレスMAとMA+1は同一ページ内のアドレスとなる。つまり、1度のページアクセスで、各発音チャンネルの2サンプルの読み出しができるようになる。メモリアドレスMAは各ページの最終アドレスを指すことがなくなるが、その場合でも、該最終アドレスの波形サンプルと、その次の波形サンプルの間の補間ができるように、その次のページの先頭アドレスには、該最終アドレスの波形サンプルが重複して記憶されている。各発音チャンネルについて、同じページ内の2サンプルをページアクセスで読み出す方式では、サンプルアドレスSAiから各ページの最終アドレスを避けたメモリアドレスMAを生成しただけでは、読み出され補間される波形サンプルの連続性が損なわれてしまうが、各ページの最終アドレスの波形サンプルを、その次のページの先頭アドレスにも記憶しておくことで、そのような不都合が生じない。   Referring to the numbers shown in the column of the memory address MA in FIG. 5, it can be seen that the MA value does not include “7”, “15”... Corresponding to the final address of the page. As a result, the memory address MA does not become the final address of each page, and the memory addresses MA and MA + 1 become addresses in the same page. That is, two samples of each sound channel can be read out with one page access. The memory address MA no longer points to the last address of each page. Even in this case, the memory address MA is set to the top address of the next page so that interpolation can be performed between the waveform sample of the last address and the next waveform sample. The waveform sample at the final address is stored in duplicate. In the method of reading out two samples in the same page for each tone generation channel by page access, a waveform address continuously read and interpolated is generated only by generating a memory address MA avoiding the final address of each page from the sample address SAi. However, if the waveform sample at the final address of each page is also stored at the top address of the next page, such inconvenience does not occur.

例えば、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つの波形サンプルを読み出す。   For example, when SAi has progressed to “7”, the value added to SAi is Int [7 / (8-1)] = 1, so the value of the memory address MA is “8”. In the waveform memory 9, the second page p2 including the address number 8 corresponding to the value “8” of the memory address MA is selected as an access target, and the address number 8 in the selected page p2 is selected. Here, since the waveform memory 9 also stores “sample 7” stored at the last address number 7 of the first page p1 also at the top address number 8 of the next second page p2, the sound source section 8 is a page access to the waveform memory 9 using the value “8” of the memory address MA, and “sample 7” stored at the top address number 8 of the second page p2, as indicated by reference numeral 31, is continuous with it. Two waveform samples “sample 8” stored at address number 9 to be read are read out.

その他のページの最終アドレスのアドレス番号15、23…についても、メモリアドレスMAとして、その値が生成されないようになっており、且つ、これら各ページの最終アドレスのそれぞれに記憶された波形サンプルと同じ波形サンプルが次のページの先頭アドレスにそれぞれ記憶されている。これにより、SAiを「8」以降に進行させていった場合でも、生成されるMAの値がページの最終アドレスになることはなく、波形メモリ9の1回のページアクセスによって、サンプル間補間に必要な2サンプルを読み出すことができる。   The address numbers 15, 23... Of the final addresses of the other pages are not generated as the memory address MA, and are the same as the waveform samples stored at the final addresses of these pages. Waveform samples are stored at the top address of the next page. As a result, even when SAi is advanced after “8”, the generated MA value does not become the final address of the page, and inter-sample interpolation is performed by one page access of the waveform memory 9. Two necessary samples can be read out.

図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クロック時間での読み出しができる。   FIG. 6 is a timing chart showing an example of access in the high-speed page mode. Reading of two samples per sounding channel is performed using the high-speed page mode. In FIG. 6, the access time is represented by the number of system clocks of the sound source unit 8. At the first timing 40, since this is the first access to a certain page, the low order bits (3 of the MA) of the page designated by the high order bits (fourth bit or more) of the MA by the address designation using the memory address MA. Waveform sample at the address specified by (bit) is read. This first access takes 8 clocks equivalent to the access in the normal mode. At the next second timing 41, the waveform sample at the address specified by the lower bits (3 bits) of MA + 1 in the same page is read by the second access using the memory address MA + 1. Since this is an access within the same page in the mode, this only takes 3 clocks. Hereinafter, as long as the address is within the same page, the access after the third timing 42 can also be made within the same page in the high-speed page mode, and can be read in 3 clock times.

このように、ページアクセスでは、同一ページ内で読み出す波形サンプルの数を増やすほど、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の発音チャンネル数を増加できることが理解できる。
As described above, in the page access, the access time per waveform sample can be shortened as the number of waveform samples read in the same page is increased. Since the time for reading out waveform samples necessary for inter-sample interpolation is reduced for each sound generation channel, the number of sound generation channels in the sound source unit 8 can be increased as long as the sampling period is the same. Conversely, if the number of sound generation channels is the same, the sampling frequency of the generated musical sound in the sound source unit 8 can be further increased.
For example, if the system clock of the sound source unit 8 is 14 nanoseconds (14 ns) and the number of system clocks in one sampling period is 1536 clocks (sampling frequency is 46.5 kHz), in the example of FIG. Since 3 clocks are required for the second access, the number of clocks required for page access of each sound generation channel is “8 + 3” = “11 clocks”. Therefore, under this condition, the maximum number of sound generation channels provided in the sound source unit 8 is 1536 / “8 + 3” = 139 channels.
On the other hand, in the access in the conventional normal mode, since it takes 8 clocks for each of the two accesses, “8 + 8” = “16 clocks” is required per sounding channel, and the maximum number of sounding channels is 1536 / “8 + 8” = 96. Become a channel. From this, it can be understood that the number of sound generation channels of the sound source unit 8 can be increased by shortening the access time per sound generation channel by page access.

以上説明した通り、本実施例によれば、波形メモリ9として、ページアクセスが可能なメモリを用いて、各ページ境界の2アドレスの波形サンプルは前後のページの両方に記憶しておくとともに、各発音チャンネルで各ページの最終アドレスを避けたメモリアドレスMAを生成することで、各サンプリング周期内の各発音チャンネル毎のアクセスタイミングで、ページアクセスを用いて波形メモリ9の同一ページ内の連続する2アドレスから波形サンプルを高速で読み出すことができる。
また、各発音チャンネルのサンプル間補間に用いる波形サンプルは、サンプリング周期毎に、波形メモリ9から読み出すようになっているので、発音チャンネル毎のバッファメモリが不要であり、その分だけ音源部8の構成を簡単化することができる。
従って、この実施例にかかる音源部8によれば、簡単な構成で、波形メモリ9に対するアクセス速度を向上して、発音チャンネル数を増やすことができるという優れた効果を奏する。
As described above, according to the present embodiment, the waveform memory 9 uses a page accessible memory, the waveform samples at the two addresses at each page boundary are stored in both the previous and next pages, By generating a memory address MA that avoids the final address of each page in the sound generation channel, two consecutive 2 in the same page of the waveform memory 9 using page access at the access timing for each sound generation channel in each sampling period. Waveform samples can be read from the address at high speed.
In addition, since the waveform samples used for inter-sample interpolation of each sound generation channel are read from the waveform memory 9 at every sampling period, a buffer memory for each sound generation channel is not required, and the sound source unit 8 correspondingly. The configuration can be simplified.
Therefore, according to the sound source unit 8 according to the present embodiment, the access speed to the waveform memory 9 can be improved and the number of sound generation channels can be increased with a simple configuration.

なお、上記実施例では、波形メモリ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チャンネルも増やせることになる。
In the above-described embodiment, an example in which two waveform samples are read from two consecutive addresses every time the waveform memory 9 is accessed has been described. The number of samples read for each access by page access is not limited to two, and it may be configured to read n consecutive waveform samples from consecutive n addresses for each page access (n Is a positive integer). When designed to read n waveform samples for each page access, the waveform memory 9 stores (n-1) addresses from the end of each page and the beginning of the next page (n -1) The same waveform sample is stored in duplicate at the address. Then, the memory address generation unit 12 generates a memory address MA by the following arithmetic expression (2).
MA = TA + SAi + Int [SAi / {p− (n−1)}] × (n−1)
= TA + SAi + Int [SAi / (p−n + 1)] × (n−1) (Formula 2)
As a result, page access is made to the waveform memory 9 using the memory address MA, and n consecutive waveform samples are obtained from n consecutive addresses from the memory address MA to (MA-n + 1) for each access. Can be read out for each tone generation channel. In this case, the sound source unit 8 includes n latches for latching waveform samples, and uses the n waveform samples read for each sound generation channel for each sampling period, to the sample address fractional unit SAf. Inter-sample interpolation based on the result, an interpolated waveform sample corresponding to the sample address SA of the sound channel is obtained, and further, a time change in volume corresponding to the sound volume envelope parameter of the sound channel is given. Form a waveform sample. In each sampling period, the waveform samples of the plurality of tone generation channels formed are accumulated and output to the DAC 16 as tone signals for the plurality of tone generation channels. In this case, the number of clocks required for page access of each sound generation channel is “8 + 3 × (n−1)”. For example, when n is 4, “8 + 3 × 3” = “17 clocks”, and the maximum number of sound generation channels is 1536/17 = 90 channels. On the other hand, the maximum number of sound generation channels when page access is not used is 1536 / “8 × 4” = 48 channels. In the present invention, 42 channels can be increased as compared with this.

また、上記実施例では、波形メモリ9のページサイズpを1ページあたり8アドレスとする例について説明したが、波形メモリ9として、ページサイズpが、例えば1ページあたり16アドレス等、その他任意のアドレス数のメモリを用いることができる。   In the above embodiment, the example in which the page size p of the waveform memory 9 is 8 addresses per page has been described. However, as the waveform memory 9, the page size p is, for example, any other address such as 16 addresses per page. A number of memories can be used.

なお、上記の実施例においては、波形メモリ9の1アドレスに記憶された1つの波形サンプルが有意のデータとして読み書きされるので、1アドレスが1ワードに対応していた。従って、上記実施例の説明中の、例えば、「1度のページアクセス毎に、連続するnアドレスからn個の波形サンプルを読み出す」や、「ページサイズpを1ページあたり8アドレス」などという記載は、「アドレス」という文言を「ワード」という文言に置き換えれば、「1度のページアクセス毎に、連続するnワードの波形サンプルを読み出す」や、「ページサイズpを1ページあたり8ワード」と表現される。   In the above embodiment, one waveform sample stored at one address of the waveform memory 9 is read and written as significant data, so one address corresponds to one word. Therefore, in the description of the above embodiment, for example, “reading n waveform samples from consecutive n addresses for each page access”, “page size p is 8 addresses per page”, etc. If the word “address” is replaced with the word “word”, “reading waveform samples of n consecutive words for each page access” or “page size p is 8 words per page” Expressed.

また、上記実施例では、本発明の楽音信号生成装置(波形メモリ音源)を電子楽器に適用する例について説明したが、この発明にかかる楽音信号生成装置(波形メモリ音源)は、電子楽器に限らず、音源として楽音信号生成装置(波形メモリ音源)を登載するいかなる装置に適用することも可能である。   Further, in the above-described embodiment, an example in which the musical sound signal generation device (waveform memory sound source) of the present invention is applied to an electronic musical instrument has been described. However, the musical sound signal generation device (waveform memory sound source) according to the present invention is not limited to an electronic musical instrument. In addition, the present invention can be applied to any device that mounts a musical sound signal generation device (waveform memory sound source) as a sound source.

また、上記実施例の波形メモリでは、第2のアクセス以降でもアドレス指定を行う高速ページモードによる読み出し機能を備えたメモリを用いていた。しかしながら、本発明の第2のアクセス以降では、最初のアクセスに連続するアドレスから順次読み出すのであるから、高速ページモードを備えたメモリに代えて、最初のアクセスに続くアドレスのデータを、第2アクセス以降、アドレス信号なしで読み出すことができるバースト読み出しの機能を備えたメモリを用いることもできる。
また、上記実施例では、サンプルアドレスSAは、発音開始時に「0」リセットされるようになっていたが、「0」以外の値(−Toff)をセットして発音を始めるようにしてもよい。その場合、波形データの先頭アドレスTAは、「TA+Toff」になる。
また、上記実施例では、波形データの先頭アドレスTAを、何れかのページの先頭アドレスとしていたが、必ずしもページの先頭アドレスとしなくてもよい。
In the waveform memory of the above-described embodiment, a memory having a read function in the high-speed page mode for performing address designation even after the second access is used. However, after the second access according to the present invention, data is sequentially read from the address continuous to the first access. Therefore, instead of the memory having the high-speed page mode, the data at the address following the first access is transferred to the second access. Thereafter, a memory having a burst read function that can be read without an address signal can also be used.
In the above embodiment, the sample address SA is reset to “0” at the start of sounding. However, the sounding may be started by setting a value (−Toff) other than “0”. . In this case, the top address TA of the waveform data is “TA + Toff”.
In the above embodiment, the top address TA of the waveform data is the top address of any page. However, it is not always necessary to use the top address of the page.

この発明に係る楽音信号生成装置を適用した電子楽器の全体構成例を示すブロック図。The block diagram which shows the example of whole structure of the electronic musical instrument to which the musical tone signal generation apparatus which concerns on this invention is applied. 図1の波形メモリの構成例を説明する図。FIG. 2 is a diagram illustrating a configuration example of a waveform memory in FIG. 図1の音源部の構成例を説明するブロック図。The block diagram explaining the structural example of the sound source part of FIG. 発音指示に応じてCPUが実行するノートオンイベント処理の手順の一例を示すフローチャート。The flowchart which shows an example of the procedure of the note-on event process which CPU performs according to a pronunciation instruction. 図3の音源部のページアクセスによる波形サンプル読み出し動作をサンプルアドレスSAの値に対応付けて説明するための図。The figure for demonstrating the waveform sample read-out operation by the page access of the sound source part of FIG. 3 corresponding to the value of sample address SA. 高速ページモードによるアクセスの一例を示すタイミングチャート。The timing chart which shows an example of the access by high-speed page mode.

符号の説明Explanation of symbols

1 CPU、2 ROM、3 RAM、4 演奏操作子、5 操作子、6 表示器、7 入出力I/O、8 音源部、9 波形メモリ、10 サウンドシステム、11 アドレスカウンタ、12 メモリアドレス生成部、13 サンプル間補間部、14 音量EG部、15 ミキサ、16 デジタルアナログ変換部 1 CPU, 2 ROM, 3 RAM, 4 performance controls, 5 controls, 6 display, 7 input / output I / O, 8 tone generator, 9 waveform memory, 10 sound system, 11 address counter, 12 memory address generator , 13 Interpolation section between samples, 14 Volume EG section, 15 Mixer, 16 Digital-analog conversion section

Claims (4)

波形メモリに記憶された波形データに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成装置であって、
アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリであって、各アドレスに前記波形データを1サンプルずつ記憶しており、各ページの最終アドレスに記憶されたサンプルは、その次のページの先頭アドレスにも重複して記憶した波形メモリと、
各サンプリング周期毎に、各発音チャンネルの読み出しレートを累算して、整数部と小数部からなるサンプルアドレスを各発音チャンネル毎に生成するアドレスカウンタと、
各サンプリング周期毎に、前記アドレスカウンタで生成したサンプルアドレスの整数部を、各ページの最終アドレスに対応する値を飛び越すメモリアドレスに変換するメモリアドレス生成部と、
各サンプリング周期毎に、前記メモリアドレス生成部により生成された各発音チャンネルのメモリアドレスを用いて前記波形メモリをページアクセスし、前記メモリアドレスからの連続する2つのアドレスに記憶された2つのサンプルを読み出す読み出し部と、
各サンプリング周期毎に、前記読み出し部により読み出された各発音チャンネル毎の2個のサンプル間を、前記アドレスカウンタで生成した前記サンプルアドレスの小数部に基づいてサンプル間補間して、該補間されたサンプルを各発音チャンネル毎に生成する補間部と、
前記補間部により補間された各発音チャンネル毎のサンプルに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成部と
を具えることを特徴とする楽音信号生成装置。
A musical tone signal generating device that generates musical tone signals of a plurality of sound generation channels for each sampling period based on waveform data stored in a waveform memory,
A waveform memory in which the address space is divided into pages by page size p, and the data stored in the addresses in each page is capable of high-speed page access, and the waveform data is stored in each address one sample at a time. The sample memory stored at the last address is a waveform memory that is also stored redundantly at the top address of the next page,
An address counter that accumulates the readout rate of each sounding channel for each sampling period and generates a sample address consisting of an integer part and a decimal part for each sounding channel;
A memory address generation unit that converts the integer part of the sample address generated by the address counter into a memory address that jumps over a value corresponding to the final address of each page for each sampling period;
At each sampling period, the waveform memory is page accessed using the memory address of each tone generation channel generated by the memory address generation unit, and two samples stored at two consecutive addresses from the memory address are obtained. A readout unit to read out,
At each sampling period, the interpolated samples are interpolated between two samples for each sound channel read out by the readout unit based on the fractional part of the sample address generated by the address counter. An interpolation unit that generates a sample for each sound channel;
A musical tone signal generating apparatus comprising: a musical tone signal generating unit that generates musical tone signals of a plurality of tone generation channels for each sampling period based on the samples for each tone generation channel interpolated by the interpolation unit.
前記ページサイズの所定アドレス数をpとすると、
前記メモリアドレス生成部は、アドレスカウンタで生成したサンプルアドレスの整数部SAiと該整数部SAiの関数である[SAi/(p−1)]の整数部とを加算した結果に基づきメモリアドレスを生成するものであることを特徴とする請求項1に記載の楽音信号生成装置。
When the predetermined number of addresses of the page size is p,
The memory address generation unit generates a memory address based on a result of adding the integer part SAi of the sample address generated by the address counter and the integer part of [SAi / (p−1)] which is a function of the integer part SAi. The musical tone signal generating apparatus according to claim 1, wherein:
波形メモリに記憶された波形データに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成装置であって、
アドレス空間がページサイズpでページ分けされ、各ページ内のアドレスに記憶されたデータを高速ページアクセス可能な波形メモリであって、各アドレスに前記波形データを1サンプルずつ記憶しており、各ページの最終からn−1個の各アドレスに記憶された波形データのサンプルは、その次のページの先頭からn−1個の各アドレスにも重複して記憶した波形メモリと、
各サンプリング周期毎に、各発音チャンネルの読み出しレートを累算して、整数部と小数部からなるサンプルアドレスを各発音チャンネル毎に生成するアドレスカウンタと、
各サンプリング周期毎に、前記アドレスカウンタで生成したサンプルアドレスの整数部を、各ページの最終からn−1個のアドレスに対応する値を飛び越すメモリアドレスに変換するメモリアドレス生成部と、
各サンプリング周期毎に、前記メモリアドレス生成部により生成された各発音チャンネルのメモリアドレスを用いて前記波形メモリをページアクセスし、前記メモリアドレスからの連続するn個のアドレスに記憶されたn個のサンプルを読み出す読み出し部と、
各サンプリング周期毎に、前記読み出し部により読み出された各発音チャンネル毎のn個のサンプル間を、前記アドレスカウンタで生成した前記サンプルアドレスの小数部に基づいてサンプル間補間して、該補間されたサンプルを各発音チャンネル毎に生成する補間部と、
前記補間部により補間された各発音チャンネル毎のサンプルに基づいて、サンプリング周期毎に複数発音チャンネルの楽音信号を生成する楽音信号生成部と
を具えることを特徴とする楽音信号生成装置。
A musical tone signal generating device that generates musical tone signals of a plurality of sound generation channels for each sampling period based on waveform data stored in a waveform memory,
A waveform memory in which the address space is divided into pages by page size p, and the data stored in the addresses in each page is capable of high-speed page access, and the waveform data is stored in each address one sample at a time. The waveform data samples stored in the n-1 addresses from the last of the waveform memory are also stored in duplicate in the n-1 addresses from the top of the next page,
An address counter that accumulates the readout rate of each sounding channel for each sampling period and generates a sample address consisting of an integer part and a decimal part for each sounding channel;
A memory address generation unit that converts an integer part of the sample address generated by the address counter into a memory address that jumps over a value corresponding to n-1 addresses from the end of each page for each sampling period;
In each sampling period, the waveform memory is page-accessed using the memory address of each tone generation channel generated by the memory address generation unit, and n number of addresses stored in consecutive n addresses from the memory address are stored. A readout section for reading the sample;
For each sampling period, the interpolated samples are interpolated between n samples for each tone generation channel read by the reading unit based on the fractional part of the sample address generated by the address counter. An interpolation unit that generates a sample for each sound channel;
A musical tone signal generating apparatus comprising: a musical tone signal generating unit that generates musical tone signals of a plurality of tone generation channels for each sampling period based on the samples for each tone generation channel interpolated by the interpolation unit.
前記ページサイズの所定アドレス数をpとすると、
前記メモリアドレス生成部は、アドレスカウンタで生成したサンプルアドレスの整数部SAiと、該整数部SAiの関数である[SAi/(p−n+1)]の整数部に(n−1)を乗算した値とを加算した結果に基づき、メモリアドレスを生成するものであることを特徴とする請求項3に記載の楽音信号生成装置。
When the predetermined number of addresses of the page size is p,
The memory address generation unit is a value obtained by multiplying the integer part SAi of the sample address generated by the address counter and the integer part of [SAi / (pn + 1)], which is a function of the integer part SAi, by (n-1). 4. The musical tone signal generating apparatus according to claim 3, wherein a memory address is generated based on a result obtained by adding together.
JP2008202926A 2008-08-06 2008-08-06 Music signal generator Expired - Fee Related JP5146188B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008202926A JP5146188B2 (en) 2008-08-06 2008-08-06 Music signal generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008202926A JP5146188B2 (en) 2008-08-06 2008-08-06 Music signal generator

Publications (2)

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

Family

ID=42011884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008202926A Expired - Fee Related JP5146188B2 (en) 2008-08-06 2008-08-06 Music signal generator

Country Status (1)

Country Link
JP (1) JP5146188B2 (en)

Also Published As

Publication number Publication date
JP2010039266A (en) 2010-02-18

Similar Documents

Publication Publication Date Title
JP5614420B2 (en) Musical sound generating apparatus, electronic musical instrument, program, and musical sound generating method
JP4998046B2 (en) Music generator
US9040800B2 (en) Musical tone signal generating apparatus
JP2785531B2 (en) Electronic musical instrument
JP5915420B2 (en) Musical sound generating device, musical sound generating method, electronic musical instrument and program
JP5146188B2 (en) Music signal generator
US6207885B1 (en) System and method for rendition control
JPH0664466B2 (en) Electronic musical instrument
US5817964A (en) Electronic musical instrument and method for storing a plurality of waveform sampling data at a single address
JP6531432B2 (en) Program, sound source device and acoustic signal generation device
JP4236570B2 (en) Waveform playback device and waveform playback program
JP2861007B2 (en) Electronic musical instrument
JP3651675B2 (en) Electronic musical instruments
JP5807419B2 (en) Signal processing device
JP2591160B2 (en) Waveform selection and synthesis device
JP2591159B2 (en) Waveform selection and synthesis device
JP3855710B2 (en) Digital signal processor for sound waveform data
JPH039476B2 (en)
JP3044712B2 (en) Electronic musical instrument
JP2970372B2 (en) Sound source parameter supply device
JPH10143153A (en) Electronic musical instrument
JPH07168574A (en) Waveform memory sound source
JP3095323B2 (en) Electronic musical instrument
JP2006098859A (en) Musical sound generating device and program for musical sound generation processing
JP2794561B2 (en) Waveform data generator

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