(57)【要約】【課題】複数の鍵盤それぞれに一組の発音手段を割り当て楽音を出力させるときに周波数変動が付与されたような場合でも楽音の位相ずれを速やかに解消できるようにすること。【解決手段】上鍵盤(U)と下鍵盤(L)とで共にOFFになっている発音チャンネルが有るか否かを調べ(S66)、その発音チャンネルが有る場合には該発音チャンネルがサステイン中であるか否かを調べる(S67)。離鍵され、かつサステイン中でない場合には、上鍵盤のWHEELつまり上鍵盤の発音チャンネルにおける波形読み出しを停止させ(S68)、また、下鍵盤のWHEELつまり下鍵盤の発音チャンネルにおける波形読み出しを停止させる(S69)。その後、上鍵盤および下鍵盤の発音チャンネルの波形読み出しを同期して再開させ(S70)、波形データを同一位相で読み出す。【選択図】図１０
2010008880.tif 000002
【特許請求の範囲】
【請求項１】
演奏情報を入力する複数の鍵盤と、発音する音程数と鍵盤数に応じた数の発音手段を備え、少なくとも同じ音程の発音を行わせる発音手段を組とし、該組の発音手段の位相を一致させて動作させる電子楽音発生装置の位相同期装置であって、
前記同じ音程で発音を行わせる組の発音手段が消音状態にあることを検出する検出手段と、
前記検出手段により検出された消音状態にある組の発音手段の波形発生を休止させる休止手段と、
前記休止手段により休止させられた発音手段の波形発生を同期して再開させ、同一位相の波形を発生させる再開手段とを備えたことを特徴とする電子楽音発生装置の位相同期装置。
【請求項２】
前記検出手段は、離鍵され、かつサステイン中でないことを検出して消音状態を検出することを特徴とする請求項１に記載の電子楽音発生装置の位相同期装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子楽音発生装置の位相同期装置に関し、特に、発音する音程数と鍵盤数に応じた数の発音手段を備えた電子楽音発生装置の位相同期装置に関する。
【背景技術】
【０００２】
各音程ごとに１つずつの発音手段を備える電子楽器では、上下鍵盤などで同じ音程の鍵が押された場合、その音程に対して割り当てられた発音手段の出力レベルを上下させて楽音を出力する。このような電子楽器では、同じ音程の楽音信号は１つの発音手段により生成されるので位相同期の問題は生じることはなく、また、同時に発音可能な音程数を波形合成で増加させることができる。しかし、上下鍵盤の楽音に対しサステインやロータリ効果(発音源を回転させる効果)を別々に付与する場合、それに対応した楽音信号を生成するのが困難であるという問題がある。
【０００３】
この問題は、各音程ごとの発音手段を上下鍵盤で別々に持たせることにより解決できる。しかし、このようにすると、上下鍵盤などで同じ音程の鍵が押された場合、上下鍵盤の鍵にそれぞれ割り当てられた発音手段から生成される楽音信号の間に位相ずれが生じ、その干渉により楽音が大きくなったり小さくなったりするという問題が生じる。例えば、上下鍵盤のどちらか一方の楽音にベンドやグライドなどといった音程の変動を付与する演奏操作、すなわち発音手段の一方が生成する楽音信号に周波数変動を付与する演奏操作がある。トーンホイールエミュレートの電子オルガンなどの電子楽器では、この周波数変動に伴う位相ずれが周波数変動の回復後でも残り、その後の上下鍵盤の押鍵により発生される楽音信号の位相がずれたままになるという課題がある。
【０００４】
特許文献１には、オシレータから楽音発生に関わる複数の楽音エンジンに、まず、初期化パラメータを転送し、その後、開始パラメータを転送するようにして、複数の楽音エンジンから互いに位相の合った楽音を発生させるデジタル楽音発生器が記載されている。
【０００５】
特許文献２には、複数の高調波を合成することによって所望の楽音信号を得る方式の電子楽器に関し、発生する複数の楽音の高調波成分波形が全て単一の基本周波数信号の高調波となるようにすることにより、高調波間での位相ずれによる出力信号の振幅のばらつき解消することが記載されている。
【特許文献１】特開平１１−３１６５８９号公報
【特許文献２】特開平６−１６７９８０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
特許文献１には、初期化パラメータおよび開始パラメータを転送して複数の楽音エンジンから互いに位相の合った楽音を発生させることが記載されているが、複数の鍵盤それぞれに一組の発音手段を割り当てて楽音を発生させるときに周波数変動が付与されたような場合での楽音信号の位相ずれの問題および該問題に対する対処方法について記載されていない。
【０００７】
引用文献２には、同時に発音する複数の楽音間での位相が同期するように周波数信号を設定することが記載されているが、これにも複数の鍵盤それぞれに一組の発音手段を割り当てて楽音を出力させるときに周波数変動が付与されたような場合での楽音信号の位相ずれの問題および該問題に対する対処方法について記載されていない。
【０００８】
本発明の目的は、上記課題を解決し、複数の鍵盤それぞれに一組の発音手段を割り当て楽音を出力させるときに周波数変動が付与されたような場合でも楽音信号の位相ずれを速やかに解消できる電子楽音発生装置の位相同期装置を提供することにある。
【課題を解決するための手段】
【０００９】
上記課題を解決するため、本発明は、演奏情報を入力する複数の鍵盤と、発音する音程数と鍵盤数に応じた数の発音手段を備え、少なくとも同じ音程の発音を行わせる発音手段を組とし、該組の発音手段の位相を一致させて動作させる電子楽音発生装置の位相同期装置であって、前記同じ音程で発音を行わせる組の発音手段が消音状態にあることを検出する検出手段と、前記検出手段により検出された消音状態にある組の発音手段の波形発生を休止させる休止手段と、
【００１０】
前記休止手段により休止させられた発音手段の波形発生を同期して再開させ、同一位相の波形を発生させる再開手段とを備えたことを特徴とする。
【００１１】
また、本発明は、前記検出手段が、離鍵され、かつサステイン中でないことを検出して消音状態を検出することを特徴とする。
【発明の効果】
【００１２】
本発明によれば、一組の発音手段の各々を複数の鍵盤の各々にそれぞれ割り当てて楽音を発生させるときに周波数変動が付与されたような場合でも楽音信号の位相ずれを速やかに解消できる。したがって、その後の押鍵による楽音信号の間に干渉が生じることはなく、楽音が大きくなったり小さくなったりするという問題が解消される。
【発明を実施するための最良の形態】
【００１３】
以下、図面を参照して本発明を説明する。図１は、本発明が適用された電子楽音発生装置の一形態を示すブロック図である。図１において、CPU100は、ROM101に格納されている制御プログラムに従って電子楽音発生装置全体の制御を行う。CPU100はタイマ割り込み回路を備えている。
【００１４】
ROM101は、本発明における位相同期のフローを実行するプログラムを含む制御プログラムや定数などを記憶している。RAM102は、CPU100のワークエリアおよびバッファとして使用され、また、楽器内の各種制御データ、MIDIデータなどを格納する。RAM102は、例えばバッテリによりバックアップされていてもよい。
【００１５】
I/F103は、CPU100と鍵盤(KBD.)104およびパネル(PNL.)105をバスを介して接続するインタフェースである。鍵盤104は、複数の鍵と鍵盤スイッチとそのスキャン回路を含む。なお、鍵盤104は、上鍵盤や下鍵盤など、複数の鍵盤を有する。パネル105は、ドローバなどのパネル操作子類、表示装置(LCD)およびそのアクセス回路を含む。
【００１６】
楽音発生器(T.G.)106は、デジタル楽音波形サンプル値が記憶されている波形メモリ(WAVE MEM.)107から、発音すべき音高に比例したアドレス間隔で順次波形データを読み出し、補間演算を行って楽音信号を発生させる。楽音発生部(T.G.)106は、発音する音程数と鍵盤数に応じた発音手段(発音チャンネル)を備えている。具体的には、楽音発生器106は、少なくとも(発音する音程数)×(鍵盤数)だけの発音手段を備えている。その内の(発音する音程数)×(鍵盤数)の発音手段が本発明により使用されるが、それ以外の発音手段は、本発明による以外の発音に使用することができる。
【００１７】
DSP(digital signal processor)108は、楽音発生器106から出力される楽音信号に各種の効果、例えば、ロータリ効果などを付与する。D-RAM109は、DSP108での効果付与に際して必要となる楽音信号の遅延を与える。
【００１８】
楽音発生器108から発生されるデジタル楽音信号は、D/A変換器(DAC.)110によりアナログ楽音信号に変換された後、アンプ(AMP.)111を介してスピーカ(SP)112に供給される。バス(BUS)113は、電子楽音発生装置の上記各部間を接続する。各構成要素間での楽音情報や制御情報のやり取りはバス113を介して行われる。
【００１９】
図２は、本発明が特に関係する楽音発生器106および波形メモリ107の周辺構成の一例を示すブロック図であり、ここでは、２つの発音手段つまり発音チャンネルに関係する部分だけを示している。発音チャンネルは、発音する音程数と鍵盤数に応じた数、例えば、各鍵盤が発音する音程数が同一の場合、少なくとも(発音する音程数×鍵盤数)だけ備えられるが、ここでは、上鍵盤用と下鍵盤用の発音チャンネル１つずつを図示している。
【００２０】
上鍵盤用の発音チャンネルは、アドレス発生器(ADDR.Gen.)1-1、波形メモリ(WAVE MEM.)2-1、波形デコーダ(WAVE DEC.)3-1、デジタルフィルタ(DCF)4-1、エンベロープ発生器(E.G.)5-1、ラウドネス補間生成器(I.P.Loud.)6-1、パン生成器(PAN)7-1および乗算器8-1,8-3,8-5,8-7を備え、下鍵盤用の発音チャンネルは、アドレス発生器1-2、波形メモリ2-2、波形デコーダ3-1、デジタルフィルタ4-2、エンベロープ発生器5-2、ラウドネス補間生成器6-2、パン生成器7-2、乗算器8-2,8-4,8-6,8-8を備える。
【００２１】
アドレス発生器1-1,1-2は、アドレス同期回路(ADDR.Sync.)1-0からのスタート指令によりアドレス発生を開始し、出力する楽音の音程に応じた時間間隔でアドレスを発生する。アドレス発生器1-1,1-2により発生されたアドレスにより波形メモリ2-1,2-2から波形データが読み出される。波形デコーダ3-1,3-2およびデジタルフィルタ4-1,4-2は、波形メモリ2-1,2-2から読み出された波形データをそれぞれデコードおよびフィルタリングして波形信号を出力する。乗算器8-1,8-2は、この波形信号にエンベロープ発生器(E.G.)5-1,5-2からのエンベロープを付与する。上下鍵盤での押鍵操作やドローバ(DRAWBAR)操作に応じてエンベロープの振幅レベルが制御される。乗算器8-3,8-4は、ラウドネス補間生成器6-1,6-2からのラウドネス値を乗算し、クリックノイズを低減するように補間する。また、乗算器8-5〜8-8は、パン生成器7-1,7-2からのパンデータに従ってステレオ音源を定位する。
【００２２】
図３、図１の電子楽音発生装置の動作の一例を示すメインフローチャートである。電子楽音発生装置の電源がオンされたとき、まず、装置全体の初期化(S10)を実行する。次に、イベントの有無を調べ(S11)、イベント有りの場合にはイベント処理を実行する(S12)。S12でイベント処理を実行した後、およびS11でイベント無しの場合には、時変数処理を実行する(S13)。時変数処理は、イベント発生と関係なく時間経過に伴って変化する値に関する処理であり、音程が同じ発音を行う発音チャンネルの波形発生を位相同期させる処理の他、例えば、エクスプレッションぺダル操作に応じた発音レベル調整、パネル表示の更新、自動演奏用データの更新などが含まれる。時変数処理を実行した後にはS11にリターンする。
【００２３】
図４は、初期化(S10)の動作を示すフローチャートである。初期化では、まず、発音チャンネルなどを構成するLSIを初期化(S14)する。続いて、ドローバ(DRAWBAR)初期化(S15)、レベル(LEVEL)初期化(S16)、パラメータ(W_Sta[part][j])初期化(S17)、その他の初期化(S18)を順次実行し、リターンする。
【００２４】
DRAWBAR初期化(S15)は、各DRAWBARに付属するADコンバータをスタートさせる処理、DRAWBARの設定値を付属のレジスタへ書き込む処理を含む。なお、DRAWBARが操作されてその設定値が変化した場合には、イベント処理のDRAWBAR処理で更新する。LEVEL初期化(S16)では、エクスプレッションぺダルの現在位置に応じた値をレジスタへ書き込むなどして装置全体の発音レベルを設定する。
【００２５】
W_Sta[part][j]は、上鍵盤か下鍵盤かを示すパラメータ[part]と半音ごとの発音チャンネルを示すパラメータ[j]からなる２次元配列パラメータであり、当該発音チャンネルの鍵が押された場合、該鍵についてのW_Sta[part][j]がONとなる。W_Sta[part][j]初期化(S17)では、一旦全てのW_STA[part][j]をOFFにする。同時に、全ての発音チャンネルのアドレス発生器をアドレス同期回路からのスタート指令により同期してスタートさせる。その他の初期化(S18)は、CPUやタイマの設定などの処理を含む。
【００２６】
図５は、イベント処理(S12)の動作を示すフローチャートである。イベント処理では、まず、イベントが上鍵イベントかどうかを調べ(S19)、上鍵イベントの場合には上鍵イベント処理を実行する(S20)。また、S19で上鍵イベントでない場合には下鍵イベントかどうかを調べ(S21)、下鍵イベントの場合には下鍵イベント処理を実行する(S22)。
【００２７】
S21で下鍵イベントでない場合にはドローバ(DRAWBAR)操作があったかどうかを調べ(S23)、DRAWBAR操作があった場合にはDRAWBAR処理を実行する(S24)。押鍵しながらDRAWBARが操作された場合、押鍵イベントに続いて直ちに発音チャンネルの音色を変化させる必要があるので、イベント処理内でDRAWBAR処理を実行させる。
【００２８】
S23でDRAWBAR操作がなかった場合にはその他の処理を実行する(S25)。上鍵イベント処理(S20)や下鍵イベント処理(S22)やDRAWBAR処理(S24)やその他の処理(S25)を実行した後はリターンする。
【００２９】
図６は、上鍵イベント処理(S20)の動作を示すフローチャートである。なお、下鍵イベント処理(S22)の動作は、パラメータ(W_Sta[part][j])の[part]が異なる以外は同じであるので、以下では、単に鍵イベント処理として説明する。
【００３０】
鍵イベント処理では、まず、操作された鍵のキーナンバ(KeyNumber)を取得し、それを変数kに代入する(k←KeyNumber)(S26)。次に、鍵イベントが押鍵かどうかを調べる(S27)。S27で押鍵の場合にはS28に進み、離鍵の場合にはS39に進む。
【００３１】
S28ではパーカス音が設定されているか否かを調べる。パネルでパーカス音ONが設定されている場合、IsPercus()がONとなっているので、それを調べる。パーカス音が設定されている場合には、OnCount=0か否かを調べる(S29)。OnCountは、和音などで同時出力すべきパーカス音のうちの既に立ち上がっているパーカス音数を示す。OnCount=0は、同時出力すべきパーカス音がどれもまだ立ち上がっていないことを示す。そこで、OnCount=0の場合にはPlevelをefpEnvに代入(efpEnv←Plevel)して、まず、パーカス音の立ち上がり目標レベルをPlevelに設定する(S30)。S29でOnCount=0でない場合には、同時出力すべき他のパーカス音が既に立ち上がっていることを示す。この場合には、減衰しつつある他のパーカス音の現在レベルを読み出し、当該パーカス音の立ち上がり目標レベルをそれに合わせればよいので新たに目標レベルを設定することは不要である。パーカス音の目標レベルPlevelは、後述する時変数処理で発音チャンネルに転送される。
【００３２】
S28でパーカス音が設定されていない場合、S29でOnCount=0でない場合およびパーカス音の立ち上がり目標レベルを設定した後(S30)には、OnCountをインクリメントする(S31)。
【００３３】
次に、ループ変数iに0を代入(i←0)する(S31)。ループ変数iは、以下のループの処理をDRAWBAR数分、例えば9回だけ繰り返すことを規定する。ループの処理では、まず、i番目のDRAWBAR(i=0)のレベルDBlevel[i]をレジスタから読み出し、バッファyに書き込む(y=DBLevel[i])(S33)。
【００３４】
次に、DRAWBAR(i=0)とKeyNumber(k)とから決まる音程の発音チャンネルGetSRC(i,k)を探し出し、それをjとし(j=GetSRC(i,k))(S34)、S33でバッファyに書き込まれたレベルDBlevel[i]を発音チャンネルjの発音レベル(SClevel[j])に加算する(S33)。そして、この発音レベル(SClevel[j])を発音チャンネルjの目標レベルとして転送(ENV転送)する(S36)。その後、押鍵された鍵についてのW_Sta[][j]をONにする(S62)。なお、[]内には上鍵か下鍵かを示すパラメータが入り、例えば、上鍵の場合には[0]であり、下鍵の場合には[1]である。
【００３５】
iを1つずつインクリメント(図示省略)しつつS33〜S37を繰り返す。S38ではDRAWBAR数だけS33〜S37が繰り返されたか否かを調べる。DRAWBAR数が9個の場合、S33〜S37の処理が9回繰り返されると、S38でi<9でなくなるのでループから抜け出してリターンする。
【００３６】
S39〜S49は、鍵イベントが離鍵の場合の処理であり、パーカス音の立ち下がり目標レベルを0に設定する点(S41)、OnCountをデクリメントする点(S42)、i番目のDRAWBARのレベルy=DBlevel[i]を発音チャンネルjの発音レベル(SClevel[j])から減算する点(S46)、離鍵された鍵についてのW_Sta[][j]をOFFにする点(S48)が異なるが、同様の処理であるので、説明は省略する。
【００３７】
図７は、DRAWBAR処理(S24)の動作を示すフローチャートである。このフローに従った動作は、上鍵盤用と下鍵盤用のDRAWBARについてそれぞれ実行される。DRAWBAR処理では、まず、初期化後にDRAWBARが操作された場合、該DRAWBARに付属するレジスタの中身を現在設定値に書き換える(UpDateDB())(S52)。
【００３８】
次に、ループ変数jに0を代入(j←0)する(S53)。ループ変数jは、以下の外側ループの処理を発音チャンネル数分つまり音程数分だけ繰り返すことを規定する。次に、発音チャンネルiがONか否かを調べ(S54)、ONでない場合、S63に進むが、ONの場合には該発音チャンネルiのレベルを一旦0にする(S55)。ここで一旦0にするのは、バッファ値SClevel[j]であり、出力されている発音レベルは変わらない。
【００３９】
次に、ループ変数iに0を代入(i←0)する(S56)。ループ変数iは、以下の内側ループの処理をDRAWBAR数分だけ繰り返すことを規定する。内側ループの処理では、発音チャンネル(j)とDRAWBAR(i)とから決まる鍵GetKey(j,i)を探し出し、それをkとする(k=GetKey(i,j))(S57)。そして、鍵kが押されているか否かを調べる(S58)。鍵kが押されていない場合にはS61に進むが、押されている場合には、DRAWBARイベントに従って音色を変化させる必要があるので、DRAWBAR(i)の設定値DBlebel[i]をバッファyに代入し(S59)、yを発音チャンネルjの発音レベル(SClevel[j])に加算する(S60)。
【００４０】
iを1つずつインクリメント(図示省略)しつつS57〜S60を繰り返す。S61ではDRAWBAR数だけS57〜S60が繰り返されたか否かを調べる。DRAWBAR数が9個の場合、S57〜S60の処理が9回繰り返されると、S61でi<9でなくなるので内側ループから抜け出す。
【００４１】
内側ループから抜け出した後は、発音レベル(SClevel[j])を発音チャンネルjの目標レベルとして転送(ENV転送)する(S62)。これにより発音チャンネルiの発音レベルが設定される。なお、目標レベルの他、目標レベルへ向かうときの速度などもENV転送してエンベロープを設定する。
【００４２】
外側ループでは、jを1つずつインクリメント(図示省略)しつつS54〜S62を発音チャンネル数(isMaxSRC)分だけ繰り返す。S63ではS54〜S62が発音チャンネル数(isMaxSRC)分だけ繰り返された否かを調べる。外側ループでの処理が発音チャンネル数(isMaxSRC)だけ繰り返されると、S63でYESとなるので外側ループから抜け出し、DRAWBAR処理を終了する。
【００４３】
図８は、鍵イベントまたはDRAWBARが操作された場合の目標レベルの転送を示す概念図である。操作パネルには16′,8′,5・1/3′,・・・,1・2/3′,1′の音色系列のDRAWBAR21-0〜21-8が設けられ、各DRAWBARの設定値が付属のレジスタへ書き込まれる。これらの設定値は、鍵UK(0),LK(0),・・・,UK(i),LK(i),・・・の押鍵によりON状態となるON/OFFスイッチを通して、同じ発音チャンネルに対するもの同士が加算され、発音手段(発音チャンネル)22-0,・・・,22-(i-1),22-i,22-(i+1),・・・,22-108に転送される。DRAWBARおよび発音チャンネルは、上鍵盤(U)用と下鍵盤(L)用で別個のものであるが、簡単化のために１つとして図示している。
【００４４】
発音チャンネル22-0,・・・,22-(i-1),22-i,22-(i+1),・・・,22-108は、転送されてくる設定値に応じたエンベロープの楽音信号を送出する。加算器23-0,・・・,23-(i-1),23-i,23-(i+1),・・・は、発音チャンネル22-0,・・・,22-(i-1),22-i,22-(i+1),・・・,22-108からの楽音信号を加算して出力する。図示のON/OFFスイッチと加算器とからなる部分20は、実際にはCPUによるソフトウエア処理であるが、理解を容易にするためにON/OFFスイッチと加算器のハードウエア構成で表現している。
【００４５】
例えば、上鍵盤の最低音の鍵UK(0)や下鍵盤の最低音の鍵LK(0)が押された場合、DRAWBAR21-0の設定値DU0,DL0がON/OFFスイッチおよび加算器を通して発音チャンネル22-0に転送される。この場合には、他の押鍵で楽音が同一の音程になることはないので、DRAWBAR21-1〜21-8の設定値はON/OFFスイッチで阻止する(ON/OFFスイッチは常にOFF)。
【００４６】
また、例えば、上鍵盤の鍵UK(i),UK(i-12),UK(i-19),・・・,UK(i-43),UK(i-48)、下鍵盤の鍵LK(i),LK(i-12),LK(i-19),・・・,LK(i-43),LK(i-48)が押された場合、それにより出力される楽音は同一の音程になるので、DRAWBAR21-0〜21-8の設定値DU0〜DU8,DL0〜DL8がON/OFFスイッチおよび加算器で加算され、発音チャンネル22-iに転送される。発音チャンネル22-0,・・・,22-(i-1),22-i,22-(i+1),・・・,22-108は、DRAWBAR21-0〜21-8の設定値を目標レベルとしたエンベロープの楽音信号を生成する。エンベロープの設定には目標レベルの他、目標レベルに向かうときの速度など、他のパラメータも必要であるが、これらのパラメータは従来と同様に定めることができる。
【００４７】
押鍵中にDRAWBARが操作された場合、それに応じた値がON状態のON/OFFスイッチおよび加算器を通して発音チャンネルに転送される。これにより、出力中の楽音の音色を変化させることができる。
【００４８】
図９は、ENV転送処理(S36,S47,S62)の動作を示すフローチャートである。発音レベル(SClevel[j])はCPUでの加算などの演算の都合から固定小数点となっているので、エンベロープ転送では、まず、SClevel[j]を関数fx( )により浮動小数点のデータx0に変換する(S50)。これにより、転送されるデータは十分に広い幅を持つことができる。データx0をエンベロープデータ(ENV.Data)として転送する(S51)。ENV.Dataには、目標レベルの他、目標レベルへ向かう速度も含ませる。図６、図７では、ENV転送を個別の処理として示したが、それらのENV転送で転送された目標レベルの加算に従ってエンベロープが付加されるので、実際上ではそれらの目標レベル、さらには後述するパーカス音の立ち上がり目標レベルを加算した値がエンベロープ発生器5-1,5-2に転送する。なお、パーカス音における減衰は、その立ち上がり目標レベルに基づいて従来と同様に付与できるが、本発明と特に関係がないので、説明を省略する。
【００４９】
図１０は、時変数処理(図３のS13)の動作を示すフローチャートである。時変数処理では、エクスプレッションぺダル操作に応じた発音レベル調整、パネル表示の更新、自動演奏用データの更新なども行うが、ここでは、特に、発音する音程が同じ発音チャンネルの楽音信号の位相を同期させる処理の動作を記載している。
【００５０】
時変数処理では、まず、指数曲線に従って減衰するように演算されているパーカス音の立ち上がり目標レベルを転送(ENV転送)する(S64)。次に、エクステンションペダルの値を読み取って楽器全体の音量を変更する(S65:SetOutput())。
【００５１】
次に、上鍵盤(U)と下鍵盤(L)とで共にOFFになっている発音チャンネルが有るか否かを調べる(S66)。上鍵盤(U)と下鍵盤(L)とで共にOFFになっている発音チャンネルは、該発音チャンネルに対する全てのON/OFFスイッチ(図８)がOFFになっていることから判定できる。上鍵盤(U)と下鍵盤(L)とで共にOFFになっている発音チャンネルが有る場合には、さらに、該発音チャンネルがサステイン中であるか否かを調べる(S67)。S67でサステイン中の場合にはサステインによる発音を保証するためにそのままリターンするが、離鍵され、かつサステイン中でない(サステインが終了あるいはサステインがかかっていない)場合には、上鍵盤のWHEELつまり上鍵盤の発音チャンネルにおける波形読み出しを停止させ(S68)、また、下鍵盤のWHEELつまり下鍵盤の発音チャンネルにおける波形読み出しを停止させる(S69)。
【００５２】
離鍵され、かつサステイン中でないこと、すなわち発音チャンネルが消音状態にあることは、乗算器8-1,8-2から送出される楽音信号のレベルが0であることで検出できる。その後、上鍵盤および下鍵盤の発音チャンネルの波形読み出しを同期して再開させ(S70)、波形データを同一位相で読み出す。その後、リターンする。
【００５３】
以上により、上鍵盤と下鍵盤の発音チャンネルの両者が消音状態にあるときに、それらの楽音発生手段の波形発生が一旦休止され、その後、同一位相の波形を発生されるように波形発生が再開される。この結果、上鍵盤と下鍵盤の発音チャンネルにより発生される楽音信号の位相が同期していない状態が速やかに解消される。
【００５４】
以上、実施形態を説明したが、本発明は、上記実施形態に限られるものではなく、種々に変形可能である。例えば、上鍵盤用と下鍵盤用の発音チャンネルにより発生される楽音信号の位相を同期させる場合だけでなく、足鍵盤用の発音チャンネルがあれば、その発音チャンネルにより発生される楽音信号の位相も同様に同期させることができる。
【図面の簡単な説明】
【００５５】
【図１】本発明が適用された電子楽音発生装置の一形態を示すブロック図である。
【図２】図１における楽音発生器および波形メモリの周辺構成の一例を示すブロック図である。
【図３】図１の電子楽音発生装置の動作の一例を示すメインフローチャートである。
【図４】初期化の動作を示すフローチャートである。
【図５】イベント処理の動作を示すフローチャートである。
【図６】鍵イベント処理の動作を示すフローチャートである。
【図７】DRAWBAR処理の動作を示すフローチャートである。
【図８】鍵イベントまたはDRAWBARが操作された場合の目標レベルの転送を示す概念図である。
【図９】ENV転送処理の動作を示すフローチャートである。
【図１０】時変数処理の動作を示すフローチャートである。
【符号の説明】
【００５６】
1-0・・・アドレス同期回路、1-1,1-2・・・アドレス発生器、2-1,2-2,107・・・波形メモリ、3-1,3-2・・・波形デコーダ、4-1,4-2・・・デジタルフィルタ、5-1,5-2・・・エンベロープ発生器、6-1,6-2・・・ラウドネス補間生成器、7-1,7-2・・・パン生成器、8-1〜8-8・・・乗算器、20,100・・・CPU、21-0〜21-8・・・DRAWBAR、22-0,・・・,22-(i-1),22-i,22-(i+1),・・・,22-108・・・発音チャンネル、23-0,・・・,23-(i-1),23-i,23-(i+1),・・・・・・加算器、101・・・ROM、102・・・RAM、103・・・I/F、104・・・鍵盤、105・・・パネル、106・・・楽音発生器、108・・・DSP、109・・・D-RAM、110・・・D/A変換器、111・・・アンプ、112・・・スピーカ、113・・・バス
【図１】
2010008880.tif 000003
【図２】
2010008880.tif 000004
【図３】
2010008880.tif 000005
【図４】
2010008880.tif 000006
【図５】
2010008880.tif 000007
【図６】
2010008880.tif 000008
【図７】
2010008880.tif 000009
【図８】
2010008880.tif 000010
【図９】
2010008880.tif 000011
【図１０】
2010008880.tif 000012