JP4015267B2 - Waveform generator - Google Patents

Waveform generator Download PDF

Info

Publication number
JP4015267B2
JP4015267B2 JP10103198A JP10103198A JP4015267B2 JP 4015267 B2 JP4015267 B2 JP 4015267B2 JP 10103198 A JP10103198 A JP 10103198A JP 10103198 A JP10103198 A JP 10103198A JP 4015267 B2 JP4015267 B2 JP 4015267B2
Authority
JP
Japan
Prior art keywords
waveform
pitch
formant
address
cut
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP10103198A
Other languages
Japanese (ja)
Other versions
JPH11296173A (en
Inventor
忠男 菊本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Roland Corp
Original Assignee
Roland Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Roland Corp filed Critical Roland Corp
Priority to JP10103198A priority Critical patent/JP4015267B2/en
Publication of JPH11296173A publication Critical patent/JPH11296173A/en
Application granted granted Critical
Publication of JP4015267B2 publication Critical patent/JP4015267B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は例えば電子楽器等に用いられる波形発生装置、更に詳しくは、メモリに記憶された波形データを読み出して再生するなどの発生発生装置に関する。
かかる波形発生装置は例えばサンプラと呼ばれているような電子楽器に用いることができる。
【0002】
【関連技術】
本出願人は先に出願した特願平9−300403号において、記憶手段に波形を表す波形データの時系列を記憶しておき、その波形の時間軸を圧縮伸長するとともに音高を変換して再生する装置として「波形発生装置」を提案した。
【0003】
この出願に記載した波形発生装置は、ホルマントシフト操作子が設けられ、ホルマントシフト量を予め設定することにより記録波形のホルマントをシフトして再生したり、変調信号LFOにより周期的な変調をホルマントに付与したりすることができる。
【0004】
【発明が解決しようとする課題】
しかし、この波形発生装置は、波形の再生音高が変化してもホルマントは変化しないものである。このように再生音高が変化しても全くホルマントが変化しないと、楽音としてはやはり不自然である。
【0005】
本発明はかかる問題点に鑑みてなされたものであり、再生音高の変化に対しても、発生される波形による楽音等が不自然とならないようにすることを目的とする。
【0006】
【課題を解決するための手段および作用】上述の課題を解決するために、本発明に係る波形発生装置は、時系列に並んだ一連の波形を表す波形データが記憶された記憶手段と、該波形の時間軸を圧縮または伸長する程度を指示する圧縮伸長情報を入力する圧縮伸長情報入力手段と、該波形の再生音高を指示する音高情報を入力する音高情報入力手段と、該波形のホルマントをシフトするホルマントシフト量を入力するホルマントシフト量入力手段と、前記ホルマントシフト量が該音高情報に応じて変更されたホルマント制御情報を生成するホルマント制御情報生成手段と、前記圧縮伸長情報と音高情報とホルマント制御情報とを入力し、前記波形データに基づき、前記圧縮伸長情報に対応した変化速度で変化する再生位置に対応した波形を、前記音高情報に対応して音高を変更し、かつ前記ホルマント制御情報に対応してホルマントを変更して、再生波形を生成する再生手段とを備える。この波形発生装置では、再生波形は、ホルマント制御情報によりそのホルマントが変化するが、そのホルマント制御情報は再生音高に応じて変更されるようになっているので、再生音高の変化に対しても再生波形の楽音等が不自然な感じにならないようにそのホルマントを変化させることができる。
【0007】
なお、上記の再生手段は、再生音高とは関係のない変化速度で変化する時間情報を発生する時間情報発生手段と、この時間情報および上記音高情報に対応し、かつ時間情報の変化速度とは関係しない所望の読出し速度で、記憶手段から波形データを読み出す読出し手段を含み構成することができる。この波形発生装置では、時間情報発生手段の時間情報の変化速度で波形の再生速度が決まり、この時間情報の変化速度は再生音高とは無関係である。よって再生手段により、この時間情報および音高情報に対応し、かつ時間情報の変化速度とは関係のない所望の読出し速度で、波形データを読み出して、その波形データを音高情報で指示される再生音高で再生すると、波形の再生速度と再生音高とを独立に調整できるようになる。
【0008】
また、この波形発生装置は、上記時間情報の変化速度を変える第1の制御情報を入力する第1制御情報入力手段をさらに備え、上記時間情報発生手段は、入力される第1制御情報に応じて時間情報の変化速度を変える手段を備えるように構成できる。この第1の制御情報は、例えば値を予め設定するための時間圧伸操作子やリアルタイムで操作する変調レバー等の操作に対応して発生するものである。
さらに、上記の時間情報発生手段はカウンタで構成でき、第1の制御情報によってこのカウンタの歩進量を変えるようにする。これにより第1制御情報入力手段で入力する第1の制御情報により時間情報の変化速度を変え、それにより波形の再生速度を任意に変化させることができる。この場合においても、再生音高は再生速度により変化しない。
【0009】
また上記の読出し手段は、少なくとも1周期の波形を含む波形区間を、音高情報に対応した周期で、かつ時間情報の変化速度とは関係しない所望の読出し速度で読み出すことで、波形区間の波形データを再生音高に変換するよう構成できる。さらに前記所望の読出し速度を、ホルマント制御情報生成手段で生成される、再生音高に対応して変化するホルマント制御情報に対応するように構成しているため、上記再生速度には依存しないようにしつつ、前記再生音高に対応してホルマントが変化する再生音高で再生することが可能となる。
【0010】
また上記の再生手段は、2つの処理系を持ち、各処理系では再生音高の2倍長に対応した周期で記憶手段の波形データの少なくとも1周期の波形を発生し、2つの処理系の出力を最終的に足し合わせることで、波形区間の波形データを再生音高に変換するよう構成できる。
【0011】
また上記のホルマント制御情報生成手段は、波形列中の波形のホルマントを変更する変更情報を入力するホルマント変更情報入力手段をさらに備え、読出し手段は、変更情報がホルマントを低域側にシフトするものであるときには波形区間の波形データの読出し速度を遅く制御し、変更情報がホルマントを高域側にシフトするものであるときには波形区間の波形データの読出し速度を速く制御して読み出すよう構成できる。このように構成することで、ホルマント変更情報入力手段により変更情報を入力することで、再生する波形のホルマントを高域側にシフトさせたり低域側にシフトさせたりすることができる。
【0012】
【発明の実施の形態】
以下、図面を参照して本発明の実施の形態を説明する。
図1は本発明に係る一実施例としての電子楽器の波形発生装置が示される。図1において、7は再生する波形データに関する情報を記憶しておくRAMからなる波形メモリである。6は波形メモリ7の波形データの再生処理等をディジタル処理により行うDSP(ディジタル信号プロセッサ)である。このDSP6には、DSP6の演算処理等に使用するワーキングメモリと、DSP6のプログラムを記憶するメモリとを含んでいる。
【0013】
8は入力したアナログ波形信号をディジタル波形信号にA/D変換してDSP6に入力するA/D変換器、9はDSP6から再生出力されるディジタル波形信号をアナログ波形信号にD/A変換して出力するD/A変換器である。A/D変換器8から入力されたディジタル波形信号はDSP6から波形メモリ7に波形データとして格納することができる。
【0014】
1はCPU(中央処理装置)であって、DSP6の制御、操作子群2やキーボード装置3の状態検出と処理など装置の全体的な制御を行う。4は多くの波形データ等を記憶しておく大容量のハードディスク装置であり、その波形データは必要に応じて波形メモリ7に転送される。5は記憶部であって、CPU1の演算処理等に使用するワーキングメモリ、CPU1のプログラムを記憶しておくメモリ、DSPのプログラムを記憶しておくメモリ等を含む。
【0015】
操作子群2は、図1に示すように、モード選択スイッチ(MSS)21、バンク選択スイッチ(BSS)22、ホルマントシフト操作子(FSV)23、時間圧伸操作子(TCV)24等からなる。以下、これらの各操作子の機能について説明する。
【0016】
モード選択スイッチ21は、録音モード、編集モード、プレイ(再生)モードから一つを選択するためのスイッチである。ここで、録音モード (RECモード) は外部から入力された楽音信号を録音(サンプリング) するモード、編集モード (EDITモード) は録音モードでサンプリングした波形を編集するモード、プレイモード(PLAYモード) は波形メモリ7に記憶した波形データをキーボードの演奏操作に応じて再生するモードである。
バンク選択スイッチ22は、波形メモリ7に記憶されている複数の波形データのうちから一つを選択するためのスイッチである。
ホルマントシフト操作子23は、波形メモリ7に格納されている原波形データのホルマントからのシフト量を設定する操作子であり、後述するホルマントシフト量FSV(ホルマント変更係数とも称する)を設定する。
時間圧伸操作子24は、波形データを再生する際の時間軸上での再生位置(プレイ位置)の進行速度を決めるための時間の圧縮/伸張(以下、圧伸と称する)の量を設定する操作子である。
【0017】
キーボード装置3は、MIDIのキーボード31やモジュレーションレバー(以下、変調レバーと記する)32等の演奏操作子を備える。キーボード31は操作したキーに対応するノート情報(ノート番号NN、ベロシティV、ノートオン/オフNTなど)を演奏のために発生する他に、波形メモリ7に格納されている波形データの再生にあたって、キーのオン/オフにより再生の音高と再生の開始/終了を指示するためにも用いられる。
【0018】
変調レバー32はモジュレーションホイールとも呼ばれるものもあり、通常は発音する楽音の変調を制御する操作子である。この実施例では、この変調レバー32の操作量(変調レバー量MLV)に応じて上述の時間圧伸操作子23により設定した設定時間圧伸量STCVを修正して、再生する波形のピッチを変えることなく再生速度(プレイ速度)の制御を行っている。この変調レバー32は$00〜$7Fの範囲の変調レバー量MLVを発生することができる。なお本明細書では以降、$7F等の先頭に付けた「$」は16進表示を意味するものとする。この変調レバー32は通常はレバーが揺動範囲の中央位置にあり、この中央位置では$40の変調レバー量MLVを出力するようになっている。
【0019】
波形メモリ7は再生する波形信号に関するデータを記憶しておくメモリであり、大まかにはパラメータ記憶部と波形データ記憶部の2つに分けられ、パラメータ記憶部はさらに、パラメータ1記憶部(ステータス領域)、パラメータ2記憶部(切出し開始アドレス領域)に分けられる。このパラメータ記憶部は、
パラメータ1記憶部(ステータス領域) :$20アドレス/1バンク
パラメータ2記憶部(切出し開始アドレス領域):$800アドレス/1バンクの単位で1バンクあたりのアドレス領域が設けられてデータが記憶されている。また、波形データ記憶部には、$8000アドレス/1バンクの単位で、バンク毎にそのバンク番号に対応する波形番号の波形データ全てが記憶されている。つまり、パラメータ1記憶部は$20番地毎に、パラメータ2記憶部は$800番地毎に、また波形データ記憶部は$8000番地毎に、各々セグメントで区切られており、各々のセグメントはアドレスの若い方から順番にバンク0領域、バンク1領域 、バンク2領域 ・・・のようにバンク番号が付けられる。例えばある波形番号の波形についてパラメータをそれぞれパラメータ1、2記憶部のバンク0領域に格納したら、その波形番号の波形データはそれらのパラメータに対応して波形データ記憶部の同じバンク番号のバンク0領域に格納する。
【0020】
以下、これらパラメータ記憶部と波形データ記憶部のデータ構成を図2〜図4を参照して説明する。ここで、図2はパラメータ1記憶部(ステータス領域)のデータ構成、図3はパラメータ2記憶部(切出し開始アドレス領域)のデータ構成、図4は波形データ記憶部のデータ構成を示すものである。
【0021】
パラメータ1記憶部(ステータス領域)は、図2に示すように、バンク番号毎(すなわち波形番号毎)に、波形名wn、サンプリング周波数sr、オリジナルピッチop、オリジナルキーからのオリジナルピッチシフト量opsv、出力レベルolを記憶する。これらのパラメータの内容は以下のとおりである。
【0022】
・波形名wn:この波形名wnは表示装置に表示してメモリ波形の識別を容易にするためなどに用いられる。
・サンプリング周波数sr:原波形(メモリに格納されている波形、以下同じ)のサンプリング周波数であって、原波形のサンプリング周波数とは異なるサンプリング周波数で再生処理を行うときにオリジナルピッチが変化しないように補正するなどのために使用される。
・オリジナルピッチop:原波形データの本来のピッチ。
・オリジナルピッチシフト量opsv:オリジナルピッチopをシフトさせる値(オリジナルピッチOPを変化させる倍率値)であって、オリジナルピッチopと異ならせて再生するときなど、オリジナルピッチopを変化させる場合などに使用される。
・出力レベルol:原波形の出力レベルを設定するためのものである。
【0023】
次に、パラメータ2記憶部(切出し開始アドレス領域)は、図3に示すように、バンク番号毎に、その波形データの切出し開始アドレスを記憶する。切出し開始アドレスcsaは、1ピッチ分の波形(以下、切出し波形と称する)の先頭アドレスである。以下、本明細書ではこの切出し波形が時系列に並べられたものを波形列と称する。この切出し開始アドレスcsaが当該波形番号の波形列全体にわたり時間軸に沿って時系列に記憶されている。この切出し開始アドレスを記憶する領域の最後尾には当該波形列の最後の1ピッチの切出し波形の切出し開始アドレスcsaが波形読出し終了アドレスweaとして格納される。また、このバンク番号の記憶領域の先頭アドレスにはその波形の波形読出し終了アドレスweaがヘッダとして格納される。
【0024】
なお、子音部分などでピッチが定まらない場合の切出し開始アドレスcsaは、適当なピッチで、
「切出し開始アドレスcsa=一つ前の切出し開始アドレスcsa+ピッチ」
として子音区間全体について求めたものを切出しアドレス記憶領域に格納する。ここでいうピッチとは1ピッチ分の切出し波形のアドレス幅である。なお、適当なピッチとは、例えば子音から母音に移行して最初に検出(確定)したピッチや次に定まったピッチなどである。
【0025】
次に、波形データ記憶部のデータ構成は、図4に示されるように、バンク番号(波形番号)0の波形列の波形データは波形データ記憶部のバンク0領域に、バンク番号1の波形列の波形データは波形データ記憶部のバンク1領域にというように、各バンク領域にシーケンシャルなアドレス順序で波形列の波形データ(サンプリング値)wd が格納される。
【0026】
CPU1側のメモリ5には各種のレジスタ群が設定される。図5、図6にはこのレジスタ群に設定される各種のパラメータが示される。図6はこのうちのMIDI情報レジスタ群である。以下、これらのパラメータについて説明する。
【0027】
・バンク番号BN:バンク選択スイッチ22で設定した波形データのバンク番号(波形番号)。このバンク番号BNに従って、再生する波形列(波形番号)の選択が行われる。
【0028】
・波形メモリ7のパラメータ1記憶部に記憶される各種パラメータ。すなわち、波形名WN、サンプリング周波数SR、オリジナルピッチOP、オリジナルピッチシフト量OPSVPP、出力レベルOLである。なお、これらのうち、オリジナルピッチ以外は本発明の実施例に直接関係のないパラメータであるので、オリジナルピッチ以外の処理は本実施例から除外してある。
【0029】
・ホルマントシフト量FSV:ホルマントシフト操作子23で設定されるホルマントのシフト量。波形メモリ7中の波形列は、このホルマントシフト量FSVが「1」である時は、原波形と同じホルマントで再生され、「1」より大きい値であると、ホルマントを原波形よりも高域側にシフトして再生され、「1」よりも小さい値であると、ホルマントを原波形よりも低域側にシフトして再生される。
【0030】
・設定時間圧伸量STCV:波形メモリ7に記憶された波形列を再生する時における時間圧縮/伸長の大きさ(すなわちプレイ速度)を決めるもので、時間圧伸操作子24で数値設定したもの。後述する変調レバー32による変調がかけられていなければ、この設定時間圧伸量STCVが「1」であると、原波形の時間変化と同じ速さで時間変化し、「1」より大きい値であると、原波形よりも速い時間変化をしてプレイ時間が短くなり、「1」よりも小さい値であると、原波形よりも遅い時間変化をしてプレイ時間が長くなる。
【0031】
・時間圧伸変調量(係数)TCMV:変調レバー32によって設定した時間圧縮/伸張の値であって、前述の設定時間圧伸量STCVを補正するための係数。「0≦時間圧変調量TCMV≦2」の範囲で設定される。
・ピッチ比PR:キーボード31により指定された音高(キー番号)に対応したピッチとメモリ波形のオリジナルピッチOPとの比であって、ボイスモジュール毎に記憶される。
・ベロシティレベルVL:キーボード31により指定されたベロシティVであって、ボイスモジュール毎に記憶される。
【0032】
図6のMIDI情報レジスタ群はキーボード装置3から入力されたノート情報等を記憶するレジスタ群であって、以下のパラメータが記憶される。
ノート番号NN:キーボード31で操作されたキー番号。
ベロシティV:キーボード31で操作されたキーのベロシティ。
ノートオン/オフNT:キーボード31で操作されたキーのオン/オフ。
変調レバー量MLV:変調レバー32で操作した量。
【0033】
DSP6側の内部メモリには図7、図8に示す各種のレジスタ群が設定される。以下、これらのレジスタ群に設定されるパラメータについて説明する。
【0034】
まず、キー情報レジスタ群には以下のパラメータが設定される。後述するCPU1のプレイ処理において、キーボード31の操作が検出され、割当て処理によってキー情報がDSP6に転送されて、このキー情報レジスタに一時的に記憶される。これらのパラメータは割込みルーチンにより一定周期で設定される。
・ピッチ比pr。
・ホルマントシフト量fsv:再生される波形の実際のホルマントシフト量。
・ベロシティレベルvl。
・時間圧伸量tcv:再生される波形の実際の時間圧伸量。
・切出しアドレスポインタcap:パラメータ2記憶部の切出し開始アドレス領域の切出し開始アドレスcsaを指すポインタ(パラメータ2記憶部の読出しアドレス)。
・バンク番号bn:波形メモリのバンク番号。
【0035】
次に、DSP6のメインルーチンに用いる各種パラメータとして以下のものがある。
・波形読出し終了アドレスwea:パラメータ2記憶部のバンクに格納された波形読出し終了アドレス(波形列の最後尾の切出し波形の切出し開始アドレス)。
・プレイ位置pp:波形メモリの波形列から逐次に切出し波形を切り取るための現在の切取り位置を示すためのポインタ。
・次切出し開始アドレスncsa:次の切出し波形の切出し開始アドレス。
・第1/第2切出し開始アドレスfcsa/scss:後述する処理系1/2における現在の切出し開始アドレス。
・切出し波形ピッチcwp:処理系1/2における現在処理中の切出し波形のピッチ値(アドレス幅で表示)。
・プレイピッチ(幅)ppw:波形メモリに格納された波形列を再生するためのピッチ。
・再生ピッチカウンタppc:再生ピッチppwの1周期内における現在の位置を示すもの。
・ゲート値g:出力波形をミュートするためのもの。
・第1/第2アドレスカウンタac1/ac2:処理系1/2において波形メモリの読出しアドレスを算出するためのカウンタ。
・第1/第2エンベロープ窓ew1/ew2:波形メモリの波形列に付加して再生波形を取り出すための窓。
・第1/第2窓カウンタwc1/mw2:エンベロープ窓を生成するためのもの。
・識別フラグf:パーシャル1/2を識別するためのフラグ。
・窓長wl:エンベロープ窓の窓長。
・第1/第2波形読出しアドレスwra1/wra2:処理系1/2における波形データの読出しアドレス。
・波形出力wo:処理系1/2で抽出した波形出力の合成値。
・出力エンベロープレベルoel:波形出力woに乗じるエンベロープレベルの現在値。
・プレイ波形出力pwo:実際に再生出力される再生波形の出力レベル。
【0036】
以下、この実施例装置の動作をフローチャートを参照して説明する。
図9には、CPU1が行う処理として、メインルーチンのフローチャートが示される。メインルーチンがスタートすると、モード選択スイッチ21が録音モード、編集モード、プレイモードの何れに操作されたか監視されており(ステップA)、操作がされると、その操作が録音モード、編集モード、プレイモードの何れであるかが判定される(ステップB)。録音モードであれば、録音(REC)モード処理が行われ(ステップC)、編集モードであれば編集(EDIT)モード処理が行われ(ステップD)、プレイモードであればプレイモード処理が行われる(ステップE)。
【0037】
図10には録音モードにおける録音モード処理ルーチンのフローチャートが示される。録音モード処理は外部から入力された楽音信号を録音(サンプリング)する処理であり、モード選択スイッチ21により録音モードに設定した後、サンプリングスタートの操作子を操作することによって(ステップC3)、サンプリングスタートして録音(サンプリング処理)が行われる(ステップC4)。サンプリングされる楽音信号のデータは波形メモリ7に記憶される。この録音モード処理ルーチンから抜け出てメインルーチンにリターンするにはEXIT操作子を操作する(ステップC2)。
【0038】
図11には編集モードにおける編集モード処理ルーチンのフローチャートが示される。編集モード処理は、録音モードでサンプリングした波形を変更したり、再生可能な波形データに変更する編集処理や、それらの波形データをハードディスク装置3に転送したり、ハードディスク装置3から波形メモリ7に転送したりする処理を行う(ステップD3)。この編集モード処理ルーチンから抜け出るにはEXIT操作子を操作する(ステップD2)。
【0039】
図12にはプレイモードにおけるプレイモード処理ルーチンのフローチャートが示される。このプレイモード処理ルーチンの初期設定(ステップE1)においては、操作子群2の状態を走査するレジスタ等をリセットし、操作子群を操作可能な状態にすると共に、各操作子の初期状態をセットしておく。初期状態とは、プレイモード処理で、各操作子に変化があった時だけ操作子の操作に対応した処理を行うため、その最初の基準となる状態を設定している。
【0040】
プレイモード処理ルーチンは、モード選択スイッチ21によりプレイモードに設定した後、プレイスタートの操作子を操作することによってスタートする。プレイ処理(ステップE3)は、波形メモリ7の波形データを、キーボード31からの演奏情報に対応して再生する処理である。このプレイモード処理ルーチンから抜け出るにはEXIT操作子を操作する(ステップE2)。
【0041】
図13、図14にはこのプレイモードにおけるプレイ処理(ステップE3)の詳細な処理手順が示される。このプレイ処理はCPU1で実行される。このプレイ処理では、操作子群2による設定とキーボード31による演奏操作を検出してそれぞれに対応するパラメータを記憶するレジスタの内容を更新する。これらのレジスタに設定された内容のうち必要なものはDSP側の対応するレジスタに転送される。なお、このプレイ処理はDSP側のメインルーチンよりも長い周期で実行される。つまり、このプレイ処理が1回実行されて次に実行されるまでにDSP側のメインルーチンが必ず1回実行されることになる。
【0042】
プレイ処理が開始されると、バンク選択スイッチ22の操作に変化があるか否かを見て(ステップF1)、変化がある場合には、バンク選択スイッチ22で設定されたバンク番号BNを更新する。そして、更新されたバンク番号BNに対応して、波形メモリ7のパラメータ1記憶部から、波形名wn、サンプリング周波数sr、オリジナルピッチop、オリジナルピッチシフト量opsv、出力レベルolを読み込み、それぞれ対応するパラメータである波形名WN、サンプリング周波数SR、オリジナルピッチOP、オリジナルピッチシフト量OPSV、出力レベルOLを更新する(ステップF3)。
【0043】
次に、ホルマントシフト操作子23に変化があるか否かを見て(ステップF4)、変化がある場合には、それに対応してホルマントシフト量FSVを更新する(ステップF5)。同様に、時間圧伸操作子24に変化があるか否かを見て(ステップF6)、変化がある場合には、それに対応して設定時間圧伸量STCVを更新する(ステップF7)。
【0044】
次に、キーボード31からのノート情報の入力があったか否かを判定し(ステップF8)、ノート情報の入力があった場合にはそのノート情報に基づいて、ボイスモジュールへの割当て処理を行う(ステップF9)。
このボイスモジュールへの割当て処理の詳細な手順が図15に示すボイスモジュールへの割当て処理ルーチンに示される。このボイスモジュールへの割当て処理は、キーボード31から入力したノート情報(ノート番号NN、ベロシティV、ノートオン/オフNT)をボイスモジュールに割り当てる処理であり、ノート情報の入力があった場合に、最後に入力されたノートオン情報を優先的にボイスモジュールに割り当て、あるいは既に割り当てられているノートをオフにするためのノートオフ情報をボイスモジュールに割り当てる(ステップG1)。このステップG1の割当て処理の詳細は本発明と直接関係がないので、詳細な処理内容は省略する。
【0045】
ボイスモジュールの割当て処理ルーチンでは、ノート情報のボイスモジュールへの割当て後(ステップG1)、ノートオン/オフNTがノートオン情報かノートオフ情報かを判別する(ステップG2)。ノートオン情報であれば、ノート情報中のノート番号NNをノートピッチNPと後述するキーフォロー係数KFに変換し(ステップG3)、このノートピッチNPに基づいて、次のステップG4において、
「ピッチ比PR=ノートピッチNP/オリジナルピッチOP」
すなわち、ノートピッチNPとオリジナルピッチOPとの比を求めてピッチ比PRとして設定し、
「ベロシティレベルVL=ベロシティV」
すなわち、ノート情報中のベロシティVをベロシティレベルVLとして設定する。
なお、オリジナルピッチシフト量OPSVも反映させる場合には、このステップG4を、
「ピッチ比PR=ノートピッチNP/(オリジナルピッチOP×オリジナルピッチシフト量OPSV)
「ベロシティレベルVL=ベロシティV」
のようにする。
【0046】
また、前述したように、ステップG3においては、ノート番号NNをキーフォロー係数KFにも変換する。この変換は、図16に示すようなノート番号NNとキーフォロー係数KFとの関係をテーブルとして記憶しておき、そのテーブルに従って変換する。なお、このテーブルは複数用意しておき、適宜選択して使用するようにしても良い。あるいは、関数に従って演算によりキーフォロー係数KFを求めるようにしてもよい。
【0047】
さらに、CPU側においてバンク選択スイッチ22で設定したバンク番号BNをDSP側に送ってバンク番号bnとして設定するとともに、DSP6側の切出アドレスポインタcapを0に設定する(ステップG5)。
【0048】
一方、ノートオン/オフNTがノートオフ情報であった場合には(ステップG2)、
ベロシティレベルVL=0
すなわち、ベロシティレベルVLを0に設定する(ステップG6)。
【0049】
このボイスモジュールへの割当て処理ルーチン(図15)が終了したら、次いで、元のプレイ処理ルーチンに戻って、変調レバー32が操作されたか否かを判定し(ステップF10)、操作された場合には時間圧伸変調量TCMVを次の計算式、
時間圧伸変調量TCMV=変調レバー量MLV/$40
に従って更新する(ステップF11)。
【0050】
この時間圧伸変調量TCMVは、時間圧伸操作子24で設定された設定時間圧伸量STCVを修正してDSP6での波形再生のための時間圧伸量tcvを求めるためのものであり、設定時間圧伸量STCVに乗算する修正係数である。上記の「変調レバー量MLV/$40」の演算は、変調レバー32の変調レバー量MLV($00〜$7Fの範囲)を0〜2の範囲の値に正規化するもので、変調レバー32は中央位置では$40を出力しているので、この中央位置にある場合には時間圧伸変調量TCMVは1となり、時間圧伸操作子24で設定された設定時間圧伸量STCVがそのまま時間圧伸量tcvとなり、変調レバー32の出力が$00側に変化するにつれて時間圧伸変調量TCMVが小さくなって時間圧伸量tcvが小さくなり(後述するようにプレイ速度(波形再生速度)が遅くなる)、出力が$00では時間圧伸量tcvがゼロとなる(後述するようにプレイ速度が停止する)。また変調レバー32による設定時間圧伸量STCVが$7F側に変化するにつれて時間圧伸量tcvが設定時間圧伸量STCVの2倍に近付く(後述するようにプレイ速度が速くなる)。
【0051】
CPU1においては、一定周期で次の割込み処理が行われ、その処理結果はDSP6に送られて、ピッチ比pr、ホルマントシフト量fsv、ベロシティレベルvl、時間圧伸量tcvがそれぞれのレジスタに設定される。以下、この割込み処理ルーチンを図17を参照して説明する。
【0052】
割込み処理が起動されると、DSP6のレジスタにピッチ比pr、ホルマントシフト量fsv、ベロシティレベルvl、時間圧伸量tcvを設定する。すなわち、まず、
「ピッチ比pr=ピッチ比PR」
でピッチ比PRをそのままピッチ比prに設定する。
【0053】
次に、ホルマントシフト量fsvを、
「ホルマントシフト量fsv=ホルマントシフト量FSV×キーフォロー係数KF」
で求める。この計算式によりホルマントシフト量fsvを求めると、ホルマントシフト操作子23で設定されたホルマントシフト量FSVがキーフォロー係数KFによって変化することになり、ホルマントシフト量が再生音高に対応して変化することになる。
【0054】
次に、
「ベロシティレベルvl=ベロシティレベルVL」
でベロシティレベルVLをそのままベロシティレベルvlに設定する。
最後に、再生する波形の実際のプレイ速度を決めるための変数である時間圧伸量tcvを次の計算式で求める。
「時間圧伸量tcv=設定時間圧伸量STCV×時間圧伸変調量TCMV」
すなわち、時間圧伸量tcvは、時間圧伸操作子24で設定された設定時間圧伸量STCVと変調レバー32で入力された修正係数である時間圧伸変調量TCMVとを乗算して決定される。
【0055】
次に、キー情報の転送を受けたDSP6の処理を図18を参照して説明する。図18はDSP6のメインルーチンを示すフローチャートであり、サンプリング周期で繰り返し実行されるものである。CPU1から新たなキー情報の転送に基づき、CPUの「ボイスモジュールへの割当て処理」において切出しアドレスポインタcapが0に設定されたか否かを監視しており(ステップJ1)、切出しアドレスポインタcap=0に設定された時にはボイスの発音開始処理を行う(ステップJ2)。
【0056】
図19にはこのボイスの発音開始処理が示される。以下にこれらの処理について順次に説明する。なお、以下の説明では、@n(バンク番号bn×$・・・)の記号はパラメータn記憶部(n=1、2)の「バンク番号bn×$・・・」のアドレスからデータを読み出すことを意味する。
・波形読出し終了アドレスwea=@2(バンク番号bn×$800)
パラメータ2記憶部(切出し開始アドレス領域)の(バンク番号bn×$800)番地(=波形読出し終了アドレスweaが格納されている番地)からデータを読み出して波形読出し終了アドレスweaとしてレジスタに設定する。
・プレイ位置pp=@2(バンク番号bn×$800+切出しアドレスポインタcap+1)
パラメータ2記憶部の(バンク番号bn×$800切出しアドレスポインタcap+1)番地からデータ(波形列の先頭の切出し波形の切出し開始アドレスcsa1)を読み出してプレイ位置ppとしてレジスタに設定する。
・次切出し開始アドレスncsa=@2(バンク番号bn×$800+切出しアドレスポインタcap+2)
パラメータ2記憶部の(バンク番号bn×$800+切出しアドレスポインタcap+2)番地からデータ(波形列の2番目の切出し波形の切出し開始アドレスcsa2)を読み出して次切出し開始アドレスncsaとしてレジスタに設定する。
・切出し波形ピッチcwp=次切出し開始アドレスncsa−プレイ位置pp上記次切出し開始アドレスncsaから上記設定したプレイ位置pp(=この発音開始処理時には先頭の切出し開始アドレス)を引いて切出し波形ピッチcwp(アドレス幅で表示)としてレジスタに設定する。この切出し波形ピッチcwpは処理対象の切出し波形(発音開始処理時には先頭の切出し波形)のピッチに相当する。
・再生ピッチppw=切出し波形ピッチcwp×ピッチ比pr
上記切出し波形ピッチcwpとピッチ比prを乗算して再生ピッチppwとしてレジスタに設定する。
・現切出し開始アドレスccsa=プレイ位置pp
上記プレイ位置ppを現切出し開始アドレスccsaとしてレジスタに設定する。
・第1切出し開始アドレスfcsa=現切出し開始アドレスpcsa
上記現切出し開始アドレスccsaを第1処理系における第1切出し開始アドレスfcsaとしてレジスタに設定する。
・第2切出し開始アドレスscsa=現切出し開始アドレスccsa
上記現切出し開始アドレスccsaを第2処理系における第2切出し開始アドレスscsaとしてレジスタに設定する。
・第1アドレスカウンタac1=0
第1アドレスカウンタac1として0をレジスタに設定する。
・第2アドレスカウンタac2=再生ピッチppw/2
第2アドレスカウンタac2として上記再生ピッチppw/2(再生ピッチppwの半周期の値)をレジスタに設定する。
・第1窓カウンタwc1=0
第1窓カウンタwc1として0をレジスタに設定する。
・第2窓カウンタwc2=1
第2窓カウンタwc2として1をレジスタに設定する。
・ゲート値g=1
ゲート値gとして1をレジスタに設定する。
・切出しアドレスポインタcap=1
切出しアドレスポインタcapとして1をレジスタに設定する。
【0057】
以上のボイスの発音開始処理(ステップJ2)が終了したら、読出し処理を行う(ステップJ3)。この読出し処理については後に詳述する。この後、上記読出し処理(ステップJ3)で読み出したプレイ波形出力pwoを出力する(ステップJ4)。
【0058】
上述のステップJ3の「読出し処理」は、波形列(音声)から逐次に切出し波形を切り出し、その切出し波形のホルマントの特徴をほぼ保ったまま、所望の再生音高に対応したピッチ(=再生ピッチ)でその切出し波形を再生することによって、元の波形列のホルマント特性を保ったままピッチを変換するものである。この読出し処理では、再生される波形のピッチ(=再生ピッチ)は鍵盤で押下したキーの音高に応じて変更されるが、波形再生に要するプレイ時間は再生ピッチの大きさ(すなわちどのキーが押下されたか)に影響されない。
【0059】
この読出し処理動作を概略的に説明すると、波形メモリ7に記憶されている波形列からプレイ位置ppで指定される位置近傍の1ないし2ピッチ程度の切出し波形を時間経過に従って順次に切り出して、その切り出した切出し波形を、元の波形とは異なるピッチおよびホルマントで再生するものである。その際、この切出し波形の再生を二つの処理系(パーシャル)で並行して行い、それぞれの処理系では再生しようとする再生ピッチの2倍長の周期でかつ互いが半周期(=再生しようとする再生ピッチの周期)ずれるようにして切出し波形を再生し、これらを合成して、再生しようとする再生ピッチの周期にするようにしている。
【0060】
図20、図21はこのピッチ変換処理を説明する図である。ホルマントシフト量fsvは1であれば変更なし、1以外であればホルマントを若干変更する。ここでは、ホルマントシフト量fsvが1、すなわちホルマント変更なしで、かつ再生ピッチppwを波形メモリ7の元の波形データより高くする場合を図20で説明し、ホルマントシフト量fsvが1よりも大きい、すなわちホルマント変更ありで、かつ再生ピッチppwを波形メモリ7の元の波形列と同じにする場合を図21で説明する。
【0061】
まず、図20を参照して、キーボード31のキー押下で音高を指定することにより、元の波形列より高域側にピッチをシフトし、かつホルマント特性の変更は行わない(ホルマントシフト量fsv=1)場合について説明する。
【0062】
図20の(a)はバンク0領域の波形列を示しており、切出し開始アドレスcsa1から始まる5周期分の切出し波形を示している。この波形列の各切出し波形は切出し波形ピッチcwp1、cwp2、cwp3・・・を有する。
【0063】
また、キーボード31のキーで音高指定されたノートナンバーに応じて定まるピッチ比pr(=ノートピッチnp/オリジナルピッチop)に基づいて再生ピッチppwが、
「再生ピッチppw=切出し波形ピッチcwp×ピッチ比pr」
で設定される。この再生ピッチppwの周期を再生ピッチカウンタppcでカウントして作る。さらに、この再生ピッチppwに同期して、前記2つの処理系での波形再生のための波形データの読出しアドレスを求めるための第1アドレスカウンタac1、第2アドレスカウンタac2を作成する。なお、これらの第1アドレスカウンタac1、第2アドレスカウンタac2はサンプリング周期毎に一つずつインクリメントされる
【0064】
そして、第1の処理系は、後述の「波形読出し処理サブルーチン」のステップN6で行う第1波形読出しアドレスwra1の演算、
「第1波形読出しアドレスwra1=第1切出し開始アドレスfcsa+第1アドレスカウンタac1×ホルマントシフト量fsv」
のうちの後半の「第1アドレスカウンタac1×ホルマントシフト量fsv」の部分で決まる読出し速度で切出し波形を読み出す。
【0065】
また、第2の処理系は、後述の「波形読出し処理サブルーチン」のステップN15で行う波形読出しアドレスの演算
「第2波形読出しアドレスwra2=第2切出し開始アドレスscsa+第2アドレスカウンタac2×ホルマントシフト量fsv」
のうちの後半の「第2アドレスカウンタac2×ホルマントシフト量fsv」の読出し速度で切出し波形を読み出す。
【0066】
このように、切出し波形の読出し速度はホルマントシフト量fsvが1より大か小かで基準となる読出し速度(=第1/第2アドレスカウンタac1/ac2の歩進速度)よりも速くまたは遅くなる。この波形読出し速度が基準値の場合には切出し波形を第1/第2アドレスカウンタac1/ac2の歩進速度に従ってそのアドレス順に読み出すもので、読み出した波形においても切出し波形の元のホルマントがそのまま保存される。一方、この波形読出し速度が基準値よりも大きくなると、切出し波形の読出し速度が基準値よりも速く読み出すことになり、読み出した波形においては切出し波形の元のホルマントが高域側にシフトされる。また、この波形読出し速度が基準値よりも小さくなると、切出し波形の読出し速度が基準値よりも遅く読み出すことになり、読み出した波形においては切出し波形の元のホルマントが低域側にシフトされる。
なお、図20の例の場合はホルマントシフト量fsv=1であるから、第1アドレスカウンタac1、第2アドレスカウンタac2の変化と等しく、結果的にホルマント特性は変更されない。
【0067】
さらに、第1アドレスカウンタac1、第2アドレスカウンタac2にそれぞれ同期して、ホルマント処理のために波形データを切り取る窓としてのエンベロープ窓ew1、ew2を第1、第2の処理系についてそれぞれ作成する。第1の処理系は図20 (f) に示すエンベロープ窓ew1の波形を持ち、第2の処理系は図20 (g) に示すエンベロープ窓ew2の波形を持つ。エンベロープ窓ew1、ew2は0〜1の範囲の波高値であり、窓長wlを半周期とし、前半の周期では0から逐次に増加して1になり、後半の周期では1から逐次に減少して0になる三角形をしている。エンベロープ窓ew1、ew2の半周期である窓長wlは、後述の「読出し処理のサブルーチン」のステップL9において、
「窓長wl=切出し波形ピッチcwp/ホルマントシフト量fsv」
で求める。但し、窓長wlは後述するように再生ピッチppwを超えないように最大でも再生ピッチppwの値に制限される。図20はかかる制限がされた場合の例である。
【0068】
第1の処理系では、後述の「読出し処理サブルーチン」のステップL14において設定されている第1切出し開始アドレスfcsaから1ないし2ピッチ分程度を取り出した切出し波形にエンベロープ窓ew1を乗算し、図20 (h) に示す波形を得る。同様に、第2の処理系では、後述の「読出し処理サブルーチン」のステップL15において設定されている第2切出し開始アドレスscsaから1ないし2ピッチ分程度を取り出した切出し波形にエンベロープ窓ew2を乗算し、図20(i) に示す波形を得る。
【0069】
このような処理の仕方によれば、これらの波形は元の切出し波形のホルマント特性をそのまま保持したものとなる。この図20 (h) 、 (i) の波形は再生ピッチppwの周期長の2倍の長さであるが、両者の波形を足し合わせると再生ピッチppwの周期長となる。従って、キーボード31からのキー指定ピッチによって元のサンプリングデータを高域側にピッチシフトしつつ、そのホルマント特性はそのまま維持できる。
【0070】
また、波形再生のプレイ速度は、後述するように、波形列中から切出し波形単位で切出し波形を逐次に取り出していく速度を変えることによって調整している。これはプレイ位置ppで示されるアドレス近傍の切出し波形を取り出すもので、このプレイ位置ppの歩進速度を変えることでプレイ速度を増減させることができる。
【0071】
図21はホルマントシフト量fsvを1より大きくして再生波形のホルマントを元波形のホルマントより高域側にシフトする場合を示すものである。ここでは理解しやすくするためにキー指定ピッチが切出し波形ピッチcwpとほぼ等しいものとして示している。
【0072】
切出し波形の読出し速度は、第1の処理系が「第1アドレスカウンタac1×ホルマントシフト量fsv」、第2の処理系が「第2アドレスカウンタac2×ホルマントシフト量fsv」であるから、第1アドレスカウンタac1、第2アドレスカウンタac2の変化より速く、結果的にホルマント特性は高域側にシフトされ、変更が付与されることになる。
【0073】
そして、読出し速度を速くすることによって切出し波形は短くなる。従って、エンベロープ窓ew1、ew3の窓長wlも、
「窓長wl=切出し波形ピッチcwp/ホルマントシフト量fsv」
として、切出し波形が短くなったことに合わせて短くしている。
【0074】
この図20、図21の例では説明を簡単にするためにホルマントシフト量fsvを一定値として説明したが、本実施例では、図17の割込み処理ルーチンにおいてホルマントシフト量fsvはキーフォロー係数KFが乗算されているため、再生する音高に対応してホルマントシフト量fsvが変化する。よってこの実施例では、再生する音高に対応して再生波形信号のホルマントが変化するように制御されている。
【0075】
上記で概要を述べた読出し処理の動作を図22〜図25のフローチャートに基づいて説明する。
まず、全体的な動作を図22、図23のフローチャートに従って説明する。このフローチャートは図20、図21の動作に対応したものである。上述の各レジスタは、電源の投入の際に、各種レジスタのパラメータ値の初期化が行われる。即ち、
「ピッチ比pr=ホルマントシフト量fsv=時間圧伸量tcv=1.0」
「出力レベルol=切出しアドレスポインタcap=バンク番号bn=0」
「出力エンベロープレベルoel=0」
「波形読出し終了アドレスwea=プレイ位置pp=次切出し開始アドレスncsa=第1/第2切出し開始アドレスfcsa/scsa=0」
「切出し波形ピッチcwp=再生ピッチppw=0」
「再生ピッチカウンタppc=ゲート値g=第1アドレスカウンタac1=0」
「第2アドレスカウンタac2=再生ピッチppw/2」
「第1窓カウンタwc1=0.0」
「第2窓カウンタwc2=1.0」
「識別フラグf=1」
【0076】
なお、以下の説明では、電源投入後少し時間が経過し、前記フローチャートの処理によって、各レジスタや各カウンタには、既に適当な値が記憶されているとして説明する。また、このフローチャートは、DSP6においてサンプリング周期毎に実行される。
【0077】
発音開始時においては、プレイ位置ppは、前述のボイスの発音開始処理によって、波形メモリ7のパラメータ2記憶部における処理対象のバンク番号bnで示される波形列の先頭の切出し波形の切出し開始アドレスcsa1が設定されている。プレイ位置ppはこれを基準点にして波形再生の時間進行を管理する。1サンプル周期毎に、プレイ位置ppの値を時間圧伸量tcvだけインクリメントする(ステップL1)。すなわち、
プレイ位置pp=プレイ位置pp+時間圧伸量tcv
とする。このような更新をする結果、時間圧伸量tcvが大きければ、プレイ位置ppは速く進んで波形列全体を再生するに要する時間が短くなり、反対に時間圧伸量tcvが小さければプレイ位置ppは遅く進むので波形列全体を再生するに要する時間は長くなる。
【0078】
次いで、プレイ位置ppと波形読出し終了アドレスweaとを比較し(ステップL2)、プレイ位置ppが波形読出し終了アドレスwea以上になっていれば、当該バンク番号の波形列についての処理が終了したことになるので、プレイ位置ppを波形読出し終了アドレスweaの値に固定し(ステップL3)、それ以上に波形処理が進行しないようにする。
【0079】
次に、プレイ位置ppと次切出し開始アドレスncsaを比較する(ステップL4)。この次切出し開始アドレスncsaは前述した図19の発音開始処理からも分かるように、次に続く切出し波形の切出し開始アドレス(先頭アドレス)である。よってプレイ位置ppが次切出し開始アドレスncsaより大きければ、それまで処理していた切出し波形が終了したので、この切出し波形から次の切出し波形に処理を移行するために切出し波形の更新を行う。
【0080】
この切出し波形の更新は次のようにして行う(ステップL5)。
・現切出し開始アドレスccsa=@2(バンク番号bn×$800+1+切出しアドレスポインタcap)
・次切出し開始アドレスncsa=@2(バンク番号bn×$800+2+切出しアドレスポインタcap)
・切出し波形ピッチcwp=次切出し開始アドレスncsa−現切出し開始アドレスccsa
・切出しアドレスポインタcapを一つインクリメント
【0081】
すなわち、波形メモリ7のパラメータ2記憶部の切出し開始アドレス領域における「切出しアドレスポインタcap+1」で指されるアドレスから現切出し開始アドレスccsaを読み出し、「切出アドレスポインタcap+2」で指されるアドレスから次切出し開始アドレスncsaを読み出し、この現切出し開始アドレスccsaから次切出し開始アドレスncsaを引いたもの(アドレスの差分)を切出し波形ピッチcwpとする。その後、切出しアドレスポインタcapを一つインクリメントする。
【0082】
ステップL4において、プレイ位置ppが次の切出し波形の切出し開始アドレスncsaより小であれば、まだ現在の切出し波形の途中であるから、切出し波形の更新は行わないので、上記のステップL5の処理は飛び越す。
【0083】
以上のステップL1〜L5の処理により、大きな時間圧伸量tcvが設定された場合にはプレイ位置pp が速く進んで、結果として第1/第2切出し開始アドレスfcsa/scsaの更新(後述のステップL14、L15)が早く行われ、よってプレイ時間が短くなる。反対に時間圧伸量tcvが小さい場合にはプレイ位置ppが遅く進んで第1/第2切出し開始アドレスfcsa/scsaの更新が遅く行われ、よってプレイ時間が長くなる。
【0084】
なお、この時間圧伸量tcvをかなり小さな値に設定した場合には同じ切出し波形が複数回繰り返して再生されつつ、遅い速度で波形再生が進行するようになる。これは、プレイ位置ppの進行がゆっくりしているためステップL4の判断でプレイ位置ppがなかなか比較している値よりも大きくならず、よって切出し波形の更新がなかなか行われないで同じ切出し波形からの読出し処理が繰り返し行われるためである。反対に、時間圧伸量tcvをかなり大きな値にすると、切出し波形の更新において、次に続く切出し波形を飛び越してしまいその切出し波形の再生が行われないような場合も生じる。
【0085】
ここで、変調レバー32の操作があった場合には、時間圧伸量tcvは、前述のプレイ処理のステップF11において変調レバー32の操作量MLVに応じて時間圧伸変調量TCMVが変更されて設定されるので、プレイ時間は変調レバー32の操作量MLVにより次のように変化する。
【0086】
▲1▼変調レバー32の操作量MLVが$00〜$40の場合
変調レバー32の操作量MLVが$00に近付くほど、プレイ位置ppの移動の速さが遅くなる。操作量MLVが$00では、プレイ位置ppの移動はほぼ停止状態となり、同じ切出し波形が繰り返して再生され続けるようになる。また操作量MLVが中央位置の$40では、時間圧伸操作子24で設定した設定時間圧伸量STCVの速さでプレイ位置ppが移動して再生される。
▲2▼変調レバー32の操作量が$41〜$7Fの場合
操作量MLVが$7Fに近付くほど、プレイ位置の移動速度が速くなる。操作量MLVが$7Fでは、時間圧伸操作子24で設定した設定時間圧伸量STCVの2倍の速さでプレイ位置ppが移動して再生される。
【0087】
上記のようにプレイ位置ppを時間基準として用いて切出し波形の更新を行いつつ波形列を再生すると、波形再生に要する時間長(プレイ時間)は、再生する波形の音高によらず、ユーザが時間圧伸操作子24と変調レバー32の操作で設定する時間圧伸量tcvで決めることができるようになる。
【0088】
ステップL6では、再生ピッチカウンタppc、第1アドレスカウンタac1、第2アドレスカウンタac2をそれぞれ1つ歩進させる。次に、再生ピッチカウンタppcと再生ピッチppwとを比較する(ステップL7)。この再生ピッチppwが再生されるピッチに対応する。再生ピッチカウンタppcが再生ピッチppwに達していなければ、後述するステップL16の「波形読出し処理」へ進む。なお、再生ピッチppwは後述のステップL9で算出される。
【0089】
再生ピッチカウンタppcが再生ピッチppwの値に達している時にはステップL8〜L15を行う。このステップL8〜L15の処理は、次に続く再生ピッチの周期での処理を行うために各種パラメータの値を更新するものである。まず、再生ピッチカウンタppcを0とする(ステップL8)。次いで、新たな再生ピッチppwを、キーボード31の押鍵で音高指定されたキーに基づくピッチ比pr(=ノートピッチnp/オリジナルピッチop)と切出し波形ピッチcwpとを乗じることで求める(ステップL9)。次いで、切出し波形ピッチcwpをホルマントシフト量fsvで除算してエンベロープ窓の窓長wlを求める(ステップL9)。次いで、オフセットosを0に設定する。
【0090】
次に、窓長wlを再生ピッチppw以内に制限する(ステップL10、L11)。すなわち、窓長wlと再生ピッチppwとを比較し(ステップL10)、窓長wlが再生ピッチppwよりも大きい場合には、窓長wlを再生ピッチppwとする(ステップL11)。また、切出し波形ピッチcwpから(再生ピッチppw×ホルマントシフト量fsv)を引いてオフセットosを求める。後述するように、このオフセットosはエンベロープ窓の中央付近で切出し波形を切り出せるようにするためのパラメータである。一方、窓長wlが再生ピッチppw以下である場合には、このステップL11の処理は行わない。以上により、窓長wlが再生ピッチppwより大きくならないように制限をかける。
【0091】
次いで、窓長wlの逆数を求め、これを歩進率wrとする (ステップL12)。この歩進率wrは、第1窓カウンタwc1、第2窓カウンタwc2を歩進させるために使用する。また、識別フラグfの極性を反転させる。このステップL11の処理は、ステップL7おいて再生ピッチカウンタppcが再生ピッチppw以上になったときに行われるので、識別フラグFの反転も、再生ピッチカウンタppcが再生ピッチppw以上になったときに行われることになり、例えば図20、図21の(c)に示されるように、再生ピッチカウンタppcの周期で1と−1に反転する波形が得られる。
【0092】
次に、識別フラグfの値を0と比較し、識別フラグfが1であるか、−1であるかを判断する(ステップL13)。識別フラグfの値が1であることは識別フラグfが−1から1に立ち上がったときを意味しており、この場合には、第1の処理系の第1アドレスカウンタac1と第1窓カウンタwc1をそれぞれ「0」とし、第1切出し開始アドレスfcsaを現切出し開始アドレスccsaにオフセットosを足したものとする(ステップL14)。
【0093】
また、識別フラグfの値が−1であることは識別フラグfが1から−1に立ち下がったことを意味しており、この場合には、第2の処理系の第2アドレスカウンタac2と第2窓カウンタwc2をそれぞれ「0」とし、第2切出し開始アドレスscsaを現切出し開始アドレスccsaにオフセットosを足したものとする(ステップL15)。
【0094】
この場合、このステップL14とL15は、ステップL17で再生ピッチカウンタppcが再生ピッチppwを超えたと判定される毎に交互に実行されるものであるから、第1アドレスカウンタac1と第2アドレスカウンタac2は、図20の(d)、(e)のように再生ピッチppwの2倍長の周期で、かつ、お互いに再生ピッチppwだけ位相の異なる変化をするものとなる。また、第1切出開始アドレスfcsaは第1アドレスカウンタac1の立下り部分で、第2切出し開始アドレスscsaは第2アドレスカウンタac2の立下り部分で、互いが再生ピッチppwだけ時間差を持ったタイミングで更新されることになる。
【0095】
このステップL14またはL15の処理に続いて、あるいはステップL7において再生ピッチカウンタppcが再生ピッチppwに達していないと判断されたときには、波形読出し処理を行う(ステップL16)
【0096】
図24、図25はこの波形読出し処理を示すフローチャートである。以下にこの波形読出し処理について詳細に説明する。
【0097】
波形読出し処理
図24、図25は波形読出し処理のフローチャートであり、同図中のステップN1〜N9は第1の処理系のための処理、ステップN10〜N18は第2の処理系のための処理であり、この二つの処理は時系列に行われるが、処理の内容は実質的に同様な内容となっている。
【0098】
図24に示すように、波形読出し処理では、まず第1窓カウンタwc1の値を歩進率wrだけ歩進させる(ステップN1)。そして、歩進させた第1窓カウンタwc1が1より小さいか、1以上であって2より小さいか、あるいは2以上であるかを判定する(ステップN2)。1より小さい場合には、第1窓カウンタwc1の値を第1エンベロープ窓ew1とし(ステップN3)、1以上であって2より小さい場合には、2から第1窓カウンタwc1を減算した値を第1エンベロープ窓ew1として(ステップN4) 、2以上のとき、第1エンベロープ窓ew1の値を0とする(ステップN5)。
【0099】
このステップN1〜N5は、例えば図20(f) に示されるように、歩進率wrずつ値が増加する鋸歯状波を作成し、これの値を波高値「1」で折り返すことによって、第1エンベロープ窓ew1を作成している。但し、窓カウンタwc1が2を越えた場合には、ステップN5によって第1エンベロープ窓ew1の波高値を「0」としている。即ち、ホルマントシフト量fsvと切出し波形ピッチcwpとに基づいて定めた窓長wlの逆数である歩進率wrずつ1まで増加し、その後、0まで減少する三角波を第1のエンベロープ窓ew1の波形として作成している。
【0100】
また、ステップN3〜N5に続いて、第1アドレスカウンタac1(読出しアドレスの歩進値)にホルマントシフト量fsvを乗算した値を、第1の波形の第1切出し開始アドレスfcsaと加算して、第1の処理系における波形データ(サンプリング値)の読出しアドレス(以下、第1波形読出しアドレスと称する)wra1とする(ステップN6)。
【0101】
また、この第1波形読出しアドレスwra1を波形読出し終了アドレスweaと比較し(ステップN7)、波形読出し終了アドレスweaよりも大きければ、ゲート値g=0とする(ステップN8)。このゲート値g=0の設定により、後述するように、出力レベルはある傾斜をもって減衰し消音する。波形読出し終了アドレスwea以下であれば、この第1波形読出しアドレスwra1を用いて波形メモリ7の波形データ記憶部から波形データwdを読み出す(ステップN9)。このように第1波形読出しアドレスwra1はその歩進幅がホルマントシフト量fsvによって変更されるので、結果的には切出し波形の読出し速度が、ホルマントシフト量fsvによって変更されている。
これに続くステップN10〜N18では上述と同じ処理を、第2の処理系についても行う。
【0102】
次いで、読み出した波形データの出力oに乗じる出力エンベロープレベルoelの算出と、波形出力woの算出を行う(ステップl19)。すなわち、出力エンベロープレベルoelを、
「出力エンベロープレベルoel=出力エンベロープレベルoel+(ゲート値g×ベロシティレベルvl−出力エンベロープレベルoel)×K」
で求める。この出力エンベロープレベルoe1は、波形列の再生開始時に漸次に立ち上がり、波形再生途中では1となり、波形再生が波形読出し終了アドレスweaに達すると漸次に立ち下がるエンベロープ波形となる。なお、Kは立上り/立下りの傾斜を決定するための係数である。
また、波形出力woは、
「波形出力wo=波形データwd1×第1エンベロープ窓ew1+波形データwd2×第2エンベロープ窓ew2」
で求める。これは、第1の処理系で第1エンベロープ窓ew1を用いて切り取った波形出力と、第2の処理系で第2エンベロープ窓ew2を用いて求めた波形出力とを足し合わせて再生波形とするものである。
【0103】
最後に、最終のプレイ波形出力pwoを、
プレイ波形出力pwo=波形出力wo×出力エンベロープレベルoel
により求める。従って、再生された波形列の出力レベルは、波形列の再生開始時に係数Kに従う傾きで立ち上がり、波形再生が波形読出し終了アドレスweaに達すると係数Kに従う傾きで立ち下がり消音されるものになる。
【0104】
【発明の効果】
以上に説明したように、本発明によれば、記憶手段に記憶された波形データで表される波形を時間軸圧縮伸長および音高変化して再生するものにおいて、再生音高に対応してホマルントを変化させることができ、自然な再生波形を生成することができる。
【図面の簡単な説明】
【図1】本発明にかかる一実施例としての波形発生装置の全体的なブロック構成を示す図である。
【図2】実施例装置における波形メモリのパラメータ1(ステータス領域)記憶部のデータ構成例を示す図である。
【図3】実施例装置における波形メモリのパラメータ2(切出し開始アドレス領域)記憶部のデータ構成例を示す図である。
【図4】実施例装置における波形メモリの波形データ記憶部のデータ構成例を示す図である。
【図5】実施例装置におけるCPU側のレジスタに設定される各種のパラメータを示す図である。
【図6】実施例装置におけるCPU側のMIDI情報レジスタに設定される各種のパラメータを示す図である。
【図7】実施例装置におけるDSP側のキー情報レジスタに設定される各種のパラメータを示す図である。
【図8】実施例装置におけるDSP側のレジスタに設定される各種のパラメータを示す図である。
【図9】実施例装置におけるメインルーチンを示すフローチャートである。
【図10】実施例装置における録音モード処理ルーチンを示すフローチャートである。
【図11】実施例装置における編集モード処理ルーチンを示すフローチャートである。
【図12】実施例装置におけるプレイモード処理ルーチンを示すフローチャートである。
【図13】実施例装置におけるプレイ処理ルーチン(1/2)の詳細を示すフローチャートである。
【図14】実施例装置におけるプレイ処理ルーチン(2/2)の詳細を示すフローチャートである。
【図15】実施例装置のプレイ処理ルーチンにおけるボイスモジュールへの割当て処理の詳細を示すフローチャートである。
【図16】実施例装置のノート番号NNとキーフォロー係数KFとの変換を行う関係を示す図である。
【図17】実施例装置におけるCPU割込み処理ルーチンを示すフローチャートである。
【図18】実施例装置におけるDSPでのメインルーチンを示すフローチャートである。
【図19】実施例装置におけるDSPでのメインルーチン中の「ボイスの発音開始処理」を示すフローチャートである。
【図20】「読出し処理」の動作概要(ホルマント特性変更なし、高域にピッチシフト)を説明するためのタイムチャートである。
【図21】「読出し処理」の動作概要(ホルマント特性を低域にシフト)を説明するためのタイムチャートである。
【図22】実施例装置におけるDSPでのメインルーチン中の読出し処理ルーチン(1/2)を示すフローチャートである。
【図23】実施例装置におけるDSPでのメインルーチン中の読出し処理ルーチン(2/2)を示すフローチャートである。
【図24】実施例装置のDSPメインルーチンにおける読出し処理ルーチン中の波形読出し処理ルーチン(1/2)を示すフローチャートである。
【図25】実施例装置のDSPメインルーチンにおける読出し処理ルーチン中の波形読出し処理ルーチン(2/2)を示すフローチャートである。
【符号の説明】
1 CPU
2 操作子群
21 モード選択スイッチ
22 バンク選択スイッチ
23 ホルマントシフト操作子
24 時間圧伸操作子
3 キーボード装置
31 キーボード
32 変調レバー
4 ハードディスク装置
5 記憶部
6 DSP(ディジタル信号プロセッサ)
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a waveform generator used for an electronic musical instrument, for example, and more particularly to a generator for reading and reproducing waveform data stored in a memory.
Such a waveform generator can be used for an electronic musical instrument called a sampler, for example.
[0002]
[Related technologies]
In the previously filed Japanese Patent Application No. 9-300403, the present applicant stores a time series of waveform data representing a waveform in the storage means, compresses and expands the time axis of the waveform, and converts the pitch. A “waveform generator” was proposed as a playback device.
[0003]
The waveform generating apparatus described in this application is provided with a formant shift operator, and the formant shift amount is set in advance to shift and reproduce the formant of the recording waveform, and the modulation signal LFO is used to form a periodic modulation. Or can be granted.
[0004]
[Problems to be solved by the invention]
However, this waveform generator does not change the formant even when the reproduced pitch of the waveform changes. Thus, if the formant does not change at all even if the playback pitch changes, it is still unnatural as a musical sound.
[0005]
The present invention has been made in view of such a problem, and it is an object of the present invention to prevent a musical sound or the like due to a generated waveform from becoming unnatural even when a playback pitch changes.
[0006]
In order to solve the above-mentioned problems, a waveform generator according to the present invention comprises a storage means for storing waveform data representing a series of waveforms arranged in time series, and a storage means for storing the waveform data. Compression / decompression information input means for inputting compression / decompression information for instructing the degree of compression or expansion of the time axis of the waveform, pitch information input means for inputting pitch information for instructing the playback pitch of the waveform, and the waveform A formant shift amount input means for inputting a formant shift amount for shifting the formant, a formant control information generation means for generating formant control information in which the formant shift amount is changed according to the pitch information, and the compression / decompression information. And pitch information and formant control information, and based on the waveform data, a waveform corresponding to a reproduction position that changes at a change speed corresponding to the compression / decompression information, Change the pitch corresponding to the Kion pitch information, and to change the formant corresponding to the formant control information, and a reproduction means for generating a reproduction waveform. In this waveform generator, the formant of the playback waveform changes depending on the formant control information, but the formant control information is changed according to the playback pitch, so that However, the formant can be changed so that the tone of the reproduced waveform does not feel unnatural.
[0007]
The playback means includes time information generating means for generating time information that changes at a change speed unrelated to the playback pitch, and the time information change speed corresponding to the time information and the pitch information. A reading means for reading waveform data from the storage means at a desired reading speed unrelated to the above can be included. In this waveform generator, the waveform reproduction speed is determined by the change speed of the time information of the time information generation means, and the change speed of the time information is independent of the playback pitch. Therefore, the reproducing means reads out the waveform data at a desired reading speed that corresponds to the time information and pitch information and is not related to the change speed of the time information, and the waveform data is instructed by the pitch information. When playback is performed at the playback pitch, the waveform playback speed and playback pitch can be adjusted independently.
[0008]
The waveform generator further includes first control information input means for inputting first control information for changing a change speed of the time information, and the time information generation means is responsive to the input first control information. And a means for changing the rate of change of the time information. The first control information is generated in response to, for example, an operation of a time companding operator for setting a value in advance or a modulation lever operated in real time.
Further, the time information generating means can be constituted by a counter, and the step amount of the counter is changed by the first control information. Thereby, the change speed of the time information can be changed by the first control information input by the first control information input means, and thereby the waveform reproduction speed can be arbitrarily changed. Even in this case, the playback pitch does not change depending on the playback speed.
[0009]
Further, the readout means reads out a waveform section including at least one period of the waveform at a period corresponding to the pitch information at a desired readout speed unrelated to the change speed of the time information. It can be configured to convert data to playback pitch. Further, since the desired reading speed is configured to correspond to the formant control information that is generated by the formant control information generating means and changes in accordance with the reproduction pitch, it is not dependent on the reproduction speed. On the other hand, it is possible to reproduce at a reproduction pitch in which the formant changes corresponding to the reproduction pitch.
[0010]
Further, the reproducing means has two processing systems, and each processing system generates a waveform of at least one cycle of the waveform data of the storage means at a period corresponding to twice the playback pitch. By finally adding the outputs, the waveform data in the waveform section can be converted into a playback pitch.
[0011]
The formant control information generating means further includes formant change information input means for inputting change information for changing the formant of the waveform in the waveform train, and the reading means shifts the formant to the low frequency side. When the change information is to shift the formant to the high frequency side, the reading speed of the waveform data in the waveform section can be controlled to be high. By configuring in this way, by inputting change information by the formant change information input means, the formant of the waveform to be reproduced can be shifted to the high frequency side or shifted to the low frequency side.
[0012]
DETAILED DESCRIPTION OF THE INVENTION
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 shows a waveform generator for an electronic musical instrument as an embodiment according to the present invention. In FIG. 1, reference numeral 7 denotes a waveform memory comprising a RAM for storing information relating to waveform data to be reproduced. Reference numeral 6 denotes a DSP (digital signal processor) that performs reproduction processing of waveform data in the waveform memory 7 by digital processing. The DSP 6 includes a working memory used for arithmetic processing of the DSP 6 and a memory for storing a program of the DSP 6.
[0013]
8 is an A / D converter that A / D converts the input analog waveform signal into a digital waveform signal and inputs it to the DSP 6, and 9 is a D / A converter that converts the digital waveform signal reproduced and output from the DSP 6 into an analog waveform signal. This is a D / A converter for output. The digital waveform signal input from the A / D converter 8 can be stored as waveform data from the DSP 6 into the waveform memory 7.
[0014]
Reference numeral 1 denotes a CPU (central processing unit) which performs overall control of the apparatus such as control of the DSP 6 and detection and processing of the state of the operator group 2 and the keyboard device 3. A large-capacity hard disk device 4 stores a large amount of waveform data and the like, and the waveform data is transferred to the waveform memory 7 as necessary. Reference numeral 5 denotes a storage unit including a working memory used for arithmetic processing of the CPU 1, a memory for storing the CPU 1 program, a memory for storing the DSP program, and the like.
[0015]
As shown in FIG. 1, the operator group 2 includes a mode selection switch (MSS) 21, a bank selection switch (BSS) 22, a formant shift operation element (FSV) 23, a time companding operation element (TCV) 24, and the like. . Hereinafter, the function of each of these operators will be described.
[0016]
The mode selection switch 21 is a switch for selecting one from a recording mode, an editing mode, and a play (playback) mode. Here, the recording mode (REC mode) is a mode for recording (sampling) an externally input musical tone signal, the editing mode (EDIT mode) is a mode for editing a waveform sampled in the recording mode, and the play mode (PLAY mode) is In this mode, the waveform data stored in the waveform memory 7 is reproduced according to the performance operation of the keyboard.
The bank selection switch 22 is a switch for selecting one of a plurality of waveform data stored in the waveform memory 7.
The formant shift operation element 23 is an operation element for setting a shift amount from the formant of the original waveform data stored in the waveform memory 7, and sets a formant shift amount FSV (also referred to as a formant change coefficient) to be described later.
The time companding operator 24 sets the amount of time compression / expansion (hereinafter referred to as companding) for determining the progress speed of the reproduction position (play position) on the time axis when reproducing the waveform data. It is an operator to do.
[0017]
The keyboard device 3 includes performance operators such as a MIDI keyboard 31 and a modulation lever (hereinafter referred to as a modulation lever) 32. In addition to generating note information (note number NN, velocity V, note on / off NT, etc.) corresponding to the operated key for performance, the keyboard 31 plays back the waveform data stored in the waveform memory 7. It is also used to instruct the playback pitch and the start / end of playback by turning the key on / off.
[0018]
The modulation lever 32 is also referred to as a modulation wheel, and is an operator that controls modulation of a musical tone that is normally generated. In this embodiment, the set time companding amount STCV set by the above-described time companding operator 23 is corrected in accordance with the operation amount of the modulation lever 32 (modulation lever amount MLV), and the pitch of the waveform to be reproduced is changed. The playback speed (play speed) is controlled without any problems. The modulation lever 32 can generate a modulation lever amount MLV in the range of $ 00 to $ 7F. In the following description, “$” added to the head of $ 7F or the like means hexadecimal display. The modulation lever 32 is normally located at the center position of the swinging range, and the modulation lever amount MLV of $ 40 is output at this center position.
[0019]
The waveform memory 7 is a memory for storing data relating to a waveform signal to be reproduced. The waveform memory 7 is roughly divided into a parameter storage unit and a waveform data storage unit. The parameter storage unit further includes a parameter 1 storage unit (status area). ) And parameter 2 storage section (cutout start address area). This parameter storage unit
Parameter 1 storage (status area): $ 20 address / bank
Parameter 2 storage section (cutout start address area): An address area per bank is provided in units of $ 800 addresses / 1 bank to store data. The waveform data storage unit stores all waveform data having a waveform number corresponding to the bank number for each bank in units of $ 8000 addresses / 1 bank. In other words, the parameter 1 storage unit is divided into segments at every $ 20 address, the parameter 2 storage unit is divided into every $ 800 address, and the waveform data storage unit is divided into every $ 8000 address. Bank numbers are assigned in order from the younger, such as bank 0 area, bank 1 area, bank 2 area. For example, if a parameter for a waveform with a certain waveform number is stored in the bank 0 area of the parameter 1 or 2 storage section, the waveform data of that waveform number corresponds to the bank 0 area of the same bank number in the waveform data storage section. To store.
[0020]
Hereinafter, the data configurations of the parameter storage unit and the waveform data storage unit will be described with reference to FIGS. 2 shows the data configuration of the parameter 1 storage unit (status area), FIG. 3 shows the data configuration of the parameter 2 storage unit (cutout start address region), and FIG. 4 shows the data configuration of the waveform data storage unit. .
[0021]
As shown in FIG. 2, the parameter 1 storage unit (status area) stores, for each bank number (that is, each waveform number), a waveform name wn, a sampling frequency sr, an original pitch op, an original pitch shift amount opsv from the original key, The output level ol is stored. The contents of these parameters are as follows.
[0022]
Waveform name wn: This waveform name wn is displayed on a display device and used for easy identification of memory waveforms.
Sampling frequency sr: The sampling frequency of the original waveform (the waveform stored in the memory, the same applies hereinafter) so that the original pitch does not change when playback processing is performed at a sampling frequency different from the sampling frequency of the original waveform Used for correction.
Original pitch op: Original pitch of original waveform data.
Original pitch shift amount opsv: A value for shifting the original pitch op (a magnification value for changing the original pitch OP), and used when changing the original pitch op, for example, when playing with different from the original pitch op. Is done.
Output level ol: for setting the output level of the original waveform.
[0023]
Next, the parameter 2 storage unit (cutout start address area) stores the cutout start address of the waveform data for each bank number as shown in FIG. The cutting start address csa is the head address of a waveform for one pitch (hereinafter referred to as a cutting waveform). Hereinafter, in this specification, the extracted waveforms arranged in time series are referred to as waveform trains. This cut-out start address csa is stored in time series along the time axis over the entire waveform string of the waveform number. The cutting start address csa of the cutting waveform of the last one pitch of the waveform row is stored as the waveform reading end address wea at the end of the area for storing the cutting start address. Further, the waveform readout end address wea of the waveform is stored as a header at the head address of the storage area of the bank number.
[0024]
Note that the cut-out start address csa when the pitch is not determined by a consonant part or the like is an appropriate pitch,
“Cutting start address csa = previous cutting start address csa + pitch”
Are obtained for the entire consonant section and stored in the cut-out address storage area. The pitch here is the address width of the cut waveform for one pitch. An appropriate pitch is, for example, a pitch that is first detected (determined) after shifting from a consonant to a vowel, or a pitch that is determined next.
[0025]
Next, as shown in FIG. 4, the data structure of the waveform data storage unit is such that the waveform data of the waveform sequence with bank number (waveform number) 0 is stored in the bank 0 area of the waveform data storage unit and the waveform sequence with bank number 1 The waveform data (sampling value) wd of the waveform train is stored in each bank area in sequential address order, such as in the bank 1 area of the waveform data storage unit.
[0026]
Various register groups are set in the memory 5 on the CPU 1 side. 5 and 6 show various parameters set in the register group. FIG. 6 shows the MIDI information register group. Hereinafter, these parameters will be described.
[0027]
Bank number BN: Bank number (waveform number) of the waveform data set by the bank selection switch 22 According to the bank number BN, a waveform train (waveform number) to be reproduced is selected.
[0028]
Various parameters stored in the parameter 1 storage unit of the waveform memory 7 That is, the waveform name WN, sampling frequency SR, original pitch OP, original pitch shift amount OPSVPP, and output level OL. Of these, parameters other than the original pitch are parameters that are not directly related to the embodiment of the present invention, and therefore processing other than the original pitch is excluded from the present embodiment.
[0029]
Formant shift amount FSV: Formant shift amount set by the formant shift operator 23. When the formant shift amount FSV is “1”, the waveform row in the waveform memory 7 is reproduced with the same formant as the original waveform, and when the value is larger than “1”, the formant is higher than the original waveform. If the value is smaller than “1”, the formant is shifted to the lower frequency side than the original waveform and reproduced.
[0030]
Set time companding amount STCV: Determines the amount of time compression / expansion (that is, the play speed) when the waveform train stored in the waveform memory 7 is reproduced, and is a numerical value set by the time companding operator 24. . If modulation by the modulation lever 32 to be described later is not applied, if this set time companding amount STCV is “1”, the time changes at the same speed as the time change of the original waveform, and a value larger than “1”. If there is, the time change is faster than the original waveform and the play time is shortened. If the value is smaller than “1”, the time change is slower than the original waveform and the play time is increased.
[0031]
Time companding modulation amount (coefficient) TCMV: a time compression / expansion value set by the modulation lever 32 and a coefficient for correcting the set time companding amount STCV. It is set in the range of “0 ≦ time pressure modulation amount TCMV ≦ 2”.
Pitch ratio PR: A ratio between the pitch corresponding to the pitch (key number) designated by the keyboard 31 and the original pitch OP of the memory waveform, and is stored for each voice module.
Velocity level VL: Velocity V designated by the keyboard 31 and stored for each voice module.
[0032]
The MIDI information register group in FIG. 6 is a register group for storing note information and the like input from the keyboard device 3, and stores the following parameters.
Note number NN: Key number operated on the keyboard 31.
Velocity V: Velocity of keys operated on the keyboard 31.
Note ON / OFF NT: ON / OFF of a key operated by the keyboard 31.
Modulation lever amount MLV: An amount operated by the modulation lever 32.
[0033]
Various register groups shown in FIGS. 7 and 8 are set in the internal memory on the DSP 6 side. Hereinafter, parameters set in these register groups will be described.
[0034]
First, the following parameters are set in the key information register group. In a play process of the CPU 1 described later, an operation of the keyboard 31 is detected, and key information is transferred to the DSP 6 by the assignment process and temporarily stored in this key information register. These parameters are set at regular intervals by the interrupt routine.
-Pitch ratio pr.
Formant shift amount fsv: The actual formant shift amount of the reproduced waveform.
-Velocity level vl.
-Time companding amount tcv: Actual companding amount of the waveform to be reproduced.
Cut-out address pointer cap: pointer indicating the cut-out start address csa in the cut-out start address area of the parameter 2 storage unit (read address of the parameter 2 storage unit).
Bank number bn: Bank number of the waveform memory.
[0035]
Next, various parameters used in the main routine of the DSP 6 include the following.
Waveform read end address wea: Waveform read end address stored in the bank of the parameter 2 storage unit (cutting start address of the last cut out waveform of the waveform train).
Play position pp: Pointer for indicating the current cut position for cutting out the cut waveform sequentially from the waveform row of the waveform memory.
Next cut start address ncsa: Cut start address of the next cut waveform.
First / second extraction start address fcsa / scss: Current extraction start address in processing system 1/2, which will be described later.
Cutout waveform pitch cwp: Pitch value of the cutout waveform currently being processed in the processing system 1/2 (displayed as an address width).
Play pitch (width) ppw: A pitch for reproducing the waveform train stored in the waveform memory.
Reproduction pitch counter ppc: This indicates the current position within one period of the reproduction pitch ppw.
Gate value g: For muting the output waveform.
First / second address counter ac1 / ac2: A counter for calculating the read address of the waveform memory in the processing system 1/2.
First / second envelope window ew1 / ew2: A window for adding a waveform row in the waveform memory to extract a reproduced waveform.
First / second window counter wc1 / mw2: for generating an envelope window.
Identification flag f: a flag for identifying partial 1/2.
Window length wl: The window length of the envelope window.
First / second waveform read address wral / wr2: Read address of waveform data in the processing system 1/2.
Waveform output wo: A composite value of the waveform output extracted by the processing system 1/2.
Output envelope level oel: The current value of the envelope level multiplied by the waveform output wo.
Play waveform output pwo: The output level of the playback waveform that is actually played back.
[0036]
Hereinafter, the operation of the apparatus of this embodiment will be described with reference to a flowchart.
FIG. 9 shows a flowchart of a main routine as processing performed by the CPU 1. When the main routine starts, it is monitored whether the mode selection switch 21 is operated in the recording mode, the editing mode, or the play mode (step A), and when the operation is performed, the operation is performed in the recording mode, the editing mode, and the play mode. It is determined which mode is selected (step B). If it is a recording mode, a recording (REC) mode process is performed (step C), if it is an edit mode, an edit (EDIT) mode process is performed (step D), and if it is a play mode, a play mode process is performed. (Step E).
[0037]
FIG. 10 shows a flowchart of a recording mode processing routine in the recording mode. The recording mode process is a process for recording (sampling) a musical tone signal input from the outside. After setting the recording mode with the mode selection switch 21, the sampling start operator is operated (step C3) to start sampling. Recording (sampling processing) is then performed (step C4). Data of the musical tone signal to be sampled is stored in the waveform memory 7. To exit from this recording mode processing routine and return to the main routine, the EXIT operator is operated (step C2).
[0038]
FIG. 11 shows a flowchart of an edit mode processing routine in the edit mode. The edit mode process changes the waveform sampled in the recording mode, edits the waveform data to be reproducible, transfers the waveform data to the hard disk device 3, and transfers the waveform data from the hard disk device 3 to the waveform memory 7. (Step D3). To exit from this edit mode processing routine, the EXIT operator is operated (step D2).
[0039]
FIG. 12 shows a flowchart of a play mode processing routine in the play mode. In the initial setting of the play mode processing routine (step E1), the register for scanning the state of the operator group 2 is reset to make the operator group operable, and the initial state of each operator is set. Keep it. The initial state is a play mode process, and a process corresponding to the operation of the operation element is performed only when there is a change in each operation element. Therefore, the initial reference state is set.
[0040]
The play mode processing routine is started by operating the play start operator after setting the play mode with the mode selection switch 21. The play process (step E3) is a process for reproducing the waveform data in the waveform memory 7 in accordance with the performance information from the keyboard 31. To exit from this play mode processing routine, the EXIT operator is operated (step E2).
[0041]
13 and 14 show the detailed processing procedure of the play process (step E3) in this play mode. This play process is executed by the CPU 1. In this play process, the setting by the operator group 2 and the performance operation by the keyboard 31 are detected, and the contents of the registers storing the corresponding parameters are updated. Among the contents set in these registers, necessary ones are transferred to corresponding registers on the DSP side. This play process is executed with a longer cycle than the main routine on the DSP side. That is, the main routine on the DSP side is always executed once until this play process is executed once and then executed next.
[0042]
When the play process is started, whether or not there is a change in the operation of the bank selection switch 22 (step F1), and if there is a change, the bank number BN set by the bank selection switch 22 is updated. . Corresponding to the updated bank number BN, the waveform name wn, the sampling frequency sr, the original pitch op, the original pitch shift amount opsv, and the output level ol are read from the parameter 1 storage unit of the waveform memory 7 respectively. The parameter name WN, sampling frequency SR, original pitch OP, original pitch shift amount OPSV, and output level OL are updated (step F3).
[0043]
Next, it is checked whether or not the formant shift operator 23 has changed (step F4). If there is a change, the formant shift amount FSV is updated accordingly (step F5). Similarly, whether or not there is a change in the time companding operator 24 (step F6), and if there is a change, the set time companding amount STCV is updated accordingly (step F7).
[0044]
Next, it is determined whether or not note information has been input from the keyboard 31 (step F8). If note information has been input, assignment processing to the voice module is performed based on the note information (step F8). F9).
The detailed procedure of the voice module assignment process is shown in the voice module assignment process routine shown in FIG. This assignment process to the voice module is a process of assigning note information (note number NN, velocity V, note on / off NT) input from the keyboard 31 to the voice module. Is preferentially assigned to the voice module, or note-off information for turning off already assigned notes is assigned to the voice module (step G1). Since the details of the allocation processing in step G1 are not directly related to the present invention, detailed processing contents are omitted.
[0045]
In the voice module assignment processing routine, after the note information is assigned to the voice module (step G1), it is determined whether the note on / off NT is note on information or note off information (step G2). If it is note-on information, the note number NN in the note information is converted into a note pitch NP and a key follow coefficient KF described later (step G3). Based on this note pitch NP, in the next step G4,
"Pitch ratio PR = note pitch NP / original pitch OP"
That is, the ratio between the note pitch NP and the original pitch OP is obtained and set as the pitch ratio PR,
"Velocity level VL = Velocity V"
That is, the velocity V in the note information is set as the velocity level VL.
If the original pitch shift amount OPSV is also reflected, this step G4 is performed.
“Pitch ratio PR = note pitch NP / (original pitch OP × original pitch shift amount OPSV)
"Velocity level VL = Velocity V"
Like this.
[0046]
Further, as described above, in step G3, the note number NN is also converted into the key follow coefficient KF. In this conversion, the relationship between the note number NN and the key follow coefficient KF as shown in FIG. 16 is stored as a table, and conversion is performed according to the table. Note that a plurality of tables may be prepared and appropriately selected and used. Alternatively, the key follow coefficient KF may be obtained by calculation according to a function.
[0047]
Further, the bank number BN set by the bank selection switch 22 on the CPU side is sent to the DSP side and set as the bank number bn, and the cut-out address pointer cap on the DSP 6 side is set to 0 (step G5).
[0048]
On the other hand, when note-on / off NT is note-off information (step G2),
Velocity level VL = 0
That is, the velocity level VL is set to 0 (step G6).
[0049]
When this voice module assignment process routine (FIG. 15) is completed, the process returns to the original play process routine to determine whether or not the modulation lever 32 has been operated (step F10). The time companding modulation amount TCMV is calculated by the following formula:
Time companding modulation amount TCMV = modulation lever amount MLV / $ 40
(Step F11).
[0050]
This time companding modulation amount TCMV is for correcting the set time companding amount STCV set by the time companding operator 24 to obtain a time companding amount tcv for waveform reproduction in the DSP 6. This is a correction coefficient by which the set time companding amount STCV is multiplied. The above calculation of “modulation lever amount MLV / $ 40” normalizes the modulation lever amount MLV (range of $ 00 to $ 7F) of the modulation lever 32 to a value in the range of 0 to 2. Since $ 40 is output at the center position, the time companding modulation amount TCMV is 1 when the center position is present, and the set time companding amount STCV set by the time companding operator 24 remains as it is. As the output of the modulation lever 32 changes to the $ 00 side, the time companding modulation amount TCMV decreases and the time companding amount tcv decreases (as described later, the play speed (waveform reproduction speed) increases). When the output is $ 00, the time companding amount tcv becomes zero (the play speed stops as will be described later). Further, as the set time companding amount STCV by the modulation lever 32 changes to the $ 7F side, the time companding amount tcv approaches twice the set time companding amount STCV (the play speed increases as will be described later).
[0051]
In the CPU 1, the next interrupt processing is performed at a constant cycle, and the processing result is sent to the DSP 6, and the pitch ratio pr, formant shift amount fsv, velocity level vl, and time companding amount tcv are set in the respective registers. The The interrupt processing routine will be described below with reference to FIG.
[0052]
When the interrupt process is started, the pitch ratio pr, the formant shift amount fsv, the velocity level vl, and the time companding amount tcv are set in the DSP 6 register. That is, first,
“Pitch ratio pr = Pitch ratio PR”
The pitch ratio PR is set to the pitch ratio pr as it is.
[0053]
Next, the formant shift amount fsv is
“Formant shift amount fsv = formant shift amount FSV × key follow coefficient KF”
Ask for. When the formant shift amount fsv is obtained by this calculation formula, the formant shift amount FSV set by the formant shift operator 23 changes according to the key follow coefficient KF, and the formant shift amount changes corresponding to the playback pitch. It will be.
[0054]
next,
“Velocity level vl = velocity level VL”
The velocity level VL is set to the velocity level vl as it is.
Finally, the time companding amount tcv, which is a variable for determining the actual play speed of the waveform to be reproduced, is obtained by the following calculation formula.
“Time companding amount tcv = Set time companding amount STCV × Time companding modulation amount TCMV”
In other words, the time companding amount tcv is determined by multiplying the set time companding amount STCV set by the time companding operator 24 and the time companding modulation amount TCMV which is a correction coefficient inputted by the modulation lever 32. The
[0055]
Next, the processing of the DSP 6 that has received the key information transfer will be described with reference to FIG. FIG. 18 is a flowchart showing the main routine of the DSP 6, which is repeatedly executed at a sampling cycle. Based on the transfer of new key information from the CPU 1, it is monitored whether or not the extraction address pointer cap is set to 0 in the “assignment process to voice module” of the CPU (step J1), and the extraction address pointer cap = 0. When set to, voice sound generation start processing is performed (step J2).
[0056]
FIG. 19 shows the voice generation start process. Hereinafter, these processes will be described sequentially. In the following description, the symbol @n (bank number bn × $...) Reads data from the address of “bank number bn × $...” In the parameter n storage unit (n = 1, 2). Means that.
-Waveform read end address wea = @ 2 (bank number bn x $ 800)
Data is read from the (bank number bn × $ 800) address (= address where the waveform read end address wea is stored) in the parameter 2 storage unit (cutout start address area), and is set in the register as the waveform read end address wea.
Play position pp = @ 2 (bank number bn × $ 800 + cut address pointer cap + 1)
The data (the cut start address csa1 of the first cut waveform in the waveform train) is read from the (bank number bn × $ 800 cut address pointer cap + 1) address in the parameter 2 storage unit and set in the register as the play position pp.
Next cut start address ncsa = @ 2 (bank number bn × $ 800 + cut address pointer cap + 2)
Data (cutout start address csa2 of the second cutout waveform in the waveform train) is read from the address (bank number bn × $ 800 + cutout address pointer cap + 2) in the parameter 2 storage unit and set in the register as the next cutout start address ncsa.
Cutout waveform pitch cwp = Next cutout start address ncsa-Play position pp Cutout waveform pitch cwp (address) by subtracting the set play position pp from the next cutout start address ncsa (= first cutout start address during this sounding start process) Set to the register as the width). This cut-out waveform pitch cwp corresponds to the pitch of the cut-out waveform to be processed (the first cut-out waveform at the time of sound generation start processing).
Reproduction pitch ppw = cutout waveform pitch cwp × pitch ratio pr
The cutout waveform pitch cwp and the pitch ratio pr are multiplied and set as a reproduction pitch ppw in the register.
・ Current cut start address ccsa = play position pp
The play position pp is set in the register as the current cut start address ccsa.
First cut start address fcsa = current cut start address pcsa
The current cut start address ccsa is set in the register as the first cut start address fcsa in the first processing system.
Second cut start address scsa = current cut start address ccsa
The current cut start address ccsa is set in the register as the second cut start address scsa in the second processing system.
First address counter ac1 = 0
As the first address counter ac1, 0 is set in the register.
Second address counter ac2 = reproduction pitch ppw / 2
The reproduction pitch ppw / 2 (a half cycle value of the reproduction pitch ppw) is set in the register as the second address counter ac2.
First window counter wc1 = 0
As the first window counter wc1, 0 is set in the register.
Second window counter wc2 = 1
1 is set in the register as the second window counter wc2.
・ Gate value g = 1
1 is set in the register as the gate value g.
Cut-out address pointer cap = 1
1 is set in the register as the cut-out address pointer cap.
[0057]
When the voice generation start process (step J2) is completed, a read process is performed (step J3). This read processing will be described in detail later. Thereafter, the play waveform output pwo read in the reading process (step J3) is output (step J4).
[0058]
In the above-described “reading process” in step J3, a cut-out waveform is cut out sequentially from the waveform sequence (speech), and the pitch corresponding to the desired reproduction pitch (= reproduction pitch) while maintaining the formant characteristics of the cut-out waveform. ) Is used to convert the pitch while maintaining the formant characteristics of the original waveform sequence. In this reading process, the pitch of the waveform to be reproduced (= reproduction pitch) is changed according to the pitch of the key pressed on the keyboard, but the play time required for waveform reproduction depends on the size of the reproduction pitch (that is, which key is It is not affected by whether it was pressed).
[0059]
Briefly explaining this read processing operation, a cut-out waveform of about 1 to 2 pitches in the vicinity of the position specified by the play position pp is sequentially cut out from the waveform sequence stored in the waveform memory 7 as time passes. The cut out waveform is reproduced with a pitch and formant different from the original waveform. At this time, the cut-out waveform is reproduced in parallel by two processing systems (partial), and each processing system has a period twice as long as the reproduction pitch to be reproduced and a half period (= reproduction) The extracted waveform is reproduced so as to be shifted), and these are combined to obtain the period of the reproduction pitch to be reproduced.
[0060]
20 and 21 are diagrams for explaining the pitch conversion process. If the formant shift amount fsv is 1, there is no change. If it is not 1, the formant is slightly changed. Here, a case where the formant shift amount fsv is 1, that is, without changing the formant and the reproduction pitch ppw is set higher than the original waveform data of the waveform memory 7 will be described with reference to FIG. 20, and the formant shift amount fsv is larger than 1. That is, the case where the formant is changed and the reproduction pitch ppw is made the same as the original waveform row of the waveform memory 7 will be described with reference to FIG.
[0061]
First, referring to FIG. 20, by designating a pitch by pressing a key on the keyboard 31, the pitch is shifted to a higher frequency side than the original waveform sequence, and the formant characteristic is not changed (formant shift amount fsv). = 1) A case will be described.
[0062]
(A) of FIG. 20 shows a waveform sequence in the bank 0 area, and shows cut-out waveforms for five periods starting from the cut-out start address csa1. Each cut waveform of this waveform row has cut waveform pitches cwp1, cwp2, cwp3.
[0063]
Further, the reproduction pitch ppw is based on the pitch ratio pr (= note pitch np / original pitch op) determined according to the note number designated by the pitch of the keyboard 31.
“Reproduction pitch ppw = cutout waveform pitch cwp × pitch ratio pr”
Set by. The period of the reproduction pitch ppw is made by counting with a reproduction pitch counter ppc. Further, in synchronization with the reproduction pitch ppw, a first address counter ac1 and a second address counter ac2 for obtaining a read address of waveform data for waveform reproduction in the two processing systems are created. The first address counter ac1 and the second address counter ac2 are incremented by one every sampling period.
[0064]
The first processing system calculates the first waveform readout address wral performed in step N6 of the “waveform readout processing subroutine” described later.
“First waveform read address wral = first cut start address fcsa + first address counter ac1 × formant shift amount fsv”
The extracted waveform is read at a reading speed determined by the portion of “first address counter ac1 × formant shift amount fsv” in the latter half.
[0065]
Further, the second processing system calculates the waveform read address performed in step N15 of the “waveform read processing subroutine” described later.
“Second waveform readout address wra2 = second extraction start address scsa + second address counter ac2 × formant shift amount fsv”
The extracted waveform is read out at a reading speed of “second address counter ac2 × formant shift amount fsv” in the latter half.
[0066]
Thus, the readout speed of the cut-out waveform is faster or slower than the reference readout speed (= stepping speed of the first / second address counter ac1 / ac2) when the formant shift amount fsv is larger or smaller than 1. . When the waveform reading speed is a reference value, the cut out waveform is read in the order of the addresses according to the stepping speed of the first / second address counter ac1 / ac2, and the original formant of the cut out waveform is stored in the read waveform as it is. Is done. On the other hand, when the waveform reading speed becomes higher than the reference value, the extracted waveform reading speed is read faster than the reference value, and the original formant of the extracted waveform is shifted to the high frequency side in the read waveform. When the waveform reading speed is lower than the reference value, the extracted waveform reading speed is read slower than the reference value, and the original formant of the extracted waveform is shifted to the low frequency side in the read waveform.
In the example of FIG. 20, since the formant shift amount fsv = 1, it is equal to the change of the first address counter ac1 and the second address counter ac2, and as a result, the formant characteristics are not changed.
[0067]
Further, in synchronization with the first address counter ac1 and the second address counter ac2, envelope windows ew1 and ew2 as windows for cutting waveform data for formant processing are created for the first and second processing systems, respectively. The first processing system has the waveform of the envelope window ew1 shown in FIG. 20 (f), and the second processing system has the waveform of the envelope window ew2 shown in FIG. 20 (g). The envelope windows ew1 and ew2 are peak values in the range of 0 to 1, with the window length wl being a half period, and gradually increasing from 0 to 1 in the first half period and gradually decreasing from 1 in the second half period. A triangle that becomes zero. The window length wl which is a half cycle of the envelope windows ew1 and ew2 is determined in step L9 of the “readout subroutine” described later.
“Window length wl = cutout waveform pitch cwp / formant shift amount fsv”
Ask for. However, the window length wl is limited to the value of the reproduction pitch ppw at the maximum so as not to exceed the reproduction pitch ppw as will be described later. FIG. 20 shows an example of such a restriction.
[0068]
In the first processing system, the cutout waveform obtained by extracting about 1 to 2 pitches from the first cutout start address fcsa set in step L14 of the “read processing subroutine” described later is multiplied by the envelope window ew1, and FIG. The waveform shown in (h) is obtained. Similarly, in the second processing system, an envelope window ew2 is multiplied by the extracted waveform obtained by extracting about 1 to 2 pitches from the second extraction start address scsa set in step L15 of the “read processing subroutine” described later. The waveform shown in FIG. 20 (i) is obtained.
[0069]
According to such a processing method, these waveforms retain the formant characteristics of the original cut waveform. The waveforms shown in FIGS. 20 (h) and (i) are twice as long as the period length of the reproduction pitch ppw, but when both waveforms are added, the period length of the reproduction pitch ppw is obtained. Accordingly, the formant characteristic can be maintained as it is while the original sampling data is pitch shifted to the high frequency side by the key designation pitch from the keyboard 31.
[0070]
Further, as will be described later, the play speed of waveform reproduction is adjusted by changing the speed at which the extracted waveforms are sequentially extracted from the waveform train in units of extracted waveforms. This is to extract a cut-out waveform near the address indicated by the play position pp, and the play speed can be increased or decreased by changing the stepping speed at the play position pp.
[0071]
FIG. 21 shows a case where the formant shift amount fsv is made larger than 1 and the reproduced waveform formant is shifted to a higher frequency side than the original waveform formant. Here, for easy understanding, the key designation pitch is shown as being substantially equal to the cut-out waveform pitch cwp.
[0072]
Since the first processing system is “first address counter ac1 × formant shift amount fsv” and the second processing system is “second address counter ac2 × formant shift amount fsv”, the cut-out waveform readout speed is first. As a result, the formant characteristic is shifted to the high frequency side, and the change is given faster than the change of the address counter ac1 and the second address counter ac2.
[0073]
The cut waveform is shortened by increasing the reading speed. Therefore, the window length wl of the envelope windows ew1 and ew3 is also
“Window length wl = cutout waveform pitch cwp / formant shift amount fsv”
As the cutout waveform is shortened, it is shortened.
[0074]
In the examples of FIGS. 20 and 21, the formant shift amount fsv has been described as a constant value for the sake of simplicity. However, in this embodiment, the formant shift amount fsv is determined by the key follow coefficient KF in the interrupt processing routine of FIG. Since they are multiplied, the formant shift amount fsv changes in accordance with the pitch to be reproduced. Therefore, in this embodiment, control is performed so that the formant of the reproduced waveform signal changes in accordance with the pitch to be reproduced.
[0075]
The operation of the reading process outlined above will be described with reference to the flowcharts of FIGS.
First, the overall operation will be described with reference to the flowcharts of FIGS. This flowchart corresponds to the operations of FIGS. Each of the above registers is initialized with parameter values of various registers when the power is turned on. That is,
“Pitch ratio pr = formant shift amount fsv = time companding amount tcv = 1.0”
“Output level ol = Cut address pointer cap = Bank number bn = 0”
“Output envelope level oel = 0”
“Waveform read end address wea = play position pp = next cut start address ncsa = first / second cut start address fcsa / scsa = 0”
“Cutout waveform pitch cwp = reproduction pitch ppw = 0”
“Reproduction pitch counter ppc = gate value g = first address counter ac1 = 0”
“Second address counter ac2 = reproduction pitch ppw / 2”
“First window counter wc1 = 0.0”
“Second window counter wc2 = 1.0”
“Identification flag f = 1”
[0076]
In the following description, it is assumed that a little time has passed after the power is turned on, and appropriate values have already been stored in each register and each counter by the processing of the flowchart. Further, this flowchart is executed at every sampling period in the DSP 6.
[0077]
At the start of sound generation, the play position pp is set to the cut start address csa1 of the first cut waveform of the waveform row indicated by the bank number bn to be processed in the parameter 2 storage unit of the waveform memory 7 by the sound start processing of the voice described above. Is set. The play position pp manages the time progression of waveform reproduction with this as a reference point. Every one sample period, the value of the play position pp is incremented by the time companding amount tcv (step L1). That is,
Play position pp = play position pp + time expansion amount tcv
And As a result of such an update, if the time companding amount tcv is large, the play position pp advances fast and the time required to reproduce the entire waveform train is shortened. Conversely, if the time companding amount tcv is small, the play position pp Since the process proceeds slowly, the time required to reproduce the entire waveform train becomes longer.
[0078]
Next, the play position pp and the waveform read end address wea are compared (step L2). If the play position pp is equal to or higher than the waveform read end address wea, the processing for the waveform string of the bank number is completed. Therefore, the play position pp is fixed to the value of the waveform read end address wea (step L3), so that the waveform processing does not proceed further.
[0079]
Next, the play position pp is compared with the next cut-out start address ncsa (step L4). The next cut start address ncsa is the cut start address (start address) of the next cut waveform, as can be seen from the sound generation start process of FIG. Therefore, if the play position pp is larger than the next cut-out start address ncsa, the cut-out waveform that has been processed so far is completed. Therefore, the cut-out waveform is updated in order to shift the processing from this cut-out waveform to the next cut-out waveform.
[0080]
The cutting waveform is updated as follows (step L5).
Current cut start address ccsa = @ 2 (bank number bn × $ 800 + 1 + cut address pointer cap)
Next cut start address ncsa = @ 2 (bank number bn × $ 800 + 2 + cut address pointer cap)
Cutout waveform pitch cwp = Next cutout start address ncsa−Current cutout start address ccsa
・ Increment cut address pointer cap by one
[0081]
That is, the current cut start address ccsa is read from the address pointed to by “cut out address pointer cap + 1” in the cut start address area of the parameter 2 storage section of the waveform memory 7, and the next point from the address pointed by “cutout address pointer cap + 2”. The cut start address ncsa is read out, and the current cut start address ccsa minus the next cut start address ncsa (address difference) is set as a cut waveform pitch cwp. Thereafter, the cut address pointer cap is incremented by one.
[0082]
In step L4, if the play position pp is smaller than the cut start address ncsa of the next cutout waveform, the cutout waveform is not updated because it is still in the middle of the current cutout waveform. Jump over.
[0083]
As a result of the above steps L1 to L5, when a large amount of time expansion tcv is set, the play position pp advances rapidly, and as a result, the first / second cutout start addresses fcsa / scsa are updated (steps described later). L14, L15) are performed early, so that the play time is shortened. On the other hand, when the time companding amount tcv is small, the play position pp advances slowly and the update of the first / second cutout start addresses fcsa / scsa is performed late, so that the play time becomes long.
[0084]
When the time companding amount tcv is set to a considerably small value, the same clipped waveform is repeatedly reproduced a plurality of times and the waveform reproduction proceeds at a slow speed. This is because the progress of the play position pp is slow, so that the play position pp is not easily larger than the value compared in the judgment of step L4. This is because the reading process is repeated. On the other hand, if the time companding amount tcv is set to a considerably large value, in the update of the cutout waveform, there is a case where the next cutout waveform is skipped and the cutout waveform is not reproduced.
[0085]
Here, when the modulation lever 32 is operated, the time companding amount tcv is changed by changing the time companding modulation amount TCMV in accordance with the operation amount MLV of the modulating lever 32 in Step F11 of the play process described above. Since the play time is set, the play time changes as follows according to the operation amount MLV of the modulation lever 32.
[0086]
(1) When the operation amount MLV of the modulation lever 32 is $ 00 to $ 40
As the operation amount MLV of the modulation lever 32 approaches $ 00, the speed of movement of the play position pp becomes slower. When the operation amount MLV is $ 00, the movement of the play position pp is almost stopped, and the same cutout waveform continues to be reproduced repeatedly. When the operation amount MLV is $ 40 at the center position, the play position pp is moved and reproduced at the speed of the set time expansion amount STCV set by the time expansion operation element 24.
(2) When the operation amount of the modulation lever 32 is $ 41 to $ 7F
As the operation amount MLV approaches $ 7F, the moving speed of the play position increases. When the operation amount MLV is $ 7F, the play position pp is moved and reproduced at a speed twice as long as the set time expansion amount STCV set by the time expansion operation element 24.
[0087]
As described above, when the waveform sequence is reproduced while the cut waveform is updated using the play position pp as a time reference, the time length (play time) required for waveform reproduction is determined by the user regardless of the pitch of the waveform to be reproduced. The time companding amount 24 can be determined by the time companding amount tcv set by operating the time companding operation element 24 and the modulation lever 32.
[0088]
In step L6, the reproduction pitch counter ppc, the first address counter ac1, and the second address counter ac2 are each incremented by one. Next, the reproduction pitch counter ppc and the reproduction pitch ppw are compared (step L7). This reproduction pitch ppw corresponds to the reproduction pitch. If the reproduction pitch counter ppc has not reached the reproduction pitch ppw, the process proceeds to “waveform reading process” in step L16 described later. The reproduction pitch ppw is calculated in step L9 described later.
[0089]
When the reproduction pitch counter ppc has reached the value of the reproduction pitch ppw, steps L8 to L15 are performed. In the processes in steps L8 to L15, the values of various parameters are updated in order to perform the process at the next reproduction pitch period. First, the reproduction pitch counter ppc is set to 0 (step L8). Next, a new reproduction pitch ppw is obtained by multiplying the pitch ratio pr (= note pitch np / original pitch op) based on the key whose pitch is designated by pressing the keyboard 31 and the cut waveform pitch cwp (step L9). ). Next, the window length wl of the envelope window is obtained by dividing the cut waveform pitch cwp by the formant shift amount fsv (step L9). Next, the offset os is set to 0.
[0090]
Next, the window length wl is limited within the reproduction pitch ppw (steps L10 and L11). That is, the window length wl is compared with the reproduction pitch ppw (step L10), and when the window length wl is larger than the reproduction pitch ppw, the window length wl is set as the reproduction pitch ppw (step L11). Further, the offset os is obtained by subtracting (reproduction pitch ppw × formant shift amount fsv) from the cut-out waveform pitch cwp. As will be described later, the offset os is a parameter for enabling the cut-out waveform to be cut out near the center of the envelope window. On the other hand, when the window length wl is less than or equal to the reproduction pitch ppw, the process of step L11 is not performed. As described above, the window length wl is limited so as not to be larger than the reproduction pitch ppw.
[0091]
Next, the reciprocal of the window length wl is obtained and used as the step rate wr (step L12). This step rate wr is used to step the first window counter wc1 and the second window counter wc2. Further, the polarity of the identification flag f is reversed. Since the process of step L11 is performed when the reproduction pitch counter ppc becomes equal to or larger than the reproduction pitch ppw in step L7, the identification flag F is also inverted when the reproduction pitch counter ppc becomes equal to or larger than the reproduction pitch ppw. For example, as shown in FIGS. 20 and 21 (c), a waveform that reverses to 1 and −1 with the period of the reproduction pitch counter ppc is obtained.
[0092]
Next, the value of the identification flag f is compared with 0 to determine whether the identification flag f is 1 or −1 (step L13). The value of the identification flag f being 1 means that the identification flag f has risen from -1 to 1, and in this case, the first address counter ac1 and the first window counter of the first processing system. It is assumed that wc1 is set to “0”, the first cutout start address fcsa is added to the current cutout start address ccsa by the offset os (step L14).
[0093]
Further, the value of the identification flag f being −1 means that the identification flag f has fallen from 1 to −1. In this case, the second address counter ac2 of the second processing system It is assumed that the second window counter wc2 is set to “0”, the second extraction start address scsa is obtained by adding the offset os to the current extraction start address ccsa (step L15).
[0094]
In this case, steps L14 and L15 are alternately executed every time it is determined in step L17 that the reproduction pitch counter ppc has exceeded the reproduction pitch ppw. Therefore, the first address counter ac1 and the second address counter ac2 As shown in (d) and (e) of FIG. 20, the cycle is twice as long as the reproduction pitch ppw, and the phases differ from each other by the reproduction pitch ppw. Also, the first cut-off start address fcsa is the falling part of the first address counter ac1, the second cut-out start address scsa is the falling part of the second address counter ac2, and the timings are different from each other by the reproduction pitch ppw. Will be updated.
[0095]
Subsequent to the processing of step L14 or L15 or when it is determined in step L7 that the reproduction pitch counter ppc has not reached the reproduction pitch ppw, a waveform reading process is performed (step L16).
[0096]
24 and 25 are flowcharts showing the waveform reading process. The waveform reading process will be described in detail below.
[0097]
Waveform readout processing
24 and 25 are flowcharts of the waveform reading process, in which steps N1 to N9 are processes for the first processing system, and steps N10 to N18 are processes for the second processing system. These two processes are performed in time series, but the contents of the processes are substantially the same.
[0098]
As shown in FIG. 24, in the waveform reading process, first, the value of the first window counter wc1 is incremented by the increment rate wr (step N1). Then, it is determined whether the incremented first window counter wc1 is less than 1, 1 or more, less than 2, or 2 or more (step N2). If it is smaller than 1, the value of the first window counter wc1 is set as the first envelope window ew1 (step N3). If it is 1 or more and smaller than 2, the value obtained by subtracting the first window counter wc1 from 2 is As the first envelope window ew1 (step N4), when it is 2 or more, the value of the first envelope window ew1 is set to 0 (step N5).
[0099]
In steps N1 to N5, for example, as shown in FIG. 20 (f), a sawtooth wave whose value increases by the step rate wr is created, and this value is turned back at the peak value “1”. One envelope window ew1 is created. However, if the window counter wc1 exceeds 2, the peak value of the first envelope window ew1 is set to “0” in step N5. That is, a triangular wave that increases to 1 by a step rate wr, which is the reciprocal of the window length wl determined based on the formant shift amount fsv and the cut waveform pitch cwp, and then decreases to 0 is changed to the waveform of the first envelope window ew1. It is created as.
[0100]
Further, following Steps N3 to N5, a value obtained by multiplying the first address counter ac1 (stepping value of the read address) by the formant shift amount fsv is added to the first cutout start address fcsa of the first waveform, The waveform data (sampling value) read address in the first processing system (hereinafter referred to as the first waveform read address) is designated as wra1 (step N6).
[0101]
Further, the first waveform read address wral1 is compared with the waveform read end address wea (step N7), and if it is larger than the waveform read end address wea, the gate value g = 0 is set (step N8). By setting the gate value g = 0, the output level is attenuated and silenced with a certain slope, as will be described later. If it is equal to or lower than the waveform read end address wea, the waveform data wd is read from the waveform data storage unit of the waveform memory 7 using the first waveform read address wral (step N9). As described above, the step width of the first waveform readout address wral1 is changed by the formant shift amount fsv. As a result, the readout speed of the cut-out waveform is changed by the formant shift amount fsv.
In subsequent steps N10 to N18, the same processing as described above is performed for the second processing system.
[0102]
Next, the output envelope level oel to be multiplied by the output o of the read waveform data and the waveform output wo are calculated (step l19). That is, the output envelope level oel is
“Output envelope level oel = output envelope level oel + (gate value g × velocity level vl−output envelope level oel) × K”
Ask for. The output envelope level oe1 is an envelope waveform that gradually rises at the start of waveform waveform reproduction, becomes 1 during waveform reproduction, and gradually decreases when waveform reproduction reaches the waveform read end address wea. K is a coefficient for determining the rising / falling slope.
The waveform output wo is
“Waveform output wo = Waveform data wd1 × first envelope window ew1 + Waveform data wd2 × second envelope window ew2”
Ask for. This is the sum of the waveform output cut using the first envelope window ew1 in the first processing system and the waveform output obtained using the second envelope window ew2 in the second processing system to obtain a reproduced waveform. Is.
[0103]
Finally, the final play waveform output pwo is
Play waveform output pwo = waveform output wo × output envelope level oel
Ask for. Therefore, the output level of the reproduced waveform sequence rises at a slope according to the coefficient K at the start of waveform waveform reproduction, and when the waveform reproduction reaches the waveform read end address wea, the output level falls and is silenced at a slope according to the coefficient K.
[0104]
【The invention's effect】
As described above, according to the present invention, the waveform represented by the waveform data stored in the storage means is reproduced with time axis compression / expansion and pitch change. Can be changed, and a natural reproduction waveform can be generated.
[Brief description of the drawings]
FIG. 1 is a diagram showing an overall block configuration of a waveform generator as an embodiment according to the present invention.
FIG. 2 is a diagram illustrating a data configuration example of a parameter 1 (status area) storage unit of a waveform memory in the embodiment apparatus;
FIG. 3 is a diagram illustrating a data configuration example of a parameter 2 (cutout start address area) storage unit of a waveform memory in the embodiment apparatus;
FIG. 4 is a diagram illustrating a data configuration example of a waveform data storage unit of a waveform memory in the embodiment apparatus;
FIG. 5 is a diagram illustrating various parameters set in a register on a CPU side in the embodiment apparatus.
FIG. 6 is a diagram illustrating various parameters set in a CPU-side MIDI information register in the embodiment apparatus;
FIG. 7 is a diagram illustrating various parameters set in a key information register on the DSP side in the embodiment apparatus.
FIG. 8 is a diagram illustrating various parameters set in a register on the DSP side in the embodiment apparatus.
FIG. 9 is a flowchart showing a main routine in the embodiment apparatus;
FIG. 10 is a flowchart showing a recording mode processing routine in the embodiment apparatus;
FIG. 11 is a flowchart showing an edit mode processing routine in the embodiment apparatus;
FIG. 12 is a flowchart showing a play mode processing routine in the embodiment apparatus;
FIG. 13 is a flowchart showing details of a play processing routine (1/2) in the embodiment apparatus;
FIG. 14 is a flowchart showing details of a play processing routine (2/2) in the embodiment apparatus;
FIG. 15 is a flowchart showing details of an assignment process to a voice module in a play process routine of the embodiment apparatus;
FIG. 16 is a diagram illustrating a relationship for performing conversion between a note number NN and a key follow coefficient KF in the embodiment device;
FIG. 17 is a flowchart showing a CPU interrupt processing routine in the embodiment apparatus;
FIG. 18 is a flowchart showing a main routine in the DSP in the embodiment apparatus.
FIG. 19 is a flowchart showing a “voice generation start process” in the main routine of the DSP in the embodiment apparatus;
FIG. 20 is a time chart for explaining an outline of the operation of “read processing” (no change in formant characteristics, pitch shift in a high frequency range).
FIG. 21 is a time chart for explaining the operation outline of “read processing” (shifting the formant characteristic to a low frequency range).
FIG. 22 is a flowchart showing a read processing routine (1/2) in the main routine of the DSP in the embodiment apparatus.
FIG. 23 is a flowchart showing a read processing routine (2/2) in the main routine of the DSP in the embodiment apparatus;
FIG. 24 is a flowchart showing a waveform read processing routine (1/2) in the read processing routine in the DSP main routine of the embodiment apparatus;
FIG. 25 is a flowchart showing a waveform read processing routine (2/2) in the read processing routine in the DSP main routine of the embodiment apparatus;
[Explanation of symbols]
1 CPU
2 controls
21 Mode selection switch
22 Bank selection switch
23 Formant shift control
24 hours companding operator
3 Keyboard device
31 keyboard
32 Modulation lever
4 Hard disk devices
5 storage unit
6 DSP (digital signal processor)

Claims (1)

時系列に並んだ一連の波形を表す波形データが記憶された記憶手段と、
該波形の時間軸を圧縮または伸長する程度を指示する圧縮伸長情報を入力する圧縮伸長情報入力手段と、
該波形の再生音高を指示する音高情報を入力する音高情報入力手段と、
該波形のホルマントをシフトするホルマントシフト量を入力するホルマントシフト量入力手段と、
前記ホルマントシフト量が該音高情報に応じて変更されたホルマント制御情報を生成するホルマント制御情報生成手段と、
前記圧縮伸長情報と音高情報とホルマント制御情報とを入力し、前記波形データに基づき、前記圧縮伸長情報に対応した変化速度で変化する再生位置に対応した波形を、前記音高情報に対応して音高を変更し、かつ前記ホルマント制御情報に対応してホルマントを変更して、再生波形を生成する再生手段と、を備えた波形発生装置。
Storage means for storing waveform data representing a series of waveforms arranged in time series;
Compression / decompression information input means for inputting compression / decompression information that indicates the degree of compression or expansion of the time axis of the waveform;
Pitch information input means for inputting pitch information indicating the playback pitch of the waveform;
A formant shift amount input means for inputting a formant shift amount for shifting the formant of the waveform;
Formant control information generating means for generating formant control information in which the formant shift amount is changed according to the pitch information;
The compression / decompression information, pitch information, and formant control information are input, and a waveform corresponding to a playback position that changes at a change speed corresponding to the compression / decompression information is associated with the pitch information based on the waveform data. And a reproducing means for generating a reproduction waveform by changing the pitch and changing the formant in response to the formant control information.
JP10103198A 1998-04-13 1998-04-13 Waveform generator Expired - Fee Related JP4015267B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP10103198A JP4015267B2 (en) 1998-04-13 1998-04-13 Waveform generator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP10103198A JP4015267B2 (en) 1998-04-13 1998-04-13 Waveform generator

Publications (2)

Publication Number Publication Date
JPH11296173A JPH11296173A (en) 1999-10-29
JP4015267B2 true JP4015267B2 (en) 2007-11-28

Family

ID=14289816

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10103198A Expired - Fee Related JP4015267B2 (en) 1998-04-13 1998-04-13 Waveform generator

Country Status (1)

Country Link
JP (1) JP4015267B2 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6350692B2 (en) * 2017-02-08 2018-07-04 ヤマハ株式会社 Acoustic signal generator

Also Published As

Publication number Publication date
JPH11296173A (en) 1999-10-29

Similar Documents

Publication Publication Date Title
US7342166B2 (en) Method and apparatus for randomized variation of musical data
US6103964A (en) Method and apparatus for generating algorithmic musical effects
US6121533A (en) Method and apparatus for generating random weighted musical choices
US5502274A (en) Electronic musical instrument for playing along with prerecorded music and method of operation
US6576828B2 (en) Automatic composition apparatus and method using rhythm pattern characteristics database and setting composition conditions section by section
AU731747B2 (en) Automatic improvisation system and method
US6087578A (en) Method and apparatus for generating and controlling automatic pitch bending effects
US5453569A (en) Apparatus for generating tones of music related to the style of a player
US4681007A (en) Sound generator for electronic musical instrument
JP3910702B2 (en) Waveform generator
JP4015267B2 (en) Waveform generator
JP2894233B2 (en) An electronic musical instrument with the function of assigning the time position of waveform data to note codes
JP4057700B2 (en) Waveform playback device
JP3746578B2 (en) Waveform generator
JP4402853B2 (en) Performance data generation method and electronic keyboard instrument
JP4132268B2 (en) Waveform playback device
JP3508509B2 (en) Sound source device
JP2000066682A (en) Waveform generator
JP4385532B2 (en) Automatic arrangement device and program
JP3832147B2 (en) Song data processing method
JPH11249658A (en) Waveform generator
JP2859870B2 (en) Tone control data compression device, tone control data compression method, tone control data decompression device, and tone control data decompression method
JP4007374B2 (en) Waveform generation method and apparatus
JPH01177089A (en) Automatic accompanying device
JPH0736462A (en) Automatic accompaniment device and external memory

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050411

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20050427

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070130

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070720

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20070913

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

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20100921

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20110921

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120921

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20130921

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees