JP2019028198A - Musical sound generator, generation method, program and electronic musical instrument - Google Patents
Musical sound generator, generation method, program and electronic musical instrument Download PDFInfo
- Publication number
- JP2019028198A JP2019028198A JP2017146123A JP2017146123A JP2019028198A JP 2019028198 A JP2019028198 A JP 2019028198A JP 2017146123 A JP2017146123 A JP 2017146123A JP 2017146123 A JP2017146123 A JP 2017146123A JP 2019028198 A JP2019028198 A JP 2019028198A
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- waveform data
- transfer
- storage means
- reading
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Electrophonic Musical Instruments (AREA)
Abstract
Description
本発明は、楽音発生装置、方法、プログラム、及びその装置を用いた電子楽器に関する。 The present invention relates to a musical sound generating apparatus, method, program, and electronic musical instrument using the apparatus.
波形読込み方式により楽音波形を発生する音源装置では、より多数の、より長時間の波形データを利用できるようにするために、使用しない波形データは例えばROM(Read Only Memory)、フラッシュメモリ、又はハードディスク記憶装置等の二次記憶装置(第1記憶手段)の音色波形領域に保存しておき、その中で使用する波形データを音源装置が直接アクセスできる高速な波形バッファとして機能する例えばRAM(Random Access Memory)等の一次記憶装置(第2記憶手段)に転送して発音させるというシステムを採用するものがある。つまり、高価なRAMが有する記憶容量以上の記憶容量の波形データを安価なROMに保持しておき、必要な場合のみそれを波形バッファに移動して発音に使用するというコスト的には効率的な方法であると言える。 In a sound source device that generates a musical sound waveform by a waveform reading method, waveform data that is not used is, for example, ROM (Read Only Memory), flash memory, or hard disk so that a larger number of waveform data can be used for a longer time. For example, a RAM (Random Access Memory) that functions as a high-speed waveform buffer that can be stored in a timbre waveform area of a secondary storage device (first storage means) such as a storage device and the sound source device can directly access waveform data used therein. Some of them employ a system in which sound is transmitted to a primary storage device (second storage means). In other words, it is efficient in terms of cost that waveform data having a storage capacity larger than the storage capacity of an expensive RAM is stored in an inexpensive ROM, and is moved to the waveform buffer and used for sound generation only when necessary. It can be said that it is a method.
ところで楽音波形データのサイズは様々であり、理想的には全ての発音チャンネル分の夫々の波形データをそのまま格納できるだけの領域が第2記憶手段の波形バッファ上に用意されていることが好ましいが、現実には、コストを抑えるために、第2記憶手段の波形バッファ上に十分な領域が用意されていない。そのため、波形バッファを楽音波形データのサイズを気にする必要のないいわゆる「リングバッファ」として機能させ、発音部が発音中に音源が対象発音チャネルの波形バッファ(リングバッファ領域)の所定区間を繰り返し読み出すのと並行して、CPUが波形バッファに波形データを逐次補充している。 By the way, there are various sizes of musical sound waveform data, and ideally, it is preferable that an area capable of storing the waveform data of all the sound generation channels as it is is prepared on the waveform buffer of the second storage means. Actually, a sufficient area is not prepared on the waveform buffer of the second storage means in order to reduce the cost. For this reason, the waveform buffer functions as a so-called “ring buffer” that does not need to worry about the size of the musical sound waveform data, and the sound source repeats a predetermined section of the waveform buffer (ring buffer area) of the target sound channel while the sound generator is sounding. In parallel with reading, the CPU sequentially replenishes the waveform buffer with waveform data.
従来技術としては、例えば特許文献1に記載の技術が知られている。 As a conventional technique, for example, a technique described in Patent Document 1 is known.
しかし、上述の方法は、波形バッファの容量は少なくて済むが、転送データのトラフィックが多いために、CPUやメモリシステムのバスの占有率が高くなり同時発音数の減少、演奏レイテンシーの悪化等、性能低下を招くという課題があった。また、その性能低下を少なくするために高性能なCPUやバスシステムを使用すればコストが増大する。 However, the above-described method requires a small waveform buffer capacity, but because there is a large amount of transfer data traffic, the CPU and memory system bus occupancy increases, the number of simultaneous sounds decreases, performance latency deteriorates, etc. There was a problem of incurring performance degradation. Further, if a high-performance CPU or bus system is used in order to reduce the performance degradation, the cost increases.
そこで、本発明は、第1プロセッサが第1記憶手段内の波形データを第2記憶手段に良好に転送し、第2プロセッサが第2記憶手段内の波形データを良好に読み込む楽音発生装置等を提供することを目的とする。 Therefore, the present invention provides a musical tone generator or the like in which the first processor transfers the waveform data in the first storage means to the second storage means, and the second processor reads the waveform data in the second storage means satisfactorily. The purpose is to provide.
態様の一例では、第1記憶手段内の第1波形データを第2記憶手段に転送する第1転送処理と、第1波形データに続く第2波形データのサイズが第2記憶手段における複数の領域のうちのいずれかの領域のサイズと比較して大きいか否かを判定する判定処理と、判定処理により第2波形データのサイズがいずれかの領域のサイズより大きくないと判定された場合に、第2波形データをいずれかの領域に転送する第2転送処理と、を実行する第1プロセッサと、第2記憶手段に転送された第1波形データを読み込む第1読込処理と、第2記憶手段におけるいずれかの領域に転送された第2波形データを読み込む第2読込処理と、を実行する第2プロセッサと、を有する。 In one example, the first transfer processing for transferring the first waveform data in the first storage means to the second storage means, and the size of the second waveform data following the first waveform data is a plurality of areas in the second storage means Determination process for determining whether or not the size of any of the areas is larger, and when the determination process determines that the size of the second waveform data is not larger than the size of any of the areas, A second transfer process for transferring the second waveform data to any region, a first processor for executing the first transfer process, a first read process for reading the first waveform data transferred to the second storage means, and a second storage means A second processor for executing a second reading process for reading the second waveform data transferred to any of the areas.
本発明によれば、第1プロセッサが第1記憶手段内の波形データを第2記憶手段に良好に転送し、第2プロセッサが第2記憶手段内の波形データを良好に読み込むことができる。 According to the present invention, the first processor can satisfactorily transfer the waveform data in the first storage means to the second storage means, and the second processor can satisfactorily read the waveform data in the second storage means.
以下、本発明を実施するための形態について図面を参照しながら詳細に説明する。本実施形態は、例えば電子鍵盤楽器に適用される、音高(鍵域)や音量(ベロシティ:打鍵の速さ)などの演奏情報によって音色が変化するのを再現するために、例えば大容量フラッシュメモリ208である第1記憶手段の音色波形領域から例えばRAM204である第2記憶手段の波形バッファに、音高又は音量ごとの波形データ(以下これを「スプリット波形」と呼ぶ)を転送する楽音発生装置を対象とする。本実施形態は、このような楽音発生装置において、例えばCPUである第1プロセッサが、例えば大容量フラッシュメモリである第1記憶手段内の第1波形データを、例えばRAMである第2記憶手段に転送する第1転送処理を実行する。また、第1プロセッサが、第1波形データに続く第2波形データのサイズが第2記憶手段内の複数の領域のうちのいずれかの領域のサイズと比較して大きいか否かを判定する判定処理を実行する。更に、第1プロセッサは、上記判定処理により第2波形データのサイズが第2記憶手段内のいずれかの領域のサイズより大きくないと判定された場合に、第2波形データをいずれかの領域に転送する第2転送処理を実行する。これに加えて、例えば音源LSI(大規模集積回路)である第2プロセッサが、第2記憶手段におけるいずれかの領域に転送された第1波形データを読み込む第1読込処理を実行する。また、第2プロセッサが、第2記憶手段におけるいずれかの領域に転送された第2波形データを読み込む第2読込処理を実行する。より具体的には例えば、第2プロセッサによる第1読込処理により読み込まれた第1波形データが発音部から出力された後、第2プロセッサによる第2読込処理により読み込まれた第2波形データが上記発音部から繰り返し出力される。この場合例えば、第1波形データは、開始位置から繰返し位置の前までの波形データを含み、第2波形データは、繰返し位置から終了位置までの波形データを含む。そして、第1転送処理は、例えば、第1プロセッサによる転送の位置が第2プロセッサによる読出しの位置を追い越さないように制御しながら、第1プロセッサが第1波形データを一回で或いは複数回に分けて、第2記憶手段内のいずれかの領域に転送する処理である。更に、第2転送処理は、第1プロセッサが第2波形データの全体を、第2記憶手段内のいずれかの領域に例えば一回で転送する処理である。もっとも、第2転送処理では、第1プロセッサは第2波形データの全体を、第1記憶手段内から第2記憶手段に一回で転送しなくても、複数回に分けて転送してもよい。本発明によれば、繰り返し発音部から出力すべき波形データともいえる第2波形データを、第1プロセッサが第1記憶手段内から第2記憶手段内に繰り返し転送しないため、トラフィックを低減することができ、結果として性能低下を改善する事ができる楽音発生装置を実現できる。 Hereinafter, embodiments for carrying out the present invention will be described in detail with reference to the drawings. The present embodiment is applied to an electronic keyboard instrument, for example, in order to reproduce the change in timbre according to performance information such as pitch (key range) and volume (velocity: speed of keystroke). Musical tone generation for transferring waveform data for each pitch or volume (hereinafter referred to as “split waveform”) from the tone color waveform area of the first storage means as the memory 208 to the waveform buffer of the second storage means as the RAM 204, for example. Intended for equipment. In this embodiment, in such a musical sound generating apparatus, the first processor, which is a CPU, for example, transfers the first waveform data in the first storage means, which is, for example, a large-capacity flash memory, to the second storage means, which is, for example, a RAM. The first transfer process to be transferred is executed. Further, the first processor determines whether or not the size of the second waveform data following the first waveform data is larger than the size of any one of the plurality of regions in the second storage means. Execute the process. Furthermore, when the first processor determines that the size of the second waveform data is not larger than the size of any area in the second storage means by the determination process, the first processor sets the second waveform data to any area. A second transfer process for transferring is executed. In addition to this, for example, a second processor, which is a sound source LSI (large scale integrated circuit), executes a first reading process for reading the first waveform data transferred to any area in the second storage means. Further, the second processor executes a second reading process for reading the second waveform data transferred to any area in the second storage means. More specifically, for example, after the first waveform data read by the first reading process by the second processor is output from the sound generation unit, the second waveform data read by the second reading process by the second processor is Repeatedly output from the sound generator. In this case, for example, the first waveform data includes waveform data from the start position to before the repeat position, and the second waveform data includes waveform data from the repeat position to the end position. In the first transfer process, for example, the first processor transfers the first waveform data once or a plurality of times while controlling the transfer position by the first processor so as not to overtake the read position by the second processor. This process is divided and transferred to any area in the second storage means. Furthermore, the second transfer process is a process in which the first processor transfers the entire second waveform data to any area in the second storage unit, for example, once. Of course, in the second transfer process, the first processor may transfer the entire second waveform data from the first storage means to the second storage means at a time, instead of transferring it at once. . According to the present invention, since the first processor does not repeatedly transfer the second waveform data, which can be said to be waveform data to be output from the sound generator, from the first storage means to the second storage means, traffic can be reduced. As a result, it is possible to realize a musical sound generating device that can improve performance degradation.
図1は、本発明による電子鍵盤楽器の一実施形態の外観図である。本実施形態は、電子鍵盤楽器100として実施される。電子鍵盤楽器100は、演奏操作子としての複数の鍵からなる鍵盤101と、音色選択操作子としての音色選択を行うための音色選択ボタン102及び音色以外の各種機能選択を行う機能選択ボタン103からなるスイッチ・パネルと、ピッチベンドやトレモロ、ビブラート等の各種モジュレーション(演奏効果)を付加するベンダ/モジュレーション・ホイール104、音色や音色以外の各種設定情報を表示するLCD(Liquid Crystal Display:液晶ディスプレイ)105等を備える。また、電子鍵盤楽器100は、特には図示しないが、演奏により生成された楽音を放音するスピーカを裏面部、側面部、又は背面部等に備える。 FIG. 1 is an external view of an embodiment of an electronic keyboard instrument according to the present invention. This embodiment is implemented as an electronic keyboard instrument 100. The electronic keyboard instrument 100 includes a keyboard 101 composed of a plurality of keys as performance operators, a timbre selection button 102 for selecting a timbre as a timbre selection operator, and a function selection button 103 for selecting various functions other than the timbre. Switch panel, a vendor / modulation wheel 104 for adding various modulations (performance effects) such as pitch bend, tremolo, vibrato, etc., and an LCD (Liquid Crystal Display) 105 for displaying various setting information other than timbre and timbre Etc. The electronic keyboard instrument 100 includes a speaker that emits a musical tone generated by a performance on a back surface, a side surface, a back surface, or the like, although not particularly illustrated.
音色選択ボタン102は、図1に示されるように、ピアノ(図中「Piano」)、エレクトリックピアノ(図中「E.piano」)、オルガン(図中「Organ」)、ギター(図中「Guitar)等の各種音色のカテゴリを選択するためのボタン群である。ユーザは、この音色選択ボタン102を押下することにより、例えば16音色のうちのいずれかを選択することができる。 As shown in FIG. 1, the timbre selection button 102 includes a piano (“Piano” in the figure), an electric piano (“E. piano” in the figure), an organ (“Organ” in the figure), a guitar (“Guitar” in the figure). ), Etc. The user can select one of 16 timbres by pressing the timbre selection button 102, for example.
図2は、図1の電子鍵盤楽器100の実施形態のハードウェア例を示す図である。図2の電子鍵盤楽器100において、システム全体はバスコントローラ201によって制御されるバス202を中心に構成される。バスコントローラ201はバス202上のデータの流れを司るものであるが、その役割は、バス202に接続されたデバイスの優先順位のコントロールである。例えば、メモリコントローラ203を介してバス202に接続されるRAM204は、CPU205と音源LSI206によって共有されているが、発音を行う音源LSI206はデータの欠落が許されないために優先度が最も高く設定されており、必要に応じてCPU205のアクセスを制限する。 FIG. 2 is a diagram illustrating a hardware example of an embodiment of the electronic keyboard instrument 100 of FIG. In the electronic keyboard instrument 100 of FIG. 2, the entire system is configured around a bus 202 controlled by a bus controller 201. The bus controller 201 controls the flow of data on the bus 202, and its role is to control the priority order of devices connected to the bus 202. For example, the RAM 204 connected to the bus 202 via the memory controller 203 is shared by the CPU 205 and the sound source LSI 206, but the sound source LSI 206 that generates sound is set to have the highest priority because data loss is not permitted. The access of the CPU 205 is restricted as necessary.
バス202には、CPU205、音源LSI206、フラッシュメモリコントローラ207、メモリコントローラ203、DMA(ダイレクトメモリアクセス)コントローラ209、I/O(入出力)コントローラ210、I/Oコントローラ210を介して接続されるキー・スキャナ211とLCDコントローラ212とA/D(アナログ/デジタル)コンバータ213が接続される。 Keys connected to the bus 202 via the CPU 205, tone generator LSI 206, flash memory controller 207, memory controller 203, DMA (direct memory access) controller 209, I / O (input / output) controller 210, and I / O controller 210 A scanner 211, an LCD controller 212, and an A / D (analog / digital) converter 213 are connected.
CPU205は、電子鍵盤楽器100の全体の制御処理を実行する第1プロセッサである。音源LSI206は、楽音発音専用の大規模集積回路である第2プロセッサである。 The CPU 205 is a first processor that executes overall control processing of the electronic keyboard instrument 100. The tone generator LSI 206 is a second processor that is a large-scale integrated circuit dedicated to musical tone generation.
フラッシュメモリコントローラ207は、大容量フラッシュメモリ208とバス202を接続するインタフェース回路である。大容量フラッシュメモリ208は、波形データ、制御プログラム、固定データ等格納する。 The flash memory controller 207 is an interface circuit that connects the large-capacity flash memory 208 and the bus 202. The large-capacity flash memory 208 stores waveform data, control programs, fixed data, and the like.
メモリコントローラ203は、RAM204とバス202を接続するインタフェース回路である。RAM204は、波形データ、制御プログラム、データを必要に応じて配置する。RAM204はまた、CPU205や音源LSI206に内蔵されるDSP(デジタルシグナルプロセッサ)のワーク領域としても使用される。 The memory controller 203 is an interface circuit that connects the RAM 204 and the bus 202. The RAM 204 arranges waveform data, control programs, and data as necessary. The RAM 204 is also used as a work area for a DSP (digital signal processor) built in the CPU 205 or the tone generator LSI 206.
I/Oコントローラ210は、バス202と、図1の鍵盤101、音色選択ボタン102、機能選択ボタン103、ベンダ/モジュレーション・ホイール104、又はLCD105等の周辺デバイスとを接続するインタフェース回路である。I/Oコントローラ210に接続されるキー・スキャナ211は、図1の鍵盤101や音色選択ボタン102又は機能選択ボタン103等のスイッチ・パネルの状態を走査して、その走査結果をI/Oコントローラ210及びバス202を介してCPU205に通知する。I/Oコントローラ210に接続されるLCDコントローラ212は、図1のLCD105のデバイスをコントロールする。A/Dコンバータ213は、図1のベンダ/モジュレーション・ホイール104の走査位置を検出する。 The I / O controller 210 is an interface circuit that connects the bus 202 to peripheral devices such as the keyboard 101, the tone color selection button 102, the function selection button 103, the vendor / modulation wheel 104, or the LCD 105 in FIG. The key scanner 211 connected to the I / O controller 210 scans the state of the switch panel such as the keyboard 101, the tone color selection button 102 or the function selection button 103 in FIG. The CPU 205 is notified via 210 and the bus 202. The LCD controller 212 connected to the I / O controller 210 controls the device of the LCD 105 in FIG. The A / D converter 213 detects the scanning position of the vendor / modulation wheel 104 of FIG.
DMAコントローラ209は、大容量フラッシュメモリ208とRAM204間のDMA転送を制御する。 The DMA controller 209 controls DMA transfer between the large-capacity flash memory 208 and the RAM 204.
図3は、音源LSI206のブロック図である。音源LSI206は、波形発生器301、バスインタフェース302、DSP303、及びミキサ304を含む。波形発生器301は、図2のRAM204から波形データ読み出して楽音波形として発生する#1から#256までの256組の発振器である波形読出し装置305を具備する。バスインタフェース302は、バス202と、波形発生器301、DSP303、及びミキサ304との接続を行うバスインタフェース回路であり、これら各部と図2のCPU205又はRAM204との通信を司る。DSP303は、楽音信号に音響効果をもたらすデジタル信号処理回路である。ミキサ304は、波形発生器301が出力する楽音信号を混合したり、DSP303に送ったり、DSP303からの音響信号を受け取ったりすることで全体の楽音信号の流れを制御し、外部に出力する。ミキサ304からのデジタル楽音信号は、図2のD/Aコンバータ214でアナログ楽音信号に変換される。このアナログ楽音信号は、アンプ215で増幅された後に、アナログ楽音出力信号として出力される。 FIG. 3 is a block diagram of the tone generator LSI 206. The tone generator LSI 206 includes a waveform generator 301, a bus interface 302, a DSP 303, and a mixer 304. The waveform generator 301 includes a waveform reading device 305 which is a set of 256 oscillators # 1 to # 256 that read out waveform data from the RAM 204 of FIG. The bus interface 302 is a bus interface circuit that connects the bus 202 to the waveform generator 301, the DSP 303, and the mixer 304, and manages communication between these units and the CPU 205 or the RAM 204 in FIG. The DSP 303 is a digital signal processing circuit that brings an acoustic effect to a musical sound signal. The mixer 304 controls the flow of the entire tone signal by mixing the tone signal output from the waveform generator 301, sending it to the DSP 303, or receiving the acoustic signal from the DSP 303, and outputs it to the outside. The digital musical tone signal from the mixer 304 is converted into an analog musical tone signal by the D / A converter 214 of FIG. The analog musical tone signal is amplified by the amplifier 215 and then output as an analog musical tone output signal.
次に、図2の大容量フラッシュメモリ208は、NAND型フラッシュメモリなどの、大容量で安価なメモリデバイスである。なお、この大容量フラッシュメモリ208の代わりに、ハードディスク記憶装置や、ネットワーク上又はクラウド上のディスク装置が使用されてもよい。大容量フラッシュメモリ208には、主に以下のようなデータが格納されている。
・全ての音色の波形データ
・全ての音色のパラメータデータ
・CPU205やDSP303が実行するプログラム、プログラムの使用データ
・音楽データ
・ユーザの設定データ
波形データは例えば、1ワード長が16ビットのリニアPCMフォーマットデータである。
Next, the large-capacity flash memory 208 in FIG. 2 is a large-capacity and inexpensive memory device such as a NAND flash memory. Instead of the large-capacity flash memory 208, a hard disk storage device or a disk device on a network or cloud may be used. The large-capacity flash memory 208 mainly stores the following data.
-Waveform data for all tones-Parameter data for all tones-Programs executed by the CPU 205 and DSP 303, program usage data-Music data-User setting data Waveform data is, for example, a linear PCM format with a word length of 16 bits It is data.
前述した大容量フラッシュメモリ208の内容は、CPU205からは任意のアドレスへのアクセスが可能であるが、音源LSI206からはアクセスすることができないので、大容量フラッシュメモリ208中の波形データをRAM204に転送する必要がある。しかしながら、RAM204の記憶容量は大容量フラッシュメモリ208よりも小さいために、全てのデータをRAM204中の発音チャネル毎のバッファ領域に転送することはできない。従って、RAM204の記憶内容は必要に応じて逐次入れ替える必要がある。入替えが必要なデータの中で特に本実施形態が対象とするものは波形データであるが、波形データの制御の詳細については後述する。 The contents of the large-capacity flash memory 208 described above can be accessed from the CPU 205 to an arbitrary address, but cannot be accessed from the tone generator LSI 206. Therefore, the waveform data in the large-capacity flash memory 208 is transferred to the RAM 204. There is a need to. However, since the storage capacity of the RAM 204 is smaller than that of the large-capacity flash memory 208, it is not possible to transfer all the data to the buffer area for each sound generation channel in the RAM 204. Therefore, the storage contents of the RAM 204 must be sequentially replaced as necessary. Of the data that needs to be replaced, waveform data is particularly targeted by the present embodiment. Details of the control of the waveform data will be described later.
図1から図3に示す本実施形態の動作の概要について、以下に説明する。まず本実施例では、演奏者が図1の音色選択ボタン102を押下することで図1に示される16音色のうちのいずれかを選択することができる。各音色は、それぞれ1音色当たり最大32種類の波形が用いられ、波形データは大容量フラッシュメモリ208に格納されている。図4は、音色波形のスプリット制御の説明図である。図4に示されるように、1音色の音域(キー番号)とベロシティ域が2次元的に分割され、それぞれのスプリット(分割)エリアに、上述の最大32個の波形が割り当てられている。即ち、押鍵時の速さ(ベロシティ)とキー番号(鍵盤101の番号)の2つのファクタから、読み出されるべき波形が1つ決定される、という制御が実施される。 The outline of the operation of the present embodiment shown in FIGS. 1 to 3 will be described below. First, in this embodiment, the player can select any of the 16 timbres shown in FIG. 1 by pressing the timbre selection button 102 in FIG. Each tone color uses a maximum of 32 types of waveforms per tone color, and the waveform data is stored in the large-capacity flash memory 208. FIG. 4 is an explanatory diagram of split control of a timbre waveform. As shown in FIG. 4, the tone range (key number) and velocity range of one tone color are two-dimensionally divided, and the above-described maximum 32 waveforms are assigned to each split (divided) area. In other words, control is performed in which one waveform to be read is determined from two factors, the speed (velocity) at the time of key depression and the key number (number of the keyboard 101).
図5は、「フラッシュメモリ音色波形ディレクトリ」のデータ例を示す図である。フラッシュメモリ音色波形ディレクトリは、大容量フラッシュメモリ208上に格納されている全ての波形データの情報をまとめたテーブルである。具体的には、このテーブルは、「音色番号」及び「音色内波形番号」で決まる各音色の各波形それぞれが用いられる鍵域を示す「最低キー番号」と「最高キー番号」(図4の横軸)、前記各波形それぞれが用いられるベロシティ域情報である「最低ベロシティ」と「最高ベロシティ」(図4の縦軸)、実際に大容量フラッシュメモリ208のどのアドレスに配置されているかを示す「波形領域先頭からのアドレス」、波形の長さを示す「波形サイズ」、読出しに使用される「スタートアドレス」、「ループアドレス」、及び「エンドアドレス」の情報をまとめたテーブルである。このテーブルは、電源投入時に、RAM204上に展開される。 FIG. 5 is a diagram showing an example of data in the “flash memory timbre waveform directory”. The flash memory tone color waveform directory is a table in which information of all waveform data stored in the large-capacity flash memory 208 is collected. Specifically, this table includes a “lowest key number” and a “highest key number” (in FIG. 4) that indicate a key range in which each waveform of each timbre determined by “tone color number” and “intratone waveform number” is used. (Horizontal axis), “lowest velocity” and “highest velocity” (vertical axis in FIG. 4) which are the velocity area information used for each of the waveforms, and which address in the large-capacity flash memory 208 is actually allocated. It is a table that summarizes information on “address from the top of the waveform area”, “waveform size” indicating the length of the waveform, “start address”, “loop address”, and “end address” used for reading. This table is expanded on the RAM 204 when the power is turned on.
図6は、「RAM波形バッファディレクトリ」のデータ例を示す図である。RAM波形バッファディレクトリは、RAM204上のボイス(発振器)チャンネル毎の波形バッファのための情報を保持するテーブルである。具体的には、このテーブルには、ボイスの現在の状況を表す「ボイスステータス」、読み出されるべき波形の3つのアドレス情報である「波形バッファスタートアドレス」と「波形バッファループアドレス」と「波形バッファエンドアドレス」、CPU205による大容量フラッシュメモリ208上の現在の転送波形の読出しアドレスである「転送データポインタ」、CPU205によるRAM204への転送書込みアドレスである「書込みポインタ」、音源LSI206によるRAM204上の現在の読出しアドレスである「読出しポインタ最新値」、そして、書込みポインタと読出しポインタ最新値との差分である「読出しマージン」が保持される。なお、以下の説明では、「読出しポインタ最新値」を「読出しポインタ」と言う。また、「読出しマージン」は、「波形読出しマージン」と記載する。 FIG. 6 is a diagram illustrating an example of data in the “RAM waveform buffer directory”. The RAM waveform buffer directory is a table that holds information for the waveform buffer for each voice (oscillator) channel on the RAM 204. Specifically, this table includes a “voice status” representing the current status of the voice, and “waveform buffer start address”, “waveform buffer loop address”, and “waveform buffer” that are three pieces of address information of the waveform to be read. “End address”, “transfer data pointer” that is the read address of the current transfer waveform on the large-capacity flash memory 208 by the CPU 205, “write pointer” that is the transfer write address to the RAM 204 by the CPU 205, and the current on the RAM 204 by the tone generator LSI 206 The “read pointer latest value” that is the read address of the data and the “read margin” that is the difference between the write pointer and the read pointer latest value are held. In the following description, “read pointer latest value” is referred to as “read pointer”. The “read margin” is described as “waveform read margin”.
図7(a)は、大容量フラッシュメモリ208上の音色波形領域からRAM204上の波形バッファへの音色波形転送動作の説明図である。大容量フラッシュメモリ208上には全ての音色の波形データが格納されており、そのサイズは波形毎に異なる。RAM204上には波形バッファが発音ボイスチャンネル分確保されている。これらのサイズは一定であり、実施例では16KB(キロバイト)である。前述したように波形データは、以下のアドレス情報を持つ。 FIG. 7A is an explanatory diagram of the timbre waveform transfer operation from the timbre waveform area on the large-capacity flash memory 208 to the waveform buffer on the RAM 204. The large-capacity flash memory 208 stores waveform data of all timbres, and the size differs for each waveform. On the RAM 204, waveform buffers are secured for the sound generation voice channels. These sizes are constant, and in the embodiment are 16 KB (kilobytes). As described above, the waveform data has the following address information.
1.スタートアドレス:音源LSI206が読出しを開始するためのアドレス
2.エンドアドレス:音源LSI206が読出しを行う最も後方のアドレス
3.ループアドレス:スタートアドレスとエンドアドレスの間に存在し、
波形読出しがエンドアドレスに達した場合に、次に読み出されるのが
このループアドレスである。なお、ループアドレスが、エンドアドレスと
等しい場合は、ループは行われず、読出しポインタがエンドアドレス
に達した時点で発音を停止する。
1. 1. Start address: address for the sound source LSI 206 to start reading 2. End address: the rearmost address from which the tone generator LSI 206 reads. Loop address: exists between the start address and end address,
When the waveform read reaches the end address, the loop address is read next. If the loop address is equal to the end address, no loop is performed and sound generation stops when the read pointer reaches the end address.
また、必ずしもスタートアドレスが波形データの先頭である必要もなく、エンドアドレスが、波形の最後尾である必要もない。 Further, the start address does not necessarily need to be the beginning of the waveform data, and the end address does not have to be the end of the waveform.
バッファサイズを16K(キロ)ワード、波形番号wを有する波形のスタートアドレスをstart_ad[w]、ループアドレスをloop_ad[w]、エンドアドレスを end_ad[w]としたとき、各波形は、そのサイズによって以下の3つに分類される。 When the buffer size is 16K (kilo) words, the start address of the waveform having the waveform number w is start_ad [w], the loop address is loop_ad [w], and the end address is end_ad [w], each waveform depends on its size. It is classified into the following three.
TypeA:
end_ad[w]−start_ad[w]≦16384(16Kワード)
TypeB:
end_ad[w]−start_ad[w]>16384
end_ad[w]−loop_ad[w]+1≦16384
TypeC:
end_ad[w]−loop_ad[w]>16384
Type A:
end_ad [w] −start_ad [w] ≦ 16384 (16K words)
Type B:
end_ad [w] -start_ad [w]> 16384
end_ad [w] −loop_ad [w] + 1 ≦ 16384
TypeC:
end_ad [w] -loop_ad [w]> 16384
本実施形態では、これら3つのType(タイプ)によって波形読込みの手法が変更される。まず、TypeCの波形転送動作は、以下の通りである。TypeCは、ループ区間も波形バッファに格納できないタイプであり、この場合には通常のリングバッファ方式の制御が実施される。図7(b)は、TypeCのリングバッファの動作の説明図である。図7(b)に示されるように、波形バッファvの全体を1つのリングとして、音源LSI206は、発音開始から発音終了まで、単純に波形バッファvの全区間を繰り返し読み続ける。そのため、CPU205は、波形バッファvにおいて、CPU205が更新する書込みポインタwp[v]が、音源LSI206が更新する読出しポインタrp[v]を追い越さないように、大容量フラッシュメモリ208の音色波形領域wからRAM204上の波形バッファvに波形データを転送し続ける。 In the present embodiment, the waveform reading method is changed by these three types (types). First, the Type C waveform transfer operation is as follows. Type C is a type in which the loop section cannot be stored in the waveform buffer. In this case, normal ring buffer control is performed. FIG. 7B is an explanatory diagram of the operation of the Type C ring buffer. As shown in FIG. 7B, the tone generator LSI 206 simply repeatedly reads the entire section of the waveform buffer v from the start of sound generation to the end of sound generation, with the entire waveform buffer v as one ring. Therefore, in the waveform buffer v, the CPU 205 starts from the timbre waveform area w of the large-capacity flash memory 208 so that the write pointer wp [v] updated by the CPU 205 does not overtake the read pointer rp [v] updated by the tone generator LSI 206. The waveform data continues to be transferred to the waveform buffer v on the RAM 204.
また、波形読出し式の電子楽器では有限の波形データの読出しを無限に継続させるために、波形データの一区間を繰返し読み出すループという手法を用いるのが一般的である。音色波形領域wにおいて、スタートアドレスから波形の読出しが開始され、エンドアドレスに達すると、それより手前に設定されたループアドレスに不連続に戻り、エンドアドレスに達すると再度ループアドレスに戻るという動作が無限に繰り返される。本実施形態では、CPU205が読み出したデータをそのまま順次リングバッファである波形バッファ[v]に書き込んでゆく。このときのCPU205による波形データ転送における音色波形領域w上の読出しアドレスは転送データポインタtp[v]であり、CPU205よる波形バッファvへの書込みアドレスは書込みポインタwp[v]であり、音源LSI206による波形バッファvからの読出しアドレスは読出しポインタrp[v]である。 Further, in a waveform readout type electronic musical instrument, a technique called a loop that repeatedly reads one section of waveform data is generally used in order to continue reading infinite waveform data indefinitely. In the timbre waveform area w, waveform reading is started from the start address, and when the end address is reached, the loop address set discontinuously returns to the previous address, and when the end address is reached, the loop address is returned again. Repeated indefinitely. In the present embodiment, the data read by the CPU 205 is sequentially written in the waveform buffer [v], which is a ring buffer. At this time, the read address on the timbre waveform area w in the waveform data transfer by the CPU 205 is the transfer data pointer tp [v], and the write address to the waveform buffer v by the CPU 205 is the write pointer wp [v]. The read address from the waveform buffer v is the read pointer rp [v].
例えば、音色波形領域wの波形サイズ(スタートアドレスからエンドアドレスまで)が波形バッファvのサイズよりも小さいか等しいTypeAのループ波形転送動作の場合、音色波形領域w上の全ての波形データを波形バッファvに転送することができるため、音源LSI206による読出しアドレスは、波形バッファvの中にループ区間を設けてループさせておけばよい。従って、CPU205は、音色波形領域w上の波形データをエンドアドレスまで波形バッファvに転送すれば、それ以上の転送は必要ない。 For example, in the case of a Type A loop waveform transfer operation in which the waveform size of the timbre waveform region w (from the start address to the end address) is smaller than or equal to the size of the waveform buffer v, all waveform data on the timbre waveform region w are stored in the waveform buffer. Since it can be transferred to v, the read address by the tone generator LSI 206 may be looped by providing a loop section in the waveform buffer v. Therefore, if the CPU 205 transfers the waveform data on the timbre waveform area w to the waveform buffer v up to the end address, no further transfer is necessary.
図8は、TypeBのループ波形転送動作の説明図である。本実施形態における特徴的なポイントの1つは、このTypeBの動作である。多くの楽音波形は、全体の波形サイズと比較するとループ区間は短いことが多く、例えば、波形データ全体(スタートアドレスからエンドアドレスまで)をRAM204のバッファ領域内に格納できなくても、ループ区間の波形データ(ループアドレスからエンドアドレスまで)だけであればバッファ領域に格納できるケースは多いはずである。本実施形態では、従来のように、ループ区間の読出しが行われる毎に音色波形領域wから波形バッファvに波形データが転送はされない。 FIG. 8 is an explanatory diagram of a Type B loop waveform transfer operation. One of the characteristic points in this embodiment is the operation of Type B. In many musical sound waveforms, the loop section is often shorter than the entire waveform size. For example, even if the entire waveform data (from the start address to the end address) cannot be stored in the buffer area of the RAM 204, In many cases, waveform data (from the loop address to the end address) can be stored in the buffer area. In the present embodiment, the waveform data is not transferred from the timbre waveform region w to the waveform buffer v every time the loop section is read, as in the prior art.
本実施形態では、図8に示されるように、波形データのループ区間(ループアドレスからエンドアドレスまで)が波形バッファvの或る領域内に収まるような制御が実行される。この制御では、図8(b)に示されるように、波形バッファvの先頭にループアドレスの波形データが配置され、波形データ全体が連続的に発音部から出力されるように、スタートアドレスの波形データを波形バッファv内のどの位置に書き込むべきかを示す書込みアドレスが逆算により算出されて、図8(a)に示されるように、その書込みアドレスが示す領域から波形データが格納開始されるように、転送1が開始される。その後、転送2が開始される。もっとも第1プロセッサは転送1を開始する前や、転送1の開始と同時に転送2の処理を実行していてもよく、発音部による発音に間にあうように、波形バッファへの転送1及び転送2の転送が完了していればよい。音源LSI206は、図8(a)に示す波形バッファv上の上記書込みアドレスから波形データの読み込みを開始し、ループ区間に入ると、図8(b)に示す波形バッファvの先頭から実際の波形データのエンドアドレスの位置まで繰り返し波形データを読み込む。それ以降は、音源LSI206が波形バッファv内でループ処理を行うので、CPU205による波形転送は必要なくなる。このときのスタートアドレスの波形バッファv上のアドレスは、下記式の演算により算出される。 In the present embodiment, as shown in FIG. 8, control is performed such that the loop section (from the loop address to the end address) of the waveform data is within a certain area of the waveform buffer v. In this control, as shown in FIG. 8B, the waveform of the start address is arranged so that the waveform data of the loop address is arranged at the head of the waveform buffer v and the entire waveform data is continuously output from the sound generation unit. A write address indicating where the data should be written in the waveform buffer v is calculated by back calculation, and as shown in FIG. 8A, the waveform data starts to be stored from the area indicated by the write address. Then, transfer 1 is started. Thereafter, transfer 2 is started. However, the first processor may execute the process of transfer 2 before the start of transfer 1 or at the same time as the start of transfer 1, and the transfer of the transfer 1 and transfer 2 to the waveform buffer in time for the sound generation by the sound generation unit. It is sufficient that the transfer is completed. The tone generator LSI 206 starts reading the waveform data from the write address on the waveform buffer v shown in FIG. 8A and enters the loop section, and then enters the actual waveform from the top of the waveform buffer v shown in FIG. 8B. Read waveform data repeatedly to the position of the data end address. Thereafter, the tone generator LSI 206 performs loop processing in the waveform buffer v, so that waveform transfer by the CPU 205 is not necessary. The address of the start address at this time on the waveform buffer v is calculated by the following equation.
波形バッファv上のスタートアドレス=
BUF_SIZE−1−mod(loop_ad[w]
−start_ad[w]+1,BUF_SIZE)
但し、mod(a,m)関数はaをmで除算したモジュロ(剰余)を求める関数。
また、BUF_SIZE=波形バッファvのサイズ=16384バイト
Start address on waveform buffer v =
BUF_SIZE-1-mod (loop_ad [w]
−start_ad [w] +1, BUF_SIZE)
However, the mod (a, m) function is a function for obtaining a modulo (remainder) obtained by dividing a by m.
BUF_SIZE = size of waveform buffer v = 16384 bytes
ところで、波形バッファvの書込みポインタwp[v]が音源LSI206の読出しポインタrp[v]を追い越せば、音源LSI206が読み出す波形データは、突然、不連続に過去のデータに戻ってしまい、ノイズが発生することになる。これは音楽的に許容できるものではない。 By the way, if the write pointer wp [v] of the waveform buffer v overtakes the read pointer rp [v] of the sound source LSI 206, the waveform data read by the sound source LSI 206 suddenly returns discontinuously to the past data, and noise is generated. Will do. This is not musically acceptable.
そこで、本実施例では、波形バッファvにおける読出しポインタrp[v]が、波形データを充当しない状態でどれだけ読めるかというデータのワード数(アドレス)、即ち、書込みポインタwp[v]の値と読出しポインタrp[v]の値の差分が、波形読出しマージンとして管理される。本実施形態では、この波形読出しマージンが所定の値以下に達した場合、その楽音を発生しているボイスチャネルに対してダンプ処理(緩やかな消音処理)が実行され、その処理の後に発音が停止した時点でそのボイスチャネルの波形バッファvからの読出しが中止されることにより、ノイズの発生を防止することができる。 Therefore, in this embodiment, the read pointer rp [v] in the waveform buffer v is the number of data words (address) indicating how much can be read without applying waveform data, that is, the value of the write pointer wp [v]. The difference between the values of the read pointer rp [v] is managed as a waveform read margin. In the present embodiment, when the waveform reading margin reaches a predetermined value or less, dump processing (slow mute processing) is executed for the voice channel generating the musical sound, and sound generation is stopped after the processing. At this point, reading from the waveform buffer v of the voice channel is stopped, so that the generation of noise can be prevented.
本実施例では、その波形読出しマージンの値は、固定値ではなく再生ピッチが考慮されて、原音ピッチによる再生時には1Kワード未満、1オクターブ上のピッチでの再生時には2Kワード未満、1オクターブ下のピッチでの再生時には512ワード未満になったら、ダンプ処理の実行が決定される。 In this embodiment, the value of the waveform readout margin is not a fixed value, but the reproduction pitch is taken into consideration. When reproducing at the original sound pitch, less than 1K words, when reproducing at a pitch one octave above, less than 2K words, one octave below When playback is performed at a pitch of less than 512 words, execution of dump processing is determined.
ダンプ処理の速度は、このまま波形が補充されずに読み進んだとしても、すでに波形バッファvに転送された読込みマージン分の波形データが読み切られる前に消音できるだけの速度であればよい。その速度は現在の再生ピッチに依存する。 Even if the waveform is read without being replenished as it is, the dump processing speed may be a speed that can mute before the waveform data for the read margin already transferred to the waveform buffer v is completely read out. Its speed depends on the current playback pitch.
図9は、図2のCPU205が実行する制御処理のメインルーチンの処理例を示すフローチャートである。図1の電子鍵盤楽器100において、機能選択ボタン103により装置電源がパワーオンされると、CPU205は、図9のフローチャートで示されるメインルーチンを起動し、まず装置各部を初期化する初期化処理を実行する(ステップS901)。ステップS901の初期化処理が完了すると、ユーザが図1の音色選択ボタン102又は機能選択ボタン103の操作状態を取り込むスイッチ処理(ステップS902)、ステップS902の処理の結果に基づく音色選択ボタン102が操作された際の音色選択イベントの検出及び音色選択処理(ステップS903→S904)、ユーザが図1の鍵盤101を弾いた際の押鍵イベントや離鍵イベントを取り込む鍵盤処理(ステップS905)、ステップS905の処理の結果に基づく押鍵イベントの検出及び押鍵処理(ステップS906→S907)、ステップS905の処理の結果に基づく離鍵イベントの検出及び離鍵処理(ステップS908→S909)、音源LSI206からのイベントの処理を行う音源イベント処理(ステップS910)、音源LSI206に対して一定時間毎の処理を行う音源定期処理(ステップS911)が、繰り返し実行される。 FIG. 9 is a flowchart showing a processing example of a main routine of the control processing executed by the CPU 205 in FIG. In the electronic keyboard instrument 100 of FIG. 1, when the apparatus power is turned on by the function selection button 103, the CPU 205 starts a main routine shown in the flowchart of FIG. 9, and first performs initialization processing for initializing each part of the apparatus. Execute (Step S901). When the initialization process in step S901 is completed, a switch process (step S902) in which the user takes in the operation state of the timbre selection button 102 or the function selection button 103 in FIG. 1, and the timbre selection button 102 based on the result of the process in step S902 is operated. Timbre selection event detection and timbre selection processing (step S903 → S904), keyboard processing (step S905) for capturing a key pressing event and a key release event when the user plays the keyboard 101 of FIG. 1, step S905 Detection and key release processing (step S908 → S909) based on the result of the process in step S905, detection of key release event and key release processing based on the result of the process (step S908 → S909), Sound source event processing (step S9) 0), the sound source periodic process that performs processing for each predetermined time with respect to the sound source LSI 206 (step S911) is repeatedly executed.
図10(a)は、図9のステップS901の初期化処理の詳細例を示すフローチャートである。まず、CPU205は、大容量フラッシュメモリ208からフラッシュメモリ音色波形ディレクトリ(図5参照)のテーブルデータを、RAM204上の指定されたアドレスに転送する(ステップS1001)。 FIG. 10A is a flowchart showing a detailed example of the initialization process in step S901 of FIG. First, the CPU 205 transfers table data of the flash memory tone color waveform directory (see FIG. 5) from the large-capacity flash memory 208 to a designated address on the RAM 204 (step S1001).
次に、ステップS1002とステップS1004の繰返し制御処理によりボイス数分のループ処理が実行される。このループ処理中のステップS1003において、ボイスステータスvs[v]、ボイス番号vに対応する波形バッファvの波形バッファスタートアドレスsa[v]、波形バッファループアドレスla[v]、波形バッファエンドアドレスea[v]が初期化される。 Next, the loop processing for the number of voices is executed by the repeated control processing of step S1002 and step S1004. In step S1003 during the loop processing, the voice status vs [v], the waveform buffer start address sa [v] of the waveform buffer v corresponding to the voice number v, the waveform buffer loop address la [v], and the waveform buffer end address ea [ v] is initialized.
次に音色波形領域wから波形バッファvへの波形の転送を管理するための転送要求カウンタ、転送状態フラグ、転送要求バッファ(リンク構造)が初期化される(ステップS1005)。転送要求カウンタは、転送中のボイスが現在いくつあるか管理するものであり、転送状態フラグは、音色波形領域から波形バッファへの転送中か否かを判断するフラグであり、転送要求バッファは次にどのボイスに対して音色波形領域から波形バッファへの波形転送を行うかを管理するためのバッファである。 Next, a transfer request counter, a transfer status flag, and a transfer request buffer (link structure) for managing the transfer of the waveform from the timbre waveform area w to the waveform buffer v are initialized (step S1005). The transfer request counter manages how many voices are currently being transferred, and the transfer status flag is a flag for determining whether or not transfer from the timbre waveform area to the waveform buffer is in progress. This is a buffer for managing which voice is to be transferred from the timbre waveform area to the waveform buffer.
図10(b)は、図9のステップS904の音色選択処理の詳細例を示すフローチャートである。CPU205は、押鍵処理などで使用するために、図1の音色選択ボタン102の操作により指定された音色番号がRAM204内のワーク領域に保存しておく(ステップS1010)。 FIG. 10B is a flowchart showing a detailed example of the timbre selection process in step S904 of FIG. The CPU 205 stores the timbre number designated by the operation of the timbre selection button 102 in FIG. 1 in the work area in the RAM 204 for use in key depression processing or the like (step S1010).
図11は、図9のステップS907の押鍵処理の詳細例を示すフローチャートである。CPU205は、鍵盤が弾かれた際の押鍵による演奏情報(鍵盤位置、押された強さ)を、キー番号、ベロシティに変換し、これらに基づく制御処理を実行する。 FIG. 11 is a flowchart showing a detailed example of the key pressing process in step S907 of FIG. The CPU 205 converts performance information (keyboard position, pressed strength) by pressing keys when the keyboard is played into key numbers and velocities, and executes control processing based on these.
CPU205は、最初に、この押鍵での発音にどのボイスを使用するかを決定するボイスアサインを実行する(ステップS1101)。CPU205は、RAM204に記憶されている図6に例示されるRAM波形バッファディレクトリにおいて、ボイスステータスが不使用(vs[v]=0)のボイス番号のボイスから優先的にアサインする。CPU205は、ボイスステータスが発音中(vs「v」=1)又は減衰中(vs「v」=2)のボイスをアサインしなくてはならないとき(ステップS1102の判定がYESの場合)は、ダンプ処理を実行する(ステップS1103)。 First, the CPU 205 executes a voice assignment for determining which voice is to be used for sound generation by pressing the key (step S1101). In the RAM waveform buffer directory illustrated in FIG. 6 stored in the RAM 204, the CPU 205 preferentially assigns voices whose voice number is not used (vs [v] = 0). The CPU 205 dumps the voice when the voice status is sounding (vs “v” = 1) or attenuated (vs “v” = 2) (when the determination in step S1102 is YES). Processing is executed (step S1103).
次に、CPU205は、キー番号、ベロシティ、現在の音色番号から、音色波形領域から波形バッファへ転送を行うべき波形番号wを取得する(ステップS1104)。 Next, the CPU 205 obtains the waveform number w to be transferred from the timbre waveform area to the waveform buffer from the key number, velocity, and current timbre number (step S1104).
次に、CPU205は、キー番号、波形番号wから得られる波形情報から、再生ピッチを計算する(ステップS1105)。 Next, the CPU 205 calculates a reproduction pitch from the waveform information obtained from the key number and the waveform number w (step S1105).
次に、CPU205は、再生ピッチから、波形読出しマージン(図6参照)を決定する(ステップS1106)。 Next, the CPU 205 determines a waveform reading margin (see FIG. 6) from the reproduction pitch (step S1106).
次に、CPU205は、読出しポインタrp[v]の更新処理に必要な、読出しポインタrp[v]に周期的に加算するオフセット値を計算する(ステップS1107)。 Next, the CPU 205 calculates an offset value periodically added to the read pointer rp [v], which is necessary for the update process of the read pointer rp [v] (step S1107).
次に、CPU205は、波形番号wのスタートアドレスstart_ad[w]、ループアドレスloop_ad[w]、及びエンドアドレスend_ad[w]から、前述した条件に従ってTypeA、TypeB、又はTypeCのいずれかの転送Typeを設定する(ステップS1108)。 Next, the CPU 205 transfers a transfer type of Type A, Type B, or Type C from the start address start_ad [w], the loop address loop_ad [w], and the end address end_ad [w] of the waveform number w according to the above-described conditions. Setting is made (step S1108).
次に、CPU205は、転送TypeがTypeA又はTypeCの場合は、読出しポインタrp[v]及び書込みポインタwp[v]を0に設定する(ステップS1109→S1110)。CPU205は、転送TypeがTypeBの場合は、前述したループアドレスが波形バッファvの先頭になるように読出しポインタrp[v]及び書込みポインタwp[v]を逆算して、補正された各値を設定する(ステップS1109→S1111)。 Next, when the transfer type is Type A or Type C, the CPU 205 sets the read pointer rp [v] and the write pointer wp [v] to 0 (steps S1109 → S1110). When the transfer type is Type B, the CPU 205 sets the corrected values by calculating back the read pointer rp [v] and the write pointer wp [v] so that the loop address described above is at the head of the waveform buffer v. (Steps S1109 → S1111).
ステップS1110又はS1111の処理の後、CPU205は、音色波形領域から波形バッファへの波形転送を行うために、波形転送管理処理に対して新規転送要求を発行し、波形転送管理処理での処理の終了を待つ(ステップS1112)。 After the process of step S1110 or S1111, the CPU 205 issues a new transfer request to the waveform transfer management process in order to transfer the waveform from the timbre waveform area to the waveform buffer, and ends the process in the waveform transfer management process. (Step S1112).
CPU205は、書込みポインタwp[v]と読出しポインタrp[v]の差分から波形読出しマージンを計算することにより(ステップS1113)、ステップS1112の波形転送管理処理で波形バッファに波形が転送されたか否かを確認し、再生ピッチで決定された波形読出しマージンと比較を行う(ステップS1113→S1114→S1113の繰返し)。CPU205は、現在の波形読出しマージンが再生ピッチで決定された波形読出しマージンより大きくなった時点で、波形読出しの開始、即ち発音の開始を行い、ボイスステータス(図6参照)を発音中(vs「v」=1)にする(ステップS1114→S1115)。その後、CPU205は、図11のフローチャートで例示される図9のステップS907の押鍵処理を終了する。 The CPU 205 calculates a waveform read margin from the difference between the write pointer wp [v] and the read pointer rp [v] (step S1113), and determines whether or not the waveform has been transferred to the waveform buffer by the waveform transfer management process in step S1112. Is compared with the waveform readout margin determined by the reproduction pitch (repetition of steps S1113 → S1114 → S1113). When the current waveform reading margin becomes larger than the waveform reading margin determined by the reproduction pitch, the CPU 205 starts waveform reading, that is, starts sounding, and is producing a voice status (see FIG. 6) (vs “ v ”= 1) (steps S1114 → S1115). Thereafter, the CPU 205 ends the key pressing process in step S907 of FIG. 9 exemplified by the flowchart of FIG.
図10(c)は、図9のステップS909の離鍵処理の詳細例を示すフローチャートである。CPU205は、鍵盤を弾いた際の離鍵による演奏情報を(鍵盤位置)をキー番号に変換し、ピッチ、フィルタ、アンプのエンベロープ設定等に基づくリリース状態への移行処理を実行する(ステップS1020)。この処理は、本実施形態の波形転送に関する部分には影響を与えない。ステップS1020の処理の後、CPU205は、図10(c)のフローチャートで例示される図9のステップS909の離鍵処理を終了する。 FIG. 10C is a flowchart showing a detailed example of the key release process in step S909 of FIG. The CPU 205 converts the performance information by releasing the key when the keyboard is played (keyboard position) into a key number, and executes a transition process to the release state based on the pitch, filter, amplifier envelope setting, and the like (step S1020). . This process does not affect the portion related to waveform transfer in this embodiment. After the process of step S1020, the CPU 205 ends the key release process of step S909 of FIG. 9 exemplified by the flowchart of FIG.
図12及び図13は、波形転送管理処理を示すフローチャートである。CPU205は、図12のステップS1201、S1202、及びS1203でそれぞれ、波形転送管理処理に対して発行されたイベントが、新規転送要求、転送要求、転送終了、又は転送停止の何れであるかを判定し、それぞれのイベントに対応した処理を実行する。 12 and 13 are flowcharts showing the waveform transfer management process. The CPU 205 determines whether the event issued to the waveform transfer management process in steps S1201, S1202, and S1203 in FIG. 12 is a new transfer request, a transfer request, a transfer end, or a transfer stop, respectively. The process corresponding to each event is executed.
新規転送要求イベントが発行された場合(図11のステップS1112参照)、図12のステップS1201の判定がYESとなって、図13のステップS1216の処理が実行される。ステップS1216で、CPU205は、転送状態フラグを確認する。 When a new transfer request event is issued (see step S1112 in FIG. 11), the determination in step S1201 in FIG. 12 is YES, and the process in step S1216 in FIG. 13 is executed. In step S1216, the CPU 205 checks the transfer status flag.
ステップS1216で転送状態フラグが転送終了待ちであると判定された場合は、別のボイスに対して音色波形領域から波形バッファへの波形転送を行っている最中であるので、CPU205は、別のボイスの転送終了イベントからの転送要求イベントで処理されるように、転送要求バッファの先頭に該当ボイスを設定する(図13のステップS1225)。その後、CPU205は、図12及び図13のフローチャートで示される波形転送管理処理を終了する。 If it is determined in step S1216 that the transfer status flag is waiting for transfer completion, the CPU 205 is in the middle of transferring the waveform from the timbre waveform area to the waveform buffer for another voice. The corresponding voice is set at the head of the transfer request buffer so as to be processed by the transfer request event from the voice transfer end event (step S1225 in FIG. 13). Thereafter, the CPU 205 ends the waveform transfer management process shown in the flowcharts of FIGS.
ステップS1216で転送状態フラグが待機状態であると判定された場合は、CPU205はまず、該当ボイス番号に対して、転送1回あたりの読出しサイズ(ここでは2ページ)を指定し、後述する波形読出し、波形バッファ転送処理(図14(a))に、転送要求を発行する(図13のステップS1217)。 If it is determined in step S1216 that the transfer status flag is in a standby state, the CPU 205 first designates a read size (in this case, 2 pages) per transfer for the corresponding voice number, and a waveform read-out described later. Then, a transfer request is issued to the waveform buffer transfer process (FIG. 14A) (step S1217 in FIG. 13).
次に、CPU205は、転送状態フラグを転送終了待ちに設定し(図13のステップS1218)、該当ボイスを転送要求バッファの最後尾に設定する(図13のステップS1219)。 Next, the CPU 205 sets the transfer status flag to waiting for transfer completion (step S1218 in FIG. 13), and sets the corresponding voice at the end of the transfer request buffer (step S1219 in FIG. 13).
次に、CPU205は、転送データポインタtp[v]を更新し(図13のステップS1220)、転送要求バッファカウンタをインクリメントする(図13のステップS1221)。 Next, the CPU 205 updates the transfer data pointer tp [v] (step S1220 in FIG. 13) and increments the transfer request buffer counter (step S1221 in FIG. 13).
次に、CPU205は、転送Typeを確認する(図13のステップS1222)。転送TypeがAの場合は、波形バッファ内に波形の全てが転送可能であるので、全データが転送完了したかを判定する(図13のステップS1223)。この判定は、転送データポインタがエンドアドレスに到達したかどうかで判断できる。 Next, the CPU 205 confirms the transfer type (step S1222 in FIG. 13). When the transfer type is A, since all the waveforms can be transferred in the waveform buffer, it is determined whether or not all the data has been transferred (step S1223 in FIG. 13). This determination can be made based on whether or not the transfer data pointer has reached the end address.
全データの転送が完了している場合は、これ以上の転送は必要ないので、波形転送管理処理に対して、転送停止イベントを発行する(図13のステップS1224)。その後、CPU205は、図12及び図13のフローチャートで示される波形転送管理処理を終了する。 When the transfer of all data is completed, no further transfer is necessary, so a transfer stop event is issued to the waveform transfer management process (step S1224 in FIG. 13). Thereafter, the CPU 205 ends the waveform transfer management process shown in the flowcharts of FIGS.
ステップS1222で、転送TypeがB又はCと判定された場合、或いは、ステップS1223で全データの転送が完了していないと判定された馬合には、CPU205は、図12及び図13のフローチャートで示される波形転送管理処理を終了する。 If it is determined in step S1222 that the transfer type is B or C, or if it is determined in step S1223 that the transfer of all data has not been completed, the CPU 205 uses the flowcharts of FIGS. The indicated waveform transfer management process is terminated.
後述する波形読出し、波形バッファ転送処理で指定サイズ分の波形データの転送が終了し波形転送管理処理に対して転送終了の要求イベントが発行された場合(図14(a)のステップS1407)、図12のステップS1201及びS1202の判定がNO、ステップS1203の判定がYESとなって、図12のステップS1206の処理が実行される。ステップS1206で、CPU205は、転送要求バッファに転送待ちのボイスがあるか否か、即ち、転送要求バッファカウンタが0でないか0であるかを判定する。 When transfer of waveform data for a specified size is completed in waveform reading and waveform buffer transfer processing, which will be described later, and a transfer end request event is issued for the waveform transfer management processing (step S1407 in FIG. 14A), The determinations in steps S1201 and S1202 are NO, and the determination in step S1203 is YES, and the process in step S1206 in FIG. 12 is executed. In step S1206, the CPU 205 determines whether there is a voice waiting for transfer in the transfer request buffer, that is, whether the transfer request buffer counter is not 0 or 0.
ステップS1206の判定がNOならば、音色波形領域から波形バッファへの全ての転送が終了した状態(無音)なので、CPU205はそのまま何もせずに、図12及び図13のフローチャートで例示される現在の波形転送管理処理を終了する。 If the determination in step S1206 is NO, all the transfer from the timbre waveform area to the waveform buffer has been completed (silence), so the CPU 205 does not do anything as it is and is currently illustrated in the flowcharts of FIGS. The waveform transfer management process ends.
ステップS1206の判定がYESならば、CPU205は、次のボイスが処理されるよう波形転送管理処理に対して、転送要求イベントを発行し(ステップS1207)、図12及び図13のフローチャートで例示される現在の波形転送管理処理を終了する。 If the determination in step S1206 is YES, the CPU 205 issues a transfer request event to the waveform transfer management process so that the next voice is processed (step S1207), and is exemplified in the flowcharts of FIGS. The current waveform transfer management process is terminated.
上述した図12のステップS1207の処理により、波形転送管理処理に大使って転送要求イベントが発行されると、図12のステップS1201の判定がNO、ステップS1202の判定がYESとなって、図12のステップS1208の処理が実行される。ステップS1208で、CPU205は、転送要求バッファの先頭のボイスについて転送処理を実行する。書込みポインタwp[v]と読出しポインタrp[v]を確認し、波形バッファvへの転送を行うことによって、書込みポインタwp[v]が読出しポインタrp[v]を追い越してしまう場合は、そのボイスvについては、転送要求バッファの最後尾に設定し、先頭から2番目のボイスに対して処理を行う。 When the transfer request event is issued for the waveform transfer management process by the process in step S1207 in FIG. 12 described above, the determination in step S1201 in FIG. 12 is NO and the determination in step S1202 is YES. The process of step S1208 is executed. In step S1208, the CPU 205 executes transfer processing for the first voice in the transfer request buffer. If the write pointer wp [v] overtakes the read pointer rp [v] by checking the write pointer wp [v] and the read pointer rp [v] and transferring to the waveform buffer v, the voice v is set at the end of the transfer request buffer, and processing is performed on the second voice from the beginning.
次に、CPU205は、該当ボイス番号に対して、転送1回あたりの読出しサイズ(こでは2ページ)を指定し、後述する波形読出し、波形バッファ転送処理(図14(a))に、転送要求を発行する(図12のステップS1209)。 Next, the CPU 205 designates a read size per transfer (in this case, two pages) for the corresponding voice number, and transfers a transfer request to a waveform read / waveform buffer transfer process (FIG. 14A) described later. Is issued (step S1209 in FIG. 12).
次に、CPU205は、転送状態フラグを転送終了待ちに設定し(図12のステップS1210)、該当ボイスを転送要求バッファの最後尾に設定する(図12のステップS1211)。 Next, the CPU 205 sets the transfer status flag to a transfer end wait (step S1210 in FIG. 12), and sets the corresponding voice at the end of the transfer request buffer (step S1211 in FIG. 12).
次に、CPU205は、転送データポインタtp[v]を更新する(図12のステップS1212)。 Next, the CPU 205 updates the transfer data pointer tp [v] (step S1212 in FIG. 12).
次に、CPU205は、転送Typeを確認する(図12のステップS1213)。転送TypeがA又はBの場合は、波形バッファ内に波形の全データが転送完了したかを判定する(図12のステップS1214)。この判定は、転送データポインタがエンドアドレスに到達したかどうかで判断できる。 Next, the CPU 205 confirms the transfer type (step S1213 in FIG. 12). If the transfer type is A or B, it is determined whether or not all waveform data has been transferred in the waveform buffer (step S1214 in FIG. 12). This determination can be made based on whether or not the transfer data pointer has reached the end address.
全データの転送が完了している場合は、これ以上の転送は必要ないので、波形転送管理処理に対して、転送停止イベントを発行する(図12のステップS1215)。その後、CPU205は、図12及び図13のフローチャートで示される波形転送管理処理を終了する。 When the transfer of all data is completed, no further transfer is necessary, so a transfer stop event is issued to the waveform transfer management process (step S1215 in FIG. 12). Thereafter, the CPU 205 ends the waveform transfer management process shown in the flowcharts of FIGS.
ステップS1213で、転送TypeがB又はCと判定された場合、或いは、ステップS1214で全データの転送が完了していないと判定された馬合には、CPU205は、図12及び図13のフローチャートで示される波形転送管理処理を終了する。 If it is determined in step S1213 that the transfer type is B or C, or if it is determined in step S1214 that the transfer of all data has not been completed, the CPU 205 uses the flowcharts of FIGS. The indicated waveform transfer management process is terminated.
図13のステップS1224、図12のステップS1215、又は後述する音源イベント処理(図14(b)のステップS1413)において波形転送管理処理に対して転送停止イベントが発行された場合、図12のステップS1201、S1202、及びS1203の判定が何れもNOとなって、ステップS1204が実行される。この場合、発音停止状態となり波形読出しは停止しているので、CPU205は、転送要求バッファから該当ボイスを削除し、転送要求バッファカウンタをデクリメントする(ステップS1204)。その後、CPU205は、図12及び図13のフローチャートで示される波形転送管理処理を終了する。 When a transfer stop event is issued for the waveform transfer management process in step S1224 in FIG. 13, step S1215 in FIG. 12, or a sound source event process (step S1413 in FIG. 14B) described later, step S1201 in FIG. , S1202 and S1203 are all NO, and step S1204 is executed. In this case, since the sound generation is stopped and the waveform reading is stopped, the CPU 205 deletes the corresponding voice from the transfer request buffer and decrements the transfer request buffer counter (step S1204). Thereafter, the CPU 205 ends the waveform transfer management process shown in the flowcharts of FIGS.
図14(a)は、波形読出し、波形バッファ転送処理を示すフローチャートである。このフローチャートの処理は、図13のステップS1217又は図12のステップS1209からの転送要求イベントにより起動される。 FIG. 14A is a flowchart showing waveform reading and waveform buffer transfer processing. The processing of this flowchart is activated by a transfer request event from step S1217 in FIG. 13 or step S1209 in FIG.
CPU205は、ステップS1401とS1405のループ制御処理により、以下のステップS1402からS1404の一連の処理を、波形転送管理処理(図13のステップS1217又は図12のステップS1209)で指定された指定サイズ分繰り返し実行する。 The CPU 205 repeats a series of processing from the following steps S1402 to S1404 for the specified size specified in the waveform transfer management processing (step S1217 in FIG. 13 or step S1209 in FIG. 12) by the loop control processing in steps S1401 and S1405. Run.
まず、ステップS1402で、CPU205は、転送データポインタtp[v]に基づいて、大容量フラッシュメモリ208の音色波形領域wからページ単位で波形データを読み込む。 First, in step S1402, the CPU 205 reads waveform data in page units from the timbre waveform area w of the large-capacity flash memory 208 based on the transfer data pointer tp [v].
次に、ステップS1403で、CPU205は、波形バッファループアドレス及び波形バッファエンドアドレスを考慮し、ループ読出しの場合は、不要な部分は読み捨てる。 In step S1403, the CPU 205 considers the waveform buffer loop address and the waveform buffer end address, and discards unnecessary portions in the case of loop reading.
そして、ステップS1404で、CPU205は、波形バッファvの書込みポインタwp[v]に応じたアドレスに、ステップS1402及びS1403で音色波形領域wから読み出した波形データの書込みを行う。CPU205は、書き込んだサイズ分、書込みポインタwp[v]を更新する。 In step S1404, the CPU 205 writes the waveform data read from the timbre waveform area w in steps S1402 and S1403 to an address corresponding to the write pointer wp [v] of the waveform buffer v. The CPU 205 updates the write pointer wp [v] by the written size.
次に、CPU205は、転送状態フラグに待機状態を設定し(ステップS1406)、前述した波形転送管理処理に対して、転送終了イベントを発行する(ステップS1407)。その後、CPU205は、図14のフローチャートで示される波形読出し、波形バッファ転送処理を終了する。 Next, the CPU 205 sets a standby state in the transfer state flag (step S1406), and issues a transfer end event to the waveform transfer management process described above (step S1407). Thereafter, the CPU 205 ends the waveform reading and waveform buffer transfer processing shown in the flowchart of FIG.
図14(b)は、図9のステップS910の音源イベント処理の詳細例を示すフローチャートである。CPU205は、図9のステップS909又は図10(c)の離鍵処理によってリリース状態に移行したボイスが、リリースレベルに到達した場合(ステップS1410の判定がYESの場合)、もしくは、ダンプ処理によってボイスがダンプレベルに到達した場合(ステップS1411の判定がYESの場合)は、当該ボイスに対して、波形読出しの停止(発音終了)を行った後(ステップS1412)、前述した波形転送管理処理に対して転送停止イベントを発行する(ステップS1413)。その後、CPU205は、図14(b)のフローチャートで例示される図9のステップS910の音源イベント処理を終了する。 FIG. 14B is a flowchart showing a detailed example of the sound source event process in step S910 of FIG. The CPU 205 determines that the voice that has been released by the key release process in step S909 in FIG. 9 or the release process in FIG. 10C has reached the release level (when the determination in step S1410 is YES), or the voice by the dump process. Has reached the dump level (when the determination in step S1411 is YES), after the waveform reading is stopped (sounding end) for the voice (step S1412), the waveform transfer management process described above is performed. Then, a transfer stop event is issued (step S1413). Thereafter, the CPU 205 ends the sound source event process in step S910 of FIG. 9 exemplified by the flowchart of FIG.
図15(a)は、図9のステップS911の音源定期処理の詳細例を示すフローチャートである。CPU205は、ピッチ変更があった場合(ステップS1501の判定がYES)、ステップS1502とS1508の繰返し制御処理によりボイス数分、以下のステップS1503からS1507の一連の処理を繰り返し実行する。 FIG. 15A is a flowchart showing a detailed example of the sound source regular processing in step S911 in FIG. When the pitch is changed (YES in step S1501), the CPU 205 repeatedly executes the following steps S1503 to S1507 for the number of voices by the repeated control processing in steps S1502 and S1508.
まず、CPU205は、ボイスステータスが不使用以外のボイスについて、転送Typeを確認する(ステップS1503→S1504)。 First, the CPU 205 confirms the transfer type for voices whose voice status is not unused (steps S1503 → S1504).
CPU205は、転送TypeがA又はBの場合は全データの転送が完了していないボイス(ステップS1504→S1505→S1506)、転送TypeがCの場合は全ボイスに対して(ステップS1504→S1506)、ピッチ変更後の再生ピッチから波形読出しマージンを決定する(ステップS1506)。 When the transfer type is A or B, the CPU 205 does not complete the transfer of all data (steps S1504 → S1505 → S1506), and when the transfer type is C, the CPU 205 applies to all voices (step S1504 → S1506). A waveform readout margin is determined from the reproduction pitch after the pitch change (step S1506).
続いて、CPU205は、読出しポインタrp[v]の更新処理に必要な読出しポインタrp[v]に周期的に加算するオフセット値を再計算する(ステップS1507)。 Subsequently, the CPU 205 recalculates an offset value periodically added to the read pointer rp [v] necessary for the update process of the read pointer rp [v] (step S1507).
その後、CPU205は、読出しポインタrpの更新処理(ステップS1509)と波形読出しマージン確認処理(捨てS1510)を実行し、図15(a)のフローチャートで例示される図9のステップS911の音源定期処理を終了する。 Thereafter, the CPU 205 executes update processing of the read pointer rp (step S1509) and waveform read margin confirmation processing (discard S1510), and performs the sound source regular processing of step S911 of FIG. 9 illustrated in the flowchart of FIG. finish.
図15(b)は、図15(a)のステップS1509の読出しポインタrp[v]の更新処理(rp更新処理)の詳細例を示すフローチャートである。CPU205は、ステップS1510とS1515の繰返し制御処理によりボイス数分、以下のステップS1511からS1514の一連の処理を繰り返し実行する。 FIG. 15B is a flowchart showing a detailed example of update processing (rp update processing) of the read pointer rp [v] in step S1509 of FIG. The CPU 205 repeatedly executes the following series of steps S1511 to S1514 for the number of voices by the repeated control process of steps S1510 and S1515.
まず、CPU205は、ボイスステータスが不使用以外のボイスについて、転送Typeを確認する(ステップS1511→S1512)。 First, the CPU 205 confirms the transfer type for voices whose voice status is not unused (steps S1511 → S1512).
CPU205は、転送TypeがA又はBの場合は全データの転送が完了していないボイス(ステップS1512→S1513→S1514)、転送TypeがCの場合は全ボイスに対して(ステップS1512→S1514)、読出しポインタrp[v]にオフセット値offsetを加算する(ステップS1514)。その後、CPU205は、図15(b)のフローチャートで例示される図15のステップS1509の読出しポインタrp[v]の更新処理(rp更新処理)を終了する。 When the transfer type is A or B, the CPU 205 does not complete the transfer of all data (steps S1512 → S1513 → S1514), and when the transfer type is C, the CPU 205 applies to all voices (steps S1512 → S1514). The offset value offset is added to the read pointer rp [v] (step S1514). Thereafter, the CPU 205 ends the update process (rp update process) of the read pointer rp [v] in step S1509 of FIG. 15 illustrated in the flowchart of FIG.
図16は、図15(a)のステップS1510のマージン確認処理の詳細例を示すフローチャートである。CPU205は、ステップS1601とS1608の繰返し制御処理によりボイス数分、以下のステップS1602からS1607の一連の処理を繰り返し実行する。 FIG. 16 is a flowchart showing a detailed example of the margin confirmation processing in step S1510 of FIG. The CPU 205 repeatedly executes the following series of processing from steps S1602 to S1607 for the number of voices by the repeated control processing of steps S1601 and S1608.
まず、CPU205は、ボイスステータスが発音中のボイスについて、転送Typeを確認する(ステップS1602→S1603)。 First, the CPU 205 confirms the transfer type for the voice whose voice status is sounding (steps S1602 → S1603).
CPU205は、転送TypeがA又はBの場合は全データの転送が完了していないボイス(ステップS1603→S1604→S1605)、転送TypeがCの場合は全ボイスに対して(ステップS1603→S1605)、書込みポインタwp[v]と読出しポインタrp[v]の差分から、波形読出しマージンを算出する(ステップS1605)。 When the transfer type is A or B, the CPU 205 does not complete the transfer of all data (steps S1603 → S1604 → S1605), and when the transfer type is C, the CPU 205 performs all voices (steps S1603 → S1605). A waveform read margin is calculated from the difference between the write pointer wp [v] and the read pointer rp [v] (step S1605).
続いて、CPU205は、ステップS1605で算出した波形読出しマージンを、再生ピッチから決定された波形読出しマージンと比較する(ステップS1606)。この結果、ステップS1605で算出した現在の波形読出しマージンのほうが小さければ、該当ボイスに対して、指定レイトを用いて、ダンプ処理を実行する(ステップS1607)。ステップS1605で算出した現在の波形読出しマージンのほうが大きければ、ステップS1607はスキップする。 Subsequently, the CPU 205 compares the waveform readout margin calculated in step S1605 with the waveform readout margin determined from the reproduction pitch (step S1606). As a result, if the current waveform reading margin calculated in step S1605 is smaller, dump processing is executed for the corresponding voice using the specified rate (step S1607). If the current waveform readout margin calculated in step S1605 is larger, step S1607 is skipped.
以上説明したようにして、本実施形態では、音源LSI206が読み出す波形データが格納される高速小容量のRAM204と、機器全ての音色波形データを保持するNANDフラッシュなどの低速大容量フラッシュメモリ208を持ち、演奏時に大容量フラッシュメモリ208の音色波形領域からRAM204の波形バッファに転送を開始し、所定容量転送後に音源が読み出しを開始する逐次転送型楽音発生装置において、バッファのサイズBと波形のスタートアドレスからエンドアドレスまでの長さW、波形のループ区間の長さLを比較し、B≧Wの時はエンドで転送停止、B≦WかつB≧Lの時はループ波形データがバッファ内で分断されないようにスタートアドレスを逆算して転送を開始し、エンドで転送停止、B<Lの時は従来通り発音停止まで転送を続ける制御が実施される。このような制御により、上述の3つのケースのうち、2つのケース(B≧W、B≦WかつB≧L)では、エンドアドレスまで波形を転送すれば、それ以上の転送は不要となるため、波形転送によるトータルでのトラフィック平均値を大幅に低減することが可能となる。この結果、性能低下を改善することができる楽音発生装置、又はそのような楽音発生装置を用いた電子楽器を実現できる。あるいは性能低下を補正するためのハードウェアのコストを削減できる楽音発生装置、又はそのような楽音発生装置を用いた電子楽器を実現することが可能となる。 As described above, this embodiment has a high-speed and small-capacity RAM 204 that stores waveform data read by the tone generator LSI 206, and a low-speed and large-capacity flash memory 208 such as a NAND flash that holds timbre waveform data of all devices. In the sequential transfer type musical tone generator in which transfer is started from the tone waveform area of the large-capacity flash memory 208 to the waveform buffer of the RAM 204 during performance and the sound source starts reading after the transfer of a predetermined capacity, the buffer size B and the start address of the waveform Compares the length W from the end address to the end address L and the length L of the loop section of the waveform. When B ≧ W, the transfer is stopped at the end, and when B ≦ W and B ≧ L, the loop waveform data is divided in the buffer. The start address is calculated backward so that transfer is not started, and transfer is stopped at the end. Control to continue forward until sounding stop is performed. By such control, in two cases (B ≧ W, B ≦ W and B ≧ L) among the above three cases, if the waveform is transferred to the end address, no further transfer is required. Thus, the total traffic average value due to waveform transfer can be greatly reduced. As a result, it is possible to realize a musical sound generator that can improve performance degradation or an electronic musical instrument using such a musical sound generator. Alternatively, it is possible to realize a musical sound generator that can reduce the cost of hardware for correcting the performance degradation, or an electronic musical instrument using such a musical sound generator.
その他、本発明は上述した実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。また、上述した実施形態で実行される機能は可能な限り適宜組み合わせて実施しても良い。上述した実施形態には種々の段階が含まれており、開示される複数の構成要件による適宜の組み合せにより種々の発明が抽出され得る。例えば、実施形態に示される全構成要件からいくつかの構成要件が削除されても、効果が得られるのであれば、この構成要件が削除された構成が発明として抽出され得る。 In addition, the present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the scope of the invention in the implementation stage. Further, the functions executed in the above-described embodiments may be combined as appropriate as possible. The above-described embodiment includes various stages, and various inventions can be extracted by an appropriate combination of a plurality of disclosed constituent elements. For example, even if several constituent requirements are deleted from all the constituent requirements shown in the embodiment, if an effect is obtained, a configuration from which the constituent requirements are deleted can be extracted as an invention.
以上の実施形態に関して、更に以下の付記を開示する。
(付記1)
第1記憶手段内の第1波形データを第2記憶手段に転送する第1転送処理と、
前記第1波形データに続く第2波形データのサイズが前記第2記憶手段における複数の領域のうちのいずれかの領域のサイズと比較して大きいか否かを判定する判定処理と、
前記判定処理により前記第2波形データのサイズが前記いずれかの領域のサイズより大きくないと判定された場合に、前記第2波形データを前記いずれかの領域に転送する第2転送処理と、
を実行する第1プロセッサと、
前記第2記憶手段に転送された前記第1波形データを読み込む第1読込処理と、
前記第2記憶手段における前記いずれかの領域に転送された前記第2波形データを読み込む第2読込処理と、
を実行する第2プロセッサと、
を有する楽音発生装置。
(付記2)
少なくとも前記第1プロセッサ及び前記第2プロセッサのいずれかのプロセッサは、前記第1波形データに基づく出力が発音部からなされた後、前記第2波形データに基づく出力が前記発音部から繰り返しなされるように制御している、ことを特徴とする付記1に記載の楽音発生装置。
(付記3)
前記第1プロセッサは、前記第2波形データに基づく出力が発音部からなされている際に、前記第2転送処理を実行していないことを特徴とする付記1又は2に記載の楽音発生装置。
(付記4)
前記第1波形データは、開始位置から繰返し位置の前までの波形データを含み、
前記第2波形データは、前記繰返し位置から終了位置までの波形データを含み、
前記第1プロセッサは、前記第2記憶手段内への前記第1波形データの転送の位置が前記第2プロセッサによる前記第1波形データの読込みの位置を越えないように制御しながら、前記第1転送処理を実行している、
ことを特徴とする付記1乃至3のいずれかに記載の楽音発生装置。
(付記5)
前記第1プロセッサは、前記第2波形データにおける前記繰返し位置が前記第2記憶手段内のいずれかの領域の先頭になるように、前記第2記憶手段内における前記第1波形データの書込み開始位置を算出する算出処理を実行する、ことを特徴とする付記4に記載の楽音発生装置。
(付記6)
第1記憶手段内の第1波形データを第2記憶手段に転送する第1転送処理と、
前記第1波形データに続く第2波形データのサイズが前記第2記憶手段における複数の領域のうちのいずれかの領域のサイズと比較して大きいか否かを判定する判定処理と、
前記判定処理により前記第2波形データのサイズが前記いずれかの領域のサイズより大きくないと判定された場合に、前記第2波形データを前記いずれかの領域に転送する第2転送処理と、
を第1プロセッサに実行させ、
前記第2記憶手段に転送された前記第1波形データを読み込む第1読込処理と、
前記第2記憶手段における前記いずれかの領域に転送された前記第2波形データを読み込む第2読込処理と、
を第2プロセッサに実行させる、
ことを特徴とする楽音発生方法。
(付記7)
第1記憶手段内の第1波形データを第2記憶手段における複数の領域のうちのいずれかの領域に転送する第1転送処理と、
前記第1波形データに続く第2波形データのサイズが前記複数の領域のうちのいずれかの領域のサイズと比較して大きいか否かを判定する判定処理と、
前記判定処理により前記第2波形データのサイズが前記いずれかの領域のサイズより大きくないと判定された場合に、前記第2波形データを前記いずれかの領域に転送する第2転送処理と、
を第1プロセッサに実行させ、
前記第2記憶手段における前記いずれかの領域に転送された前記第1波形データを読み込む第1読込処理と、
前記第2記憶手段における前記第1領域に転送された前記第2波形データを読み込む第2読込処理と、
を第2プロセッサに実行させる、
ためのプログラム。
(付記8)
付記1乃至5の何れかに記載の楽音発生装置と、
前記第1波形データ及び前記第2波形データに基づいて発音する発音部と、
を備える電子楽器。
Regarding the above embodiment, the following additional notes are disclosed.
(Appendix 1)
A first transfer process for transferring the first waveform data in the first storage means to the second storage means;
A determination process for determining whether or not the size of the second waveform data following the first waveform data is larger than the size of any one of the plurality of regions in the second storage means;
A second transfer process for transferring the second waveform data to any of the areas when the determination process determines that the size of the second waveform data is not larger than the size of any of the areas;
A first processor for executing
A first reading process for reading the first waveform data transferred to the second storage means;
A second reading process for reading the second waveform data transferred to any one of the areas in the second storage means;
A second processor for executing
A musical sound generator.
(Appendix 2)
At least one of the first processor and the second processor is configured such that after the output based on the first waveform data is made from the sound generation unit, the output based on the second waveform data is repeatedly made from the sound generation unit. The musical tone generator according to appendix 1, wherein the musical tone generator is controlled as follows.
(Appendix 3)
The musical tone generator according to appendix 1 or 2, wherein the first processor does not execute the second transfer process when an output based on the second waveform data is made from a sound generation unit.
(Appendix 4)
The first waveform data includes waveform data from a start position to a repetition position,
The second waveform data includes waveform data from the repeat position to the end position,
The first processor controls the first waveform data so that the position of the first waveform data transfer into the second storage means does not exceed the position of reading the first waveform data by the second processor. Executing the transfer process,
The musical tone generator according to any one of appendices 1 to 3, wherein
(Appendix 5)
The first processor writes the first waveform data in the second storage means so that the repetition position in the second waveform data is at the beginning of any area in the second storage means. The musical tone generating apparatus according to appendix 4, wherein a calculation process for calculating the sound is executed.
(Appendix 6)
A first transfer process for transferring the first waveform data in the first storage means to the second storage means;
A determination process for determining whether or not the size of the second waveform data following the first waveform data is larger than the size of any one of the plurality of regions in the second storage means;
A second transfer process for transferring the second waveform data to any of the areas when the determination process determines that the size of the second waveform data is not larger than the size of any of the areas;
To the first processor,
A first reading process for reading the first waveform data transferred to the second storage means;
A second reading process for reading the second waveform data transferred to any one of the areas in the second storage means;
To the second processor,
A musical sound generation method characterized by the above.
(Appendix 7)
A first transfer process for transferring the first waveform data in the first storage means to any one of the plurality of areas in the second storage means;
A determination process for determining whether the size of the second waveform data following the first waveform data is larger than the size of any one of the plurality of regions;
A second transfer process for transferring the second waveform data to any of the areas when the determination process determines that the size of the second waveform data is not larger than the size of any of the areas;
To the first processor,
A first reading process for reading the first waveform data transferred to any one of the areas in the second storage means;
A second reading process for reading the second waveform data transferred to the first area in the second storage means;
To the second processor,
Program for.
(Appendix 8)
A musical sound generator according to any one of appendices 1 to 5,
A sound generator that generates sound based on the first waveform data and the second waveform data;
Electronic musical instrument with
100 電子鍵盤楽器
101 鍵盤
102 音色選択ボタン
103 機能選択ボタン
104 ベンダ/モジュレーション・ホイール
105 LCD
201 バスコントローラ
202 バス
203 メモリコントローラ
204 RAM
205 CPU
206 音源LSI
207 フラッシュメモリコントローラ
208 大容量フラッシュメモリ
209 DMAコントローラ
210 I/Oコントローラ
211 キー・スキャナ
212 LCDコントローラ
213 A/Dコンバータ
214 D/Aコンバータ
215 アンプ
301 波形発生器
302 バスインタフェース
303 DSP
304 ミキサ
305 波形読出し装置
100 Electronic Keyboard Instrument 101 Keyboard 102 Tone Selection Button 103 Function Selection Button 104 Vendor / Modulation Wheel 105 LCD
201 Bus controller 202 Bus 203 Memory controller 204 RAM
205 CPU
206 Sound source LSI
207 Flash memory controller 208 Mass storage flash memory 209 DMA controller 210 I / O controller 211 Key scanner 212 LCD controller 213 A / D converter 214 D / A converter 215 Amplifier 301 Waveform generator 302 Bus interface 303 DSP
304 mixer 305 waveform readout device
Claims (8)
前記第1波形データに続く第2波形データのサイズが前記第2記憶手段における複数の領域のうちのいずれかの領域のサイズと比較して大きいか否かを判定する判定処理と、
前記判定処理により前記第2波形データのサイズが前記いずれかの領域のサイズより大きくないと判定された場合に、前記第2波形データを前記いずれかの領域に転送する第2転送処理と、
を実行する第1プロセッサと、
前記第2記憶手段に転送された前記第1波形データを読み込む第1読込処理と、
前記第2記憶手段における前記いずれかの領域に転送された前記第2波形データを読み込む第2読込処理と、
を実行する第2プロセッサと、
を有する楽音発生装置。 A first transfer process for transferring the first waveform data in the first storage means to the second storage means;
A determination process for determining whether or not the size of the second waveform data following the first waveform data is larger than the size of any one of the plurality of regions in the second storage means;
A second transfer process for transferring the second waveform data to any of the areas when the determination process determines that the size of the second waveform data is not larger than the size of any of the areas;
A first processor for executing
A first reading process for reading the first waveform data transferred to the second storage means;
A second reading process for reading the second waveform data transferred to any one of the areas in the second storage means;
A second processor for executing
A musical sound generator.
前記第2波形データは、前記繰返し位置から終了位置までの波形データを含み、
前記第1プロセッサは、前記第2記憶手段内への前記第1波形データの転送の位置が前記第2プロセッサによる前記第1波形データの読込みの位置を越えないように制御しながら、前記第1転送処理を実行している、
ことを特徴とする請求項1乃至3のいずれかに記載の楽音発生装置。 The first waveform data includes waveform data from a start position to a repetition position,
The second waveform data includes waveform data from the repeat position to the end position,
The first processor controls the first waveform data so that the position of the first waveform data transfer into the second storage means does not exceed the position of reading the first waveform data by the second processor. Executing the transfer process,
The musical tone generator according to any one of claims 1 to 3.
前記第1波形データに続く第2波形データのサイズが前記第2記憶手段における複数の領域のうちのいずれかの領域のサイズと比較して大きいか否かを判定する判定処理と、
前記判定処理により前記第2波形データのサイズが前記いずれかの領域のサイズより大きくないと判定された場合に、前記第2波形データを前記いずれかの領域に転送する第2転送処理と、
を第1プロセッサに実行させ、
前記第2記憶手段に転送された前記第1波形データを読み込む第1読込処理と、
前記第2記憶手段における前記いずれかの領域に転送された前記第2波形データを読み込む第2読込処理と、
を第2プロセッサに実行させる、
ことを特徴とする楽音発生方法。 A first transfer process for transferring the first waveform data in the first storage means to the second storage means;
A determination process for determining whether or not the size of the second waveform data following the first waveform data is larger than the size of any one of the plurality of regions in the second storage means;
A second transfer process for transferring the second waveform data to any of the areas when the determination process determines that the size of the second waveform data is not larger than the size of any of the areas;
To the first processor,
A first reading process for reading the first waveform data transferred to the second storage means;
A second reading process for reading the second waveform data transferred to any one of the areas in the second storage means;
To the second processor,
A musical sound generation method characterized by the above.
前記第1波形データに続く第2波形データのサイズが前記第2記憶手段における複数の領域のうちのいずれかの領域のサイズと比較して大きいか否かを判定する判定処理と、
前記判定処理により前記第2波形データのサイズが前記いずれかの領域のサイズより大きくないと判定された場合に、前記第2波形データを前記いずれかの領域に転送する第2転送処理と、
を第1プロセッサに実行させ、
前記第2記憶手段に転送された前記第1波形データを読み込む第1読込処理と、
前記第2記憶手段における前記いずれかの領域に転送された前記第2波形データを読み込む第2読込処理と、
を第2プロセッサに実行させる、
ためのプログラム。 A first transfer process for transferring the first waveform data in the first storage means to the second storage means;
A determination process for determining whether or not the size of the second waveform data following the first waveform data is larger than the size of any one of the plurality of regions in the second storage means;
A second transfer process for transferring the second waveform data to any of the areas when the determination process determines that the size of the second waveform data is not larger than the size of any of the areas;
To the first processor,
A first reading process for reading the first waveform data transferred to the second storage means;
A second reading process for reading the second waveform data transferred to any one of the areas in the second storage means;
To the second processor,
Program for.
前記第1波形データ及び前記第2波形データに基づいて発音する発音部と、
を備える電子楽器。 A musical sound generator according to any one of claims 1 to 5,
A sound generator that generates sound based on the first waveform data and the second waveform data;
Electronic musical instrument with
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017146123A JP6904140B2 (en) | 2017-07-28 | 2017-07-28 | Music generators, methods, programs, and electronic musical instruments |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017146123A JP6904140B2 (en) | 2017-07-28 | 2017-07-28 | Music generators, methods, programs, and electronic musical instruments |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019028198A true JP2019028198A (en) | 2019-02-21 |
JP6904140B2 JP6904140B2 (en) | 2021-07-14 |
Family
ID=65476182
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017146123A Active JP6904140B2 (en) | 2017-07-28 | 2017-07-28 | Music generators, methods, programs, and electronic musical instruments |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6904140B2 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06308964A (en) * | 1993-04-27 | 1994-11-04 | Yamaha Corp | Musical tone forming device |
JP2008249756A (en) * | 2007-03-29 | 2008-10-16 | Yamaha Corp | Musical sound generating device |
-
2017
- 2017-07-28 JP JP2017146123A patent/JP6904140B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06308964A (en) * | 1993-04-27 | 1994-11-04 | Yamaha Corp | Musical tone forming device |
JP2008249756A (en) * | 2007-03-29 | 2008-10-16 | Yamaha Corp | Musical sound generating device |
Also Published As
Publication number | Publication date |
---|---|
JP6904140B2 (en) | 2021-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP3867596B2 (en) | Performance sound providing apparatus, communication terminal, performance sound providing method, program, and recording medium | |
JP2007047293A (en) | Musical sound generating device and program | |
EP3435371B1 (en) | Musical sound generation device, musical sound generation method and storage medium | |
CN108630178B (en) | Musical tone generating apparatus, musical tone generating method, recording medium, and electronic musical instrument | |
JP7131668B2 (en) | SOUND GENERATING DEVICE, ELECTRONIC INSTRUMENT, SOUND GENERATING METHOD, AND PROGRAM | |
JP6904140B2 (en) | Music generators, methods, programs, and electronic musical instruments | |
KR20090130864A (en) | Musical instrument digital interface hardware instruction set | |
JP2016142911A (en) | Waveform loading device, method, program, and electric musical instrument | |
JP6996148B2 (en) | Music generators, methods, programs, and electronic musical instruments | |
JP2006221209A (en) | Musical tone generator, musical tone generating method and memory medium storing program relating to this method | |
KR102078336B1 (en) | Karaoke player to support natural transition between original sound sources and midi sound sources, and operating method thereof | |
JP3405181B2 (en) | Musical tone generation method | |
JP7159583B2 (en) | Musical sound generating device, musical sound generating method, musical sound generating program, and electronic musical instrument | |
JP6540057B2 (en) | Waveform reading apparatus, method, program, and electronic musical instrument | |
JP2709965B2 (en) | Music transmission / reproduction system used for BGM reproduction | |
JP3027831B2 (en) | Musical sound wave generator | |
JP2000206964A (en) | Musical sound generating device | |
JP5141012B2 (en) | Arpeggio generator and program | |
JP3275678B2 (en) | Musical sound generating method and apparatus | |
JP3438229B2 (en) | Electronic musical instrument | |
JPH0612078A (en) | Electronic musical instrument | |
WO2001065535A1 (en) | Musical sound generator | |
JPH1091179A (en) | Karaoke (sing-along machine) device and karaoke reproducing method | |
JPH0460697A (en) | Musical sound waveform generator | |
JPH06289872A (en) | Karaoke device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD03 | Notification of appointment of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7423 Effective date: 20190415 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200717 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20210512 |
|
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: 20210525 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20210607 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6904140 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |