JP5995054B2 - Waveform generator, program, waveform generation method, and electronic musical instrument - Google Patents
Waveform generator, program, waveform generation method, and electronic musical instrument Download PDFInfo
- Publication number
- JP5995054B2 JP5995054B2 JP2012066789A JP2012066789A JP5995054B2 JP 5995054 B2 JP5995054 B2 JP 5995054B2 JP 2012066789 A JP2012066789 A JP 2012066789A JP 2012066789 A JP2012066789 A JP 2012066789A JP 5995054 B2 JP5995054 B2 JP 5995054B2
- Authority
- JP
- Japan
- Prior art keywords
- waveform
- reading
- data samples
- slave
- master
- 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.)
- Active
Links
Images
Landscapes
- Electrophonic Musical Instruments (AREA)
Description
本発明は、電子楽器の音源に用いて好適な波形発生装置、プログラム、波形発生方法および電子楽器に関する。 The present invention relates to a waveform generation device , a program, a waveform generation method, and an electronic musical instrument suitable for use as a sound source of an electronic musical instrument .
マスター側およびスレーブ側の2系統のオシレータを備え、スレーブオシレータの波形発生開始タイミングを、マスターオシレータの波形発生開始タイミングに強制的に同期させる、いわゆるオシレータ同期型の波形発生装置が知られている。この種の波形発生装置では、例えばスレーブ波形出力のピッチを一定にして、マスター波形出力のピッチのみを変化させると、スレーブ波形出力の波形形状が変形され、これによりピッチ変化と音色変化とが同時に得られる独特な音響効果(オシレータシンクロナイズ効果)を備えた波形を生成し得るようになっており、この種の装置については例えば特許文献1に開示されている。
2. Description of the Related Art A so-called oscillator-synchronized waveform generator is known that includes two systems of oscillators on the master side and slave side and forcibly synchronizes the waveform generation start timing of the slave oscillator with the waveform generation start timing of the master oscillator. In this type of waveform generator, for example, if the pitch of the slave waveform output is made constant and only the pitch of the master waveform output is changed, the waveform shape of the slave waveform output is deformed, thereby causing the pitch change and the timbre change simultaneously. A waveform having a unique acoustic effect (oscillator synchronization effect) obtained can be generated, and this type of device is disclosed in, for example,
ところで、一般的な波形データ読み出し方式の音源では、複数チャンネルのオシレータ(波形発生装置)を搭載していても、その内の任意の2組のオシレータをマスターオシレータとスレーブオシレータとに割り当て、スレーブオシレータが発生する波形の先頭をマスターオシレータの波形読み出し周期に強制的に同期させようとすると、この同期のためのハードウェア構成が必要となり、その分製品コスト高を招致してしまう。 By the way, even if a general waveform data readout type sound source is equipped with a multi-channel oscillator (waveform generator), any two sets of oscillators are assigned to a master oscillator and a slave oscillator, and a slave oscillator is provided. If it is attempted to forcibly synchronize the top of the waveform in which the error occurs with the waveform read cycle of the master oscillator, a hardware configuration for this synchronization is required, resulting in an increase in product cost.
本発明は、このような事情に鑑みてなされたもので、製品コスト高を招致することなく波形データ読み出し方式でオシレータシンクロナイズ効果を具現することができる波形発生装置、プログラム、波形発生方法および電子楽器を提供することを目的としている。 The present invention has been made in view of such circumstances, and a waveform generating apparatus , a program, a waveform generating method, and an electronic musical instrument capable of realizing an oscillator synchronization effect by a waveform data reading method without incurring high product costs The purpose is to provide.
上記目的を達成するため、本発明の波形発生装置は、
メモリから1周期分のマスター波形に対応する複数のデータサンプルを読み出す際のマスター波形読み出し速度及び前記メモリから1周期分のスレーブ波形に対応する複数のデータサンプルを読み出す際のスレーブ波形読み出し速度を設定する読み出し速度設定処理と、
前記設定されたマスター波形読み出し速度で前記1周期分のマスター波形に対応するデータサンプル数分読み出す間に、前記設定されたスレーブ波形読み出し速度で読み出し可能なデータサンプル数を取得する取得処理と、
前記設定されたマスター波形読み出し速度で、前記メモリから前記1周期分のマスター波形に対応する複数のデータサンプルを順次読み出す動作を繰り返す第1の波形読出処理と、
前記マスター波形に対応する複数のデータサンプルの読み出しの開始に同期して、前記メモリに記憶された前記1周期分のスレーブ波形に対応する複数のデータサンプルを、予め定められたデータサンプルの位置から読み出しを開始する読み出し開始処理と、
前記スレーブ波形に対応するデータサンプルの読み出しを開始した後、前記設定されたスレーブ波形読み出し速度で前記スレーブ波形に対応する複数のデータサンプルを順次読み出すとともに、前記読み出された前記スレーブ波形に対応するデータサンプル数が前記取得されたデータサンプル数と一致したか否か判別し、一致と判別された場合には、前記スレーブ波形の読み出しを前記予め定められたデータサンプルの位置に戻して前記1周期分のスレーブ波形に対応する複数のデータサンプルを読み出す動作を繰り返す第2の波形読出処理と、を実行する処理部を有することを特徴とする。
In order to achieve the above object, the waveform generator of the present invention comprises:
Sets the master waveform reading speed when reading a plurality of data samples corresponding to the master waveform for one period from the memory and the slave waveform reading speed when reading a plurality of data samples corresponding to the slave waveform for one period from the memory. Reading speed setting process to
An acquisition process for acquiring the number of data samples that can be read at the set slave waveform reading speed while reading the number of data samples corresponding to the master waveform for the one period at the set master waveform reading speed;
A first waveform reading process that repeats an operation of sequentially reading a plurality of data samples corresponding to the master waveform for one period from the memory at the set master waveform reading speed ;
Synchronously with the start of reading of the plurality of data samples corresponding to the master waveform, the plurality of data samples corresponding to the slave waveform for one period stored in the memory are determined from the position of the predetermined data sample. A reading start process for starting reading;
After starting reading data samples corresponding to the slave waveform, a plurality of data samples corresponding to the slave waveform are sequentially read at the set slave waveform reading speed, and corresponding to the read slave waveform It is determined whether or not the number of data samples matches the acquired number of data samples. If it is determined that the number of data samples matches, the reading of the slave waveform is returned to the position of the predetermined data sample and the one cycle a second waveform readout process of repeating an operation for reading a plurality of data samples corresponding to the amount of the slave waveform, characterized by having a processing unit for executing.
本発明では、製品コスト高を招致することなく波形データ読み出し方式でオシレータシンクロナイズ効果を具現することができる。 According to the present invention, the oscillator synchronization effect can be realized by the waveform data reading method without incurring high product cost.
以下、図面を参照して本発明の実施形態について説明する。
A.構成
図1は、本発明の実施の一形態による電子楽器100の全体構成を示すブロック図である。この図に示す電子楽器100は、鍵盤10、スイッチ部11、ピッチベンダ12、CPU13、表示部14、ROM15、RAM16、音源17、D/A変換器18およびサウンドシステム19を備える。
Hereinafter, embodiments of the present invention will be described with reference to the drawings.
A. Constitution
FIG. 1 is a block diagram showing an overall configuration of an electronic
鍵盤10は、押離鍵操作(演奏操作)に応じたキーオン/キーオフ信号、キーナンバ(鍵番号)およびベロシティ等からなる演奏情報を発生する。スイッチ部11は、楽器パネルに配設され、発生楽音の音色を選択する音色選択スイッチやオシレータシンクさせるか否かを指定するオシレータシンクスイッチなどの各種スイッチを備え、操作されるスイッチ種に応じた操作イベントを発生する。
The
ピッチベンダ12は、ユーザのベンダホイール回動操作に応じたピッチベンド値を発生してCPU13に供給する。ピッチベンド値は、後述するように、鍵盤10の演奏情報(キーナンバ)で指定されるピッチデータ(位相情報)を可変制御するために用いられる。
The
CPU13は、スイッチ部11のスイッチ操作に応じて発生する操作イベントに基づき楽器各部の動作状態を設定したり、鍵盤10から供給される演奏情報に応じたコマンド(例えば発音指示コマンドや消音指示コマンド等)を生成し、これを音源17に送出して楽音形成させる。また、CPU13はピッチベンダ12から供給されるピッチベンド値に応じて変化させたピッチデータ(位相情報)を音源17に与える。本発明の要旨に係わるCPU13の特徴的な処理動作については追って述べる。
The
表示部14は、液晶表示パネルおよび駆動回路から構成され、CPU13から供給される表示制御信号に応じて、例えばパラメータ設定状態や動作状態などを表示する。ROM15は、上記CPU13にロードされる各種制御プログラムや制御データ等を記憶する。ここで言う各種制御プログラムとは、後述するピッチ計算処理、アドレス計算処理およびハードウェアピッチ/アドレス処理を含む。RAM16は、CPU13のワークエリアとして用いられ、各種レジスタ・フラグデータを一時記憶する。
The
音源17は、CPU13から供給される演奏情報に応じた楽音波形を発生する。音源17の構成については追って詳述する。D/A変換器18は、音源17から出力される楽音波形をアナログ形式の楽音信号に変換して出力する。サウンドシステム19は、D/A変換器18が出力する楽音信号から不要ノイズを除去する等のフィルタリングを施した後、これを増幅してスピーカから発音させる。
The
(2)音源17の構成
次に、図2を参照して音源17の構成について説明する。音源17はDSPを用いた周知の波形メモリ読み出し方式で構成される。したがって、図2はそのDSPにおいて実行されるマイクロプログラムの各機能をハードウェアイメージとして捉らえた機能ブロックを図示している。
(2) Configuration of
図2において、LFO(低周波発振器)171は、ピッチ変調用のLFO波形を発生する。加算器172は、ユーザのベンダホイール回動操作に応じてピッチベンダ12から出力されるピッチベンダ出力(ピッチベンド値)と、LFO171から出力されるLFO波形とを加算して発振器170aに供給する。
In FIG. 2, an LFO (low frequency oscillator) 171 generates an LFO waveform for pitch modulation. The
発振器170aは、押鍵に応じてCPU13から供給され、押鍵された鍵の音高(キーナンバ)に対応した読み出し速度を表すピッチデータ(位相情報)を、加算器172の出力で変調し、変調されたピッチデータ(位相情報)に従った読み出し速度で波形メモリ173から波形データを読み出す。波形メモリ173には、各種音色の波形データが記憶されており、この中からユーザにより選択された音色の波形データが上記発振器170aにより読み出される。
The
EG(エンベロープジェネレータ)170bは、CPU13の制御の下に、音量制御に用いる公知のADSR型のエンベロープ波形を発生する。増幅器170cは、EG170bから供給されるエンベロープ波形に応じて、発振器170aから出力される波形データの振幅を制御して出力する。
An EG (envelope generator) 170 b generates a known ADSR type envelope waveform used for volume control under the control of the
上記構成において、発振器170a、EG170bおよび増幅器170cが、1つの発音チャンネルに対応する波形発生装置(オシレータOSC)170を構成する。本実施形態では、64組の波形発生装置(オシレータOSC)170−1〜170−64を備えており、これらの内の固定的な2組(マスターオシレータOSC1およびスレーブオシレータOSC2)を用いてオシレータシンク機能を具現する。ミキサ174は、各波形発生装置170−1〜170−64から出力される波形データを加算して楽音出力を発生する。
In the above configuration, the
ここで、図3および図4を参照してオシレータシンク機能を具現するマスターオシレータOSC1およびスレーブオシレータOSC2の波形読み出し動作について説明する。図3は、波形発生装置(オシレータOSC)170の波形読み出し動作を示す図である。波形メモリ173から波形データを読み出す波形発生装置(オシレータOSC)170には、波形データの先頭を指定する開始点SP(先頭アドレス)、波形データの末尾を指定する終了点EP(エンドアドレス)、ループ点LP(ループアドレス)および読み出し速度が指定される。
Here, with reference to FIG. 3 and FIG. 4, the waveform read operation of the master oscillator OSC1 and the slave oscillator OSC2 that implement the oscillator sync function will be described. FIG. 3 is a diagram showing a waveform reading operation of the waveform generator (oscillator OSC) 170. A waveform generator (oscillator OSC) 170 that reads waveform data from the
本実施形態では、1周期の波形データを繰り返し読み出す為、繰り返し点となるループ点LPが開始点SPに一致する。波形の読み出し速度は、1サンプリング周期における読み出しアドレスの増加幅により表される。 In the present embodiment, since one cycle of waveform data is repeatedly read, the loop point LP serving as a repetition point coincides with the start point SP. The waveform reading speed is represented by the increase width of the reading address in one sampling period.
1発音当たり2つマスターオシレータOSC1およびスレーブオシレータOSC2を用いてオシレータシンク機能を具現する場合、マスターオシレータOSC1は通常の波形読み出し動作を行う。スレーブオシレータOSC2の開始点SPおよびループ点LPは波形の先頭になるが、終了点EPはマスターオシレータOSC1のピッチ(より詳しくは波形読み出し周期)に応じて変化する。これについて図4を参照して説明する。 When the oscillator sync function is implemented using two master oscillators OSC1 and slave oscillator OSC2 per tone generation, the master oscillator OSC1 performs a normal waveform reading operation. The start point SP and the loop point LP of the slave oscillator OSC2 are at the beginning of the waveform, but the end point EP changes according to the pitch (more specifically, the waveform read cycle) of the master oscillator OSC1. This will be described with reference to FIG.
図4(a)、(b)は、マスターオシレータOSC1のピッチがスレーブオシレータOSC2より高い(又は低い)場合の読み出し動作を図示している。オシレータシンク機能を具現する場合、スレーブオシレータOSC2は常にマスターオシレータOSC1と同じ周期で先頭アドレスに戻る。 4A and 4B illustrate a read operation when the pitch of the master oscillator OSC1 is higher (or lower) than that of the slave oscillator OSC2. When implementing the oscillator sync function, the slave oscillator OSC2 always returns to the start address in the same cycle as the master oscillator OSC1.
この為、マスターオシレータOSC1が1周期分の波形データを読み出し終える時点が、スレーブオシレータOSC2の終了点EPとなる。つまり、マスターオシレータOSC1のピッチがスレーブオシレータOSC2より高ければ、スレーブオシレータOSC2が1周期分の波形データを読み出す前に終了点EPとなり、一方、マスターオシレータOSC1のピッチがスレーブオシレータOSC2より低ければ、スレーブオシレータOSC2が1周期分以上の波形データを読み出した時点で終了点EPとなる。 Therefore, the end point EP of the slave oscillator OSC2 is the time point when the master oscillator OSC1 finishes reading one period of waveform data. In other words, if the pitch of the master oscillator OSC1 is higher than that of the slave oscillator OSC2, the slave oscillator OSC2 becomes the end point EP before reading one cycle of waveform data. On the other hand, if the pitch of the master oscillator OSC1 is lower than that of the slave oscillator OSC2, The end point EP is reached when the oscillator OSC2 reads waveform data for one period or more.
B.動作
次に、図5〜図9を参照して、CPU13を動作主体とする発音処理および周期処理の各動作について説明する。発音処理は押鍵イベントに応じて実行され、ピッチ計算処理、アドレス計算処理、ハードウェアピッチ/アドレス制御処理を備える。周期処理はタイマ割り込みにより一定周期(例えば1msec毎)に実行され、発音処理と同様、ピッチ計算処理、アドレス計算処理、ハードウェアピッチ/アドレス制御処理を備える。
B. Operation Next, with reference to FIG. 5 to FIG. 9, each operation of the sound generation process and the periodic process mainly performed by the
(1)発音処理の動作
図5は、発音処理の動作を示すフローチャートである。押鍵イベントに応じて本処理が実行されると、図5に図示するステップSA1を介してピッチ計算処理を実行する。ピッチ計算処理では、後述するように、マスターオシレータOSC1およびスレーブオシレータOSC2のそれぞれについて、発音すべき音高に応じた波形読み出し速度(1サンプリング周期当たりのアドレス増加分INC[n])を算出する。
(1) Sound Generation Process Operation FIG. 5 is a flowchart showing the sound generation process operation. When this process is executed in response to the key depression event, the pitch calculation process is executed via step SA1 shown in FIG. In the pitch calculation process, as will be described later, for each of the master oscillator OSC1 and the slave oscillator OSC2, a waveform read speed (address increment INC [n] per sampling period) corresponding to the pitch to be generated is calculated.
続いて、ステップSA2では、アドレス計算処理を実行する。アドレス計算処理では、後述するように、オシレータOSC[0]がマスターオシレータOSC1、オシレータOSC[1]がスレーブオシレータOSC2に割り当てられている場合には、オシレータOSC[0]が読み出す波形データの先頭アドレス、ループアドレスおよびエンドアドレスを、それぞれレジスタSADR[0]、レジスタLADR[0]、レジスタEADRにセットすると共に、オシレータOSC[1]が読み出す波形データの先頭アドレスおよびループアドレスを、それぞれレジスタSADR[1]、レジスタLADR[1]にセットする。 Subsequently, in step SA2, an address calculation process is executed. In the address calculation process, as described later, when the oscillator OSC [0] is assigned to the master oscillator OSC1 and the oscillator OSC [1] is assigned to the slave oscillator OSC2, the start address of the waveform data read by the oscillator OSC [0] The loop address and end address are set in the registers SADR [0], LADR [0], and EADR, respectively, and the start address and loop address of the waveform data read by the oscillator OSC [1] are set in the registers SADR [1], respectively. ], Register LADR [1].
そして、オシレータシンク機能を使用する場合には、オシレータOSC[1](スレーブオシレータOSC2)のエンドアドレス(レジスタEADR[1])を、オシレータOSC[0](マスターオシレータOSC1)の波形読み出し周期に合致させるように変更する。こうすることでオシレータOSC[1](スレーブオシレータOSC2)は、常にオシレータOSC[0](マスターオシレータOSC1)と同じ周期で先頭アドレスに戻る。 When the oscillator sync function is used, the end address (register EADR [1]) of the oscillator OSC [1] (slave oscillator OSC2) matches the waveform read cycle of the oscillator OSC [0] (master oscillator OSC1). Change to By doing so, the oscillator OSC [1] (slave oscillator OSC2) always returns to the head address in the same cycle as the oscillator OSC [0] (master oscillator OSC1).
次いで、ステップSA3では、ハードウェアピッチ/アドレス制御処理を実行する。ハードウェアピッチ/アドレス制御処理では、後述するように、音源17のオシレータOSC[0](マスターオシレータOSC1)およびオシレータOSC[1](スレーブオシレータOSC2)のそれぞれに、上述のピッチ計算処理で得られた読み出し速度(1サンプリング周期当たりのアドレス増加分INC)と、上述のアドレス計算処理で得られた先頭アドレス、ループアドレス、エンドアドレスを供給する。
Next, in step SA3, hardware pitch / address control processing is executed. In the hardware pitch / address control process, as will be described later, each of the oscillator OSC [0] (master oscillator OSC1) and the oscillator OSC [1] (slave oscillator OSC2) of the
そして、ステップSA4に進み、音源17のオシレータOSC[0](マスターオシレータOSC1)およびオシレータOSC[1](スレーブオシレータOSC2)に波形読み出しを開始させる。
In step SA4, the oscillator OSC [0] (master oscillator OSC1) and the oscillator OSC [1] (slave oscillator OSC2) of the
以上のように、発音処理では、オシレータOSC[1](スレーブオシレータOSC2)が常にオシレータOSC[0](マスターオシレータOSC1)と同じ周期で先頭アドレスに戻るようにする為、スレーブオシレータOSC2のエンドアドレス(レジスタEADR[1])を、マスターオシレータOSC1の波形読み出し周期に合致するよう制御する。 As described above, in the sound generation process, the oscillator OSC [1] (slave oscillator OSC2) always returns to the start address in the same cycle as the oscillator OSC [0] (master oscillator OSC1). (Register EADR [1]) is controlled to match the waveform readout cycle of the master oscillator OSC1.
(2)ピッチ計算処理の動作
図6は、ピッチ計算処理の動作を示すフローチャートである。上述した発音処理のステップSA1(図5参照)を介して本処理が実行されると、図6に図示するステップSB1に進む。ステップSB1では、押鍵された鍵のキーナンバをレジスタKYNに、現在のLFO波高値をレジスタCLFに、ピッチベンド幅設定値をレジスタPBRに、現在のピッチベンド値をレジスタCPBにそれぞれストアする。
(2) Operation of Pitch Calculation Process FIG. 6 is a flowchart showing the operation of the pitch calculation process. When this process is executed through the above-described sound generation process step SA1 (see FIG. 5), the process proceeds to step SB1 shown in FIG. In step SB1, the key number of the depressed key is stored in the register KYN, the current LFO peak value is stored in the register CLF, the pitch bend width setting value is stored in the register PBR, and the current pitch bend value is stored in the register CPB.
続いて、ステップSB2では、オシレータ番号nをゼロリセットする。なお、オシレータ番号nの値は「0」又は「1」となり、「0」の場合にはマスターオシレータOSC1用の配列要素を指定し、「1」の場合にはスレーブオシレータOSC2用の配列要素を指定する。 Subsequently, in step SB2, the oscillator number n is reset to zero. The value of the oscillator number n is “0” or “1”. When “0”, the array element for the master oscillator OSC1 is designated, and when the value is “1”, the array element for the slave oscillator OSC2 is designated. specify.
次いで、ステップSB3では、オシレータ番号nで指定されるオシレータOSC[n]のLFOの掛かり具合をレジスタLFD[n]に、オシレータ番号nで指定されるオシレータOSC[n]のチューニング値をレジスタTUN[n]にストアした後、次式(1)に基づきオシレータ番号nで指定されるオシレータOSC[n]に指示する最終的なピッチOP[n]を算出する。
OP[n]←KYN+(CPB×PBR)+(CLF×LFD[n])+TUN[n]…(1)
Next, in step SB3, the LFO degree of the oscillator OSC [n] specified by the oscillator number n is stored in the register LFD [n], and the tuning value of the oscillator OSC [n] specified by the oscillator number n is stored in the register TUN [ n], the final pitch OP [n] instructed to the oscillator OSC [n] designated by the oscillator number n is calculated based on the following equation (1).
OP [n] ← KYN + (CPB × PBR) + (CLF × LFD [n]) + TUN [n] (1)
続いて、ステップSB4では、上記ステップSB3で得られたピッチOP[n]を次式(2)に従って平均律の周波数FRQ[n]に変換する。
FRQ[n]←MTN×2^((OP[n]−69.0)/12)…(2)
なお、上記(2)式において、MTNは基準音高であるA4音(周波数440Hz)をチューニングした周波数(420〜460Hz)を表す。また、「69.0」は、基準音高(A4音)のMIDIキーナンバーを表す。
Subsequently, in step SB4, the pitch OP [n] obtained in step SB3 is converted into an equal-tempered frequency FRQ [n] according to the following equation (2).
FRQ [n] ← MTN × 2 ^ ((OP [n] -69.0) / 12) (2)
In the above equation (2), MTN represents a frequency (420 to 460 Hz) obtained by tuning an A4 sound (frequency 440 Hz) that is a reference pitch. “69.0” represents the MIDI key number of the reference pitch (A4 sound).
さらに、ステップSB4では、オシレータ番号nで指定されるオシレータOSC[n]の読み出し波形の1波長分のサンプル数をレジスタWL[n]にストアする。そして、次式(3)に基づきレジスタWL[n]にストアされた読み出し波形の1波長分のサンプル数(波形データの数)と、変換された周波数FRQ[n]とから波形読み出し速度を表す1サンプリング周期当たりのアドレス増加分INC[n]を算出する。
INC[n]←WL[n]×(FRQ[n]/Fs)…(3)
なお、上記(3)式において、Fsは波形メモリ173に記憶される波形データのサンプリング周波数を表す
Further, in step SB4, the number of samples for one wavelength of the read waveform of the oscillator OSC [n] designated by the oscillator number n is stored in the register WL [n]. Based on the following equation (3), the waveform readout speed is expressed from the number of samples (number of waveform data) for one wavelength of the readout waveform stored in the register WL [n] and the converted frequency FRQ [n]. Address increment INC [n] per sampling period is calculated.
INC [n] ← WL [n] × (FRQ [n] / Fs) (3)
In the above equation (3), Fs represents the sampling frequency of the waveform data stored in the
次いで、ステップSB5では、オシレータ番号nをインクリメントして歩進させ、続くステップSB6では、歩進されたオシレータ番号nが「1」より大きいか否かを判断する。歩進されたオシレータ番号nが「1」ならば、判断結果は「NO」になり、上述したステップSB3に進み、オシレータOSC[1](スレーブオシレータOSC2)の最終的なピッチOP[n]を平均律の周波数FRQ[n]に変換し、変換された周波数FRQ[n]とから波形読み出し速度を表す1サンプリング周期当たりのアドレス増加分INC[n]を算出する。そして、ステップSB5において歩進されたオシレータ番号nが「2」になると、上記ステップSB6の判断結果が「YES」になり、本処理を終える。 Next, in step SB5, the oscillator number n is incremented and stepped, and in the subsequent step SB6, it is determined whether or not the stepped oscillator number n is greater than “1”. If the incremented oscillator number n is “1”, the determination result is “NO”, the process proceeds to step SB3 described above, and the final pitch OP [n] of the oscillator OSC [1] (slave oscillator OSC2) is set. An average increment frequency FRQ [n] is converted, and an address increment INC [n] per sampling period representing a waveform reading speed is calculated from the converted frequency FRQ [n]. Then, when the oscillator number n advanced in step SB5 becomes “2”, the determination result in step SB6 becomes “YES”, and this processing is finished.
このように、ピッチ計算処理では、マスターオシレータOSC1およびスレーブオシレータOSC2のそれぞれについて、最終的なピッチOP[n]に応じた波形読み出し速度(1サンプリング周期当たりのアドレス増加分INC[n])を算出する。 As described above, in the pitch calculation process, the waveform readout speed (address increment INC [n] per sampling period) corresponding to the final pitch OP [n] is calculated for each of the master oscillator OSC1 and the slave oscillator OSC2. To do.
(3)アドレス計算処理の動作
図7は、アドレス計算処理の動作を示すフローチャートである。本処理では、オシレータOSC[0]がマスターオシレータOSC1、オシレータOSC[1]がスレーブオシレータOSC2に割り当てられているものとする。前述した発音処理のステップSA2(図5参照)を介して本処理が実行されると、図7に図示するステップSC1に進み、オシレータOSC[0]が読み出す波形データの先頭アドレス、ループアドレスおよびエンドアドレスを、それぞれレジスタSADR[0]、レジスタLADR[0]、レジスタEADRにセットする。
(3) Address Calculation Processing Operation FIG. 7 is a flowchart showing the address calculation processing operation. In this processing, it is assumed that the oscillator OSC [0] is assigned to the master oscillator OSC1, and the oscillator OSC [1] is assigned to the slave oscillator OSC2. When this process is executed through the above-described sound generation process step SA2 (see FIG. 5), the process proceeds to step SC1 shown in FIG. 7, and the start address, loop address, and end of the waveform data read out by the oscillator OSC [0]. The addresses are set in the registers SADR [0], LADR [0], and EADR, respectively.
次いで、ステップSC2では、オシレータOSC[1]が読み出す波形データの先頭アドレスおよびループアドレスを、それぞれレジスタSADR[1]、レジスタLADR[1]にセットする。 Next, in step SC2, the start address and loop address of the waveform data read by the oscillator OSC [1] are set in the register SADR [1] and the register LADR [1], respectively.
続いて、ステップSC3では、オシレータシンクスイッチがオン設定されているか否かを判断する。オシレータシンクスイッチがオン設定されている場合には、判断結果が「YES」になり、ステップSC4に進み、オシレータOSC[1](スレーブオシレータOSC2)のエンドアドレスを、オシレータOSC[0](マスターオシレータOSC1)の波形読み出し周期に合致させるように制御する。 Subsequently, in step SC3, it is determined whether or not the oscillator sync switch is set to ON. If the oscillator sync switch is set to ON, the determination result is “YES”, the process proceeds to step SC4, and the end address of the oscillator OSC [1] (slave oscillator OSC2) is set to the oscillator OSC [0] (master oscillator). Control is performed to match the waveform readout cycle of OSC1).
すなわち、WL[0]/INC[0]=WL[1]/INC[1]の関係を成立させる為、次式(4)によりスレーブオシレータOSC2が読み出すべき波形データの数WL[1](図4に図示した読み出し波形の長さに相当)を算出する。
WL[1]←WL[0]×INC[1]/INC[0]…(4)
That is, in order to establish the relationship of WL [0] / INC [0] = WL [1] / INC [1], the number of waveform data WL [1] to be read by the slave oscillator OSC2 by the following equation (4) (FIG. 4) (corresponding to the length of the readout waveform shown in FIG. 4).
WL [1] ← WL [0] × INC [1] / INC [0] (4)
そして、次式(5)に表すように、算出したWL[1]をレジスタSADR[1](先頭アドレス)に加算して得たオシレータOSC[1](スレーブオシレータOSC2)のエンドアドレスをレジスタEADR[1]にセットして本処理を終える。
EADR[1]←SADR[1]+WL[1]…(5)
As shown in the following equation (5), the end address of the oscillator OSC [1] (slave oscillator OSC2) obtained by adding the calculated WL [1] to the register SADR [1] (start address) is used as the register EADR. Set to [1] to finish this process.
EADR [1] ← SADR [1] + WL [1] (5)
一方、オシレータシンクスイッチがオン設定されておらず、オシレータシンク機能を使用しない場合には、上記ステップSC3の判断結果が「NO」になり、ステップSC5に進み、オシレータOSC[1](スレーブオシレータOSC2)のエンドアドレスをレジスタEADR[1]にセットして本処理を終える。 On the other hand, if the oscillator sync switch is not set to ON and the oscillator sync function is not used, the determination result in step SC3 is “NO”, the process proceeds to step SC5, and the oscillator OSC [1] (slave oscillator OSC2 ) Is set in the register EADR [1], and this processing is completed.
このように、アドレス計算処理では、オシレータOSC[0]がマスターオシレータOSC1、オシレータOSC[1]がスレーブオシレータOSC2に割り当てられている場合には、オシレータOSC[0]が読み出す波形データの先頭アドレス、ループアドレスおよびエンドアドレスを、それぞれレジスタSADR[0]、レジスタLADR[0]、レジスタEADRにセットすると共に、オシレータOSC[1]が読み出す波形データの先頭アドレスおよびループアドレスを、それぞれレジスタSADR[1]、レジスタLADR[1]にセットする。そして、オシレータシンク機能を使用する場合には、オシレータOSC[1](スレーブオシレータOSC2)のエンドアドレス(レジスタEADR[1])を、オシレータOSC[0](マスターオシレータOSC1)の波形読み出し周期に合致させるよう制御する。 Thus, in the address calculation process, when the oscillator OSC [0] is assigned to the master oscillator OSC1 and the oscillator OSC [1] is assigned to the slave oscillator OSC2, the start address of the waveform data read by the oscillator OSC [0], The loop address and end address are set in the registers SADR [0], LADR [0], and EADR, respectively, and the top address and loop address of the waveform data read by the oscillator OSC [1] are set in the register SADR [1]. , Register LADR [1]. When the oscillator sync function is used, the end address (register EADR [1]) of the oscillator OSC [1] (slave oscillator OSC2) matches the waveform read cycle of the oscillator OSC [0] (master oscillator OSC1). To control.
(4)ハードウェアピッチ/アドレス制御処理
図8は、ハードウェアピッチ/アドレス制御処理の動作を示すフローチャートである。前述した発音処理のステップSA3(図5参照)を介して本処理が実行されると、図8に図示するステップSD1に進み、オシレータ番号nをゼロリセットする。続いて、ステップSD2では、波形読み出し速度を表す1サンプリング周期当たりのアドレス増加分INC[n]を、オシレータ番号nで指定されるオシレータOSC[n]のピッチレジスタにストアする。
(4) Hardware Pitch / Address Control Process FIG. 8 is a flowchart showing the operation of the hardware pitch / address control process. When this process is executed via the above-described sound generation process step SA3 (see FIG. 5), the process proceeds to step SD1 shown in FIG. 8 to reset the oscillator number n to zero. Subsequently, in step SD2, the address increment INC [n] per sampling period representing the waveform reading speed is stored in the pitch register of the oscillator OSC [n] designated by the oscillator number n.
また、ステップSD2では、レジスタSADR[n]に格納される先頭アドレスを、オシレータ番号nで指定されるオシレータOSC[n]のスタートアドレスレジスタにストアする。レジスタLADR[n]に格納されるループアドレスを、オシレータ番号nで指定されるオシレータOSC[n]のループアドレスレジスタにストアする。レジスタEADR[n]に格納されるエンドアドレスを、オシレータ番号nで指定されるオシレータOSC[n]のエンドアドレスレジスタにストアする。 In step SD2, the head address stored in the register SADR [n] is stored in the start address register of the oscillator OSC [n] specified by the oscillator number n. The loop address stored in the register LADR [n] is stored in the loop address register of the oscillator OSC [n] specified by the oscillator number n. The end address stored in the register EASR [n] is stored in the end address register of the oscillator OSC [n] specified by the oscillator number n.
続いて、ステップSD3では、オシレータ番号nをインクリメントして歩進させ、続くステップSD4では、歩進されたオシレータ番号nが「1」を超えたかどうかを判断する。歩進されたオシレータ番号nが「1」を超えていなければ、上記ステップSD2に処理を戻し、音源17のオシレータOSC[1](スレーブオシレータOSC2)に、波形読み出し速度を表す1サンプリング周期当たりのアドレス増加分INC[1]、レジスタSADR[1]の先頭アドレス、レジスタLADR[1]のループアドレスおよびレジスタEADR[1]のエンドアドレスを供給する。そして、歩進されたオシレータ番号nが「1」を超えると、ステップSD4の判断結果が「YES」になり、本処理を終える。
Subsequently, in step SD3, the oscillator number n is incremented and incremented, and in the subsequent step SD4, it is determined whether or not the incremented oscillator number n has exceeded “1”. If the stepped-up oscillator number n does not exceed “1”, the process returns to step SD2, and the oscillator OSC [1] (slave oscillator OSC2) of the
このように、ハードウェアピッチ/アドレス制御処理では、音源17のオシレータOSC[0](マスターオシレータOSC1)およびオシレータOSC[1](スレーブオシレータOSC2)のそれぞれに、発音音高に対応した読み出し速度(1サンプリング周期当たりのアドレス増加分INC[1])、読み出すべき波形データの先頭アドレス、ループアドレス、エンドアドレスを供給する。これにより、音源17では、オシレータOSC[0](マスターオシレータOSC1)およびオシレータOSC[1](スレーブオシレータOSC2)が与えられたパラメータに従い、ピッチ変化と音色変化とが同時に得られるオシレータシンクロナイズ効果を備えた楽音を形成する。
As described above, in the hardware pitch / address control process, each of the oscillator OSC [0] (master oscillator OSC1) and the oscillator OSC [1] (slave oscillator OSC2) of the
(5)周期処理の動作
図9は、周期処理の動作を示すフローチャートである。本処理はタイマ割り込みにより一定周期(例えば1msec毎)に実行される。実行タイミングになると、図9に図示するステップSE1を介して図6に図示するピッチ計算処理を実行する。ピッチ計算処理では、前述したように、マスターオシレータOSC1およびスレーブオシレータOSC2のそれぞれについて、発音すべき音高に応じた波形読み出し速度(1サンプリング周期当たりのアドレス増加分INC[n])を算出する。
(5) Operation of Periodic Processing FIG. 9 is a flowchart showing the operation of periodic processing. This process is executed at regular intervals (for example, every 1 msec) by a timer interrupt. At the execution timing, the pitch calculation process shown in FIG. 6 is executed via step SE1 shown in FIG. In the pitch calculation process, as described above, for each of the master oscillator OSC1 and the slave oscillator OSC2, the waveform reading speed (address increment INC [n] per sampling period) corresponding to the pitch to be generated is calculated.
続いて、ステップSE2を介して図7に図示するアドレス計算処理を実行する。アドレス計算処理では、前述したように、オシレータOSC[0]がマスターオシレータOSC1、オシレータOSC[1]がスレーブオシレータOSC2に割り当てられている場合には、オシレータOSC[0]が読み出す波形データの先頭アドレス、ループアドレスおよびエンドアドレスを、それぞれレジスタSADR[0]、レジスタLADR[0]、レジスタEADRにセットすると共に、オシレータOSC[1]が読み出す波形データの先頭アドレスおよびループアドレスを、それぞれレジスタSADR[1]、レジスタLADR[1]にセットする。 Subsequently, the address calculation process shown in FIG. 7 is executed via step SE2. In the address calculation process, as described above, when the oscillator OSC [0] is assigned to the master oscillator OSC1 and the oscillator OSC [1] is assigned to the slave oscillator OSC2, the start address of the waveform data read by the oscillator OSC [0] The loop address and end address are set in the registers SADR [0], LADR [0], and EADR, respectively, and the start address and loop address of the waveform data read by the oscillator OSC [1] are set in the registers SADR [1], respectively. ], Register LADR [1].
そして、オシレータシンク機能を使用する場合には、オシレータOSC[1](スレーブオシレータOSC2)のエンドアドレス(レジスタEADR[1])を、オシレータOSC[0](マスターオシレータOSC1)の波形読み出し周期に合致させるように変更する。こうすることでオシレータOSC[1](スレーブオシレータOSC2)は、常にオシレータOSC[0](マスターオシレータOSC1)と同じ周期で先頭アドレスに戻る。 When the oscillator sync function is used, the end address (register EADR [1]) of the oscillator OSC [1] (slave oscillator OSC2) matches the waveform read cycle of the oscillator OSC [0] (master oscillator OSC1). Change to By doing so, the oscillator OSC [1] (slave oscillator OSC2) always returns to the head address in the same cycle as the oscillator OSC [0] (master oscillator OSC1).
次いで、ステップSE3を介して図8に図示したハードウェアピッチ/アドレス制御処理を実行する。ハードウェアピッチ/アドレス制御処理では、前述したように、音源17のオシレータOSC[0](マスターオシレータOSC1)およびオシレータOSC[1](スレーブオシレータOSC2)のそれぞれに、上記ステップSE1で得られた読み出し速度(1サンプリング周期当たりのアドレス増加分INC)と、上記ステップSE2で得られた先頭アドレス、ループアドレス、エンドアドレスを供給して本処理を終える。
Next, the hardware pitch / address control process shown in FIG. 8 is executed through step SE3. In the hardware pitch / address control process, as described above, the readout obtained in step SE1 is performed on each of the oscillator OSC [0] (master oscillator OSC1) and the oscillator OSC [1] (slave oscillator OSC2) of the
これにより、音源17では、オシレータOSC[0](マスターオシレータOSC1)およびオシレータOSC[1](スレーブオシレータOSC2)が与えられたパラメータに従い、ピッチ変化と音色変化とが同時に得られるオシレータシンクロナイズ効果を備えた楽音を形成する。
As a result, the
以上説明したように、本実施形態では、波形データ読み出し方式で構成される2組のマスターオシレータOSC1およびスレーブオシレータOSC2を用い、スレーブオシレータOSC2のエンドアドレス(レジスタEADR[1])を、マスターオシレータOSC1の波形読み出し周期に合致するよう制御する為、オシレータOSC[1](スレーブオシレータOSC2)が常にオシレータOSC[0](マスターオシレータOSC1)と同じ周期で先頭アドレスに戻るオシレータシンク機能が実現する。この結果、製品コスト高を招致せずに波形データ読み出し方式でオシレータシンクロナイズ効果を具現することができる。 As described above, in this embodiment, two sets of master oscillator OSC1 and slave oscillator OSC2 configured by the waveform data reading method are used, and the end address (register EADR [1]) of slave oscillator OSC2 is set as master oscillator OSC1. Therefore, an oscillator sync function is realized in which the oscillator OSC [1] (slave oscillator OSC2) always returns to the start address in the same cycle as the oscillator OSC [0] (master oscillator OSC1). As a result, the oscillator synchronization effect can be realized by the waveform data reading method without incurring high product costs.
以上、本発明の実施の一形態について説明したが、本発明はそれに限定されるものではなく、本願出願の特許請求の範囲に記載された発明とその均等の範囲に含まれる。以下では、本願出願当初の特許請求の範囲に記載された各発明について付記する。 As mentioned above, although one Embodiment of this invention was described, this invention is not limited to it, It is included in the invention described in the claim of this-application, and its equivalent range. Hereinafter, each invention described in the scope of claims at the beginning of the present application will be additionally described.
(付記)
[請求項1]
1周期分のマスター波形及びスレーブ波形を記憶するメモリと、
このメモリから1周期分のマスター波形を繰り返し読み出す第1の波形読出手段と、
前記第1の波形読出手段が前記1周期分のマスター波形を最初から最後まで読み出すまでの間に前記メモリから1周期分のスレーブ波形を最初から繰り返し読み出す動作を行うとともに、当該動作を前記1周期分のマスター波形の読み出しを開始する毎に繰り返して実行する第2の波形読出手段と、
を具備することを特徴とする波形発生装置。
(Appendix)
[Claim 1]
A memory for storing a master waveform and a slave waveform for one cycle;
First waveform reading means for repeatedly reading a master waveform for one period from the memory;
The first waveform reading means performs an operation of repeatedly reading the slave waveform for one cycle from the memory from the beginning until the master waveform for the one cycle is read from the beginning to the end, and the operation is performed for the one cycle. A second waveform readout means for repeatedly executing the master waveform readout every minute,
The waveform generator characterized by comprising.
[請求項2]
前記第2の波形読出手段がスレーブ波形を読み出す際の第2の波形読み出し速度と、前記第1の波形読出手段がマスター波形を発生する際の第1の波形読み出し速度との比率に応じて、前記1周期分のマスター波形の読出し終了時点における前記スレーブ波形の読み出し位置を制御することを特徴とする請求項1記載の波形発生装置。
[Claim 2]
According to the ratio between the second waveform reading speed when the second waveform reading means reads the slave waveform and the first waveform reading speed when the first waveform reading means generates the master waveform, 2. The waveform generating apparatus according to
[請求項3]
1周期分のマスター波形及びスレーブ波形を記憶するメモリを有するコンピュータに、
このメモリから1周期分のマスター波形を繰り返し読み出す第1の波形読出ステップと、
前記1周期分のマスター波形を最初から最後まで読み出すまでの間に前記メモリから1周期分のスレーブ波形を最初から繰り返し読み出す動作を行うとともに、当該動作を前記1周期分のマスター波形の読み出しを開始する毎に繰り返して実行する第2の波形発生ステップと、
を実行させることを特徴とするプログラム。
[Claim 3]
To a computer having a memory for storing a master waveform and a slave waveform for one cycle,
A first waveform reading step for repeatedly reading a master waveform for one period from the memory;
While reading the master waveform for one cycle from the beginning to the end, the slave waveform for one cycle is read from the memory repeatedly from the beginning, and the master waveform for one cycle starts to be read. A second waveform generation step that is repeatedly executed each time;
A program characterized by having executed.
[請求項4]
前記第2の波形読出ステップがスレーブ波形を読み出す際の第2の波形読み出し速度と、前記第1の波形読出ステップがマスター波形を読み出す際の第1の波形読み出し速度との比率に応じて、前記1周期分のマスター波形の読出し終了時点における前記スレーブ波形の読み出し位置を制御することを特徴とする請求項3記載のプログラム。
[Claim 4]
In accordance with the ratio of the second waveform reading speed when the second waveform reading step reads the slave waveform and the first waveform reading speed when the first waveform reading step reads the master waveform, 4. The program according to claim 3, wherein the reading position of the slave waveform at the end of reading of the master waveform for one period is controlled.
10 鍵盤
11 スイッチ部
12 ピッチベンダ
13 CPU
14 表示部
15 ROM
16 RAM
17 音源
18 D/A変換器
19 サウンドシステム
100 電子楽器
10
14
16 RAM
17 Sound source 18 D /
Claims (7)
前記設定されたマスター波形読み出し速度で前記1周期分のマスター波形に対応するデータサンプル数分読み出す間に、前記設定されたスレーブ波形読み出し速度で読み出し可能なデータサンプル数を取得する取得処理と、
前記設定されたマスター波形読み出し速度で、前記メモリから前記1周期分のマスター波形に対応する複数のデータサンプルを順次読み出す動作を繰り返す第1の波形読出処理と、
前記マスター波形に対応する複数のデータサンプルの読み出しの開始に同期して、前記メモリに記憶された前記1周期分のスレーブ波形に対応する複数のデータサンプルを、予め定められたデータサンプルの位置から読み出しを開始する読み出し開始処理と、
前記スレーブ波形に対応するデータサンプルの読み出しを開始した後、前記設定されたスレーブ波形読み出し速度で前記スレーブ波形に対応する複数のデータサンプルを順次読み出すとともに、前記読み出された前記スレーブ波形に対応するデータサンプル数が前記取得されたデータサンプル数と一致したか否か判別し、一致と判別された場合には、前記スレーブ波形の読み出しを前記予め定められたデータサンプルの位置に戻して前記1周期分のスレーブ波形に対応する複数のデータサンプルを読み出す動作を繰り返す第2の波形読出処理と、
を実行する処理部を有する波形発生装置。 Sets the master waveform reading speed when reading a plurality of data samples corresponding to the master waveform for one period from the memory and the slave waveform reading speed when reading a plurality of data samples corresponding to the slave waveform for one period from the memory. Reading speed setting process to
An acquisition process for acquiring the number of data samples that can be read at the set slave waveform reading speed while reading the number of data samples corresponding to the master waveform for the one period at the set master waveform reading speed;
A first waveform reading process that repeats an operation of sequentially reading a plurality of data samples corresponding to the master waveform for one period from the memory at the set master waveform reading speed ;
Synchronously with the start of reading of the plurality of data samples corresponding to the master waveform, the plurality of data samples corresponding to the slave waveform for one period stored in the memory are determined from the position of the predetermined data sample. A reading start process for starting reading;
After starting reading data samples corresponding to the slave waveform, a plurality of data samples corresponding to the slave waveform are sequentially read at the set slave waveform reading speed, and corresponding to the read slave waveform It is determined whether or not the number of data samples matches the acquired number of data samples. If it is determined that the number of data samples matches, the reading of the slave waveform is returned to the position of the predetermined data sample and the one cycle A second waveform reading process that repeats an operation of reading a plurality of data samples corresponding to a minute slave waveform ;
The waveform generator which has a processing part which performs .
メモリから1周期分のマスター波形に対応する複数のデータサンプルを読み出す際のマスター波形読み出し速度及び前記メモリから1周期分のスレーブ波形に対応する複数のデータサンプルを読み出す際のスレーブ波形読み出し速度を設定する読み出し速度設定ステップと、
前記設定されたマスター波形読み出し速度で前記1周期分のマスター波形に対応するデータサンプル数分読み出す間に、前記設定されたスレーブ波形読み出し速度で読み出し可能なデータサンプル数を取得する取得ステップと、
前記設定されたマスター波形読み出し速度で、前記メモリから前記1周期分のマスター波形に対応する複数のデータサンプルを順次読み出す動作を繰り返す第1の波形読出ステップと、
前記マスター波形に対応する複数のデータサンプルの読み出しの開始に同期して、前記メモリに記憶された前記1周期分のスレーブ波形に対応する複数のデータサンプルを、予め定められたデータサンプルの位置から読み出しを開始する読み出し開始ステップと、
前記スレーブ波形に対応するデータサンプルの読み出しを開始した後、前記設定されたスレーブ波形読み出し速度で前記スレーブ波形に対応する複数のデータサンプルを順次読み出すとともに、前記読み出された前記スレーブ波形に対応するデータサンプル数が前記取得されたデータサンプル数と一致したか否か判別し、一致と判別された場合には、前記スレーブ波形の読み出しを前記予め定められたデータサンプルの位置に戻して前記1周期分のスレーブ波形に対応する複数のデータサンプルを読み出す動作を繰り返す第2の波形発生ステップと、
を実行させるプログラム。 In a computer used as a waveform generator ,
Sets the master waveform reading speed when reading a plurality of data samples corresponding to the master waveform for one period from the memory and the slave waveform reading speed when reading a plurality of data samples corresponding to the slave waveform for one period from the memory. Reading speed setting step to perform,
An acquisition step of acquiring the number of data samples that can be read at the set slave waveform reading speed while reading the number of data samples corresponding to the master waveform for the one period at the set master waveform reading speed;
A first waveform reading step that repeats an operation of sequentially reading a plurality of data samples corresponding to the master waveform for one period from the memory at the set master waveform reading speed ;
Synchronously with the start of reading of the plurality of data samples corresponding to the master waveform, the plurality of data samples corresponding to the slave waveform for one period stored in the memory are determined from the position of the predetermined data sample. A reading start step for starting reading;
After starting reading data samples corresponding to the slave waveform, a plurality of data samples corresponding to the slave waveform are sequentially read at the set slave waveform reading speed, and corresponding to the read slave waveform It is determined whether or not the number of data samples matches the acquired number of data samples. If it is determined that the number of data samples matches, the reading of the slave waveform is returned to the position of the predetermined data sample and the one cycle A second waveform generation step that repeats an operation of reading a plurality of data samples corresponding to a minute slave waveform ;
A program that executes
メモリから1周期分のマスター波形に対応する複数のデータサンプルを読み出す際のマスター波形読み出し速度及び前記メモリから1周期分のスレーブ波形に対応する複数のデータサンプルを読み出す際のスレーブ波形読み出し速度を設定し、
前記設定されたマスター波形読み出し速度で前記1周期分のマスター波形に対応するデータサンプル数分読み出す間に、前記設定されたスレーブ波形読み出し速度で読み出し可能なデータサンプル数を取得し、
前記設定されたマスター波形読み出し速度で、前記メモリから前記1周期分のマスター波形に対応する複数のデータサンプルを順次読み出す動作を繰り返し、
前記マスター波形に対応する複数のデータサンプルの読み出しの開始に同期して、前記メモリに記憶された前記1周期分のスレーブ波形に対応する複数のデータサンプルを、予め定められたデータサンプルの位置から読み出しを開始し、
前記スレーブ波形に対応するデータサンプルの読み出しを開始した後、前記設定されたスレーブ波形読み出し速度で前記スレーブ波形に対応する複数のデータサンプルを順次読み出すとともに、前記読み出された前記スレーブ波形に対応するデータサンプル数が前記取得されたデータサンプル数と一致したか否か判別し、一致と判別された場合には、前記スレーブ波形の読み出しを前記予め定められたデータサンプルの位置に戻して前記1周期分のスレーブ波形に対応する複数のデータサンプルを読み出す動作を繰り返す、
波形発生方法。 A waveform generation method used as a waveform generator, wherein the waveform generator is
Sets the master waveform reading speed when reading a plurality of data samples corresponding to the master waveform for one period from the memory and the slave waveform reading speed when reading a plurality of data samples corresponding to the slave waveform for one period from the memory. And
While reading the number of data samples corresponding to the master waveform for one period at the set master waveform reading speed, the number of data samples that can be read at the set slave waveform reading speed is acquired,
Repeating the operation of sequentially reading a plurality of data samples corresponding to the master waveform for one period from the memory at the set master waveform reading speed ;
Synchronously with the start of reading of the plurality of data samples corresponding to the master waveform, the plurality of data samples corresponding to the slave waveform for one period stored in the memory are determined from the position of the predetermined data sample. Start reading,
After starting reading data samples corresponding to the slave waveform, a plurality of data samples corresponding to the slave waveform are sequentially read at the set slave waveform reading speed, and corresponding to the read slave waveform It is determined whether or not the number of data samples matches the acquired number of data samples. If it is determined that the number of data samples matches, the reading of the slave waveform is returned to the position of the predetermined data sample and the one cycle Repeat the operation to read multiple data samples corresponding to the slave waveform
Waveform generation method.
演奏操作に応じた演奏情報を発生する演奏情報発生部と、
前記演奏情報に応答して、前記波形発生装置から楽音信号を生成するための波形を発生させるように制御する制御部と、
を備えた電子楽器。 A waveform generator according to claim 1;
A performance information generator for generating performance information according to the performance operation;
A control unit that controls to generate a waveform for generating a musical sound signal from the waveform generator in response to the performance information;
Electronic musical instrument with
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012066789A JP5995054B2 (en) | 2012-03-23 | 2012-03-23 | Waveform generator, program, waveform generation method, and electronic musical instrument |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012066789A JP5995054B2 (en) | 2012-03-23 | 2012-03-23 | Waveform generator, program, waveform generation method, and electronic musical instrument |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2013200326A JP2013200326A (en) | 2013-10-03 |
JP2013200326A5 JP2013200326A5 (en) | 2015-05-07 |
JP5995054B2 true JP5995054B2 (en) | 2016-09-21 |
Family
ID=49520649
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012066789A Active JP5995054B2 (en) | 2012-03-23 | 2012-03-23 | Waveform generator, program, waveform generation method, and electronic musical instrument |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5995054B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11883628B2 (en) | 2016-12-16 | 2024-01-30 | Sorrento Therapeutics, Inc. | Application device for a fluid delivery apparatus and method of use |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB9318524D0 (en) * | 1993-09-07 | 1993-10-20 | Ethymonics Ltd | Tone generator |
JP3521800B2 (en) * | 1999-06-14 | 2004-04-19 | ヤマハ株式会社 | Musical tone signal generator |
JP2009042785A (en) * | 2008-10-24 | 2009-02-26 | Casio Comput Co Ltd | Waveform generator and waveform generation processing program |
-
2012
- 2012-03-23 JP JP2012066789A patent/JP5995054B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11883628B2 (en) | 2016-12-16 | 2024-01-30 | Sorrento Therapeutics, Inc. | Application device for a fluid delivery apparatus and method of use |
Also Published As
Publication number | Publication date |
---|---|
JP2013200326A (en) | 2013-10-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6252642B1 (en) | Effect imparting device, effect imparting method, program, and electronic musical instrument | |
JP5995054B2 (en) | Waveform generator, program, waveform generation method, and electronic musical instrument | |
JP6176480B2 (en) | Musical sound generating apparatus, musical sound generating method and program | |
EP3789999B1 (en) | Musical sound processing apparatus, musical sound processing method, and program | |
US9947306B2 (en) | Electric acoustic apparatus | |
US8779272B2 (en) | Musical sound producing apparatus, recording medium and musical sound producing method | |
JPS5925235B2 (en) | electronic musical instruments | |
JP2745865B2 (en) | Music synthesizer | |
JP6575585B2 (en) | Effect imparting device, effect imparting method, program, and electronic musical instrument | |
JP2018159734A (en) | Timbre controller, timbre control method, program, and electric musical instrument | |
JP4385401B2 (en) | Low frequency oscillation device and low frequency oscillation processing program | |
KR100620484B1 (en) | Sound synthesizing device and storage medium storing program | |
JP4479847B2 (en) | Waveform generator and waveform generation processing program | |
JP3909693B2 (en) | Musical sound modulation device, musical sound modulation method, and musical sound modulation program | |
JP2571918B2 (en) | Electronic musical instrument | |
US20250111844A1 (en) | Information processing device, electronic musical instrument, electronic musical instrument system, method, and storage medium | |
JP4232203B2 (en) | Waveform generator and waveform generation processing program | |
JP2009042785A (en) | Waveform generator and waveform generation processing program | |
JP4614131B2 (en) | Waveform generator and waveform generation program | |
JP6524742B2 (en) | Tone generator, method and program | |
JP5769080B2 (en) | Sound channel assignment apparatus and program | |
JP4158198B2 (en) | Waveform generator and waveform generation processing program | |
JP3543159B2 (en) | Automatic accompaniment device | |
JP2012128152A (en) | Performance practicing device and program | |
JP2012220861A (en) | Musical sound generating device and program |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150319 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150319 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20151210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151216 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160212 |
|
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: 20160728 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160810 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5995054 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |